設計某IT教育研發中心的工資管理系統,該中心主要有3類人員:經理、銷售員和銷售經理。要求
閱讀以下說明和C++程序,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
設計某IT教育研發中心的工資管理系統,該中心主要有3類人員:經理、銷售員和銷售經理。要求存儲這些人員的編號、姓名和月工資,計算月工資并顯示全部信息。月工資計算辦法是:經理拿固定月薪8000元;銷售員拿固定工資1000元,然后再按當月銷售額的4%提成;銷售經理既拿固定月工資也領取銷售提成,固定月工資為5000元,銷售提成為所管轄部門當月銷售總額的5‰。
按要求設計一個基類employee,銷售員類salesman,經理類manager,銷售經理類salesmanager.
程序5-1是類employee的模塊內容,程序5-2是類salesman的類模塊內容,程序5-3是類manager的模塊內容,程序5-4是類salesmanager的模塊內容。在主測試程序中,輸入張三所管部門月銷售量10000后的輸出結果如下:
【程序5-1】
#include
#include
classemployee
{
protected:
intno;
char*name;
floatsalary;
public:
employee(intnum,char*ch)
{no=num;
name=ch;
salary=0;}
virtualvoidpay()=0;
virtualvoiddisplay()
{cout《"編號:"《no《endl;
cout《"本月工資:"《salary《endl;}
};
【程序5-2】
classsalesman:(1)
{
protected:
floatcommrate,sales;
public:
salesman(intnum,char*ch):employee(num,ch)
{commrate=0.04;}
voidpay()
{cout《name《"本月銷售額:";
cin》sales;
salary=sales*commrate+1000;}
voiddisplay()
{cout《"銷售員:"《name《endl;
employee::display();}
};
【程序5-3】
classmanager:(1)
{
protected:
floatmonthpay;
public:
manager(intnum,char*ch):employee(num,ch)
{monthpay=8000;}
voidpay()
{salary=monthpay;}
voiddisplay()
{cout《"經理:"《name《endl;
employee::display();}
};
【程序5-4】
classsalesmanager:(2)
{
public:
salesmanager(intnum,char*ch):(3)
{monthpay=5000;
commrate=0.005;}
voidpay()
{cout《name《"所管部門月銷售量:";
cin》sales;
(4)}
voiddisplay()
{cout《"銷售經理:"《name《endl;
(5)}
};
voidmain()//主測試函數
{salesmanagerp1(1001,"張三");
p1.pay();
p1.display();
}
正確答案:(1)virtualpublicemployee(2)publicmanager,publicsalesman(3)employee(num,ch),manager(num,ch),salesman(num,ch)(4)salary=monthpay+commrate*sales;(5)employee::display();解析:本題考查類的定義、繼承及虛基類與虛函數的應用。首先我們來看一下基類employee的程序代碼,在基類中構造了一個構造函數和兩個虛函數,其中虛函數display()可以輸出
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫學等領域),建議您咨詢相關領域專業人士。