为了更好的完成设计 , 我复习了指针这部分内容 , 巩固了链表和文件两部分知识 。
在完成课设过程中 , 我发现困扰我的地方不是编写插入 , 删除 , 查找这些函数 , 而是建立初始链表 。
我首先编了三个函数:creat,insert_a_word,list,和一个main函数 。 调试时发现调用list函数输出除了原来insert的字符串 , 还有一些乱码 , 这就说明以上三个函数的某个或几个有问题 。 后来我把目标放在creat函数上 。 我本来是想模仿书上的creat 函数 , 但是要从文件上读取字符串 , 就要用到fscanf,由于操作的不纯熟 , 空间的分配出现了问题 , 在初始链表的时候带进了一些乱码 。 后来我重新编了creat函数 , 解决了这个问题 。
解决了初始链表的问题以后 , 遇到的问题无非是指针上的操作错误 , 往往一编译就出现很多警告和错误 , 于是一个一个找 , 一个一个调 。 这些花费了我很长时间 , 以至于一看到蓝屏下的出错信息就想逃 。 这些错误后来都被我解决了 。
在完成课设过程中 , 我是一边出错一边改错 , 一边调试一边翻书 , 进展缓慢 。 不过也是因为出了错 , 翻了书 , 我发现了自己知识体系中的不足之处 , 巩固了薄弱的地方 。
大体编完了以后 , 我又对程序进行了完善 。 比如说增加了全局变量n , 在输出插入单词成功时输出插入单词的个数 。 经过这个程序设计的编写 , 我觉得作为一个编程者 , 首先 , 必须有严谨的作风:因为一个程序中小小的一点不足在最后的运行时都会对整个程序产生不可忽视的影响 , 甚至使程序终止 , 不能运行下去;其次 , 还必须有足够的耐心去观察解决出现的一系列问题;当然 , 还必须有较强的逻辑思维能力 , 因为程序出现错误不是光有耐心就能解决的 , 必须利用逻辑思维能力 , 一步步地排除错误
三、源程序
或者;
一. 程序功能
设计一个单向链表类 , 完成一个通讯录的简单管理工作 。 通讯录是一个简单的数据库库表 , 每个结点包含一个人的所有通讯信息 。
程序的执行过程为:循环显示主菜单 , 用户在Choice处输入选项 , 即按照功能列表输入1-9的任意一个数字 , 按回车后 , 执行响应的功能 。
各菜单项功能如下:
1、 Add Record (增加记录)
提示输入各字段 。 一次输入一个人的数据 。
2、 Delete Record (删除记录)
输入待删除记录的姓名 , 显示该姓名下的所有信息 , 让用户再次确认是否要删除
3、 Display All Record(显示所有记录)
按顺序显示库中所有记录 , 每屏显示10条记录 。 每显示10条 , 用户按<Enter>键继续显示下一屏 。
4、 Query(按姓名查找并显示一个记录)
输入姓名 , 显示该姓名下的所有信息
5、 Modify Record(按姓名查找 , 修改一个记录)
输入姓名 , 显示该姓名下的所有信息 。 然后 , 在子菜单中提示修改哪个数据 。
6、 Add from a Text File(从正文文件中添加数据到库表中)
用户可事前建立一个正文文件 , 存放待加入的数据 , 然后从该文件中一次性导入多个人员的数据 。 程序运行时 , 提示输入正文文件的文件名 。
推荐阅读
- 学习知识|短怎么写,短字隶书怎么写
- 学习知识|劳动合同怎么写,简版劳动合同
- 学习知识|英文怎么写好看,英文书法13种字体
- 学习知识|神怎么写,神的偏旁另一种写法
- 学习知识|着怎么写,着的书法写法图片
- 学习知识|澶怎么读音,檀溪的拼音
- 学习知识|grade怎么读,dog怎么读
- 学习知识|曰怎么读,拼音怎么读出来
- 学习知识|碾怎么读,碾的读音是什么
- 学习知识|john怎么读,John的真正读音