某公司每月按照员工工作时长发工资,本单位规定员工的基本工作量为160小时/月,工资计算方法为:时长小于等于160小时,每小时按30元计算;时长小于等于200小时,超出部分按照每小时35元计算;时长超出200小时,200小时以内按照以上规则计算,超出200小时部分按照每小时40元计算。要求:从键盘输入员工的工作时间值,根据输入的值计算出本员工应发放的工资。
2.2参考代码如下:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//salary代表应发工资,time代表工作时间
double time = 0,salary = 0;
System.out.print("请输入员工的工作时间(小时):");
Scanner sc = new Scanner(System.in);
time = sc.nextDouble();
if(time < 0) {
System.out.print("输入时间数据错误,请重新输入:");
time = sc.nextDouble();
}
if (time > 0 && time <= 160) {
salary= time *30;
} else if (time > 160 && time <= 200) {
salary = 160*30 + (time - 160)*35;
} else {
salary = 160*30 + 40*35+(time - 200)*40;
}
System.out.println("本员工应发工资为:" + salary);
}
}
2.3测试用例:(其他合理数据均给分)
用例 | 预期结果 |
1、输入的时间为负数:-8 | 提示错误,重新输入 |
2、输入140 | 输出4200 |
3、输入160 | 输出4800 |
4、输入190 | 输出5850 |
5、输入200 | 输出6200 |
6、输入230 | 输出7400 |
根据以上用例,写出测试结果的分析与总结