c和c++的一些训练题(14)(公司工资管理系统)(多态)
2015-03-26 17:42
393 查看
问题的提出:编写一个小公司的工资管理系统。该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。要求存储并显示每类人员的编号(从100起编号)、姓名和月薪,同时给出在创建每一类对象时构造函数的执行顺序(月薪计算方法为:经理固定月薪8000元,兼职技术人员100元/小时,销售员为当月销售额的4%,销售经理保底工资5000元另加其所管部门销售额的5%),要求用虚函数实现。
代码:
结果:
代码:
// virtual_.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; const int pt=100;//兼职人员时薪 class Employee { protected: char *name; int num; int salary; static int totalnum; public: //virtual void pay()=0; virtual void display()=0; Employee(){cout<<"***************************************"<<endl;} virtual ~Employee(){} }; int Employee::totalnum=100; class Manager:virtual public Employee { public: Manager() { char *n=new char[256]; int no; int w=8000; cout<<"请输入经理的姓名:"; cin>>n; name = n; salary=w; no=totalnum; num=no; totalnum++; //cout<<"经理的工资为:"<<salary<<endl; } //void pay() //{ // //} void display() { cout<<"经理的姓名为:"<<name<<endl; cout<<"经理的工号为:"<<num<<endl; cout<<"经理的工资为:"<<salary<<endl; cout<<"***************************************"<<endl; } protected: int wage; }; class Parttime:virtual public Employee { public: Parttime() { char *n=new char[256]; int no; int t; cout<<"请输入兼职人员的姓名:"; cin>>n; cout<<"请输入兼职人员工作的小时数:"; cin>>t; name = n; time=t; salary=time*pt; no=totalnum; num=no; totalnum++; //cout<<"经理的工资为:"<<salary<<endl; } //void pay() //{ // //} void display() { cout<<"兼职人员的姓名为:"<<name<<endl; cout<<"兼职人员的工号为:"<<num<<endl; cout<<"兼职人员的工资为:"<<salary<<endl; cout<<"***************************************"<<endl; } protected: int time; }; class Salesperson:virtual public Employee { public: Salesperson() { char *n=new char[256]; int no; int t; cout<<"请输入销售员的姓名:"; cin>>n; cout<<"请输入销售员的销售额:"; cin>>t; name = n; sales=t; salary=sales*(0.04); no=totalnum; num=no; totalnum++; //cout<<"经理的工资为:"<<salary<<endl; } //void pay() //{ // //} void display() { cout<<"销售员的姓名为:"<<name<<endl; cout<<"销售员的工号为:"<<num<<endl; cout<<"销售员的工资为:"<<salary<<endl; cout<<"***************************************"<<endl; } protected: int sales; }; class SalesManager:virtual public Employee { public: SalesManager() { char *n=new char[256]; int no; int t; int w=5000; cout<<"请输入销售经理的姓名:"; cin>>n; cout<<"请输入销售经理所在部门的销售额:"; cin>>t; name = n; sales=t; wage=w; salary=sales*(0.05)+w; no=totalnum; num=no; totalnum++; //cout<<"经理的工资为:"<<salary<<endl; } //void pay() //{ // //} void display() { cout<<"销售经理的姓名为:"<<name<<endl; cout<<"销售经理的工号为:"<<num<<endl; cout<<"销售经理的工资为:"<<salary<<endl; cout<<"***************************************"<<endl; } protected: int wage; int sales; }; int _tmain(int argc, _TCHAR* argv[]) { Manager a; Parttime b; Salesperson c; SalesManager d; Employee *em[4]={&a,&b,&c,&d}; for(int i=0; i<4; i++) { em[i]->display(); } system("pause"); return 0; }
结果:
相关文章推荐
- c和c++的一些训练题(9)(学生成绩管理系统)
- c++工资管理系统
- c++程序课程设计的内容--职工工资管理系统
- C++课程设计 — 公司设备管理系统
- C++实现企业职工工资管理系统
- 使用mvvm框架avalon开发公司内部运营管理系统的一些心得
- C++实习报告 小型公司管理系统
- 【c++面向对象编程】工资管理系统
- C++ 课设 职工工资管理系统
- C++实现员工工资管理系统
- C++面向对象,泛型编程 文件流综合应用-公司员工管理系统
- c++实训报告之高校工资管理系统
- c++项目 ——公司管理系统
- 走进C++程序世界---------雇员工资管理系统
- c++ 课程设计 ——公司设备管理系统
- 用C++编写一个简单的员工工资管理系统~
- C++工资管理系统
- (C++)员工工资管理系统
- 简易学生成绩管理系统(c++)
- 奉献个公司计算机系统使用管理条例