学生手机通信录管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

程序设计报告书(2012/2013学年第一学期)题目:通讯录管理系统专业学生姓名班级学号指导教师指导单位日期评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语教师签名:年月日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格通讯录管理系统一、课题内容和要求该课题要求设计一个简单、实用的通信录管理程序,主要功能包括通信录数据的录入、查找、修改、删除、排序、显示等。所有通信录数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、需求分析系统功能模块图:添加:可以添加通讯录记录,依次输入序号,姓名,简拼,性别,工作单位,地址,电话,手机,电子邮件,备注后,会提示是否继续添加。查询:可以选择用序号、姓名、简拼、电话方式查询修改:先查找,再修改。若查找出多条记录,则进一步提示用户选择记录的序号,再修改流程图查询修改删除排序显示添加保存读入退出删除:输入欲删除的那个人的名字后,删除他(她)的记录内容排序:可按姓名、简拼等排序。要求排序后,记录的序号也要重新编排显示:可以以表格形式输出所有通讯录里的记录保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件读入:从文件中读入通信录数据。界面功能要求:(1)采用友好的字符界面,实现一个功能控制菜单。(2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。三、概要设计(1)主要结构体:typedefstruct{charscore;/*序号*/charname[10];/*姓名*/charjianpin[50];/*简拼*/charsex[3];/*性别*/charcompany[20];/*工作单位*/charadds[20];/*地址*/chartel[15];/*电话*/charnum[15];/*手机*/charemail[20];/*电子邮件*/charremark[30];/*备注*/}Person;(2).工作流程图:1.添加:添加通讯录记录2.查询:查询通讯录记录先选择查询方式,以姓名查询方式为例开始i=0sign!='n'&&sign!='N输入Return(n+i)结束YN3.修改:修改通讯录记录开始输入简拼通讯录是否有此简拼通讯录无此人显示信息结束Y输入电话输入姓名N通讯录是否有此电话通讯录是否有此姓名通讯录无此人通讯录无此人显示信息显示信息结束结束YYNN4.删除:删除通讯录记录开始输入姓名通讯录是否有此姓名通讯录无此人修改信息结束YN5.显示:显示通讯录记录开始输入姓名通讯录是否有此姓名通讯录无此人删除信息结束YN四、源程序代码#includestdio.h#includestdlib.h#includestring.h#includectype.htypedefstruct{charscore;/*序号*/charname[10];/*姓名*/charjianpin[50];/*简拼*/charsex[3];/*性别*/charcompany[20];/*工作单位*/charadds[20];/*地址*/chartel[15];/*电话*/charnum[15];/*手机*/开始inti,i=1in+1输出一个记录i++结束YNcharemail[20];/*电子邮件*/charremark[30];/*备注*/}Person;Personpe[80];intmenu_select(){charc;do{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│7.保存记录│\n);printf(\t\t│8.文件读入│\n);printf(\t\t│0.退出程序│\n);printf(\t\t└───────┘\n);printf(\t\t请您选择(0-8):);c=getchar();}while(c'0'||c'8');return(c-'0');}intInput(Personper[],intn){inti=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].jianpin);printf(\t性别:);scanf(\t%s,per[n+i].sex);printf(\t工作单位:);scanf(\t%s,per[n+i].company);printf(\t地址:);scanf(\t%s,per[n+i].adds);printf(\t电话:);scanf(\t%s,per[n+i].tel);printf(\t手机:);scanf(\t%s,per[n+i].num);printf(\t电子邮件:);scanf(\t%s,per[n+i].email);printf(\t备注:);scanf(\t%s,per[n+i].remark);gets(x);printf(\n\t是否继续添加?(Y/N));scanf(\t%c,&sign);i++;}return(n+i);}voidDisplay(Personper[],intn){inti;printf(------------------------------------------------------------------------------------------------\n);/*格式*/printf(序号姓名简拼性别工作单位地址电话手机电子邮件备注\n);printf(------------------------------------------------------------------------------------------------\n);for(i=1;in+1;i++){printf(%-3d%-10s%-10s%-5s%-10s%-10s%-13s%-13s%-10s%-10s\n,per[i-1].score,per[i-1].name,per[i-1].jianpin,per[i-1].sex,per[i-1].company,per[i-1].adds,per[i-1].tel,per[i-1].num,per[i-1].email,per[i-1].remark);if(i1&&i%10==0){printf(\t-----------------------------------\n);printf(\t);system(pause);printf(\t-----------------------------------\n);}}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){printf(\t通讯录中没有此人!\n);return(n);}for(j=i;jn-1;j++){strcpy(per[j].name,per[j+1].name);strcpy(per[j].jianpin,per[j+1].jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j].company,per[j+1].company);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].num,per[j+1].num);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remark,per[j+1].remark);per[j].score=per[j+1].score;}printf(\t\t\t删除成功\n);return(n-1);}voidQuery_a_record(Personper[],intn){intm;printf(\t\n请选择查询方式:\n);printf(\t┌──────┐\n);printf(\t│1------姓名│\n);printf(\t│2------简拼│\n);printf(\t│3------电话│\n);printf(\t│4------返回│\n);printf(\t└──────┘\n);printf(请选择:);scanf(%d,&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf(输入错误,请重新选择:);scanf(%d,&m);}if(m==1){chars[20];inti=0;printf(\t请输入想查询的姓名:);scanf(\t%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(\t序号:%d\n,per[i].score);printf(\t简拼:%s\n,per[i].jianpin);printf(\t性别:%s\n,per[i].sex);printf(\t工作单位:%s\n,per[i].company);printf(\t通讯地址:%s\n,per[i].adds);printf(\t电话号码:%s\n,per[i].num);printf(\t电子邮箱:%s\n,per[i].email);printf(\t备注:%s\n,per[i].remark);};if(m==2){chars[20];inti=0;printf(\t请输入想查询的简拼:);scanf(\t%s,s);while(strcmp(per[i].jianpin,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(\t序号:%d\n,per[i].score);printf(\t姓名:%s\n,per[i].name);printf(\t性别:%s\n,per[i].sex);printf(\t工作单位:%s\n,per[i].company);printf(\t通讯地址:%s\n,per[i].add

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功