员工的管理系统
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、测试删除功能