文理学院综合课程设计(三)IntegratedCurriculumDesign(3)所在院系信息工程系专业名称电子信息工程班级1001题目单位员工通讯录管理系统(线性表应用)指导教师成员完成时间2013.01.05一、设计任务及要求:设计任务:设计一个单位员工通讯录管理系统程序。要求:1.为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。2.其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。指导教师签名:2013年01月05日二、指导教师评语:指导教师签名:2012年01月05日三、成绩验收盖章2013年01月05日单位员工通讯录管理系统的设计1设计目的(1)熟悉算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。(2)掌握线性表的基本操作在两种存储结构上的实现。(3)了解软件设计及软件测试的能力。2设计思路本次设计是对线性链表的应用,我们在此实验中运用了了单向链表和双向链表两种设计方法。以管理系统的主程序为主,不断调用子程序实现通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及退出通讯录系统等功能。3设计过程本次实验分为8部分,第一部分是主程序,后面七部分分别实现系统的建立、查询、删除、插入、修改、显示、退出功能。3.1方案论证3.2程序设计经过需求分析得到详细的设计流程图以及各部分的程序,各部分的子程序通过要通过主程序的调用才能实行,在实现每一个子程序时,还要考虑是否能够实行,该如何实行,程序要运用到选择性语句(if、when等)。详细设计流程图如图2所示NN开始主菜单删除记录继续添加插入成功修改记录插入记录建立链表查询记录显示记录选择方式存在?存在?显示成功确定删除确定删除YYNY图2详细设计流程图建立程序:printf("\n\n\t\t\t***建立通讯录***\n");for(i=0;inum);printf("员工姓名:");scanf("%s",p->name);printf("手机号码:");scanf("%d",&p->phone);printf("电话号码:");scanf("%d",&p->call);p->next=L->next;L->next=p;printf("\t\t\t****输入成功!***\n");}returnL;查询程序:printf("\n\n\t\t\t**查询通讯录记录**\n");printf("\n\t\t\t请选择查询方式:\n");printf("\t\t\t*****************\n");printf("\t\t\t#1------编号#\n");printf("\t\t\t#2------姓名#\n");printf("\t\t\t#3------手机#\n");printf("\t\t\t#4------电话#\n");printf("\t\t\t*****************\n");printf("\t\t\t请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("\t输入错误!!!请重新选择:");scanf("%d",&m);};if(m==1){intt;printf("\n请输入想查询的编号:");scanf("%d",&t);while(p&&(p->num)!=t){p=p->next;}if(p==NULL){printf("\t通讯录中没有此人!\n");}else{printf("\n\t\t\t****员工信息****\n");printf("员工编号:%d\n",p->num);printf("员工姓名:%s\n",p->name);printf("手机电话:%d\n",p->phone);printf("电话号码:%d\n",p->call);}};if(m==2){chars[8];printf("\n请输入想查询的姓名:");scanf("%s",s);while(strcmp(p->name,s)!=0&&(p!=0)){p=p->next;}if(strcmp(p->name,s)==0){printf("\n\t\t\t****员工信息****\n");printf("员工编号:%d\n",p->num);printf("员工姓名:%s\n",p->name);printf("手机号码:%d\n",p->phone);printf("电话号码:%d\n",p->call);}elseprintf("\t通讯录中没有此人!\n");};删除程序:printf("\n\n\t\t\t**删除通讯录记录**\n");printf("\n\t\t\t请选择删除方式:\n");printf("\t\t\t*****************\n");printf("\t\t\t#1------编号#\n");printf("\t\t\t#2------姓名#\n");printf("\t\t\t#3------手机#\n");printf("\t\t\t#4------电话#\n");printf("\t\t\t*****************\n");printf("\t\t\t请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请重新选择:");scanf("%d",&m);};if(m==1){intt;printf("\n\t请输入想删除的编号:");scanf("%d",&t);while(p->next&&p->next->num!=...