C语言课程设计-通讯录管理系统的设计_第1页
C语言课程设计-通讯录管理系统的设计_第2页
C语言课程设计-通讯录管理系统的设计_第3页
C语言课程设计-通讯录管理系统的设计_第4页
C语言课程设计-通讯录管理系统的设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号20511912226武汉理工大学华夏学院课程设计课程名称C语言课程设计题目通讯录管程序设计专业信息工程系班级软件1121姓名成绩_________________指导教师_________________年月日至年月日课程设计任务书学生姓名:专业班级:软件1121指导教师:工作单位:设计题目:通讯录管理程序设计要求完成的主要任务:任务描述设计一个管理通讯录的程序。完成:1、数据的插入、删除、修改和显示功能;2、实现按人名或电话号码进行查询的功能;3、提供键盘式选择菜单以实现功能选择。提示:信息记录要求放到文件中,因而要实现文件的输入输出操作,整个系统可以设计为多模块结构,由数据插入模块、数据修改模块、数据删除模块、数据显示模块和数据查询模块组成。本课程涉及的知识点变量的定义、输入和输出函数、结构体类型的定义、结构体数组、循环语句、选择语句,文件的操作等。3.要求完成的任务=1\*GB2⑴完成整个规定任务的设计及调试,最后得出正确结果,并经教师检查及答辩;=2\*GB2⑵写出规范的课程设计报告,在设计思想描述时一定要画出程序算法流程图;=3\*GB2⑶课程设计结束后交设计说明书等文档和设计内容:=4\*GB2⑷从2月17日起,学生每天至少要到设计教室半天以上;设计报告撰写格式要求:设计报告的主要内容是详细写出在设计过程中所用到的主要技术或方法;课程设计报告按通用格式书写,具体要求见资料:“课程设计说明书的书写内容与格式”时间安排:第一天:学生先在实验室集中,由指导教师介绍课程设计的目的、布置任务后选题;第二天-第四天:学生在实验室完成设计,经教师检查并回答提问,确认设计完成;第五天:教师在计算机上先检查设计报告、学生修改后打印提交指导教师签字:2014年5月16日系主任签字:2014年5月16日设计题目:通讯录管理程序设计问题描述通过该系统实现对通讯录信息进行录入、显示、修改、保存等操作的管理。二、算法提示2.1数据结构:结构体类型数组2.2数据库结构:下表构成该系统的基本数据库。三、需求分析1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:编号、姓名、电话号码、地址。2、本系统显示这样的菜单:请选择系统功能项:a.通讯信息录入b.通讯信息显示c.通讯信息保存d.通讯信息删除e.通讯信息查询(1)按姓名查询(2)按电话号码查询f.通讯信息修改g.退出系统3、执行一个具体的功能之后,程序将重新显示菜单。4、将通讯信息保存到文件中。四、概要设计编写一个通讯录管理系统的程序,完成通讯录的添加、显示、修改、删去、查询功能。整个程序分为多模块结构,即:数据插入模块、数据修改模块、数据删除模块、数据显示模块和数据查询模块组成。模块流程图如图所示:4.1系统模块结构图如图4-1所示。添加添加开始主菜单显示删除查询修改保存退出结束图4-14.2添加名片的流程图,如图4-2所示。i=0i=0Sign!=’n’&&sign!=’N’输入信息Return(n+i)YN开始结束图4-24.3显示名片信息流程图,如图4-3所示。IIntI;i=1i<n+1输出I++YN开始结束图4-34.4删除名片流程图,如图4-4所示删除删除的名字是否有此人通讯录中没有此人删除记录NY结束开始图4-44.5查找是否有给名片的流程图,如图4-5所示。姓名或电话姓名或电话是否存在通讯录中没有此人显示此人记录NY结束开始图5-54.6修改名片流程图,如图4-6所示。结束开始要修改的名字是否存在结束开始要修改的名字是否存在通讯录中没有此人依次输入修改的内容NY4.7保存名片的流程图,如图4-7所示。存入信息存入信息结束开始要保存到的文件名是否存在N无法打开文件Y图4-7五、调试结果与分析5.1添加名片截图如图5-1所示。图5-15.2修改名片截图如图5-2所示。图5-25.3删除名片截图如图5-3所示。图5-35.4信息输出截图如图5-4所示。图5-45.5查找名片截图如图5-5所示。图5-55.6退出系统界面如图5-6所示。图5-6六、总结与体会由于是转专业学生,所以现在补考c语言课程计,由于时间比较紧,任务比较繁重,在短短的两天时间内,边上课边做实在很赶。所以在设计的过程中,一直出现低级错误。同时也出现了很多疑问,在设计的过程中,让我对c语言有了更深刻的任何,弥补了对于当时没能上到c语言课程错过的很多知识!运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。七、参考文献詹春华,杨沙·C语言程序设计教程·北京·科学出版社,2011年8月#defineN50#include<stdio.h>#include<string.h>structpeople{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;j<n;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(c>6||c<1){puts("\nChooseerror!Pleaseagain!");getchar();}}while(c>6||c<1);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;i<n;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(n<1||n>7){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;i<n;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;i<k;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",);for(i=0;i<n;i++)if(strcmp(,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(w1<1||w1>2){printf("输入错误!请重新输入!\n");w2=1;}}while(w2==1);if(w1==1){do{k=-1; do{printf("\n\nEnternamethattouwanttosearch!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,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();}else{do{k=-1; do{printf("\n\nEnternumberthattouwanttosearch!\nNum:");scanf("%s",s.num);for(i=0;i<n;i++)if(strcmp(s.num,peop[i].num)==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);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论