1、 per10; int menu() /主菜单选择函数2函数说明(1) 主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。(2) 其他各功能函数包括函数名功能int Input(struct date per10,int n) 输入记录 void Query_a_record(struct date per10,int n) 信息查询void Display(struct date per10,int n) 信息展示void writeToFile(struct date per10,int n)记录保存为文件int Delete_a_record(str
2、uct date per10,int n) 信息删除int menu_select();void Change(struct date per10,int n) void WritetoText(struct date per10,int n) 主菜单函数修改信息信息增加四、程序清单1、头文件2、主函数void main() /主函数 int n=0,i;while(1) switch (menu() case 1: printf(nt 通讯信息录入n); /信息录入 n=Input(per, n); break;case 2: printf(nttt 通讯录记录表n /显示记录 Displa
3、y(per,n);case 3:nt保存功能n WritetoText(per,n); /保存数据t system(pause /操作完成后进行暂停case 4:nt从通讯录中删除记录n n=Delete_a_record(per,n); /删除记录case 5:nt修改通讯录中的记录n Change(per,n); /修改数据case 6:nt添加记录到通讯录n /添加记录 n=Input(per,n);case 7:nt在通讯录中查找记录n Query_a_record(per,n); /查找记录 /从程序里调用”pause”命令case 0:ntt谢谢使用,再见!n /结束程序ntt e
4、xit(0); 五、总程序和分工执行结果 char phone12; char email20; char QQ20; per10;int menu() /主菜单选择函数 int c; /定义一个整型变量 do cls /清屏 printf(t*通讯录*nt-nt 1、通讯信息录入 nt 2、通讯信息显示 nt 3、通讯信息保存 nt 4、通讯信息删除 nt 5、通讯信息修改 nt 6、通讯信息增加 nt 7、通讯信息查询 nt 0. 退出 nt请您选择(0-7): scanf(%d,&c); while(c7&c0); return(c); int i=0; char sign,x10; w
5、hile(sign!=nsign!N) printf(t姓名: scanf(%s,pern+i.name);t电话号码:,pern+i.phone);t电子邮箱:,pern+i.email);tQQ:,pern+i.QQ); gets(x);nt是否继续添加?(Y/N) fflush(stdin); /清空缓存%csign); i+; return(n+i); FILE *fp=NULL; int i=0; fp=fopen(,wb if(fp=NULL) printf(打开文件出错! for(i=0;i1&i%10=0) t-n printf( system( system( char s2
6、0; int i=0,j;t请输入想删除记录中的名字:,s); while(strcmp(peri.name,s)!=0&n) i+; if(i=n) printf(t通讯录中没有此人! return(n); for(j=i;jn-1;j+) strcpy(perj.phone,perj+1.phone); strcpy(perj.name,perj+1.name); strcpy(perj.QQ,perj+1.QQ); strcpy(perj.email,perj+1.email);ttt已经成功删除! return(n-1);void Query_a_record(struct date
7、per10,int n) int m;tn请选择查询方式:tnt1-姓名 nt2-电话 nt3-返回 ntn请选择:m); while(m!=1&m!=2&=3&=4)输入错误,请重新选择: if(m=1) char s20; int i=0;t请输入想查询的姓名:t%s while(strcmp(peri.name,s)! if(i=n) return;t此人QQ: %sn,peri.QQ);,peri.phone);,peri.email); ; if(m=2)t请输入想查询的电话: while(strcmp(peri.phone,s)!t此人姓名:,peri.name); char s2
8、0;t请输入想修改的记录中的名字: return;姓名:电话号码:QQ:电子邮箱:n修改成功! int i=0; FILE *fp; /定义文件指针 char filename20; /定义文件名 t保存到文件n /输入文件名 if(fp=fopen(w)=NULL) t无法打开文件n fprintf(fp,*通讯录*n-n while(in) fprintf(fp,%-10st%-3st%-20st%-20sn,peri.name,peri.phone,peri.QQ,peri.email);-n*共有%d条记录*n,n); /关闭文件保存成功!void main() /主函数 int n=
9、0,i; /信息录入 /保存数据 /操作完成后进行暂停 /删除记录 /修改数据 /添加记录 /查找记录 /结束程序图1 通讯录主菜单结果图2 信息录入图3 通讯信息显示图4 通讯信息保存五、调试与测试所谓程序调试是对程序的查错和排错。对此程序我们进行了以步骤:人工检查,即静态检查。此过程我们对于写好的程序进行了排查,并且进行了注释。上机调试。通过上机调试发现的错误为动态检查,这时发现了许多错误和警告,我们根据提示逐一改正。运行程序。这一步骤我们逐一检查每个菜单是否运行正常与正确,在这个过程中我们出现了许多格式不正确,我们细心的进行修改。总之,在我们对程序进行了细心的调试和测试之后,我们的程序正
10、常运行了,但是其中还是有很多不足的地方。比如我们的修改成绩这一向就是不完善的,要是程序里出现了不同班但学号相同时这个问题就没有解决,在以后我们会进行改善。六、结语心得体会:通过这一周的课程设计,我对一些专业知识和程序设计有了更深的了解,同时也尝试着, 去应用自己的所掌握的知识。本次高级程序课程设计主要是对本学年学习的C程序知识,同时加上基础知识,设计一些课题。经过几天的奋战,我感受很深。在设计的过程中不可避免的遇到了很多的问题.尤其是在调试过程中,会因为某些原因出不来结果,也会因为个别错误而导致运行不出来,在这个过程中,遇到问题是不可避免的,但是在遇到困难是我们不退缩。在老师和同学的帮助与指导下,我们顺利的完成了本次课程设计,并调试出结果。在调试结果出来时,我更是无比的兴奋,无比的自豪。总之,通过这次高级程序课程设计,我对自己的知识有了更好的掌握和应用,在以后的学习和生活中受用终身。在以后的学习中我们更多的要投身于实践中,多动手,多动脑,才能更好的把学习学好。七、参考文献 1袁志祥主编 数据结构(C语言版)例题详解与课程设计指导第二版 中国科技大学出版社 2刘甫迎 刘光会 王蓉主编 程序设计教程(第二版) 北京电子工业出版社20083郭胜主编 程序设计 清华大学出版社 20024施燕妹 陈培 陈发吉主编 C#语言程序设计教程 中国水利水电出版社 2001
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1