单位员工通讯录管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单位员工通讯录管理系统(线性表的应用)
[需求分析]
为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
[问题要求]
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[问题分析]
为建立单位员工通讯录系统,首先要实现员工信息的录入、保存等基本操作。对于员工通讯录我们要存入要求的员工的各种信息等,对于已经保存的信息,我们要可以对这些信息进行查询、修改、插入新信息、删除信息、还有可以直接输出整个所有员工信息等。而这些操作对于我们来说都是对建立的链表的基本操作,对于本次试验我采用单向线性链表。
[算法设计]
首先我们要进行最基本的操作,即建立链表。链表的节点信息保存的有员工编号、员工姓名、办公室电话号码、手机号码、员工邮箱这些信息。而链表的结点信息保存的有员工信息以及其指针域。然后我们可以添加员工信息,对于新的员工信息我们将其添加在链表的表尾,在添加之前我们要进行一项操作,即遍历链表找到其尾指针,然后开辟一个结点并将其加到链尾。我们还可以进行员工信息的查询操作,在进行查询时我们首先要遍历链表,然后在遍历的同时与关键字进行比较从而找到员工信息并输出。员工信息删除操作,此操作首先要找到要删除的员工信息,然后将此节点的前一节点的后续指针直接指向要删除的结点的后续指针,并且释放要删除的结点空间即可。员工信息修改,首先找到要修改的员工,然后输入要修改的员工信息,将输入信息直接覆盖在原有信息上即可。员工信息输出,遍历整个链表并输出。
流程图如下:
[调试分析及测试数据]
员工信息插入:
员工信息查询:
员工信息删除:
员工信息修改:
[程序代码]
void Init(LinkList list)//初始化
{
ListNode *p=new ListNode;
strcpy(p->data.call,"15***117");
strcpy(p->data.email,"zzti************");
strcpy(p->,"***");
strcpy(p->data.num,"20***4320");
strcpy(p->data.phone,"4123211");
list->next=p;
p->next=NULL;
}
void Read(LinkList list)//输出员工信息
{
ListNode *t;
t=list->next;
do
{
cout<<"手机号码:"< cout<<"员工邮箱:"< cout<<"员工姓名:"< cout<<"员工编号:"< cout<<"办公室电话号码:"< }while(t->next!=NULL,t=t->next); } void Search(LinkList list)//查询 { ListNode *aa; aa=list->next; cout<<"按员工编号查询,请输入员工编号:"; char bh[20]; cin>>bh; do { if(!(strcmp(bh,aa->data.num))) { cout<<"手机号码:"< cout<<"员工邮箱:"< cout<<"员工姓名:"< cout<<"员工编号:"< cout<<"办公室电话号码:"< return; } }while(aa->next!=NULL,aa=aa->next); } void Insert(LinkList list)//插入 { ListNode *w; w=list->next; while(w->next!=NULL) { w=w->next; } ListNode *u=new ListNode; u->next=NULL; cout<<"手机号码:"; cin>>u->data.call; cout<<"员工邮箱:"; cin>>u->data.email; cout<<"员工姓名:"; cin>>u->; cout<<"员工编号:"; cin>>u->data.num; cout<<"办公室电话号码:"; cin>>u->data.phone; w->next=u; w=w->next; } void Delete(LinkList list)//删除 { ListNode *cz1; ListNode *cz2; ListNode *cz3; cz1=list; cz2=list; int s=0; char chax[20]; cout<<"请输入要删除的员工编号:"; cin>>chax; while((strcmp(chax,cz1->data.num)))