通讯录.docx
《通讯录.docx》由会员分享,可在线阅读,更多相关《通讯录.docx(14页珍藏版)》请在冰豆网上搜索。
![通讯录.docx](https://file1.bdocx.com/fileroot1/2023-6/20/014a85b3-9ce8-4115-9acc-1546de61add1/014a85b3-9ce8-4115-9acc-1546de61add11.gif)
通讯录
青岛工学院
C语言课程设计报告书
题目
通讯录管理系统
学生姓名
唐珺周家齐郑鑫
指导教师
刘伟
学院
信息工程学院
专业班级
2013级通信工程
(1)班
组内分工
姓名
主要任务
占系统比例
周家齐
程序编写设计报告制作
40%
唐珺
设计报告制作
35%
郑鑫
设计报告制作
35%
目录
1前言2
2需求分析4
3模块设计图6
4各模块流程图清单7
4.1添加:
添加通讯录记录7
4.2显示:
显示通讯录记录8
4.3删除:
删除通讯录记录8
4.4修改:
修改通讯录记录11
5存储结构及函数说明12
6课程设计结果16
6.1显示的主菜单界面16
6.2添加界面16
6.3显示界面17
6.4删除界面17
6.5查询界面18
6.6修改界面19
7实践心得体会22
1前言
该章主要描述课程设计的目的,以及对题目本身的理解加强对c语言课程所
学知识的理解,进一步巩固c语言编程方法。
学会编制结构清晰、风格良好、数据结构适当的c语言程序,从而具备解决实际性综合问题的能力,加强综合能力。
培养良好的编程方法。
通过前四单元温故而知新、庖丁解牛、举一反三、熟能生巧等过程的练习之后能够解决实际问题。
设计一个简易的通讯录管理系统。
该题目要求熟练地掌握c语言的基本知识,:
数据类型(整型、实型、字符型、指针型、数组、结构等);运算类型(算数运算、逻年辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、选择判断结构、循环结构);大程序的功能分解方法(即函数的使用等)。
进一步掌握c语言基本知识的应用,包括链表、结构体、指针、文件读写,以及函数的调用操作等。
其中结构体、函数的调用、算法的设计是尤为重要的。
该课题为通讯录管理系统,为通信专业将来的就业打下良好的基础,建立起了通信专业与C语言之间的联系,使我们更加了解C语言和自己的专业。
培养学生在项目开发中团队合作精神、创新意识及能力。
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
本设计报告共分为七个章节,我尽力把每个章节写的详细一些。
在编写的过程中遇到了很多问题,由于能力有限,没有做到非常理想的效果,希望谅解。
2需求分析
设计题目及要求:
◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;
◆能够提供添加、删除和修改通讯录信息的功能;
◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;
能够按表格方式输出通讯录信息
系统功能需求分析:
主要包含一下多种功能:
添加通讯录记录
显示通讯录记录
删除通讯录记录
查询通讯录记录
修改通讯录记录
3模块设计图
系统功能模块图:
添加:
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。
显示:
可以以表格形式输出所有通讯录里的记录
删除:
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
查询:
可以选择用姓名、电话、地址三种方式查询
修改:
输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改
4各模块NS图清单
4.1:
添加通讯录记录
NS图4-1
4.2显示通讯录记录
NS4-2
4.3删除:
删除通讯录记录
NS4-3
4.4查询:
查询通讯录记录
NS4-4
4.5修改:
修改通讯录记录
NS4-5
5存储结构及函数说明
实现了通讯录的添加,显示,删除,查找,修改,保存,结束程序。
各个函数的详细设计说明分别如下:
1主函数main()
选项来调用相应的函数
2菜单选择函数voidmenu()
这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的六大功能,根据每个功能前面的序号进行选择,等执行完每一个函数功能的时候,按任意键回到主界面也要通过这个函数来实现。
3输入记录函数intInput(Personper[],intn)
这是一个有参函数,用来执行每个人信息的输入,当键入Y时,继续添加信息,键入N或n时,停止输入。
4显示记录函数voidDisplay(Personper[],intn)
这是一个没有返回值的有参函数,负责对人们的记录输出。
5删除信息函数intDelete_a_record(Personper[],intn)
这是一个有参函数,通过其中的字符串处理函数来确定想要删除的内容是否存在。
若存在,则删除此人信息,并用字符串处理函数strcpy(s1,s2)将后一个人的信息存到已删除的人的所占空间。
不存在则返回到系统中。
6查询信息函数voidQuery_a_record(Personper[],intn)
这是有一个没有返回值的有参函数,通过字符串处理函数strcmp(s1,s2)和i循环将输入的信息和系统已有的信息作比较进行查找,并显示所查到的记录。
7修改函数信息voidChange(Personper[],intn)
这是一个没有返回值的有参函数,通过字符串处理函数strcmp(s1,s2)将输入的信息与系统原有的信息作比较,若查到则显示修改信息界面。
8保存函数信息voidWritetoText(Personper[],intn)
将所有函数信息进行保存
6课程设计结果
6.1显示的主菜单界面
图6-1
6.2添加界面
图6-2
6.3显示界面
图6-3
6.4删除界面
6.5查询界面
图6-5-1
以姓名方式查询
图6-5-2
6.6修改界面
图6-6-1
7实践心得体会
当我在进行删除、查询、修改等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。
因此,向别人请教后,在一些地方加入了system("pause");这个语言,用来对某项操作完成后进行暂停。
现在这个程序的界面个人感觉很清爽。
但在最初,每次进行一项操作,运行窗口里的内容会一直保留着,感觉很杂乱,如下图(添加后,进行显示操作之后,我去网上寻求解决办法,知道可以使用system("cls");这一语句可以解决这个问题,最后,修改成功。
当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。
另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。
还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C程序。