员工的管理系统

2025-10-24 09:56:59

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、测试删除功能

员工的管理系统

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢