employee::~employee () {}
void employee::SetName (char* tname) { strcpy(name,tname); }
void employee::SetId (int tid) { id=tid; }
void employee::SetBasicPay (double tbp) { bp=tbp; }
void employee::SetBonus (double tbo) { bo=tbo; }
char* employee::GetName () { return name; }
int employee::GetId () { return id; }
double employee::GetBasicPay () { return bp; }
double employee::GetBonus () { return bo; }
double employee::GetTax () // 缴税为基本工资的5% { return bp*0.05; }
double employee::GetAccumPay () // 实发工资=基本工资+奖金-缴税 { return bp+bo-ta; }
// ************************************************************************ // 管理界面类定义 class EMM {
private:
employee Array[100]; int n; // 员工人数
void InfEmployee (int count); // 显示员工基本信息 public:
EMM (); // 构造函数 ~EMM (); // 析构函数
void AddEmployee (); // 增加新员工 void DeleteEmployee (); // 删除员工 void IndexEmployee (); // 查询员工
void OutputEmployee (); // 打印员工信息 }; // ------------------------------------------------------------------------- // 管理界面的实现 EMM::EMM () { n=0; } EMM::~EMM ()
{}
void EMM::AddEmployee () // 增加新员工 {
char tname[20]; int tid;
double tbp,tbo;
cin >> tname >> tid >> tbp >> tbo; if(n>=50)
cout << \增加员工信息失败!\\n\ else {
Array[n].SetName (tname); Array[n].SetId (tid);
Array[n].SetBasicPay (tbp); Array[n].SetBonus (tbo); } ++n; }
void EMM::DeleteEmployee () // 删除员工 {
int tid; char ch;
cout << \请输入待删除员工的工号: \ cin >> tid;
for (int j = 0; j < n; j++) if (tid == Array[j].GetId()) {
InfEmployee (j);
cout << \请确认是否删除该员工 y/n ? : \ cin >> ch;
if (ch == 'Y' || ch == 'y') {
--n;
cout << \工号\的员工已被删除!\ }
goto loop; }
cout << \该员工\不存在!\ loop:; }
void EMM::IndexEmployee () // 查询员工 {
int i, j, tid; char tname[20];
cout << \请选择查询方式:1、工号 2、姓名 :\ cin >> i; if (i == 1) {
cout << \请输入待查找的员工的工号:\ cin >> tid;
for (j = 0; j < n; j++)
if (tid == Array[j].GetId()) {
InfEmployee (j); goto loop; } }
if (i == 2) {
cout << \请输入待查找的员工的姓名:\ cin >> tname;
for( j = 0; j < n; j++)
if (strcmp(tname,Array[j].GetName()) == 0) {
InfEmployee (j); goto loop; } }
cout << \该员工不存在!\ loop: ; }
void EMM::OutputEmployee () // 打印员工信息 {
cout << \所有员工信息列表:\
cout << \姓名\\t工号\\t基本工资\\t奖金\\t缴税\\t实发工资\ for (int i = 0; i < n; i++) {
cout << Array[i].GetName() << '\\t' << Array[i].GetId() << '\\t';
cout << Array[i].GetBasicPay() << \ cout << Array[i].GetTax() << '\\t' << Array[i].GetAccumPay() < void EMM::InfEmployee (int count) { cout << \姓名: \ cout << \工号: \ cout << \基本工资: \ cout << \奖金: \ cout << \缴税: \ cout << \实发工资: \ } // ********************************************************************* // 界面信息 void Infor () { cout << \欢迎使用数学计算机学院教师工资管理系统===\ cout << \:增加新员工\ cout << \:删除员工\ cout << \:查询员工\ cout << \:打印员工信息 \ cout << \:退出系统\ cout << \请选择您的功能操作:\ } // --------------------------------------------------------------------- int main() { EMM a; int i=0, c=1; while (1) { Infor(); cin >> i; system(\ cout << endl; switch(i) { case 0: int count; cout << \请输入要添加新员工的人数n: \ cin >> count; cout << \序号 姓名 工号 基本工资 奖金\ while (count--) { cout << \ a.AddEmployee(); ++c; } cout << \成功增加员工信息!\\n\ break; case 1: a.DeleteEmployee(); break; case 2: a.IndexEmployee(); break; case 3: a.OutputEmployee(); break; case 4: exit(1); break; default: cout << \选择错误!\ break; } system(\ system(\ } return 0; }