二○一○ ~二○一二学年第二学期。
信息科学与工程学院。
课程设计报告书。
课程名称: c程序课程设计
班级。学号。
姓名。指导教师赵老师。
二○一一年九月。
一。设计题目及要求。
1. 设计题目:通讯录管理系统。
2.要求:自学c语言中相关知识,设计出通讯录管理系统。实现如下功能:
建立通讯录信息,信息至少包含编号、姓名、年龄、**、通讯地址、电子邮箱等;
能够提供添加、删除和修改通讯录信息的功能,并给出确认是否保存或删除记录的提示信息;
能够提供按姓名或**等查询并显示相应记录信息;
将通讯录保存在文件中;
能够按**方式输出通讯录信息。
注意事项: 为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;
根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。
程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和修正。
二。系统总体设计和功能模块图。
三。主要功能模块的算法及其流程图。
1.宏定义:#define header1所有记录n"
#define header2 " 编号 | 姓名**号码 |年龄| 地址邮箱 |"
#define header3n "
#define format "|6s|%-15s|%-12s |%d |%10s|%-20s|"
#define data p->>p->data. phone,p->>
#define endn"
2. 重要函数:
disp函数locate函数。
detel函数modify函数。
四.调试问题及调试结果。
1.在调试过程中遇到了不少问题,几个典型的问题如下:
(1)、在创建链表的时候,每次申请一个结构体大小的空间的时候,都要把该空间的下个节点的地址赋值为“null”,否则会发生内存的错误。
(2)、在判断新输入的编号是否在链表中已经存在的是时候,分两种情况,即要写两个函数。原先只写一个函数,后来发现不行。因为当在创建链表的时候判断的是想创建的这个记录的编号与链表中现有的所有记录的编号是否有重复,而当在修改和插入节点的时候,判断的是修改后或插入后的那个节点除外的所有节点是否有与想修改的或想插入的这个编号是否相同。
(3)、在显示输出通讯录的时候,原先没有经过输入格式的控制,以至于排版不整齐。后来学到了,格式的控制,即每一项都要左对齐并且控制其字符空间。
(4)、在操作文件的时候,一定要切记:使用完文件之后必须关闭该文件。如果不关闭文件将会丢失数据,因为在向文件写数据时,是先将数据输出到缓冲区,待缓冲区充满后才正式输出给文件。
如果当数据未充满缓冲区而程序结束运行,就会将缓冲区中的数据丢失。用fclose函数关闭文件,可以避免这个问题,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量。
2.调试结果:
五.课程设计小结。
在本次课程设计中,我充分体会到了自己以前所学的c语言的知识的浅薄。比如在操作指针的时候就因为指针乱指老是出现内存的错误。还有以前学习c语言的时候,老师没有讲文件部分,所以必须自己自学这方面的知识。
c语言课程设计报告 课程设计报告
周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...
C语言课程设计报告
华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...
C语言课程设计报告
c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...