员工的管理系统
1、#include "stdafx.h"
#include <iostream>
using namespace std;
typedef struct DataType { /*员工通讯信息的结构类型定义*/
char num[5]; /*员工编号*/
char name[10]; /*员工姓名*/
char phone[15]; /*办公室电话号码*/
char call[15]; /*手机号码*/
char mail[25]; /*邮箱*/
};
DataType dat[3]={{"01","1","123","456","789"},{"02","2","111","222","333"},{"03","3","444","555","666"}};
/*通讯录单链表的结点类型*/
typedef struct node
{ DataType data; /*结点的数据域*/
struct node *next; /*结点的指针域*/
}*LinkList;
void createlist(LinkList&L,int n)
{
L=(LinkList)malloc(sizeof(node));
L->next =NULL;
LinkList p;
int m=0;
for(int i=0;i<=n-1;++i)
{
p=(LinkList)malloc(sizeof(node));
p->data =dat[m];
++m;
p->next=L->next ;
L->next =p;
}
}
void display(LinkList&L,int n)
{
LinkList p=L->next;
cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"电话号码"<<"\t"<<"手机号码"<<"\t"<<"邮箱"<<endl;
for(int i=0;i<=n-1;i++)
{
cout<<p->data .num <<"\t"<<p->data .name <<"\t"<<p->data .call <<"\t\t"<<p->data .phone <<"\t\t"<<p->data .mail <<endl;
p=p->next ;
}
}
void GetElem(LinkList &L,char na[10])
{
LinkList p=L->next ;
cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"电话号码"<<"\t"<<"手机号码"<<"\t"<<"邮箱"<<endl;
while(p&&strcmp(p->data.name ,na )!=0)
p=p->next ;
if(!p) cout<<"该员工不存在"<<endl;
else if(strcmp(p->data.name ,na )==0)
{
cout<<p->data .num <<"\t"<<p->data .name <<"\t"<<p->data .call <<"\t\t"<<p->data .phone <<"\t\t"<<p->data .mail <<endl;
}
}
void reply(LinkList&L,char na[10])
{
char xx[10];
int cw;
LinkList p=L->next ;
while(strcmp(p->data.name ,na )!=0&&p)
p=p->next ;
if(strcmp(p->data.name ,na )==0)
cout<<"请输入想要修改哪个信息"<<endl;
cin>>cw;
cout<<"请输入修改后信息"<<endl;
cin>>xx;
switch(cw)
{
case 1: strcpy(p->data .num ,xx) ;break;
case 2: strcpy(p->data .name ,xx);break;
case 3: strcpy(p->data.call ,xx);break;
case 4: strcpy(p->data .phone ,xx);break;
case 5: strcpy(p->data .mail ,xx);break;
}
}
void ListInsert(LinkList&L,int i,DataType e)
{
LinkList p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next ;
++j;
}
if(!p||j>i-1)
cout<<"插入越界"<<endl;
LinkList s=(LinkList)malloc(sizeof(node));
s->data=e;
s->next=p->next;
p->next=s;
}
void setdata(DataType &e)
{
cout<<"请输入工号"<<endl;
cin>>e.num;
cout<<"请输入姓名"<<endl;
cin>>e.name;
cout<<"请输入手机"<<endl;
cin>>e.phone;
cout<<"请输入电话"<<endl;
cin>>e.call;
cout<<"请输入邮箱"<<endl;
cin>>e.mail;
}
void ListDelete(LinkList&L,int i)
{
LinkList p=L;
int j=0;
while(p->next &&j<i-1)
{
p=p->next ;
++j;
}
if(!(p->next )||j>i-1 )
cout<<"删除越界"<<endl;
LinkList q=p->next ;
p->next =q->next ;
free(q);
}
2、int _tmain(int argc, _TCHAR* argv[])
{
LinkList L;
int v;
int n=3;
createlist(L,n);
for(;;)
{
cout<<"----------员工通讯信息管理系统----------"<<endl;
cout<<"功能菜单:"<<endl;
cout<<"\t\t1.查询"<<endl;
cout<<"\t\t2.修改"<<endl;
cout<<"\t\t3.插入"<<endl;
cout<<"\t\t4.删除"<<endl;
cout<<"\t\t5.输出"<<endl;
cout<<"请输入需完成的功能"<<endl;
cin>>v;
switch(v)
{
case 1:{ char na[10];cout<<"请输入姓名";cin>>na;GetElem(L, na);break;}
case 2:{ char na[10];cout<<"请输入姓名";cin>>na;reply(L, na);display(L,n);break;}
case 3:{cout<<"请输入插入序号";int i;cin>>i;DataType e;setdata(e);ListInsert(L, i, e);n++;break;}
case 4:{ cout<<"请输入删除序号";int i;cin >>i;ListDelete(L, i);n--;break ;}
case 5:{ display(L,n);break;}
}
}
return 0;
}
3、一测试。查询功能

4、二测试修改功能

5、测试三插入功能


6、测试删除功能
