📄 员工管理.cpp
字号:
#include<iostream.h>
struct Employee
{long code;
int age;
char sex;
Employee*next;
};
void Creat(Employee*&head)
{Employee*p,*s,*q;
s=new Employee;
cout<<"请输入职工的编号(不可重复)、年龄和性别(m/w),输入0、0、0结束:"<<endl;
cin>>s->code>>s->age>>s->sex;
s->next=NULL;
while(s->code)
{if(head==NULL)head=s;
else p->next=s;
p=s;
s=new Employee;
cin>>s->code>>s->age>>s->sex;
s->next=NULL;
q=head;
while(q)
{if(s->code==q->code)
{cout<<"编号为"<<s->code<<"的职工已存在!请重新输入:"<<endl;
cin>>s->code>>s->age>>s->sex;
q=head;}
else q=q->next;}
}
delete s;
cout<<"创建成功!"<<endl;
}
void Show(Employee*head)
{if(head==NULL)cout<<"目前不存在任何职工!"<<endl;
else{cout<<"全部职工的信息:"<<endl<<"编号"<<'\t'<<"年龄"<<'\t'<<"性别"<<endl;
while(head)
{cout<<head->code<<'\t'<<head->age<<'\t'<<head->sex<<endl;
head=head->next;
}
}
}
void Count(Employee*head)
{int i=0,j=0;
if(head==NULL)cout<<"目前不存在任何职工!"<<endl;
else{while(head)
{if(head->sex=='m')i++;
else j++;
head=head->next;
}
cout<<"男职工的人数为:"<<i<<"人"<<endl<<"女职工的人数为:"<<j<<"人"<<endl;
}
}
void Insert(Employee*&head)
{Employee*p,*s;
s=new Employee;
cout<<"请输入新职工的编号、年龄和性别(m/w)"<<endl;
cin>>s->code>>s->age>>s->sex;
s->next=NULL;
if(head==NULL){head=s;}
else{p=head;
while(p->next)
{p=p->next;}
p->next=s;}
cout<<"创建成功!"<<endl;
}
void Delete1(Employee*&head)
{Employee*p,*q;
long i;
p=q=head;
if(head==NULL)cout<<"目前不存在任何职工!"<<endl;
else{cout<<"请输入要删除的职工的编号:";
cin>>i;
if(p->code==i){head=head->next;
p->next=NULL;
delete p;
cout<<"编号为"<<i<<"的职工已成功删除!"<<endl;
return;}
else{p=p->next;
while(p)
{if(p->code==i){q->next=p->next;
p->next=NULL;
delete p;
cout<<"编号为"<<i<<"的职工已成功删除!"<<endl;
return;}
else{q=q->next;
p=p->next;
}
}
}
cout<<"编号为"<<i<<"的职工并不存在!"<<endl;
}
}
void Delete2(Employee*&head,Employee*&other)
{Employee*p,*q,*s;
int i,j,k=1;
p=q=head;
if(head==NULL)cout<<"目前不存在任何职工!"<<endl;
else {cout<<"请输入男职工不可超过的年龄:"<<endl;
cin>>i;
cout<<"请输入女职工不可超过的年龄:"<<endl;
cin>>j;
while(p&&k)
{if(p->sex=='m'){if(p->age>i){head=head->next;
p->next=NULL;
if(other==NULL)other=s=p;
else{s->next=p;
s=p;
}
p=head;
}
else k=0;
}
else{if(p->age>j){head=head->next;
p->next=NULL;
if(other==NULL)other=s=p;
else{s->next=p;
s=p;
}
p=head;
}
else k=0;
}
}
if(k=0){q=p;
p=p->next;
while(p)
{if(p->sex=='m'){if(p->age>i){q->next=p->next;
p->next=NULL;
if(other==NULL)other=s=p;
else{s->next=p;
s=p;
}
p=q->next;
}
else{p=p->next;
q=q->next;
}
}
else{if(p->age>j){q->next=p->next;
p->next=NULL;
if(other==NULL)other=s=p;
else{s->next=p;
s=p;
}
p=q->next;
}
else{p=p->next;
q=q->next;
}
}
}
}
p=other;
cout<<"删除职工的信息为:"<<endl<<"编号"<<'\t'<<"年龄"<<'\t'<<"性别"<<endl;
while(p)
{cout<<p->code<<'\t'<<p->age<<'\t'<<p->sex<<endl;
p=p->next;
}
}
}
void main()
{Employee*head,*other;
char c;
head=other=NULL;
cout<<"创建职工信息:"<<endl;
Creat(head);
do
{cout<<"请输入要进行的操作:0.退出;1.查看全部职工信息;2.统计男女职工的人数;3.输入新职工信息;4.删除指定编号的职工;5.删除指定年龄的职工;"<<endl;
cin>>c;
switch(c)
{case'0':break;
case'1':Show(head);break;
case'2':Count(head);break;
case'3':Insert(head);break;
case'4':Delete1(head);break;
case'5':Delete2(head,other);break;
default:cout<<"输入错误!"<<endl;break;
}
cout<<"继续吗?(Y/N)"<<endl;
cin>>c;
}while(c=='Y');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -