单位员工通讯管理系统

上传人:我** 文档编号:115921893 上传时间:2019-11-15 格式:DOC 页数:16 大小:180.48KB
返回 下载 相关 举报
单位员工通讯管理系统_第1页
第1页 / 共16页
单位员工通讯管理系统_第2页
第2页 / 共16页
单位员工通讯管理系统_第3页
第3页 / 共16页
单位员工通讯管理系统_第4页
第4页 / 共16页
单位员工通讯管理系统_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单位员工通讯管理系统》由会员分享,可在线阅读,更多相关《单位员工通讯管理系统(16页珍藏版)》请在金锄头文库上搜索。

1、一、 设计题目单位员工通讯录管理系统(线性表的应用)问题描述为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。实现提示可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct /*员工通讯信息的结构类型定义*/ char num5; /*员工编号*/ char name10; /*员工姓名*/ char phone15; /*办公室电话号码*/char call15; /*手机号码*/char mail25; /*邮箱*/DataType;

2、/*通讯录单链表的结点类型*/typedef struct node DataType data; /*结点的数据域*/ struct node *next; /*结点的指针域*/ListNode,*LinkList;二、 需求分析为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。三、 算法设计1. 算法思想为建立单位员工通讯录系统,我们要实现很多的功能,先要实现将员工的信息录入、保存等基本操作。需要把相应的信息录入对应的员工里,其次是实现这些信息的查询、修改、删除功能,并且能直接输出整个所有员工信息等。而这些所有的实现需要我们特别熟悉链表的基本操作

3、。2. 算法设计分析对于这个算法设计,我最先想到的就是,用链表将题中的叙述的问题解决。所以我们要先建立一个链表,链表的节点信息保存的有员工姓名、员工编号、员工办公室电话号码、手机号、员工邮箱等信息。而链表的节点信息保存的有员工信息及其指针域。然后我们添加员工信息,对于刚来的员工我们将其放到节点的表尾。在添加之前我们要进行一项操作,及遍历链表找到其尾指针,然后开辟一个节点并将其加在链尾。我们还可以进行员工信息查询操作,在进行查询时我们先要遍历整个链表。然后在遍历的同时与关键字进行比较从而找到员工信息并输出,员工信息删除操作,也是如此,此操作首先要找到要删除的员工信息,然后将此节点的前一节点的后续

4、指针直接指向要删除的结点的后续指针,并且释放要删除的结点空间即可。员工信息修改,首先找到要修改的员工,然后输入要修改的员工信息,将要修改的员工信息输入其中即可,这就是以上要完成的实验目的的过程,明确了这些,接下来就好操作了。3.流程图开始主菜单建立通信链表添加各项信息是否继续添加是否已建表添加各项信息成功输出确定删除删除成功按编号查找查询完毕插入成功主菜单退出是否退出退出程序结束插入信息查询记录删除记录输出记录是否已建表是否已建表是否已建表按姓名查找四、 调试分析与结果通讯录的建立添加人员信息删除人员信息查询人员信息输出人员信息人员的修改五、 课设总结当地一次看到单位员工通讯管理系统时,感觉是

5、一头雾水,不知道该如何下手。随后就拿出了杀手锏,百度,通过百度了解了这个系统我该如何的去做,让代码从无到有,从不懂到了一知半解。这也增进了我们算法设计的兴趣,虽然其中有很大的困难,但是在自己和同学们的帮助下,有了不少的收获,理解了程序代码,完成了作业,而这第一的作业也让我明白的许多,对于一个问题的解决不一定局限于死的答案,只有对问题的思想有一个很好的了解才算真正的理解和学会。这也让我在以后的学习中能有很大的提升。六、 附录(源代码)单位员工通讯管理系统#include #include #include typedef struct char num5; char name15; char p

6、hone13; char call15; char e_mail30; datatype; typedef struct node datatype data; struct node * next; Dnode; Dnode *head; Dnode *p; typedef struct node linklist; int menu(); Dnode *createlist(); void Add(Dnode *head,Dnode *p); Dnode *research(Dnode *head); void Delete(Dnode *head); void print_list(Dn

7、ode *head); Dnode *Change(Dnode *head,char k); void Saveandfree(); void Open(); int menu() int i; printf( *); printf(n); printf( 通讯录系统清单n ); printf(n); printf( *); printf(n); printf( 1.通讯录的建立); printf(n); printf( 2.添加人员信息); printf(n); printf( 3.删除人员信息); printf(n); printf( 4.查询人员信息); printf(n); print

8、f( 5.输出人员信息); printf(n); printf( 6.修改人员信息); printf(n); printf( 0.退出并保存); printf(n); printf(请选择0-6:); scanf(%d,&i); while(i6) printf(系统提示: 您输入错误!n); printf(请重新输入0-6: ); scanf(%d,&i); printf(nn); return i; Dnode *createlist() Dnode *head=(Dnode *)malloc(sizeof(Dnode); Dnode *p; Dnode *rear; char c=n;

9、rear=head; while(c=n) p=(Dnode *)malloc(sizeof(Dnode); printf(请输入编号: n); scanf(%s,p-data.num); printf(请输入姓名: n); scanf(%s,p-data.name); printf(请输入办公室电话: n); scanf(%s,p-data.phone); printf(请输入手机: n); scanf(%s,p-data.call); printf(请输入电子邮箱: n); scanf(%s,p-data.e_mail); rear-next=p; rear=p; printf(要继续创建

10、请按(n),结束创建请按其它键: n); scanf(%c,&c); rear-next=NULL; return head; void Add(Dnode *head,Dnode *p) Dnode *p1; Dnode *p2; p1=head; p2=p1-next; while(p2!=NULL&strcmp(p2-data.num,p-data.num)next; p1-next=p; p-next=p2; void Delete(Dnode *head) char a,b; Dnode *p; Dnode *q; char num5; char name10; int x; pri

11、ntf(1.按编号删除n); printf(2.按姓名删除n ); printf(请选择(1或2): ); p=head-next; scanf(%d,&x); if(x=1) printf(请输入要查询者的编号:); scanf(%s,num); while(p&strcmp(p-data.num,num)next; if(p=NULL|strcmp(p-data.num,num)0) p=NULL; if(x=2) printf(请输入要查询者的姓名:); scanf(%s,name); while(p&strcmp(p-data.name,name)!=0) p=p-next; scan

12、f(%c,&b); if(p=NULL) printf(对不起没有您要查询者的信息n); return; printf(要删除该结点吗?(y/n) :); scanf(%c,&a); if(a=y|a=Y) q=head; while(q!=NULL&q-next!=p) q=q-next; q-next=p-next; free(p); printf(通讯者已经被删除n); Dnode *research(Dnode *head) Dnode *p; char num5; char name10; char phone15; char call15; int x; printf(1.按编号查

13、询:n); printf(2.按姓名查询:n); printf(3.按电话号码查询:n); printf(4.按手机号码查询:n); printf(请选择(1-4): ); p=head-next; scanf(%d,&x); if(x=1) printf(请输入要查询者的编号:); scanf(%s,num); while(p&strcmp(p-data.num,num)next; if(p=NULL|strcmp(p-data.num,num)0) p=NULL; if(x=2) printf(请输入要查询者的姓名:); scanf(%s,name); while(p&strcmp(p-data.name,name)!=0) p=p-next; if(x=3) printf(请输入要查询者的办公室电话号码:);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号