源代码下载
 实验二:某工厂有一名老板Boss,及若干工人。工人分为小时工HourlyWorker、计件工PieceWorker、销售员CommissionWorker。小时工每周工作40小时,超过40小时部分的报酬是平时的1.5倍;计件工是按生产的工件计算报酬的,每件的报酬是固定的,假设他只生产一种类型的工件;销售员每周有小部分固定的基本工资加上每周销售额的固定百分比;老板每周有固定的薪水。为该工厂设计一个简单的当前周的工资管理信息系统。要求如下:

1.设计实现一个简单的类Employee,它存储雇员的工号、姓(成员firstName)和名(成员lastName)。从雇员类Employee派生出小时工类HourlyWorker、计件工类PieceWorker、销售员类CommissionWorker及老板类Boss

2.设计实现一个工厂类(Factory),它存储工厂名(factoryName)、工厂中的员工人数(含老板)等信息。及一个Employee指针数组存放工厂的所有员工信息。

3.可以增加一名工人。增加工人时,根据工人的类别,输入相应的信息。如增加的是小时工,则需要输入该小时工的工号、姓、名、本周工作小时数及每小时工资额等信息。

4.可以根据工号删除一名工人

5.可以根据工号修改工人的信息

6.可以显示出所有员工的本周工资信息

7.显示出一些统计信息,如本周支付所有员工的工资总额;小时工的工资总额、最高、最低、平均工资;计件工的工资总额、最高、最低、平均工资;销售员的工资总额、最高、最低、平均工资
-----------------------------------------------------------------------------------

/***************************
*  雇员类
**************************
*/


class Employee
{
private:
    
int workNo;//工号
    string firstName;
    
string lastName;
public:
    Employee(
int iworkNo,string cfirstName,string clastName);
    
~Employee();
    
virtual void Show();//显示员工信息
    virtual double Salary()=0;//员工工资计算
    virtual void ModifySpecial()=0;//不同员工特有的参数
    void Modify(int id);
    
int RworkNo(int workno);//工号配对
}
;

/****************************
*   工厂类
***************************
*/


class Factory
{
private:
    
string factoryName;
    
int  employeeNum;            //包括老板
    Employee* pEmployee[1000];    // 存放工厂所有员工信息
public:
    Factory(
string cfactoryName);
    
~Factory();
    
void AddWorker(int id);                //增加一个员工
    void DeleteWorker(int workno);        //删除一个员工
    void ModifyWorker(int workno);        //修改员工信息
    void ShowInfo();                    //显示员工信息
    
    
void TotalSalary();            //计算总工资
    void HighSalary();            //最高工资
    void LowSalary();            //最低工资
    void AverageSalary();        //平均工资
}
;

欢迎下载,提供建议或意见!有很多不尽人意的地方!源代码下载最好给出问题的提示性解决方法额!

选项输入字母而不是数字会出现循环,可以通过char-'0'来解决,但似乎很麻烦,有更好的方法吗?
周波同学这样设计
RunMode _Mode;
/*判断*/
switch(_Mode){
  case ModifyWorkerNumber :
}
俺觉得不错!采用