通信录管理系统C语言程序的设计说明书
《通信录管理系统C语言程序的设计说明书》由会员分享,可在线阅读,更多相关《通信录管理系统C语言程序的设计说明书(37页珍藏版)》请在装配图网上搜索。
1、C语言程序设计通讯录管理系统实习报告组长:姚士平B10050927组员: 胡恒山B10050926芮青荣B10050925XX邮电大学电气信息工程B100509班2011年9月14日实习前论:实习的目的、要求与内容一、实习的目的和要求经过了一个学期对C语言的学习,大家对C语言有了一定的认识。在此基础上,为了加深对C语言课程所学知识的理解,进一步巩固C语言算法规则,学会编制结构清晰、风格良好、数据结构适当的C程序,从而具备解决综合性问题的能力,特设此课程实习内容,通过完成一项具体的程序来检验对所学知识的掌握情况。要求能够完成一项完整并且具有初步实用性,经编写调试,确保能够正常运行的小型程序。二、
2、实习所涉及的内容实习内容所涉及的均为C语言的基础知识,包括:数据类型;运算类型;程序结构;大程序的功能分解方法等,以及进一步掌握各种函数的应用以及文件的读写操作等。实习细述:通讯录管理系统一、程序功能:1、完成通讯录信息的管理,包括添加、修改、删除、查询功能。尽量丰富联系人的各项信息。2、能够根据联系人的信息单独或分类查询。3、联系人的生日提醒功能。二、设计思路所有成员的记录用结构体数组存储,每个结构体包括姓名、性别、生日、电话号码、电子邮箱、家庭住址及分类七个字符型数组;上述的各项功能由定义函数分别实现,由主函数控制各个函数的调用;整个程序产生于文本界面,通过一些字符简单对界面进行装饰。具体
3、的各个函数设计思路如下:1、导入通讯录函数:通过fopen函数打开指定文件,并用fread函数将文件内的数据读入结构体数组中,这两个标准库函数都定义在stdio.h头文件中。整个函数的返回值为整型i,用来并表示导入的数据成员个数,而后将该值赋给全局变量count用来计数。2、保存文件函数:通过将文件名字符串作为参数传入,用fwrite函数将当前结构体数组中的全部数据写入文件中并关闭文件。该函数无返回值。3、分类显示成员信息函数:无参数传入,无返回值,用户根据提示输入指令,用switch语句分析指令并遍历所有结构体数据,将符合的数据输出。该函数也没有返回值。4、录入新成员信息函数:该函数没有参数
4、,通过提示用户输入数据;当输入的姓名或电话号码重复时,提示用户重复并重新输入;被录入一个完整的新数据后让全局变量n自增,并将其作为函数的返回值返回。5、查找记录函数:将用户要找的成员姓名作为参数传入,遍历所有结构体并找出符合的输出,若输出成功则可以继续查找,用户所输姓名不存在则输出用户名不存在。6、删除记录函数:将用户要删除的成员姓名作为参数传入,遍历所有结构体并找出符合的删除,并将后面的所有数据向前移动一个位置,返回值同查找记录函数。7、修改记录函数:将用户要修改的成员姓名作为参数传入,遍历所有结构体并找出符合的,依次提示修改项目,由用户输新数据并保存,返回值同查找记录函数。8、拨号功能函数
5、:无参数传入,显示已存入的所有成员的姓名,由用户选择拨打电话的姓名,依次显示电话号码的各个数字,并用Sleep函数设置一定时间的延时以表现号码依次输出的效果,该函数包含在windows.h头文件中。成功拨号则返回整数1,输入了错误的姓名则返回0。9、主函数:用switch语句来判断用户输入的指令,转向具体的函数来执行,并根据函数的返回值判断执行结果并予以提示。主函数中用exit0;语句结束程序,并在结束前提示用户保存数据。整个程序由上述9个函数组成。此外,源程序将结构体数组和计数变量count以及文件指针fp设为全局变量,目的是为了让所有函数都能正常使用这几个变量,保证整个程序的正常运行。三、
6、程序源代码及注释#include#include#include#include#define count 20typedef struct Birthdayint day;int month;int year;Birthday;typedef struct Studentchar name10;char sex5;Birthday date;char phone10;char email10;char address10;char others10;stud;FILE *fp;FILE *fp2;FILE *fp3;int n=0;int i=0;int q=0;stud scount;vo
7、id WRITE;void write;void READ;void read;void display;void Addinfo;void Changeinfo;void Delinfo;void Consult;void menu;void Remind;void mainRemind;menu;void menuint choice;int sign=0;doprintf;printf添加信息;printf修改信息;printf删除信息;printf查询信息;printf退出系统;printf;scanf;switchcase 1:Addinfo;sign=1;break;case 2:
8、Changeinfo;sign=1;break;case 3:Delinfo;sign=1;break;case 4:Consult;sign=1;break;case 5:sign=0;default:printf;while;system;printf;printf;printf;getchar;getchar;void WRITE FILE *fp2;iffp2=fopen=NULLprintf;getchar;return; fprintf;fclose; void write FILE *fp3;iffp3=fopen=NULLprintf;getchar;return; fprin
9、tf;fclose;void readFILE *fp3;iffp3=fopen=NULLprintf;getchar;return;fscanf;fclose;void READiffp2=fopen=NULLprintf;getchar;return;fscanf;fclose;void displayprintf;printf;printf;printf;printf;printf;printf;printf;void Addinfochar c;READ;read;printf;fscanf;fprintf;printf;ifprintf;exit;printf;dofp=fopen;
10、getchar;printf;gets;printfn请输入性别:;gets;printfn请输入生日:;scanf;getchar;printf;gets;printf;gets;printf;gets;printfn请输入备注:;gets;fwrite&si,sizeof,1,fp;fclose;n+;i+;printfn是否继续新建?n;scanf;while; WRITE;printf;system;void Changeinfoint h=0,j=1,t,choice,sign=0;FILE *fp;char num20;char name20;printf;printf;print
11、f;scanf;switchcase 1:whileREAD;fp=fopen;printf;scanf;forh=0;hfread&sh,sizeof,1,fp;if!strcmp printf;scanf;switchcase 1:sign=1;printf;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 2:sign=1;printf;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 3:printf;s
12、ign=1;getchar;scanf;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 4:printf;sign=1;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 5:printf;sign=1;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 6:printf;sign=1;getchar;gets;fseekfp,-sizeof,1;f
13、write&sh,sizeof,1,fp;fclose;break;printf;display;j=0;break;fclose;ifstrcmp&sign=0printf;j=1;case 2:whileREAD;printf;scanf;fp=fopen;forh=0;hfread&sh,sizeof,1,fp;if!strcmp printf;scanf;switchcase 1:sign=1;printf;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 2:sign=1;printf;get
14、char;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 3:printf;sign=1;getchar;scanf;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 4:printf;sign=1;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;case 5:printf;sign=1;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,
15、sizeof,1,fp;fclose;break;case 6:printf;sign=1;getchar;gets;fseekfp,-sizeof,1;fwrite&sh,sizeof,1,fp;fclose;break;printf;display;j=0;break;ifstrcmp&sign=0printf;j=1;h=0;fclose; menu;void Delinfoint j=1,h=0,k,sign=0;char name20;READ;read;FILE *fp;fp=fopen;printf;whileFILE *fp;scanf;fp=fopen;while!feoff
16、read&sh,sizeof,1,fp;if!strcmp fork=h;kfseekfp,-sizeof,1;fwrite&sh+1,sizeof,1,fp;n-;WRITE;q+;write;j=0;sign=1;break;ifstrcmp&sign=0printf;j=1;h=0;fclose; printf;void Consultint num,j=1,h=0,con=1,sign=0;char ch;char name20;char address20;char sex2;char phonecall20;FILE *fp;READ;ifprintf;menu;return;fp
17、=fopen;doj=1;sign=0;printf;printf;printf;printf;printf;scanf;switchcase 1:whilefp=fopen;printf;scanf;for;hfread&sh,sizeof,1,fp;if!strcmp display; j=0;sign=1;h=0;ifstrcmp&sign=0printf;j=1;h=0;fclose;printfn您想继续查找吗?n;getchar;scanf;ifcon=1;elsecon=0;break;case 2:whilefp=fopen;printf;scanf;for;hfread&sh
18、,sizeof,1,fp;if!strcmp display; j=0;sign=1;h=0;break;ifstrcmp&sign=0printf;j=1;h=0;fclose;printfn您想继续查找吗?n ;getchar;scanf;ifcon=1;elsecon=0;break;case 3:whileprintf;scanf;fp=fopen;for;hfread&sh,sizeof,1,fp;if!strcmp display; sign=1;j=0;break;ifstrcmp&sign=0printf;j=1;h=0;fclose;printfn 您想继续查找吗?n ;ge
19、tchar;scanf;ifcon=1;elsecon=0;break;case 4:whileprintf;scanf;fp=fopen;for;hfread&sh,sizeof,1,fp;if!strcmp display; sign=0;j=0;break;ifstrcmp&sign=0printf;j=1;h=0;fclose;printfn 您想继续查找吗?n ;getchar;scanf;ifcon=1;elsecon=0;break;while;printf;void Remindint h;FILE *fp;time_t nowtime;struct tm *timeinfo;
20、time;timeinfo = localtime;int month, day;month = timeinfo-tm_mon + 1;day = timeinfo-tm_mday;fp=fopen;READ;forh=0;hfread&sh,sizeof,1,fp;ifprintf;printf;break;四、程序运行主界面:添加一个人的信息,界面如下:添加另一个人的信息,界面如下:实现查询功能之号码查询:实现查询功能之姓名查询:实现查询功能之地址查询:实现查询功能之性别查询:退出通讯录管理系统:重新打开主界面,实现生日提醒功能:实现修改功能之生日修改:修改后的个人信息:实现修改功能之姓名修改:实现修改功能之居住地修改:实现修改功能之号码修改:实现修改功能之邮箱修改:实现修改功能之备注修改:实现删除功能: 实习心得: 经过一个多星期的团结协作,终于把老师布置的任务完成。在这期间深深的感受到仅仅学习C语言书本知识是不够的,必须要实践来检验。我们在编程中一起发现问题,并一起通过上网查询,翻阅书籍,请教老师、同学等等方式最终解决了问题。- 37 - / 37
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。