C语言课程设计通讯录实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
太原学院计算机工程系
课程设计报告
课程名称:数据结构课程设计
姓名:苏建花
专业班级:计算机工程系网络三班
指导教师:翟婷婷
2015年12 月30日
计算机工程系课程设计报告
课程名称:C语言课程设计
课程设计题目:通讯录管理系统
班级:网络14-3班姓名:苏建花学号:
目录(参考)
1.设计目的与要求…………………………………………X
1.1题目与设计要求……………………………………X
1.2本程序涉及的知识点………………………………X
2.功能设计………………………………………………X
2.1总体设计……………………………………………X
2.2详细设计……………………………………………X
3.程序实现……………………………………………X
3.1程序实现时应考虑的问题…………………………X
3.2 XX模块核心代码…………………………………X
4.测试分析……………………………………………X
4.1 测试结果及分析…………………………………X
4.总结…………………………………………………X
参考文献………………………………………………X
1、设计目的与要求
这次课程设计的目的在于:
1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用;
2.通过综合C语言的基本知识来解决实际问题;
3.加强分析和解决问题的能力;
4.提高实践动手能力,将知识化为实际成果
1.1 题目与设计要求
(1)题目:通讯录
(2)设计要求
a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、
同学、家人等)等。
b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、
姓氏方式查找。
c、将通讯录保存在文件中。
d、能够输出通讯录中的信息。
1.2 本程序设计的知识点
(1)采用结构体数组。
struct Person
{
char a[16];
char s[16];
char d[16];
char f[24];
struct Person *next;
}stu;
(2)运用函数之间的调用
主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。
(3)利用指针变量
struct Person *head;
struct Person *p1,*p2
2 、功能设计
添加:添加通讯录记录
修改:修改通讯录记录
删除:删除通讯录记录
查找:查询通讯录记录
显示:显示通讯录记录
统计:统计通讯录数目
2.1需求分析
信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
2.2 总体设计
整个系统可设计分为数据插入模块、数据修改模块、数据删除模块、数据显示模块、数据查询模块和数据统计模块
2、3
2.3.1
2.3.2
2.3.2
2.3.4
2.3.5
删除通讯录通过数组中该位置之后的数据存放位置向前移一位来实现删除功能,其流程图
如下:
2.3.6
查找通讯录通过数组位置查找相关信息实现查找功能,其流程图如下:
2.3.7(假设w=1)流程图如下:
2.3.8
3、程序实现
3、11
23
4.5. 6.7功能调试; 8.完成系统总结报告以及系统使用说明书。
注:各函数之间的调用关系,如下图所示: 退出函数流程图
3、2源代码及说明
(见附加)
4、 测试分析
4.1 测试结果及分析(以下列操作为例)
进入系统后,系统会出现如下图:
显示输入账号和密码:
输入账号和密码后会进入主菜单页码:
在主菜单中输入1后,选择要操作的文件,选择同学,输入要添加的个数,输入姓 名 电
话号码 地址,结果如下图:
在主菜单中输入2后,输入要修改人的姓名。系统找到后会提示输入新的姓 名
电话号码 地址,结果如下图:
在主菜单中输入3后,选择要操作的文件,选择查找的方式,。结果如下图
在主菜单中输入4后,输入要操作的文件,然后输入要删除的人的姓 名,结果如下图:
在主菜单中输入5后,选择要操作的文件,会显示出此文件中所有的信息,结果如下图: main 函数 Tianjia() tongji() chazhao() shanchu() xianshi()
xiugai() Menu() 调用
在主菜单中输入6后,输入要操作的文件,系统会统计出此文件中的总数,结果如下图
在主菜单中输入7后,“会显示谢谢您的使用,请按任意键退出”。
在运行的过程中曾出现,每执行完一个操作返回主菜单後就无法再继续执行接下来的操作,后来我从网上搜了一下,当执行system("cls");时会清除屏幕,然后我就在多次的修改中将程序中多余的system("cls");语句删除后,程序终于可以正常运行。而且编译时会出现如下信息,但好在不影响程序的正常运行。
5、总结
这个课题是设计一个通讯录系统,该通讯系统能够较好的管理好我们的通讯录记录,具有添加、修改、查找、删除、显示和统计的功能,但是该系统依旧有漏洞,此程序必须按照系统提示的操作来执行,而且还有部分的功能缺陷,例如用户无法自行修改用户名和密码,必须使用系统分配的数据登陆系统。功能也不是很齐全,没有排序功能,没有加密功能,还需要进一步的更新,才能达到更好地效果。
从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里时不时的
有一种喜悦我在编写过程中,逐步的了解了程序模块化设计的思想含义。在整个程序设计的过程中语法的错误还是比较容易检查的,但是对于那些逻辑思维的问题方面的缺陷不易查出,因此常常出现系统提示没有错误但是仍然不能够正常运行的境况,尽管有很多不足之处,但我在整个系统程序设计的过程中,我可以感受到自己对C语言有了一定的掌握,对整体的把握度也提高了很多。
此外编程是一项高精度需求的工作,所以我们要有规范化,标准化的代码编写习惯。良好的编写习惯,不但有助于代码的纠错,也有助于各功能负责人员之间的协同合作。
我们还要有模块化思维能力,模块化思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大的避免重复性的工作。另外我们要重视程序的算法,在程序中,算法是灵魂,我们要努力学习各种先进的算法,提高自己的编程能力。
而在这个过程中,我更深的理解和运用结构化程序设计的思想和方法,掌握开发一
个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力(书写课程设计报告)。
参考文献
1、谭浩强着.C程序设计(第四版).北京:清华大学出版社,2010
2、谭浩强着.C程序设计(第四版)学习辅导.北京:清华大学出版社,2010