三、綜合應用題
使用VC6打開考生文件夾下的工程kt10_3,此工程包含一個源程序文件kt10_3.cpp,其中定義了用于表示雇員信息的CEmployee類與表示公司信息的Company類,但這兩個類的定義并不完整。請按要求完成下列操作。
。1)定義Cemployee類的私有數據成員name(大小為50的字符數組)和pay(double型數據),分別用于記錄雇員姓名和月薪。請在注釋“//**1**”之后添加適當的語句。
。2)完成Company類默認構造函數的定義,該構造函數將n值賦值給私有成員num,并完成指針emp所指的n個Cemployee對象空間的申請,請在注釋“//**2**”之后添加適當的語句。
(3)完成Company類成員函數voidCompany::add(intcode,charname[50],doublepay)的定義,該函數將某一雇員的編號code、姓名name及月薪pay輸入到公司信息中。請在注釋“//**3**”之后添加適當的語句。
(4)完成Company類成員函數voidCompany::print()的定義,使其以"_ispaid_RMBforonemonth"的格式輸出公司內所有員工的月薪信息。請在注釋“//**4**”之后添加適當的語句。
注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。
源程序清單如下:
#include<iostream.h>
#include<string.h>
classCEmployee
{ public:
voidputname(charn[50]){strcpy(name,n);}
voidgetname(charn[50]){strcpy(n,name);}
voidputpay(doubled){pay=d;}
doublegetpay(){returnpay;}
private:
//**1** };
classCompany
{ private:
CEmployee*emp;
intnum;
public:
Company(intn);
voidadd(intcode,charname[50],doublepay);
voidprint(); };
Company::Company(intn)
{ //**2** }
voidCompany::add(intcode,charname[50],doublepay)
{ //**3** }
voidCompany::print()
{ //**4**
for(inti=0;i<num;i++)
{ (emp+i)->getname(c);
money=(emp+i)->getpay();
cout<<c<<"ispaid"<<money<<
"RMBforonemonth"<<endl; } }
voidmain()
{ Companycom(2);
com.add(0,"Jack",200);
com.add(1,"Lee",300);
com.print(); }
【參考答案】
。1)char name[50];
double pay;
。2)num=n;
emp=new CEmployee[num];
(3)(emp+code)->putname(name);
(emp+code)->putpay(pay);
。4)char c[50];
double money;
【試題解析】
本題考查類成員的定義、類成員函數的定義與調用、對象數組的使用。注意指針和動態(tài)申請空間new的使用方法。使用指針調用成員應該用"->"符號,new的返回值是指針類型的。
相關推薦:計算機等級考試二級C++模擬試題15套(上機)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |