您好,欢迎访问三七文档
C语言课程设计论文学生姓名:陈丹学生学号:20091020101所在班级:信息与计算科学一班任课教师:马老师通讯录管理系统【设计目的】设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。(1)数据包括:人名、工作单位、电话号码和E-mail地址。(2)可对记录中的姓名和电话号码进行修改。(3)可增加或删除记录。(4)可显示所有保存的记录。(5)可按人名或电话号码进行查询。【设计思路】根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。【总体设计】图1系统功能模块图【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】通讯录管理系统数据输入数据修改删除数据添加查找浏览图2.主函数流程图Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddeleter();voidsearch();do{puts(\t******************************菜单*****************************\t\n\n);puts(\t\t\t\t1.新建联系人);puts(\t\t\t\t2.添加联系人);puts(\t\t\t\t3.修改);puts(\t\t\t\t4.删除);puts(\t\t\t\t5.浏览);puts(\t\t\t\t6.查找);puts(\t\t\t\t7.退出);puts(\n\n\t***************************通讯录******************************\t\n);printf(请选择服务种类(1-7):[]\b\b);scanf(%d,&n);if(n1||n7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/显示一系列功能选项输入n,判断n是否是1~7?根据n的值调用各功能模块函数结束开始n附录:源代码#defineN50#includestdio.h#includestring.hstructpeople{charname[20];charcompany[50];charnum[15];charmail[20];}peop[N];voidprintf_face(){printf(\n\t姓名\t单位\t电话号码\t邮箱\n);}voidprintf_one(inti){printf(\t%s\t%s\t%s\t%s\n,peop[i].name,peop[i].company,peop[i].num,peop[i].mail);}voidprintf_n(intn){intj;for(j=0;jn;j++){if((j!=0)&&(j%10==0)){printf(\n\nPressanykeytocontinue...:);getchar();puts(\n\n);}printf_one(j);}getchar();}intload(){FILE*fp;inti;if((fp=fopen(file,rb))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;!feof(fp);i++)fread(&peop[i],sizeof(structpeople),1,fp);fclose(fp);return(i-1);}intmodify_data(inti,intn){intc,w1;voidinput(inti);voidmenu();do{puts(\n修改选项=\n\n1).姓名2).单位3).电话号码4).邮箱5).所有数据6).取消并返回);printf(请选择?:[]\b\b);scanf(%d,&c);if(c6||c1){puts(\nChooseerror!Pleaseagain!);getchar();}}while(c6||c1);do{switch(c){case1:printf(name:);scanf(%s,peop[i].name);break;case2:printf(company:);scanf(%s,peop[i].company);break;case3:printf(number:);scanf(%s,peop[i].num);break;case4:printf(e-mail:);scanf(%s,peop[i].mail);break;case5:input(i);break;case6:menu();}puts(\nNow:\n);printf_face();printf_one(i);printf(\n确定?\n\n\t1).是2).不,重新修改3).返回不保存[]\b\b);scanf(%d,&w1);}while(w1==2);return(w1);}voidinput(inti){printf_face();printf(\t);scanf(%s\t%s\t%s\t%s,peop[i].name,peop[i].company,peop[i].num,peop[i].mail);}voidsave(intn){FILE*fp;inti;if((fp=fopen(file,wb))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;in;i++)if(peop[i].name[0]!='\0')if(fwrite(&peop[i],sizeof(structpeople),1,fp)!=1)printf(filewriteerror\n);fclose(fp);}voidprintf_back(){intw;voidbrowse();voidmenu();printf(\n\n\t^_^.Successful.^_^\n\n);printf(Whatdoyouwanttodo?\n\n\t1).浏览所有\t2).返回:[]\b\b);scanf(%d,&w);if(w==1)browse();elsemenu();}voidmain(){voidmenu();menu();}voidmenu(){intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddeleter();voidsearch();do{puts(\t************************菜单************************);puts(\t\t*******************1.新建联系人*******************);puts(\t\t*******************2.添加联系人*******************);puts(\t\t*******************3.修改*******************);puts(\t\t*******************4.删除*******************);puts(\t\t*******************5.浏览*******************);puts(\t\t*******************6.查找*******************);puts(\t\t*******************7.退出*******************);puts(\n\n\t********************通讯录*********************);printf(请选择服务种类(1-7):[]\b\b);scanf(%d,&n);if(n1||n7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;case2:add();break;case3:modify();break;case4:deleter();break;case5:browse();break;case6:search();break;case7:exit(0);}}voidenter(){inti,n;printf(Howmanypeople(0-%d)?:,N-1);scanf(%d,&n);printf(请输入数据:\n);for(i=0;in;i++){printf(\n输入第%d个记录.\n,i+1);input(i);}if(i!=0)save(n);printf_back();}voidadd(){inti,n,k,t;n=load();printf(Howmanypeopledoyouwanttoadd(0-%d)?:,N-n-1);scanf(%d,&t);k=n+t;for(i=n;ik;i++){printf(\n输入第%d个记录.\n,i-n+1);input(i);}save(k);printf_back();}voidmodify(){structpeoples;inti,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();printf_n(n);do{printf(\n\nEnternamethatyouwanttomodify!\nName:);scanf(%s,s.name);for(i=0;in;i++)if(strcmp(s.name,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf(\n\n没有记录请重新输入!);}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf(\n\t^_^.Successful^_^.\n\n是否继续?\n\n\t1).是2).保存返回\t[]\b\b);scanf(%d,&w0);w2=1;}else{w0=0;if(w2==0)peop[k]=s;}if((w0!=1)&&(w2==1))save(n);}while(w0==1);menu();}voidbrowse(){intn;n=load();printf_face();printf_n(n);printf(\t共有%d记录.\n,n);printf(\nPressanykeytoback...);getchar();menu();}voidsearch(){intw0,k,i,n,w1,w2;structpeoples;n=load();do{printf(请选择查找类别:1).姓名2).电话号码[]\b\b);scanf(%d,&w1);if(w11||w12){printf(输入错误!请重新输入!\n);w2=1;}}while(w2==1);if(w1==1){do{k=-1;do{printf(\n\nEnternamethattouwanttosearch!\nName:);scanf(%s,s.name);for(i=0;in;i++)if(strcmp(s.name,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf(\n\n没有记录请重新输入!);}while(k==-1);printf_face();printf_one(k);printf(\nWhatdoyouwanttodo?\n\t1).继续2).返回菜单[]\b\b);scanf(%d,&w0);}while(w0==1);menu
本文标题:C语言课程设计报告
链接地址:https://www.777doc.com/doc-5337868 .html