C语言通讯录专项训练报告-通讯录程序设计.docx
《C语言通讯录专项训练报告-通讯录程序设计.docx》由会员分享,可在线阅读,更多相关《C语言通讯录专项训练报告-通讯录程序设计.docx(17页珍藏版)》请在三一文库上搜索。
1、C语言专项训练报告题 目: 设 计 者:专业班级:学 号:指导教师: 题目:通讯录程序设计 一、设计目的(1)本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。(2)C语言的实践。掌握C语言函数的定义方法,函数的声明及函数的调用过程。掌握结构体类型变量的定义和使用,综合应用C语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。 二、方案设计: (1)根据所学知识,运用结构体数组编辑一个简单实用的小型通讯录
2、程序,使之具有添加、删除和查询功能等。(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告,直到编译成功为止。(3)执行运行操作,逐一对每个模块进行调试。直到全部程序运行成功为止。三、需求分析根据查询通讯录的实际需要,建立一个“小型通讯录程序”,程序将具有对通讯的查询、添加、删除、更改等基本操作,以方便对通讯录的各项管理工作。每一条记录包括一个人的姓名,籍贯,电话号码1,电话号码2和电子邮箱等,姓名和电话号码均可由字符和数字组成。可将通讯记录保存到文件中,并根据需要从文件中读取出来。并通过菜单界面来调用各个功能。本程序通过多次使用函数调用等来实现各种功能。共分为7个模块,分别为:信息
3、录入;信息浏览;信息查询;信息修改;信息添加;信息删除和系统退出等功能。每做完一个模块,会有信息的提示,方便实用。以下为该系统要测试的数据:1、 信息录入模块:(输入五个人的通讯信息)Name add num1 num2 E-mail a 鲁济南 0531-8765432 18765879031 b 鲁济南 0531-8234765 15098876532 c 鲁德州 0534-5871299 18760253999 d 鲁济南 0531-8377999 13258643799 e 鲁德州 0534-7071129 15036258764 2.信息查询模块:按姓名查找 3.信息修改模块
4、:(修改b的电话号码) (输入)1(修改num)(输入) 4.信息添加模块:(再增加一条信息) X 鲁德州 0534-5864633 15806871965 5.信息删除模块:(删除C的基本信息) C(输入姓名即可删除)四、概要设计(1)主函数结构图选择choice修改记录查询记录添加记录删除记录退出主程序(2)数据类型结构体类型Struct jilu /*结构体类型*/ char name; /*结构体数组,用来定义姓名*/ char add; /*结构体数组,用来定义籍贯*/ char num1; /*结构体数组,用来定义号码1*/ char num2; /*结构体数组,用来定义号码2*
5、/ char E_mail; /*结构体数组,用来定义电子邮箱*/ ;(3) 模块功能说明: 1.添加模块:此模块可以连续添加记录,并把记录存入Data1.txt文件中。 2.修改模块:输入要修改记录的人姓名,即可根据所需进行修改。 3.删除模块:输入要删除的人的姓名即可。 4.查询五、详细设计及运行模块:输入姓名查询。五、详细设计主要函数之间相互调用如下:void main() int choice; readRecord(); while(1) /*主菜单*/ printf(n 通讯录系统nn); printf( 1.添加通讯记录n); printf( 2.修改通讯记录n); printf
6、( 3.删除通讯记录n); printf( 4.按姓名查找n); printf( 5.浏览全部记录n); printf( 6.退出n); printf( 请选择(1-6):); scanf(%d,&choice); getchar(); system(cls); /清空屏幕内容 switch(choice) case 1: insert(); break; case 2: modify(); break; case 3: deletepeople(); break; case 4: searchByName(); break; case 5: list(); break; case 6: ex
7、it(0); break; writeRecord(); 删除模块调用 添加模块调用 void deletepeople() void insert() while(1) int i; while(1) printf(请输入姓名: n); scanf(%s,&peoplen.name); char name10; printf(请输入籍贯: n); int index; scanf(%s,&peoplen.add); printf( 请输入要删除的记录人的姓名:); printf(请输入号码1: n); scanf(%s,&name); scanf(%s,&peoplen.num1); get
8、char(); printf(请输入号码2: n); index=intByName(name); scanf(%s,&peoplen.num2); if(index=-1) printf(请输入E-mail: n); scanf(%s,&peoplen.E_mail); printf(此人记录不存在!n); getchar(); writeRecord(); Else printf(是否继续添加记录?(y/n) ); char yn=getchar(); if(yn=n|N) printf(你要删除的记录为: n); break; display(index); printf(是否真的要删除
9、此记录?(y/n); char yn=getchar(); if(yn=y|yn=Y) for(i=index;in-1;i+) peoplei=peoplei+1; getchar(); printf(是否要继续删除记录?(y/n); char yn=getchar(); if(yn=n|yn=N) break; 六、调试情况:1测试数据: 在菜单中选择要进行的功能(以添加为例):选择1进入添加模块,根据提示分别输入要添加的数据,完成后可通过键盘的”y”或”n”确定是否继续添加。2调试情况:一开始没有添加文件保存模块,导致文件无法保存,后来知道是没在主程序中加保存模块,添加后就可以了。但是文
10、件仍然无法打开。七、源程序清单:#includestdio.h#includestring.h#includestdlib.h#define n 100struct jilu/*定义结构体*/ char name20; char add20; char num111; char num211; char E_mail20;people100;/*通过姓名返回数组下标*/ int intByName(char nam) int i; for(i=0;in;i+) if(strcmp(peoplei.name,nam)=0) return i; return -1; /*按数组下标显示通讯记录*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 通讯录 专项 训练 报告 程序设计
链接地址:https://www.31doc.com/p-5014310.html