[试题]

试题五(共15分)

阅读以下说明和C++代码,填补C++代码中的空缺(1)~(6),将解答写在答题纸的对应栏内。

(说明)

已知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按52周计算);另一些员工是计时工,以小时工资为基准,按每周工作小时数核算发放。

下面是实现该工资系统的C++代码,其中定义了四个类:工资系统类PayRoll,员工类Employee,正式工类Salaried和计时工类Hourly,Salaried和Hourly是Employee的子类。

(C++代码)

//头文件和域名空间略

const int EMPLOYEE_NUM=5;

class Employee{

protected:

int empCode; ∥员工号

string name; ∥员工姓名

double salary; ∥周发放工资

public:

E.mployee( const int empCode, const string &name){

this->empCode= empCode; this->name= name;

}

virtual~Employee(){}

virtual void pay()=0;

double getSalary(){ return this->salary; }

};

class Salaried (1){

private: double payRate; //年薪

public:

Salaried(const int empCode,const string &name,double payRate)

:Employee(empCode,name){

this->payRate= payRate;

}

void pay(){

this->salary=(2) ;//计算正式员工的周发放工资数

cout<<this->name<<":"<<this->salary<<endl;

}

};

class Hourly (3) {

private:

double payRate; //小时工资数

int hours; //周工作小时数

public:

H.ourly(const int empCode, const string &name, int hours, double payRate)

:Employee(empCode,name){

this->payRate= payRate; this->hours= hours,

}

void pay(){

this->salary= (4) ;//计算计时工的周发放工资数

cout<<this->name<<":"<<this->salary<<endl;

}

};

class PayRoll{

public:

void pay(Employee* e[]){

for (int i=0;i<EMPLOYEE_ NUM; i++){

e[i]->pay();

}

}

};

int main(){

PayRoll* payRoll= new PayRoll;(5)employees[EMPLOYEE_ NUM]={

new Salaried(l00l,"Zhang San", 58000.00),

//此处省略对其他职工对象的生成

new Hourly(1005,"L1", 12, 50.00),

};

payRoll->pay ( (6) );

double total= 0.0;

for (int i=0;i< EMPLOYEE_NUM; i++)

{ total+=employees[il->getSalary(); } //统计周发放工资总额

cout<<"总发放额="<<total<<endl;

delete payRoll; retum 0;

}

参考答案与解析:

相关试题

试题六(共15分)阅读以下说明和Java代码,填补Java代码中的空缺(1)~(

[试题]试题六(共15分)阅读以下说明和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对应栏内。(说明)己知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按52周计算);另一些员工是计时工,以小时工资为基准,按每周工作小时数核算发放。下面是实现该工资系统的Java代码,其中定义了四个类:工资系统类PayRoll,员工类Employee,正式工类Salaried和计时工类Hourly,Salaried和Hou

  • 查看答案
  • 试题五(共 15分) 阅读以下说明和C£«£«代码,将应填入 (n) 处的字句写

    [试题]试题五(共 15分)阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。(说明)已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。四个方法的含义分别为:void addElement(Object): 在列表尾部添加一个对象;Object lastElement(): 返回列表尾部对象;int numberOfElement(): 返回

  • 查看答案
  • 试题五(共 15分) 阅读以下说明和C£«£«代码,将应填入 (n) 处的字句写

    [试题]试题五(共 15分)阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。(说明)已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:void addElement(Object): 在列表尾部添加一个对象;Object lastElement(): 返回列表尾部对象;int numberOfElement(): 返回列

  • 查看答案
  • 试题五(共15分) 阅读以下说明和 C£«£«代码,将应填入 (n) 处的语句或

    [试题]试题五(共15分)阅读以下说明和 C++代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。(说明)某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前 30%的学生。(C++代码)#include <iostream>#include <fstream>#include <string>using namespace std;class Student {p

  • 查看答案
  • 试题五(共 15分) 阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题

    [试题]试题五(共 15分)阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。(说明)在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:(C代码 1)是李工为了在嵌入式平台上开发一段可变参数函数,在X86 平台上实现的一个参数个数可变函数实例。(C代码 2)是王工在编写软件时,自己编写的内存拷贝函数。(C代码 3)是赵工编写的一段数据处理的程序,其中 fun()的含义为从已创建的一个单向链表中查找倒数第index 个节点。他的设计思路为:首

  • 查看答案
  • 试题二(共 15 分) 阅读以下说明和 C 程序代码,将应填入 (n) 处的字句

    [试题]试题二(共 15 分)阅读以下说明和 C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]下面 C 程序代码的功能是:对于输入的一个正整数 n(100≤n<1000) ,先判断其是否是回文数(正读反读都一样的数) 。若不是,则将 n 与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278 不是回文数,其反序数为 872,相加后得到的 1150还不是回文数,再将 1150 与其反序数 511

  • 查看答案
  • 试题四(共15 分) 阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答

    [主观题]试题四(共15 分)阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答题纸的对应栏内。(说明)某应用中需要对100000 个整数元素进行排序,每个元素的取值在 0~5 之间。排序算法的基本思想是:对每一个元素 x,确定小于等于 x的元素个数(记为m),将 x放在输出元素序列的第m 个位置。对于元素值重复的情况,依次放入第 m-l、m-2、…个位置。例如,如果元素值小于等于4 的元素个数有 10 个,其中元素值等于 4 的元素个数有3个,则 4 应该在输出元素序列的第10 个位置、第 9

  • 查看答案
  • 试题二(共15分)阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对

    [主观题]试题二(共15分)阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。(说明1)设在某C系统中为每个字符型数据分配1个字节,为每个整型(int)数据分配4个字节,为每个指针分配4个字节,sizeof(x)用于计算为x分配的字节数。(C代码)#include <stdio.h>#include <string.h>int main(){ int arr[5]={10,20,30};char mystr[]="JustAtest/n";char *ptr

  • 查看答案
  • 阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。[说明]

    [试题]阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。[说明]某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-10表格所示)。表4-10粗略地描述了曲线Ratio(temp)。校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,需要用更多的列表值细致地描述曲线K(temp),如表4-11所示。在表4-11中,各温度值所对应的K值是对表4-10进行线性

  • 查看答案
  • 试题二(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应

    [试题]试题二(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。(说明)如果矩阵A中的元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。(C函数)Int findSaddle(int a[][N],int M),{ /*a表示M行N列矩阵,N是宏定义符号常量量*/int row,colum

  • 查看答案
  • 试题五(共15分)阅读以下说明和C£«£«代码,填补C£«£«代码中的空缺(1)