某处工人有两种计算周薪的方式:
- 计时
- 计薪
工人的薪金等级以 小时工资额划分:是在工人对象产生时确定
- 计时工人的 薪金等级 分为
10
、20
和40
US$/hour 三个等级; - 计薪工人的 薪金等级 ,分为
30
和50
US$/hour 两个等级。
不同类别和等级工人的周薪计算方法不同。
计时工人周薪的计算方法是:
如果每周的工作时数( hours )在40
以内
周薪 = 小时工资额 × 实际工作时数
如果每周的工作时数(hours)超过40
周薪=小时工资额×40+1.5×小时工资额×(实际工作时数–40)。
而计薪工周薪的计算方法是:
如果每周的实际工作时数不少于 35 小时,则按 40 小时计周薪(允许有半个工作日的事 / 病假),超出 40 小时部分不计薪
周薪 = 小时工资额 × 40
如果每周的实际工作时数少于 35 小时(不含 35 小时)
周薪 = 小时工资额×实际工作时数 + 0.5 × 小时工资额 × (35 - 实际工作时数 ) 。
编写测试类进行测试。
其中可能用到的名称:
计时工人类HourlyWorker
和 计薪工人类 SalariedWorker
。每名工人都具有姓名name
、 年龄 age
、 性别sex
和 小时工资额pay_per_hour
等属性;
周薪计算成员函数 void Compute_pay (double hours )
,(其中参数hours
为每周的实际工作时数)和用于显示工人的基本信息的toString
函数 。
这是我敲的注释最详细的Java代码了,痛哭流涕。
下面附图,并附源码:
代码结构:
结构图
实现代码截图:
代码图
GitHub源码: WorkerTest.java
测试执行结果:
测试结果
GitHub源代码:workersalary
Worker基类:
Worker
时薪工人类:
HourlyWorker
计时工人类:
SalariedWorker
测试类:
WorkerTest
运行截图:
运行截图