在我的CS课上,我们遇到了以下问题:
编写一个Java程序,其中包含一个名为pay的方法,该方法接受两个参数:员工小时工资的实数和员工当天工作小时数的整数。该方法应该返回当天向员工支付多少钱。
例如,来电pay(5.50, 6)
应该返回33.0
。
对于1.5
以上的任何小时,员工应获得8
倍正常小时工资的“加班”工资。例如,来电pay(4.00, 11)
应该返回50.0
(计算为(4.00 * 8) + (6.00 *3)
)。
在此程序的main
方法中包含四次调用pay方法。两个调用,每个调用使用上面给出的示例数据和两个调用,每个调用使用您确定的数据。
到目前为止,这是我得到的所有我认为没有的东西:
import java.util.*;
public class Payjava {
//obtain values
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.println(" Wage : ");
double wage = console.nextDouble();
System.out.print(" Hours :");
int hours = console.nextInt();
// compute results
double overtime = 1.5;
double overtime = hours > 8 * (wage * 1.5);
wage = hours * wage;
}
}
答案 0 :(得分:2)
我建议首先将问题分解成小块。 这个问题要求一种计算员工薪酬的方法,因此这似乎是一个合理的起点。该问题为您提供了方法的名称以及应采取的参数:
...一种名为pay的方法,它接受两个参数:员工小时工资的实数和员工当天工作小时数的整数。该方法应该返回当天向员工支付多少钱。
所以你的方法看起来像这样:
public double pay(double hourlyWage, int numberOfHours) {
//TODO: complete
}
然后开始将逻辑添加到方法中 - 从没有加班的简单情况开始,然后返回并添加加班计算。
最后请注意,问题是在main方法中包含对pay方法的四次调用 - 所以你实际上并不需要提示输入。
答案 1 :(得分:0)
代码答案是这样的,
public class PayJava {
public static void main(String[] argv) {
PayJava test = new PayJava();
double pay = test.pay(5.2,5);
System.out.println("Pay 1= " + pay);
pay = test.pay(4.00, 11);
System.out.println("Pay 2= " + pay);
pay = test.pay(5.50, 6);
System.out.println("Pay 3= " + pay);
pay = test.pay(7.50, 14);
System.out.println("Pay 4= " + pay);
}
private double pay(double wage , int hours) {
double overtime= 1.5;
int otHrs = 0;
int regHrs = 0;
if(hours > 8 ) {
regHrs = 8;
otHrs = hours - regHrs;
overtime = (wage*1.5)*otHrs;
} else {
regHrs = hours;
overtime = 0;
}
wage = (wage*regHrs)+overtime;
return wage;
}
}