[试题]

试题六(共15分)

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

(说明)

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

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

(Java代码)

abstract class Employee{

protected String name; //员工姓名

protected int empCode; //员工号

protected double salary; //周发放工资

public Employee(int empCode, String name){

this.empCode= empCode;

this.name= name;

}

public double getSalary(){

return this.salary;

}

public abstract void pay();

}

class Salaried (1) Employee{

private double annualSalary;

Salaried(int empCode, String name, double payRate){

super(empCode, name);

this.annualSalary= payRate;

}

public void pay(){

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

System.out.println(this.name+":"+this.salary);

}

}

class Hourly (3) Employee{

private double hourlyPayRate;

private int hours;

H.ourly(int empCode, String name, int hours, double payRate){

super(empCode, name);

this.hourlyPayRate= payRate;

this.hows= hours,

}

public void pay(){

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

System.out.println(this.name+":"+this.salary);

}

}

public class PayRoll{

private (5) employees[]={

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

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

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

};

public void pay(Employee e[]){

for (int i=0;i<e.length; i++){

e[i].pay();

}

}

public static void main(String[] args)

{

PayRoll payRoll= new PayRoll();

payRoll.pay( (6) );

double total= 0.0;

for (int i=0;i<payRoll.employees.length; i++){//统计周发放工资总额

total+=payRoll.employees[i].getSalary();

}

System.out.println(total);

}

}

参考答案与解析:

相关试题

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

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

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

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

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

    [试题]试题六 (共15 分)阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。( 说明 )现需要统计某企业员工的月平均工资,即该企业本月发给员工的工资总和除以员工人数。 假设企业本月发给员工的工资总和为sumSalary,该企业的员工总数为employeeNumber,下面的程序代码计算该企业员工本月的平均工资,其中需要处理employNumber为0的情况。( Java 代码 )import java.util.Scanner;public class JavaMain {s

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

    [试题]试题六(共15分)阅读以下说明和 Java 代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。(说明)某数据文件 students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前 30%的学生。(Java代码)import java.io.*;class Student {private String sNO; //学号private int Credit; //分数public int getCredit(){r

  • 查看答案
  • 阅读以下说明和Java代码,填补空缺。[说明] java.util库中提供了Ve

    [试题]阅读以下说明和Java代码,填补空缺。[说明]java.util库中提供了Vector模板类,可作为动态数组使用,并可容纳任意数据类型。该类的部分方法说明如下所示:方法名 含义add(k) 向vector对象的尾部添加一个元素kremoveElementAt(i) 删除序号为i的元素(vector元素序号从0开始)isEmpty( ) 判断vector对象是否含有元素size( ) 返回vector对象中所包含的元素个数[Java代码]Import ________;public class Ja

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

    [试题]试题八(共15分)阅读以下说明和Java程序代码,将应填入(n) 处的字句写在答题纸的对应栏内。[说明]在下面的 Java 程序代码中,类SalesTicket 能够完成打印票据正文的功能,类HeadDecorator 与FootDecorator 分别完成打印票据的台头和脚注的功能。已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。这是票据的台头!这是票据正文!这是票据的脚注!------------------------这是票据的台头!这是票据的脚注![Java程序代码]publ

  • 查看答案
  • 试题六 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。 (说明) 下

    [试题]试题六阅读以下说明和Java代码,将解答写入答题纸的对应栏内。(说明)下面是一个Applet程序,其功能是输出已定义好的两个变量x和chr。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。import javA.awt.*;(1) import javA.Applet;(2) public class MyApplet implements Applet{int x=10;(3) char chr="R";Label output1;Lab

  • 查看答案
  • 试题六 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。(说明) 下面

    [试题]试题六阅读以下说明和Java代码,将解答写入答题纸的对应栏内。(说明)下面程序的功能是显示已定义的一个3行3列的二维数组每行的元素,并求所有元素的和并输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。public class Array{(1) static (2) main(String args[]){int sum=0;int b[][]={{11,12,13},{21,22,23},{31,32,33}};for(int i=0; (3) i++){System.out.pr

  • 查看答案
  • 试题八 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。 (说明) 下

    [试题]试题八阅读以下说明和Java代码,将解答写入答题纸的对应栏内。(说明)下面的程序中定义了两个方法求自然数1~100的和。具体如下:int sum1(int n);利用循环求1~n的和,int sum2(int n);利用递归方法求和1~n的和;在main()方法中调用这两个方法求1~100的和并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。public class Sum{public static void main (1){//1.调用sum1(int n),求1~100的和/

  • 查看答案
  • 试题八 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。 (说明) 下

    [试题]试题八阅读以下说明和Java代码,将解答写入答题纸的对应栏内。(说明)下面的程序是从命令行输入3个数传递到public static void main(String args[])方法中(如 java IsTriangle 3 4 5),并判断这3个数能否构成三角形的3条边,并显示相应的结果。请在程序的每条横线处填入适当的语句,使程序的功能完整。注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class IsTriangle{public stati

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