您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言课程任务设计书 通讯录
1课程设计报告课程名称C语言课程设计课题名称通讯录专业班级学号姓名指导教师田媛2014年09月08日2湖南工程学院课程设计任务书课程名称C语言课程设计课题通讯录专业班级学生姓名学号指导老师审批任务书下达日期2014年09月01日任务完成日期2014年09月08日3一、设计内容与设计要求1.设计内容:课题二:通讯录。具体内容见附录。2.设计要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)上机演示。3.设计报告要求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。二、进度安排星期一(第1周)星期二(第1周)星期三(第1周)星期五(第1周)星期二(第2周)纺织工程1301/02上课8:00-11:30上机8:00-11:50上机14:30-18:00上机8:00-11:50交报告14:30-18:00纺织工程1303上课8:00-11:30上机14:30-18:00上机8:00-11:50上机14:30-18:00交报告14:30-18:00上课地点:北4-609(暂定)上机地点:E-4124附录:设计课题四:通讯录一、问题描述:该设计实现简单通讯录的功能,具体管理操作包括通讯信息的添加、显示、查找、删除、修改和保存等。二、功能要求:1、本设计采用结构体数组或链表,每个数据的结构应当包括:姓名、电话号码、通讯地址、Email地址、生日等信息。2、系统功能:a.通讯信息录入:即添加每个人的通讯记录。b.通讯信息显示:按某种顺序显示通讯录的内容,如按姓名显示、电话号码显示等。(要求至少有一种显示方式,不限于已列出的方式。)c.通讯信息修改:对已经输入的记录进行修改。d.通讯信息删除:删除已经输入的记录。e.通讯信息查询:输入姓名或电话号码或Email地址,则输出完整信息。f.通讯信息保存:当添加、修改、删除信息后,应该将其存入文件。g.退出系统。3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。三、测试数据:要求通讯记录数=205目录1概要设计.....................................................................................................................72.详细设计................................................................................................................113.运行结果................................................................................................................164.心得体会................................................................................................................175.附录............................................................................................................................3361.概要设计1.1模块图:1.2各模块功能:添加(录入):可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、编号三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件72.详细设计2.1算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。2.2详细设计:(1).工作流程图:①录入:添加通讯录记录8②显示:显示通讯录记录9③删除:删除通讯录记录④查询:查询通讯录记录先选择查询方式,以姓名查询方式为例10⑤修改:修改通讯录记录3.运行结果3.1测试数据及其结果分析:1).显示的主菜单界面:112)添加界面3)显示界面124)删除界面删除后,通讯录里的显示记录:13:5).查询界面以编号查询方式为例:146).修改界面:7).保存界面:158,退出程序界面:3.2程序中的问题:1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。因此,向别人请教后,在一些地方加入了system(pause);这个语言,用来对某项操作完成后进行暂停。2.在编写程序代码的时候出现了好多语法错误,经过了多次调试请教别人才改正过来,归根结底还16是知识掌握不够,以后会多动手操作。4.课程设计总结这次的C语言课程设计实验是我们进入大学的第一次课程设计,也是对我们进入大学以来学习C语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,终于体会到老师的那句话:“从眼到手的距离还有很远。”真的听懂了但不一定能做出来。经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的设计格式。当我看到通讯录管理系统这个题目时,我就考虑要用调用函数,不过因为自己的能力还有待提高,所以还有不少文件的读写问题以及语法错误,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。还有一点体会就是,书上和老师教的内容是有限的,最重要的就是我们需要不断地靠自己去学习,自己动手操作,不懂就向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C程序。175.附录5.1源程序代码:#includestdio.h#includestdlib.h#includestring.htypedefstruct{charscore;/*编号*//*结构体及结构体数组*/charname[10];/*姓名*/charnum[15];/*号码*/charemail[20];/*邮箱*/charage[8];/*年龄*/charadds[20];/*住址*/}Person;Personpe[80];intmenu_select(){charc;18do{/*调用do-while函数*/system(cls);printf(\t\t*****通讯录*****\n);printf(\t\t┌───────┐\n);printf(\t\t│1.添加记录│\n);printf(\t\t│2.显示记录│\n);printf(\t\t│3.删除记录│\n);printf(\t\t│4.查询记录│\n);printf(\t\t│5.修改记录│\n);printf(\t\t│6.保存记录│\n);printf(\t\t│0.退出程序│\n);printf(\t\t└───────┘\n);printf(\t\t请您选择(0-6):);c=getchar();}while(c'0'||c'6');return(c-'0');}intInput(Personper[],intn){19inti=0;charsign,x[10];while(sign!='n'&&sign!='N'){printf(\t编号:);/*信息录入函数*/scanf(\t%d,&per[n+i].score);printf(\t姓名:);scanf(\t%s,per[n+i].name);printf(\t年龄:);scanf(\t%s,per[n+i].age);printf(\t电话号码:);scanf(\t%s,per[n+i].num);printf(\t通讯住址:);scanf(\t%s,per[n+i].adds);printf(\t电子邮箱:);scanf(\t%s,per[n+i].email);gets(x);printf(\n\t是否继续添加?(Y/N));scanf(\t%c,&sign);i++;20}return(n+i);}voidDisplay(Personper[],intn)/*void-dislay函数*/{inti;printf(----------------------------------------------------------------------\n);/*格式*/printf(编号姓名年龄电话号码通讯地址电子邮箱\n);printf(----------------------------------------------------------------------\n);for(i=1;in+1;i++){printf(%-5d%-8s%-6s%-13s%-15s%-15s\n,per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);if(i1&&i%10==0){printf(\t-----------------------------------\n);printf(\t);system(pause);printf(\t-----------------------------------\n);21}}printf(----------------------------------------------------------------------\n);system(pause);}intDelete_a_record(Personper[],intn){chars[20];inti=0,j;printf(\t请输入想删除记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n)/*调用if与for函数*/{printf(\t通讯录中没有此人!\n);return(n);}for(j=i;jn-1;j++){strcpy(per[j].num,per[j+1].num);22strcpy(per[j].name,per[j+1].name);strcpy(per[j].age,per[j+1].age);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].email,per[j+1].email);per[j].score=per[j+1].score;}printf(\t\t\t已经成功删除!\n);return(n-1);}voidQuery_a_record(Personper[],intn)/*查询信息*/{intm;printf(\t\n请选
本文标题:C语言课程任务设计书 通讯录
链接地址:https://www.777doc.com/doc-3213207 .html