重庆 XX 学院
《C 语言程序设计》
课程设计报告
学 院:_软件学院_ 专业班级: 软件 2011-01
学生姓名:
学 号:
设计地点(单位)________
I515 ______________ __
设计题目:__________个人通讯录管理系统 _____________
完成日期: 2017 年 12 月 28 日
指导教师评语: ______________________
_________________
__________________________________________________________________________________
__________________________________________________________________________________
_____________________________________
__________ _
成绩(五级记分制):______ __________
指导教师(签字):________ ________
重庆科技学院《C 语言程序设计》课程设计报告
摘要
本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、
电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息
进行显示、查询、修改、删除等功能。
我编写的程序从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另
一部分为通讯录功能的实现。在文件部分,我通过 readfile()函数和 writefile()函数从而实
现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免
丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功
能实现部分,通过 scanf 从键盘上输入的数字放到 switch() case 循环中来实现调用
zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、
“修改”、“删除”等不同功能。
关键字:文件、数组、循环、函数
1
重庆科技学院《C 语言程序设计》课程设计报告
重庆科技学院
课程设计任务书
设计题目:个人通讯录管理系统
学生姓名
课程名称
点
地
蒋洪山
C 语言程序设计课程设计 专业班级 电自专 2011
I515
起止时间
2012 年 12 月 17 日-12 月 28
日
设
计
内
容
及
要
求
设
计
参
数
进
度
要
求
参
考
资
料
其
它
说
明
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、
查找、添加、修改及删除。
进一步掌握利用 C 语言进行程序设计的能力;进一步理解和运用结构化程序设
计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长
程序的基本方法;学会利用流程图表示算法。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写
课程设计报告。
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
周一:明确设计任务,学习相关基础知识
周二:熟悉各知识点,进行基础练习
周三:根据题目要求,进行设计和实现
周四:根据题目要求,进行设计和实现
周五:撰写报告,进行答辩
[1]何钦铭 颜晖.《C语言程序设计》.高等教育出版社.2008 年
[2]谭浩强 张基温.《C语言程序设计教程》.高等教育出版社.2006 年
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份
由负责教师留用。2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
教研室主任:
指导教师:雷亮
2012 年 12 月 10 日
2
重庆科技学院《C 语言程序设计》课程设计报告
目录
第一章 软件需求分析说明书 ...............................................1
1.1 设计软件的目的分析 .................................................1
1.2 软件的界面要求 .....................................................1
1.3 详细的功能分析 .....................................................1
1.3.1 创建文件 ..................................................... 1
1.3.2 添加联系人 ...................................................1
1.3.3 显示和查询联系人 ............................................. 1
1.3.4 删除联系人 ...................................................1
1.3.5 修改联系人 ...................................................1
1.3.6 保存退出与不保存退出 .........................................1
1.4 设计要求分析 .......................................................2
1.5 软件的数据结构分析 .................................................2
1.5.1 软件的函数 ...................................................2
1.5.2 文件的调用和保存 .............................................2
第二章 系统分析与设计 ...................................................3
2.1 软件界面设计 ...................................................... 3
2.2 软件的数据(结构)设计 ............................................ 3
2.2.1 软件的文件功能 ...............................................3
2.2.2 文件内部的数据格式 ...........................................3
2.3 软件的模块图 ...................................................... 3
2.4 软件的流程图 ...................................................... 4
2.4.1 添加联系人程序流程图 .........................................4
2.4.2 显示和查找联系人程序流程图 ...................................5
2.4.3 删除联系人流程图 .............................................5
2.4.4 修改联系人流程图 .............................................6
第三章 软件的实现 .......................................................8
3.1 函数声明 ......................................................... 8
zhucaidan()主菜单函数 ............................................ 8
3.2
main()主函数 ..................................................... 9
3.3
3.4
readfile()读取文件函数 ........................................... 9
writefile()联系人写入文件函数 ................................... 10
3.5
zengjia()增加联系人函数 ......................................... 11
3.6
3.7
shanchu()删除函数主界面 ......................................... 11
xianshi()显示和查询函数 ......................................... 12
3.8
3.9
xianshi()显示所有人函数 ......................................... 13
3.10 chazhao_xingming()姓名查询函数 .................................. 13
3.11 chazhao_dianhua()按号码查询函数 ................................. 14
3.12 shanchu_dange()删除单个联系人函数 ............................... 15
3.13 shanchu_quanbu()删除所有联系人函数 .............................. 15
3.14 shanchu_xingming()按姓名删除联系人函数 .......................... 16
3.15 shanchu_dianhua()按电话号码删除函数 ............................. 17
3.16 xiugai()修改函数主体界面 ........................................ 18
I
重庆科技学院《C 语言程序设计》课程设计报告
3.17 xiugai_xingming()按姓名修改 ..................................... 19
3.18 xiugai_dianhua()按号码修改联系人函数 ............................ 20
第四章 软件测试 ........................................................22
4.1 文件导入界面 ..................................................... 22
4.2 软件的主界面 ..................................................... 22
4.3 添加联系人模块 ................................................... 22
4.4 显示和查找联系人界面 ............................................. 23
4.4.1 主界面 ...................................................... 23
4.4.2 无联系人的显示界面 .......................................... 23
4.4.3 有联系人的显示界面 .......................................... 24
4.4.4 按姓名查找 .................................................. 24
4.4.5 按电话号码查找 ..............................................24
4.5 删除联系人模块 ................................................... 25
4.5.1 删除联系人主界面 ............................................ 25
4.5.2 没有对应联系人的删除界面 .................................... 25
4.5.3 按姓名删除 .................................................. 25
4.5.4 按电话号码删除 .............................................. 26
4.6 修改联系人模块 ................................................... 26
4.6.1 修改联系人主菜单 ............................................ 26
4.6.2 按姓名修改 ..................................................27
4.6.3 按电话修改 .................................................. 27
4.7 退出 ............................................................. 28
4.7.1 保存退出 ....................................................28
4.7.2 不保存退出 ..................................................28
第五章 总结与体会 ...................................................... 29
致谢 .....................................................................30
参考文献 .................................................................31
II
重庆科技学院《C 语言程序设计》课程设计报告
第一章 软件需求分析说明书
1.1 设计软件的目的分析
本软件要求用 C 语言建立一通讯录,输入姓名、电话号码、住址等信息,然后对通
信录进行显示、查找、添加、修改及删除。
1.2 软件的界面要求
本软件要求软件的界面简洁、美观,让人一目了然,使用起来方便。于是我设计的
软件首先提示您是否有通讯录文件存在,如没有文件,则自动建立一个,如有文件存在,
则提示导入成功,让人直观明白的了解文件的情况。按任意键便可以进入主菜单,在主
菜单上显示出软件的功能,通过输入数字 0 到 5 来进行选择便可以实现你所需要的功能,
每个模块进入模块内部实现软件的具体功能,实现您所需要的功能。
1.3 详细的功能分析
该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的
思想。下面六个模块都是利用 C 语言文件,向文件中添加数据、修改数据、查询数据、
删除数据和保存数据。
1.3.1 创建文件
用 fopen()建立一个文本文件,然后向其中输入数据(例如,向文件中输入“姓
名”,“地址”,“号码”等),并对文件进行命名。
1.3.2 添加联系人
通过键盘输入通讯录人员的姓名、电话号码、地址信息便可实现将信息添加到通讯
录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键
盘输入通讯录人员的姓名、电话号码、地址信息即可实现继续添加。
1.3.3 显示和查询联系人
通过前面第一个模块打得录入我们便可以执行第二个模块,通过第二个模块我们可
以进行对联系人进行显示和查找。
我通过调用 showall()函数来进行显示所有的联系人,showall()函数可以实现逐个显
示联系人。
对于查找联系人我则采用了 search()函数来进行查找联系人,我提供了两种查找方
法:①按照姓名查找;②按照电话号码查找。
1.3.4 删除联系人
我调用 deletecd()函数来实现删除功能,同样我也提供给了两种删除方法:①全部删
除;②单个删除。其中全部删除会提示是否全部删除,以免误删。
1.3.5 修改联系人
我调用 modify()函数来实现修改功能,我同样提供了两种修改方法:①对姓名进行
修改;②对电话号码进行修改。修改完毕后会提示是否据需修改。
1.3.6 保存退出与不保存退出
你还在为误添加、误修改、误删除后悔吗?还想回到以前的数据吗?这个担忧在我
的程序中您就不必担心了,我为程序提供了两种退出方式:①保存退出;②不保存退出。
完全解决您的后顾之忧。
1
重庆科技学院《C 语言程序设计》课程设计报告
1.4 设计要求分析
①进一步掌握利用 C 语言进行程序设计的能力;
②进一步理解和运用结构化程序设计的思想和方法;
③初步掌握开发一个小型实用系统的基本方法;
④学会调试一个较长程序的基本方法;
⑤学会利用流程图表示算法。
⑥根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课
程设计报告。
1.5 软件的数据结构分析
1.5.1 软件的函数
本软件采用了不同的函数来进行定义不同模块的功能,通过调用不同的函数,可
以实现不同的功能。软件中采用了五个主体函数来实现添加联系人,修改联系人,查
找联系人,显示联系人,删除联系人的功能。
1.5.2 文件的调用和保存
本软件通过文本方式对用户所录入的信息进行保存。通过保存下来的文本,您可以
在电脑磁盘中找到您存入文件的位置,打开后便可以找到您所录入的通讯录信息。
2
重庆科技学院《C 语言程序设计》课程设计报告
第二章 系统分析与设计
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); 文件位置指针移动
到文件末尾以来进行写入数据。
使用 writefile()将联系人写入文件,用 if ((fp=fopen("c:\\通讯录.txt","w"))==NULL)
以只写的方式来对判定文件是否为空,如果不为空,则从键盘上录入所需要录入的信息
存到相应的文件中。最后通过 fclose(fp)来关闭文件,回到主界面上等待用户输入新的操
作。
2.3 软件的模块图
软件的模块图很直观的反映出软件能够实现的功能,由下面的模块图可以很直观的
看出我设计的通讯录软件能够方便的实现添加联系人、显示联系人、删除联系人、修改
联系人功能,另外,我设计的软件还实现了保存退出和不保存退出功能,这个功能很独
特。
①在增加联系人部分,我用了三个函数调用来分别实现录入联系人姓名、号码、地
址。
②在显示和查询联系人部分,我也有三个模块: 逐个显示联系人,按姓名查询,按
号码查询。
③在删除联系人部分,我设计了三个界面,可以实现全部删除,单个删除,回到主
菜单。
④在修改联系人模块,我也设计了三个界面,按姓名修改,按号码修改,回到主菜
单。
要。
⑤最后我设计了保存退出和不保存退出,针对那些修改后却又后悔修改的用户需
3