《C语言个人通讯录管理系统优秀分课程设计报告.doc》由会员分享,可在线阅读,更多相关《C语言个人通讯录管理系统优秀分课程设计报告.doc(36页珍藏版)》请在金锄头文库上搜索。
1、XXXX学院C语言程序设计课程设计报告 学 院:_XXXXXXXXX学院_ 专业班级: XXXXXXXXXX 学生姓名: X X X 学 号: XXXXXXXX 设计地点(单位)_ XXX _ _设计题目:_C语言个人通讯录管理系统 _ 完成日期: 201X 年XX月XX日 指导教师评语: _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ XXXXX学院C语言程序设计课程设计报告摘要本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息进行显示、查询、修改、删除等功能。我编写的程序
2、从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另一部分为通讯录功能的实现。在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功能实现部分,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能。关键字:文件、数组、循环、函数重庆科技学院课
3、程设计任务书设计题目:个人通讯录管理系统学生姓名XXX课程名称C语言程序设计课程设计专业班级电自专2011地 点I515起止时间2012年12月17日-12月28日设计内容及要求建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界
4、面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:雷亮 2015年12月10日25目录第一章 软件需求分析说明
5、书11.1设计软件的目的分析11.2软件的界面要求11.3详细的功能分析11.3.1创建文件11.3.2 添加联系人11.3.3显示和查询联系人11.3.4 删除联系人11.3.5 修改联系人11.3.6 保存退出与不保存退出11.4设计要求分析21.5软件的数据结构分析21.5.1 软件的函数21.5.2 文件的调用和保存2第二章 系统分析与设计32.1 软件界面设计32.2 软件的数据(结构)设计32.2.1 软件的文件功能32.2.2 文件内部的数据格式32.3 软件的模块图32.4 软件的流程图42.4.1 添加联系人程序流程图42.4.2 显示和查找联系人程序流程图52.4.3 删除
6、联系人流程图52.4.4 修改联系人流程图6第三章 软件的实现83.1 函数声明83.2 zhucaidan()主菜单函数83.3 main()主函数93.4 readfile()读取文件函数93.5 writefile()联系人写入文件函数103.6 zengjia()增加联系人函数113.7 shanchu()删除函数主界面113.8 xianshi()显示和查询函数123.9 xianshi()显示所有人函数133.10 chazhao_xingming()姓名查询函数133.11 chazhao_dianhua()按号码查询函数143.12 shanchu_dange()删除单个联系人
7、函数153.13 shanchu_quanbu()删除所有联系人函数153.14 shanchu_xingming()按姓名删除联系人函数163.15 shanchu_dianhua()按电话号码删除函数173.16 xiugai()修改函数主体界面183.17 xiugai_xingming()按姓名修改193.18 xiugai_dianhua()按号码修改联系人函数20第四章 软件测试224.1 文件导入界面224.2 软件的主界面224.3 添加联系人模块224.4 显示和查找联系人界面234.4.1主界面234.4.2无联系人的显示界面234.4.3有联系人的显示界面244.4.4按
8、姓名查找244.4.5 按电话号码查找244.5 删除联系人模块254.5.1删除联系人主界面254.5.2没有对应联系人的删除界面254.5.3按姓名删除254.5.4按电话号码删除264.6 修改联系人模块264.6.1修改联系人主菜单264.6.2 按姓名修改274.6.3按电话修改274.7 退出284.7.1 保存退出284.7.2 不保存退出28第五章总结与体会29致谢30参考文献31第一章 软件需求分析说明书1.1设计软件的目的分析本软件要求用C语言建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信录进行显示、查找、添加、修改及删除。1.2软件的界面要求本软件要求软件的界面
9、简洁、美观,让人一目了然,使用起来方便。于是我设计的软件首先提示您是否有通讯录文件存在,如没有文件,则自动建立一个,如有文件存在,则提示导入成功,让人直观明白的了解文件的情况。按任意键便可以进入主菜单,在主菜单上显示出软件的功能,通过输入数字0到5来进行选择便可以实现你所需要的功能,每个模块进入模块内部实现软件的具体功能,实现您所需要的功能。1.3详细的功能分析该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。下面六个模块都是利用C语言文件,向文件中添加数据、修改数据、查询数据、删除数据和保存数据。1.3.1创建文件用fopen()建立一个文本文件,然后向其中输入数
10、据(例如,向文件中输入“姓名”,“地址”,“号码”等),并对文件进行命名。1.3.2 添加联系人通过键盘输入通讯录人员的姓名、电话号码、地址信息便可实现将信息添加到通讯录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键盘输入通讯录人员的姓名、电话号码、地址信息即可实现继续添加。1.3.3显示和查询联系人通过前面第一个模块打得录入我们便可以执行第二个模块,通过第二个模块我们可以进行对联系人进行显示和查找。我通过调用showall()函数来进行显示所有的联系人,showall()函数可以实现逐个显示联系人。对于查找联系人我则采用了search()函数来进行查找联系人,我提
11、供了两种查找方法:按照姓名查找;按照电话号码查找。1.3.4 删除联系人我调用deletecd()函数来实现删除功能,同样我也提供给了两种删除方法:全部删除;单个删除。其中全部删除会提示是否全部删除,以免误删。1.3.5 修改联系人我调用modify()函数来实现修改功能,我同样提供了两种修改方法:对姓名进行修改;对电话号码进行修改。修改完毕后会提示是否据需修改。1.3.6 保存退出与不保存退出你还在为误添加、误修改、误删除后悔吗?还想回到以前的数据吗?这个担忧在我的程序中您就不必担心了,我为程序提供了两种退出方式:保存退出;不保存退出。完全解决您的后顾之忧。1.4设计要求分析进一步掌握利用C
12、语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。1.5软件的数据结构分析1.5.1 软件的函数本软件采用了不同的函数来进行定义不同模块的功能,通过调用不同的函数,可以实现不同的功能。软件中采用了五个主体函数来实现添加联系人,修改联系人,查找联系人,显示联系人,删除联系人的功能。1.5.2 文件的调用和保存本软件通过文本方式对用户所录入的信息进行保存。通过保存下来的文本,您可以在电脑磁盘中找到您存入文
13、件的位置,打开后便可以找到您所录入的通讯录信息。第二章 系统分析与设计2.1 软件界面设计画出软件全部输入、输出数据的界面,并对每一个界面进行详细的操作说明2.2 软件的数据(结构)设计 软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。代码中通过scanf从键盘上输入不同的数字选项,然后通过swtich case()来实现对不同函数的调用。2.2.1 软件的文件功能软件采用了文本文档进行存取,我在C盘建立了一个txl文本文档用于存取输入的信息,打开C盘后就能直接看到您录入的信息,很方便和快捷。2.2.2 文件内部的数据格式我采用了readfile()函数来读取文件,使用if(fp=fopen(c:通讯录.txt,r)=NULL)以只读方式打开判定文件是否为空,如果不空,则使用fseek(fp,0,2); 文件位置指针移动到文件末尾