1.添加员工(若不存在则添加, 存在则提示添加失败)
2.查找员工
3.输出所有员工
4.删除单个员工后输出所有员工和退出操作
代码:
#include <iostream>
#include <iomanip>
using namespace std;
const int MAXN = 2e2 + 10;
void put_welcome(int mode) //输出欢迎界面
{
if(mode == 0)
{
cout<<" **-----------------------------------**"<<endl;
cout<<" * *"<<endl;
cout<<" | 欢迎进入公司职员信息管理系统 |"<<endl;
cout<<" | |"<<endl;
cout<<" | By 张峻溥 |"<<endl;
cout<<" | |"<<endl;
cout<<" * *"<<endl;
cout<<" **-----------------------------------**"<<endl;
}
else if(mode == 1)
{
cout<<endl<<"请选择您的操作:"<<endl<<endl;
cout<<" 1 增加职工信息"<<endl;
cout<<" 2 查找职工信息"<<endl;
cout<<" 3 显示所有职工信息"<<endl;
cout<<" 4 删除职工信息"<<endl;
cout<<" 0 退出"<<endl<<endl;
cout<<"请输入序号 0 - 4:"<<endl;
}
else if(mode == -1)
{
cout<<endl<<"输入错误, 请重新输入。"<<endl<<endl;
}
}
class set_staff //员工类
{
public:
string name; //姓名
int num; //职员号
int wage; //工资
string pos; //职位
set_staff() //构造函数
{
name = "unkown";
num = -1;
wage = -1;
pos = "unkown";
}
}arr[MAXN];
class set_company //公司类
{
public:
int flag;
set_staff *add[MAXN];
void init();
bool oprt();
};
void set_company::init() //初始化员工指针数组
{
for(int i = 0; i < MAXN; i++)
{
add[i] = &arr[i];
}
}
bool set_company::oprt() //公司类的操作函数
{
set_staff unit;
put_welcome(1);
int mode;
bool here;
cin>>mode;
switch(mode)
{
case(0): //退出
return false;
case(1): //添加员工
{
cout<<"请输入职工姓名:";
cin>>unit.name;
cout<<"请输入职工号:";
cin>>unit.num;
cout<<"请输入职工工资:";
cin>>unit.wage;
cout<<"请输入职工职位:";
cin>>unit.pos;
here = false; //查重
for(int i = 0; i < MAXN; i++)
{
if((*add[i]).num == unit.num)
{
here = true;
break;
}
}
if(!here) //不存在,添加
{
cout<<endl<<"添加成功!"<<endl;
arr[flag++] = unit;
}
else //存在, 不添加
{
cout<<endl<<"该职工已经存在,添加不成功。"<<endl;
}
break;
}
case(2): //查找单个员工
{
cout<<"请输入要查找的员工编号:"<<endl;
cin>>unit.num;
here = false;
for(int i = 0; i < MAXN; i++) //查找是否存在
{
if((*add[i]).num == unit.num)
{
cout<<"查找成功,该员工存在!"<<endl<<endl;
cout<<"-------------------------------------------------------------"<<endl;
cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)<<"工资"<<setw(10)<<"职位"
<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)<<(*add[i]).num<<setw(10)<<
(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
cout<<"-------------------------------------------------------------"<<endl<<endl;
here = true;
}
}
if(!here)
cout<<"查找失败,该员工不存在!"<<endl;
break;
}
case(3): //输出所有不为初值的员工单元
{
for(int i = 0; i < MAXN; i++)
{
if((*add[i]).num != -1)
{
cout<<"-------------------------------------------------------------"<<endl;
cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)<<"工资"<<setw(10)<<"职位"
<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)<<(*add[i]).num<<setw(10)<<
(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
cout<<"-------------------------------------------------------------"<<endl<<endl;
}
}
break;
}
case(4): //删除员工
{
int tmp;
cout<<"请输入要删除的职工号:";
cin>>tmp;
for(int i = 0; i < MAXN; i++)
{
if((*add[i]).num == tmp)
{
(*add[i]).num = -1; //若存在, 将该员工删除(赋初值)
cout<<endl<<"删除成功"<<endl;
break;
}
}
break;
}
default: //范围错误
{
put_welcome(-1);
break;
}
}
return true;
}
int main()
{
set_company nynu;
nynu.flag = 0;
nynu.init();
put_welcome(0);
while( nynu.oprt() );//循环输入, 直至退出
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
const int MAXN = 2e2 + 10;
void put_welcome(int mode) //输出欢迎界面
{
if(mode == 0)
{
cout<<" **-----------------------------------**"<<endl;
cout<<" * *"<<endl;
cout<<" | 欢迎进入公司职员信息管理系统 |"<<endl;
cout<<" | |"<<endl;
cout<<" | By 张峻溥 |"<<endl;
cout<<" | |"<<endl;
cout<<" * *"<<endl;
cout<<" **-----------------------------------**"<<endl;
}
else if(mode == 1)
{
cout<<endl<<"请选择您的操作:"<<endl<<endl;
cout<<" 1 增加职工信息"<<endl;
cout<<" 2 查找职工信息"<<endl;
cout<<" 3 显示所有职工信息"<<endl;
cout<<" 4 删除职工信息"<<endl;
cout<<" 0 退出"<<endl<<endl;
cout<<"请输入序号 0 - 4:"<<endl;
}
else if(mode == -1)
{
cout<<endl<<"输入错误, 请重新输入。"<<endl<<endl;
}
}
class set_staff //员工类
{
public:
string name; //姓名
int num; //职员号
int wage; //工资
string pos; //职位
set_staff() //构造函数
{
name = "unkown";
num = -1;
wage = -1;
pos = "unkown";
}
}arr[MAXN];
class set_company //公司类
{
public:
int flag;
set_staff *add[MAXN];
void init();
bool oprt();
};
void set_company::init() //初始化员工指针数组
{
for(int i = 0; i < MAXN; i++)
{
add[i] = &arr[i];
}
}
bool set_company::oprt() //公司类的操作函数
{
set_staff unit;
put_welcome(1);
int mode;
bool here;
cin>>mode;
switch(mode)
{
case(0): //退出
return false;
case(1): //添加员工
{
cout<<"请输入职工姓名:";
cin>>unit.name;
cout<<"请输入职工号:";
cin>>unit.num;
cout<<"请输入职工工资:";
cin>>unit.wage;
cout<<"请输入职工职位:";
cin>>unit.pos;
here = false; //查重
for(int i = 0; i < MAXN; i++)
{
if((*add[i]).num == unit.num)
{
here = true;
break;
}
}
if(!here) //不存在,添加
{
cout<<endl<<"添加成功!"<<endl;
arr[flag++] = unit;
}
else //存在, 不添加
{
cout<<endl<<"该职工已经存在,添加不成功。"<<endl;
}
break;
}
case(2): //查找单个员工
{
cout<<"请输入要查找的员工编号:"<<endl;
cin>>unit.num;
here = false;
for(int i = 0; i < MAXN; i++) //查找是否存在
{
if((*add[i]).num == unit.num)
{
cout<<"查找成功,该员工存在!"<<endl<<endl;
cout<<"-------------------------------------------------------------"<<endl;
cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)
<<"工资"<<setw(10)<<"职位"
<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)
<<(*add[i]).num<<setw(10)<<
(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
cout<<"-------------------------------------------------------------"<<endl<<endl;
here = true;
}
}
if(!here)
cout<<"查找失败,该员工不存在!"<<endl;
break;
}
case(3): //输出所有不为初值的员工单元
{
for(int i = 0; i < MAXN; i++)
{
if((*add[i]).num != -1)
{
cout<<"-------------------------------------------------------------"<<endl;
cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)
<<"工资"<<setw(10)<<"职位"
<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)
<<(*add[i]).num<<setw(10)<<
(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
cout<<"-------------------------------------------------------------"<<endl<<endl;
}
}
break;
}
case(4): //删除员工
{
int tmp;
cout<<"请输入要删除的职工号:";
cin>>tmp;
for(int i = 0; i < MAXN; i++)
{
if((*add[i]).num == tmp)
{
(*add[i]).num = -1; //若存在, 将该员工删除(赋初值)
cout<<endl<<"删除成功"<<endl;
break;
}
}
break;
}
default: //范围错误
{
put_welcome(-1);
break;
}
}
return true;
}
int main()
{
set_company nynu;
nynu.flag = 0;
nynu.init();
put_welcome(0);
while( nynu.oprt() );//循环输入, 直至退出
return 0;
}