单位员工通讯录管理系统2

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

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

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

资源描述

湖北师范学院文理学院信息工程系2010级电子信息工程专业综合课程设计(三)文理学院综合课程设计(三)IntegratedCurriculumDesign(3)所在院系信息工程系专业名称电子信息工程班级1001题目单位员工通讯录管理系统(线性表应用)指导教师成员完成时间2013.01.051一、设计任务及要求:设计任务:设计一个单位员工通讯录管理系统程序。要求:1.为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。2.其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。指导教师签名:2013年01月05日二、指导教师评语:指导教师签名:2012年01月05日三、成绩验收盖章2013年01月05日2单位员工通讯录管理系统的设计1设计目的(1)熟悉算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。(2)掌握线性表的基本操作在两种存储结构上的实现。(3)了解软件设计及软件测试的能力。2设计思路本次设计是对线性链表的应用,我们在此实验中运用了了单向链表和双向链表两种设计方法。以管理系统的主程序为主,不断调用子程序实现通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及退出通讯录系统等功能。3设计过程本次实验分为8部分,第一部分是主程序,后面七部分分别实现系统的建立、查询、删除、插入、修改、显示、退出功能。3.1方案论证3.2程序设计经过需求分析得到详细的设计流程图以及各部分的程序,各部分的子程序通过要通过主程序的调用才能实行,在实现每一个子程序时,还要考虑是否能够实行,该如何实行,程序要运用到选择性语句(if、when等)。详细设计流程图如图2所示NNYY开始主菜单删除记录继续添加插入成功修改记录插入记录建立链表查询记录显示记录选择方式修改成功存在?存在?显示成功确定删除确定删除3NY图2详细设计流程图建立程序:printf(\n\n\t\t\t***建立通讯录***\n);for(i=0;in;i++){p=(staff*)malloc(sizeof(staff));printf(员工编号:);scanf(%d,&p-num);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);4printf(\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);5printf(\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!=t){p=p-next;}if(p-next){s=p-next;p-next=s-next;free(s);printf(\t\t\t****删除成功!****);}elseprintf(\t未找到要删除的编号,请重新选择并输入!\n);};if(m==2){charss[8];printf(\n\t请输入想删除的姓名:);scanf(%s,ss);while(p-next&&(strcmp(p-next-name,ss)!=0)){p=p-next;}if(p-next){s=p-next;p-next=s-next;free(s);printf(\t\t\t****删除成功!****);}elseprintf(没有找到要删除的姓名,请重新选择并输入!\n!);};插入程序:printf(\n\t\t\t**插入通讯录记录**\n);6p=(staff*)malloc(sizeof(staff));printf(\n请输入员工信息:\n);printf(员工编号:);scanf(%d,&p-num);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);}修改程序:printf(\n\n\t\t\t**修改通讯录记录**\n);printf(\n\t\t\t**请选择修改方式:\n);while(m!=1&&m!=2&&m!=3&&m!=4){printf(输入错误,请重新选择:);scanf(%d,&m);};if(m==1){intt;printf(\n\n\t请输入想修改的编号:);scanf(%d,&t);while(p&&(p-num)!=t){p=p-next;}if(p-num==t){printf(\n\t请输入你修改后的编号:);scanf(%d,&p-num);printf(\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);};if(m==2){chars[8];7printf(\n\t请输入想修改的姓名:);scanf(%s,s);while((p!=0)&&strcmp(p-name,s)!=0){p=p-next;}if(strcmp(p-name,s)==0){printf(\n\t请输入修改后的姓名:);scanf(%s,&p-name);printf(\t修改后的员工信息为:\n);printf(员工编号:%d\n,p-num);printf(员工姓名:%s\n,p-name);printf(手机电话:%d\n,p-phone);printf(电话号码:%d\n,p-call);}elseprintf(未找到要修改的姓名,请重新选择并输入!\n);};显示程序:printf(\t\t\t**显示通讯录信息**\n);printf(编号姓名手机号码电话号码\n);while(p!=0){printf(%d%10s%10d%10d\n,p-num,p-name,p-phone,p-call);p=p-next;}}4程序调试与结果分析根据要求运用线性链表的知识编写程序,结合C语言的要求,经过调试运行后得出仿真结果。4.1程序调试仿真后得到的结果图3所示。8图3仿真结果4.2结果分析建立链表仿真结果如图4所示。图4建立链表仿真结果查询记录如图5所示。9图5查询仿真结果删除记录如图6所示。图6删除仿真结果插入记录如图7所示,图7插入仿真结果修改记录如图8所示。10图8修改仿真结果显示记录如图9所示。图9显示仿真结果退出系统如图10所示图10退出仿真结果5设计体会通过这次对单位员工通讯录管理系统的设计与制作,我们认识到本次实验是对我们进入大学以来学习程序设计语言结果的一次检验。平时没有掌握好的知识在这次试验中暴露了出来,经过不断地查阅资料,不断的调试运行,基本上解决大部分问题。同时也收获了很多的东西,我不仅对C的操作有了进一步的了解和掌握。虽然成功书写了程序,但还是存在一定的不足,我们也会不断地学习,不断地完善。参考文献(至少5篇)[1]C程序设计(第四版)谭浩强著清华大学出版社;[2]数据结构(C语言版)严蔚敏著清华大学出版社;[3]数据结构题集严蔚敏著清华大学出版社;[4]数据结构习题解析殷人昆著清华大学出版社;11[5]数据结构(用面向对象法与C++描述)殷人昆著清华大学出版社;附件完整程序下面是单位员工通讯录管理系统的完整程序:L=(LinkList)malloc(sizeof(staff));L-next=NULL;printf(请输入员工数:);scanf(%d,&n);printf(\n\n\t\t\t***建立通讯录***\n);for(i=0;in;i++){p=(staff*)malloc(sizeof(staff));printf(员工编号:);scanf(%d,&p-num);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;}voidSearch(staff*l){intm;staff*p;p=l-next;printf(\n\n\t\t\t**查询通讯录记录**\n);printf(\n\t\t\t请选择查询方式:\n);printf(\t\t\t*****************\n);p

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

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

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

×
保存成功