1重庆科技学院《C语言程序设计》课程设计报告学院:_电气与信息工程学院_专业班级:11级学生姓名:学号:201144设计地点(单位)________计算机自主学习中心__________设计题目:____个人通讯录管理______________________________完成日期:2012年1月13日指导教师评语:___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________成绩(五级记分制):________________指导教师(签字):________________2摘要通讯录[addressbook]记录通讯地址的书本,通讯录涵盖了多项内容:可以储存一个人的姓名、手机号码、家庭住址、QQ等,以方便联系。通过学习我设计一个个人通讯录管理,这个系统可以方便人们的查找个人信息,他具有快速查找的功能,主要是通过按姓名查找、按手机号码查找、按地址查询等。这个通讯录可以修改已存所有人的任何信息,也可以删除里面你不想储存人的信息,当你在运行删除的时候,系统会再次提醒你是否删除,一旦删除将会永远删除。关键字:通讯录查找删除3重庆科技学院课程设计任务书设计题目:个人通讯录管理系统学生姓名课程名称程序设计基础课程设计专业班级计科1104地点I305/I306起止时间2012年1月9日~1月13日设计内容及要求建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料[1]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年[2]谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年其它说明1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任:指导教师:伍建全/雷亮/焦晓军/陈应祖/杨治明2012年1月1日4目录摘要……………………………………………………………………………1课程设计责任书………………………………………………………………2软件需求分析说明书…………………………………………………………4第一章系统分析与设计……………………………………………………5第二章软件的实现…………………………………………………………62.1软件界面设计…………………………………………………………62.2软件的数据(结构)设计……………………………………………62.3软件的算法设计………………………………………………………6第三章软件测试……………………………………………………………7第四章软件使用说明书……………………………………………………8致谢………………………………………………………………………………9参考文献…………………………………………………………………………105软件需求分析说明书个人通讯录管理是个可以储存、修改、查看、查找、删除的功能。在这个程序中可以储存一个人的姓名、家庭住址、手机号码、QQ号等信息,可以同时查看所有已存的信息,如果已存的数量过多,你可以选择快速查找,快速查找方式有:按姓名查找、按家庭住址查找、按手机号码查找、按QQ号查找。如果要删除信息,只要输入你要删除信息的编号就可以删除,在删除过程中,系统会再次提醒你是否确认删除,以免后悔。如果确定删除将会永远删除。这个程序也可以修改,输入想修改的编号,就可以修改了。如果你输入的编号不存在,系统将会提示你是否查看所有已存的数据。6第五章系统分析与设计2.1软件界面设计图2.1通讯录管理的主界面根据主界面的提示选择你想要执行的任务项钱的字母图2.2添加联系人在添加联系人中尼可以输入姓名、地址、电话号码、QQ号,输入好之后你可以继续完成其他选项。图2.3浏览信息按b屏幕上将显示已储存的个人信息,按a将继续为你服务。图2.3查询信息7按c将执行查询任务你可以通过姓名、地址、电话、QQ号、编号查询。按a继续服务。图2.4删除信息按d执行删除任务,输入你想要删除的编号,系统将会再次提醒你是否确认删除,一旦删除将会永远删除。图2.5修改信息选择你想修改信息的编号,就可以修改信息图2.6修改信息如果你选择的编号不存在,系统将会提醒你编号不存在,建议你查看所有数据,按y将显示已存的所有数据。按a继续为你服务。8图2.7结束服务当你执行完你所有的任务后,按b将会显示“谢谢使用,拜拜”,然后退出。2.2软件的数据(结构)设计2.1流程表A添加信息主界面C查找信息D删除信息B浏览信息E修改信息显示已存所有信息按姓名按号码按QQ按编号按地址输入删除编号确认删除新姓名新地址新号码新QQ新编号地址号码QQ编号姓名姓名9第六章软件的实现voidlook(){FILE*fp;charst[100];fp=fopen(in.txt,r);if(fp==NULL){printf(抱歉,无法查看\n);exit(1);}while(!feof(fp)){fgets(st,100,fp);puts(st);}fclose(fp);}voidturn(structtongxun*tdt,int*n){FILE*fp;//fp为打开in.txt文件的指针inti=0;fp=fopen(in.txt,w);fprintf(fp,姓名地址电话QQ号码编号);while(i*n){fprintf(fp,\n%-6s%-8s%-12d%-10d%d,tdt[i].name,tdt[i].address,tdt[i].telephone,tdt[i].QQ,tdt[i].number);i++;}fclose(fp);}10voidadd(){FILE*fp1;structtongxunad;fp1=fopen(in.txt,a);printf(请输入姓名:\n);scanf(%s,ad.name);printf(请输入地址:\n);scanf(%s,ad.address);printf(请输入电话:\n);scanf(%d,&ad.telephone);printf(请输入QQ号码:\n);scanf(%d,&ad.QQ);printf(请输入编号:\n);scanf(%d,&ad.number);fprintf(fp1,\n%s%s%d%d%d,ad.name,ad.address,ad.telephone,ad.QQ,ad.number);printf(录入成功!\n);fclose(fp1);11第七章软件测试对每一个函数、及组装以后的函数、写出测试用例。格式如下(注:自己可以自定义格式,但要满足以下要求,写成表格的形式等):1、voidlook();//浏览2、voiddelet();//删除3、voidchange();//修改4、voidtent();//测量文件中的数据个数5、intmine();//判断需要的数据是否存在6、voidremine();7、voidreme();8、structtongxun9、{10、charname[20];//姓名11、charaddress[50];//地址12、inttelephone;//电话13、intQQ;//QQ14、intnumber;//编号15、};16、voidShowS(charstuNO);/*根据学的学号,显示学生信息*/编辑主界面voidmenu(){charc;printf(通信录信息管理\n);printf(a.添加信息\n);printf(b.浏览信息\n);printf(c.查询信息\n);printf(d.删除信息\n);printf(e.修改信息\n);c=getchar();remine(c);}修改信息voidchange(){intm,x;12charch;printf(请选择你想修改的文件编号\n);scanf(%d,&m);x=mine(m);if(x==-2){printf(你所输入的编号不存在\n);printf(是否查看数据Y\\N\n);fflush(stdin);scanf(%c,&ch);if(ch=='Y'||ch=='y'){look();}}elsereme(x);}voidreme(intx){structtongxunre[20],de[20];inti,n;FILE*fp;fp=fopen(in.txt,w);tent(re,&n);if(fp==NULL){printf(无法打开\n);exit(1);}for(i=0;in;i++){if(x==re[i].number)break;}printf(请输入新姓名\n);scanf(%s,de[i].name);printf(请输入新地址:\n);scanf(%s,de[i].address);printf(请输入新电话:\n);scanf(%d,&de[i].telephone);printf(请输入新QQ号码:\n);13scanf(%d,&de[i].QQ);printf(请输入新编号:\n);scanf(%d,&de[i].number);fprintf(fp,\n%s%s%d%d%d,de[i].name,de[i].address,de[i].telephone,de[i].QQ,de[i].number);fclose(fp);}查找信息voidsearch(){structtongxuns[10];charch,name[10],address[10];intt,q,i,b,n;intxm;tent(s,&n);puts(你想要通过什么查询\n);puts(a.姓名b.地址c.电话d.QQ号e.编号\n);fflush(stdin);ch=getchar();if(ch=='a'){printf(请输入姓名:\n);fflush(stdin);gets(name);for(i=0;in;i++){if(strcmp(name,s[i].name)==0)printf(%s%s%d%d%d\n,s[i].name,s[i].address,s[i].telephone,s[i].QQ,s[i].number);break;}if(strcmp(name,s[i].name)!=0){printf(抱歉,无记录……\n);}}if(ch=='b'){printf(请输入地址:\n);fflush(stdin);gets(address);for(i=0;in;i++){14if((xm=strcmp(address,s[i].address))==0)printf(%s%s%d%d%d\n,s[i].name,s[i].address,s[i].telephone,s[i].QQ,s[i].number);break;}if(strcmp(address,s[