电话簿管理系统课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
摘要 (2)
一、课程设计目的 (3)
二、课程设计内容 (3)
三、总体设计 (3)
四、详细设计 (5)
(1)数据结构设计 (5)
(2)模块接口设计 (5)
(3)部分函数细节 (6)
五、调试与测试 (9)
(1)调试过程中的主要问题 (9)
(2)测试结果的分析与讨论 (9)
(12)
六.实习总结 (14)
参考文献 (15)
致谢辞 (16)
附录:源程序代码 (17)
摘要
日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以电话簿能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的电话簿管理系统,用户可以方便的通过自己电脑的电话簿管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
电话簿管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
关键字:信息(Information)
电话簿管理系统(The Management of Telephone Book)
一、课程设计目的
通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据结构等知识的运用。
通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
通话课程设计,培养分析问题、解决实际问题的能力。
二、课程设计内容
设计一个实用的电话簿管理系统,能以简便高效的方式对电话簿进行管理,具体要示:电话簿信息包括:姓名,电话。
(1)更新:能插入、删除电话簿信息。.
(2)浏览:能够查看所有的电话簿信息。
(3)查询:能实现指定姓名信息查询。
(4)修改:能修改指定的电话簿信息。
(5)添加:可以添加想要的信息。
(6)保存和打印:能保存和打印电话簿信息。
(7)退出:可以随意退出程序。
三、总体设计
1、模块化设计
为实现系统功能,本程序主要分为九个模块。它们分别为:输入一个信息、删除一
个信息、查询一个信息、读取查找插入一个信息、查找、添加,修改一个信息,列出所有的信息、退出该程序。这五个函数再通过主函数调用分别得以实现。
主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用电话簿的哪种功能。然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。
其它各个函数的功能分别如下:
(1)create 建立电话簿
(2)delete删除电话号码
(3)print 打印电话簿
(4) save 保存电话簿
(5)load 读取电话簿文件
(6)search 查找电话号码
(7)append 添加新的电话号码
(8)modify 修改电话号码
(9)exit 退出电话号码簿
2、模块调用图
四、详细设计
(1)数据结构设计
本程序中,运用了多种数据结构。首先对于通讯录中各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,通过指针的后移,把多个数据连成一个链,形成一个链表。对于主要数据结构的举例如下:
结构数组:
strut tel{
char name[10];
char tel [11];
char s[11];
};
链表:
ID * next;
ID *creat()
{
ID *head,*p1,*p2;
void save(ID * head);
ID*temp;
ID*deleter(ID*head);
ID *append(ID *head);
ID *modify(ID *head);
(2)模块接口设计
由于本程序中大部分运用了链表这一数据结构,函数中存在很多指针,所以这个程序中被调用的函数都是空类型的,但这并没有影响最终结果的输出,反而使得函数调用的过程更加简便。
本程序执行的入口是main函数,然后在main函数中首先调用了creat函数,这就实现了对通讯录中的数据进行录入。接下来用switch语句实现对各个函数的调用。通过对链表的使用,可以使得每一次的函数调用都能得到返回值。最后,再从main函数中结束整个程序的运行。
(3)部分函数细节
print函数,功能:打印用户已经输入过的电话信息,系统若无法读取原信息,则给用户相关提示:“当前链表为空,请先创建新的链表或者加载文件”。
void print(ID*head)
{
ID*temp;
temp=head;
system("cls");
printf("姓名:\t电话号码:\n");
if(head==NULL)
{
printf("当前链表为空,请先创建新的链表或者加载文件\n");
}
else
while(temp!=NULL)
{
printf("%s\t%s\n",temp->name,temp->tel);
temp=temp->next;
}
}
search 函数,用户通过提示输入待查姓名的首字母,系统会根据用户输入内容做判断,并给出相应的提示:"对不起,未能找到符合条件的记录”,或"查找完毕,是否重新查询?
void search(ID *head)
{