#include
#include
#include //包含清屏、退出程序函数。
#include //备份数据
#include
class Employee
{
public:
friend class worker;
void shanchu() {*name=*sex=0;number=age=0;}
Employee() {next=0;}
virtual void print()=0;
void input()
{
cout<<"员工号:"<<" "
<<"姓名:"<<" "
<<"性别:"<<" "
<<"年龄:"< cin>>number>>name>>sex>>age; /*说明此处没用setw()函数,只用空格符号分开来。所以------*/
}
protected: //不能使用私有成员
int number,age;
char name[20],sex[10];
Employee *next;
};
class technician:virtual public Employee
{
public:
technician() {}
virtual void shanchu() {*name=*sex=0;number=age=hour=0;pay1=0;}
void wage() { pay1=100*hour;}
virtual void print()
{
wage();
cout<<"技术员员工号:"<
<<"姓名:"< <<"性别:"< <<"年龄:"< <<"工资:"< }
void input()
{
Employee::input();
cout<<"工作时间(以小时计算)"< cin>>hour;
}
protected:
int hour,pay1;
};
class manager:virtual public Employee
{
public:
friend class SM;
manager() {}
virtual void shanchu() {*name=*sex=0;number=age=month=0;pay2=0;}
void wage() {pay2=800*month;}
virtual void print()
{
wage();
cout<<"经理的员工号:"<
<<"姓名:"< <<"性别:"< <<"年龄:"< <<"工资:"< }
void input()
{
Employee::input();
cout<<"工作时间(以月份计算)"< cin>>month;
}
protected:
int month,pay2;
};
class seller:virtual Employee
{
public:
friend class SM;
seller() {}
virtual void shanchu()
{*name=*sex=0;number=age=0;salesvolume=pay3=0;} //salesvolume表示销售额
void wage() {pay3=salesvolume*0.04;}
void input()
{
Employee::input();
cout<<"销售额为(以人民币计算)"<
cin>>salesvolume;
}
virtual void print()
{
pay3=salesvolume*0.04;
cout<<"销售员员工号:"< <<"姓名:"< <<"性别:"< <<"年龄:"< <<"工资:"<}
protected:
double salesvolume, pay3;
};
class SM:public manager,public seller
{
public:
friend class worker;
SM() {}
virtual void shanchu() {*name=*sex=0;number=age=0;total=pay4=0;}
void wage()
{
pay4=5000+(total)*0.005;
}
void input()
{
Employee::input();
cout<<"销售总额为(以人民币计算):"<
cin>>total;
}
virtual void print()
{
wage();
cout<<"销售经理员工号:"< <<"姓名:"< <<"性别:"< <<"年龄:"< <<"工资:"<protected:
double total,pay4;
};
class worker
{
public:
technician *pa;
seller *pb;
manager *pc;
SM *pd;
Employee *p;
Employee *p1; /* int number,age,hour,month;salemoney;char *name,*sex; 重复定义*/
worker()
{
Employee *p=new technician;p1=p;
}
void add();
void output(); //不能用print() 二义性
void find();
void change();
void del(); //不能使用关键字delete
void save();
};
void worker::add()
{
int a;
Employee *p=p1;
while(p->next)
p=p->next;
cout<<"请选择您所想输入员工的岗位代码,再进行操作.谢谢合作!"< cout<<"1.技术员 2.销售员 3.经理 4.销售经理"< cin>>a;
switch(a)
{
case 1:
cout<<"技术员数据:"< pa=new technician;
pa->input();
p->next=pa;
break;
case 2:
cout<<"销售员数据:"< pb=new seller;
pb->input();
p->next=pb;
break;
case 3:
cout<<"经理数据:"< pc=new manager;
pc->input();
p->next=pc;
break;
case 4:
cout<<"销售经理数据:"< pd=new SM;
pd->input();
p->next=pd;
break;
default:
cout<<"对不起!你所选的操作错误,请重新做作!"< }
}
void worker::output()
{
Employee *p=p1;
if(!p)
{
cout<<"无职工记录或者记录已清除!"< return;
}
while(p)
{
p->print();
p=p->next;
}
}
void worker::find()
{
Employee *p=p1;
if(!p)
{
cout<<"无职工记录或者记录已清除!"< return;
}
cout<<"请输入该员工的员工号:"< int b;
cin>>b;
for(p;p=p->next;)
{
if(p->number==b)
{
cout<<"您好,该员工已找到."< p->print();
break;
}
}
if(!p)
{
cout<<"对不起!无该员工数据,请重新操作."< }
}
void worker::change()
{
Employee *p=p1;
if(!p)
{
cout<<"无职工记录或者记录已清除!"< return;
}
cout<<"请输入该员工的员工号:"< int c;
cin>>c;
for(p;p=p->next;)
{
if(p->number==c)
{
cout<<"该员工的原数据是"< p->print();
cout<<"请输入你想修改的数据"< p->input();
cout<<"恭喜您,修改成功!"< break;
}
}
if(!p)
{
cout<<"对不起!无该员工数据,请重新操作."< }
}
void worker::del()
{
Employee *p=p1;
if(!p)
{
cout<<"无职工记录或者记录已清除!"< return;
}
cout<<"请输入该员工的员工号:"< int d;
cin>>d;
for(p;p=p->next;)
{
if(p->number==d)
{
cout<<"您好,删除成功!"< p->shanchu();
break;
}
}
if(!p)
{
cout<<"对不起!无该员工数据,请重新操作."< }
}
void worker::save()
{
char sh;
ifstream f1("F:\\ccx1.cpp");
if(!f1)
{
cout<<"cannot openf1for input";
abort();
}
ofstream f2("F:\\ccx.cpp");
if(!f2)
{
cout<<"cannot open f2 output";
abort();
}
while(f1.get(sh))
f2.put(sh);
f1.close();
f2.close();
cout<<"您好,您的数据已成功备份在F盘ccx.cpp文件中"<}
void main()
{
MessageBox(0,"欢迎使用本程序!!"," ",0); //包含在#include头文件里
cout<<"请输入密码(plaese input the pass word):"< int e;
cin>>e;
if(e==19871121)
{
cout<<" ********欢迎进入本公司工资管理系统****** "< worker w;
int f=1;
while(f)
{
cout<<"以下是菜单选项,请选择!"< cout<<"1.输入成员数据"< cout<<"2.输出成员数据"< cout<<"3.查找成员数据"< cout<<"4.修改成员数据"< cout<<"5.删除成员数据"< cout<<"6.清屏成员数据"< cout<<"7.备份成员数据"< cout<<"8.退出程序"< int g;
cin>>g;
switch(g)
{
case 1:
w.add();
break;
case 2:
w.output();
break;
case 3:
w.find();
break;
case 4:
w.change();
break;
case 5:
w.del();
break;
case 6:
system("cls");
break;
case 7:
w.save();
break;
case 8:
exit(1);
default:
cout<<"对不起!你所选的操作错误,请重新做作!"< }
}
}
else
{
cout<<"密码错误,系统将自动关闭!"< exit(1);
}
}
阅读(1472) | 评论(1) | 转发(0) |