源代碼下載
 實驗二:某工廠有一名老板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 :
}
俺覺得不錯!采用