继承与派生的应用3
2013-12-24 15:25
239 查看
/*编写一个程序实现小型公司的工资管理。人员:经理、技术人员、销售员、销售经理。 信息:编号、姓名、月工资信息。经理拿固定工资8000;技术人员每小时100元; 销售员按当月销售额的4%提成;销售经理既拿固定工资5000,又拿销售提成, 销售提成为所在部门销售额的0.5%。 */ #include<iostream> using namespace std; class employee { protected: int ID; char name[10]; double salary; static int ID_NUM; public: employee(){salary=0;ID=ID_NUM++;} void pay(){} void Setname(char *name){strcpy(this->name,name);} int GetID(){return ID;} char *Getname(){return name;} double GetSalary(){return salary;} }; int employee::ID_NUM=1000; class technician:public employee { private: int hours; double hour_rate; public: technician(){hour_rate=100;} void GetHours(int hours){this->hours=hours;} void pay(){salary=hours*hour_rate;} }; class manager:virtual public employee { protected: double month_pay; public: manager(){month_pay=8000;} void pay(){salary=month_pay;} }; class salesman:virtual public employee { protected: double CommRate; double sales; public: salesman(){CommRate=0.04;} void GetSales(double sales){this->sales=sales;} void pay(){salary=sales*CommRate;} }; class salesmanager:public manager,public salesman { public: salesmanager(){month_pay=5000;CommRate=0.005;} void pay(){salary=month_pay+CommRate*sales;} }; int main() { int wt,sale1,sale2; manager P1; technician P2; salesman P3; salesmanager P4; P1.Setname("TOM"); P2.Setname("MARY"); P3.Setname("JACK"); P4.Setname("BOB"); P1.pay(); cout<<"请输入技术人员的工作时间:"; cin >> wt; P2.GetHours(wt); P2.pay(); cout<<"请输入销售员的销售额:"; cin >> sale1; P3.GetSales(sale1); P3.pay(); cout<<"请输入销售经理管辖的部门的销售额:"; cin >> sale2; P4.GetSales(sale2); P4.pay(); cout<<"WorkNum Name Salary Positon"<<endl; cout<<P1.GetID()<<"\t"<<P1.Getname()<<"\t"<<P1.GetSalary()<<"\tmanager"<<endl; cout<<P2.GetID()<<"\t"<<P2.Getname()<<"\t"<<P2.GetSalary()<<"\ttechnician"<<endl; cout<<P3.GetID()<<"\t"<<P3.Getname()<<"\t"<<P3.GetSalary()<<"\tsalesman"<<endl; cout<<P4.GetID()<<"\t"<<P4.Getname()<<"\t"<<P4.GetSalary()<<"\tsalesmanager"<<endl; return 0; }
相关文章推荐
- 继承和派生的应用2
- 飛飛(五十六)班长与学生的信息(继承和派生的应用)
- 继承与派生、运算符的重载、虚函数的应用
- 10-2 继承与派生应用(CPerson类)
- 继承与派生2
- 模块的封装(二):C语言类的继承和派生
- 继承与派生
- 继承在接口中的简单应用
- 第十周实验报告(二)继承和派生
- 作业5.18 类的继承和派生
- C++ 继承派生多态
- 5-1 继承与派生
- C++ --继承和派生
- 5、继承与派生3-类型兼容规则
- 5-1 继承与派生
- 四十一、继承与派生:作用域分辨符
- 5-1 继承与派生
- 第11周 程序阅读——继承和派生(2)
- C++第10/11周项目 继承与派生 【项目5 - 摩托车继承自行车和机动车】(复习新版)
- 第十周阅读程序(2):继承与派生