📄 7_10.cpp
字号:
//7_10.cpp
#include<iostream>
#include<cstring>
#include<iomanip>
#include"employee.h"
using namespace std;
void main()
{
manager ml[4];
technician tl[4];
salesmanager sml[4];
salesman sl[4];
char namestr[20];//输入雇员姓名时首先临时存放在namestr中
employee * emp[16]={&ml[0],&ml[1],&ml[2],&ml[3],
&tl[0],&tl[1],&tl[2],&tl[3],
&sml[0],&sml[1],&sml[2],&sml[3],
&sl[0],&sl[1],&sl[2],&sl[3]};
int i,j;
float sll;
for(i=0;i<4;i++)
{
cout<<"请输入经理的姓名:";
cin>>namestr;
ml[i].SetName(namestr);//设置雇员姓名
}
for(i=0;i<4;i++)
{
cout<<"请输入技术员的姓名:";
cin>>namestr;
tl[i].SetName(namestr);//设置雇员姓名
}
for(i=0;i<4;i++)
{
cout<<"请输入销售经理的姓名:";
cin>>namestr;
sml[i].SetName(namestr);//设置雇员姓名
}
for(i=0;i<4;i++)
{
cout<<"请输入推销员的姓名:";
cin>>namestr;
sl[i].SetName(namestr);//设置雇员姓名
}
for(i=0;i<4;i++)
{
ml[i].promote(4);//经理部门4级
ml[i].pay();//计算ml月薪
char namestr[20]="manager";
ml[i].SetPost(namestr);//设置雇员岗位
}
for(i=0;i<4;i++)
{
cout<<"请输入技术员"<<tl[i].GetName()<<"本月的工作时数:";
int ww;
cin>>ww;//输入tl本月的工作时数
tl[i].SetworkHours(ww);//设置tl本月的工作时数
tl[i].promote(2);//兼职技术人员部门2级
tl[i].pay();//计算tl月薪
char namestr[20]="technician";
tl[i].SetPost(namestr);//设置雇员岗位
}
for(i=0;i<4;i++)
{
cout<<"请输入销售经理"<<sml[i].GetName()<<"所管辖部门本月的销售额:";
cin>>sll;//输入sl所管辖部门本月的销售总额
sml[i].Setsales(sll);//设置sl所管辖部门本月的销售总额
sml[i].pay();//计算sl月薪
sml[i].promote(3);//销售经理部门3级
char namestr[20]="salesmanager";
sml[i].SetPost(namestr);//设置雇员岗位
}
for(i=0;i<4;i++)
{
cout<<"请输入推销员"<<sl[i].GetName()<<"本月的销售额:";
cin>>sll;//输入sl本月的销售额
sl[i].Setsales(sll);//设置sl本月的销售额
sl[i].pay();//计算sl月薪
sl[i].promote(1);//推销员部门1级
char namestr[20]="sales";
sl[i].SetPost(namestr);//设置雇员岗位
}
cout<<setiosflags(ios_base::left)//设置格式左对齐
<<setw(10)<<"职工号"<<setw(10)<<"姓名"
<<setw(10)<<"部门"<<setw(15)<<"岗位"
<<setw(10)<<"工资"<<setw(10)<<"排名"<<endl;
//按工资降序排序
for(i=0;i<15;i++)
{
for(j=i+1;j<16;j++)
{
if(emp[i]->accumPay < emp[j]->accumPay)
{
employee * p;
p=emp[i];
emp[i]=emp[j];
emp[j]=p;
}
}
}
//显示信息
for(i=0;i<16;i++)
{
cout<<setw(10)<<emp[i]->GetindividualEmpNo()<<setw(10)<<emp[i]->GetName()
<<setw(10)<<emp[i]->Getgrade()<<setw(15)<<emp[i]->GetPost()
<<setw(10)<<emp[i]->GetaccumPay()<<setw(10)<<i+1<<endl;
}
//按职工号查询职工信息
cout<<"是否按职工号查询某职工的信息?是(Y/y)否(按任意键):";
char c;
cin>>c;
if(c=='y'||c=='Y')
{
int x,flag=0;
cout<<"请输入要查询职工信息的职工号为:";
loop: cin>>x;
for(i=0;i<16;i++)
{
if(emp[i]->individualEmpNo==x)
{
cout<<setw(10)<<"职工号"<<setw(10)<<"姓名"
<<setw(10)<<"部门级数"<<setw(15)<<"岗位"
<<setw(10)<<"工资"<<setw(10)<<"排名"<<endl;
cout<<setw(10)<<emp[i]->GetindividualEmpNo()<<setw(10)<<emp[i]->GetName()
<<setw(10)<<emp[i]->Getgrade()<<setw(15)<<emp[i]->GetPost()
<<setw(10)<<emp[i]->GetaccumPay()<<setw(10)<<i+1<<endl;
flag=1;
}
if(flag==1)
break;
}
if(flag==0)
{
cout<<"没有这个职工号,请重新输入职工号: ";
goto loop;
}
}
//按职工号修改某职工的信息
cout<<"是否按职工号修改某职工的信息?是(Y/y)否(按任意键):";
cin>>c;
if(c=='y'||c=='Y')
{
int x,flag=0;
cout<<"请输入要修改职工信息的职工号为:";
loopl: cin>>x;
for(i=0;i<16;i++)
{
if(emp[i]->individualEmpNo==x)
{
flag=1;
cout<<"请输入修改后雇员的姓名:";//修改雇员姓名
cin>>namestr;
emp[i]->SetName(namestr);
int x;//修改部门级数
cout<<"请输入修改后部门级数:";
cin>>x;
emp[i]->grade=0;
emp[i]->promote(x);
cout<<"请输入修改后雇员的岗位:";//修改雇员岗位
cin>>namestr;
emp[i]->SetPost(namestr);
int y;//修改雇员月薪
cout<<"请输入修改后雇员月薪:";
cin>>y;
emp[i]->accumPay=y;
//显示修改信息
cout<<setw(10)<<"职工号"<<setw(10)<<"姓名"
<<setw(10)<<"部门"<<setw(15)<<"岗位"
<<setw(10)<<"工资"<<endl;
cout<<setw(10)<<emp[i]->GetindividualEmpNo()<<setw(10)<<emp[i]->GetName()
<<setw(10)<<emp[i]->Getgrade()<<setw(15)<<emp[i]->GetPost()
<<setw(10)<<emp[i]->GetaccumPay()<<endl;
}
if(flag==1)
break;
}
if(flag==0)
{
cout<<"没有这个职工号,请重新输入职工号: ";
goto loopl;
}
}
//按职工号删除某位职工
cout<<"是否按职工号删除某位职工?是(Y/y)否(按任意键):";
cin>>c;
if(c=='y'||c=='Y')
{
int x,flag=0;
cout<<"请输入要删除职工的职工号为:";
cin>>x;
for(i=0;i<16;i++)
{
if(emp[i]->individualEmpNo==x)
{
switch(emp[i]->grade)
{
case 1:
for(j=0;j<4;j++)
if(emp[i]==&sl[j])
{
salesman * p=new salesman;
* p=sl[j];
delete p;
flag=1;
}
break;
case 2:
for(j=0;j<4;j++)
if(emp[i]==&tl[j])
{
technician * p=new technician;
* p=tl[j];
delete p;
flag=1;
}
break;
case 3:
for(j=0;j<4;j++)
if(emp[i]==&sml[j])
{
salesmanager * p=new salesmanager;
* p=sml[j];
delete p;
flag=1;
}
break;
case 4:
for(j=0;j<4;j++)
if(emp[i]==&ml[j])
{
manager * p=new manager;
* p=ml[j];
delete p;
flag=1;
}
break;
}
}
if(flag==1)
break;
}
cout<<"已经删除对象"<<endl;
flag=0;
cout<<"请再输入要删除职工的职工号以确认职工号没有删除:";
cin>>x;
for(i=0;i<16;i++)
if(emp[i]->individualEmpNo==x)
flag=1;
if(flag==1)
cout<<"职工号没有删除"<<endl;
else
cout<<"职工号已经删除"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -