目的:"使用以下数组作为字段编写工资单类: employeeID:包含员工标识号的七个整数数组。阵列应该是 用以下数字初始化:568845,4520125,7895122,8777541,8451277,1302850, 7580489 hours:一组七个整数,用于保存每位员工的工作小时数。 payRate:七个双倍的数组,用于保存每位员工的小时工资率 工资:一组七个双打来保存每个员工的工资总额。 该类应该通过subscipts关联每个数组中的数据。该类应该有一个方法 接受员工的身份证号码作为参数并返还总薪酬 。雇员"
使用Grosspay方法设置/获取方法:
public class Payroll{
private int [] employeeID ={5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};
private int [] hours = new int [7];
private double [] wages = new double [7];
private double [] payRate = new double [7];
public void setEmployeeID(int a, int emp){
employeeID[a] = emp;
}
public void setHours(int a, int hr){
hours[a] = hr;
}
public void setWages(int a, int wgs){
wages[a] = wgs;
}
public void setPayrate(int a, int prt){
payRate[a] = prt;
}
public int getEmployeeID(int a){
return employeeID[a];
}
public int getHours(int a){
return hours[a];
}
public double getWages(int a){
return wages[a];
}
public double getPayrate(int a){
return payRate[a];
}
public void Grosspay(){
for(int a = 0; a < 7; a++){
wages[a] = hours[a] * payRate[a];
}
}
}
执行所有操作的地方:
import java.util.Scanner;
public class TestPayroll{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
Payroll pr = new Payroll();
int hr;
double prt;
for (int a = 0; a < 7; a++){
System.out.println("Enter in the hours worked by employee " + pr.getEmployeeID(a));
hr = in.nextInt();
pr.setHours(a,hr);
while(hr < 0){
System.out.println("Enter in a number greater than 0");
hr = in.nextInt();
pr.setHours(a,hr);
}
System.out.println("Enter in the pay rate for employee " + pr.getEmployeeID(a));
prt = in.nextDouble();
while(prt < 6.00){
System.out.println("Enter in a payrate greater than 6.00");
prt = in.nextDouble();
}
}
pr.Grosspay();
for(int a = 0; a < 7; a++){
System.out.println("Employee " + pr.getEmployeeID(a) + " has a gross pay of " + pr.getWages(a));
}
}
我运行程序,一切正常,除非它打印出工资。而不是工资是小时[a] * payRate [a]的结果,它打印出0.0。我认为Grosspay方法可能不会像我认为的那样运作。或者可能是我设置了工资[a] = wgs但是代码中没有使用wgs,因此没有任何内容存储在工资数组中。那么我的代码有什么问题,正在打印0.0?任何帮助表示赞赏。
答案 0 :(得分:0)
试试这个
<强> Payroll.class 强>
private int [] employeeID ={5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};
private int [] hours = new int [7];
private double [] wages = new double [7];
private double [] payRate = new double [7];
public void setEmployeeID(int a, int emp){
employeeID[a] = emp;
}
public void setHours(int a, int hr){
hours[a] = hr;
}
public void setWages(int a, int wgs){
wages[a] = wgs;
}
public void setPayrate(int a, double prt){
payRate[a] = prt;
}
public int getEmployeeID(int a){
return employeeID[a];
}
public int getHours(int a){
return hours[a];
}
public double getWages(int a){
return wages[a];
}
public double getPayrate(int a){
return payRate[a];
}
public void Grosspay(){
for(int a = 0; a < 7; a++){
wages[a] = hours[a] * payRate[a];
}
}
Main.class
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Payroll pr = new Payroll();
int hr,wgs = 0;
double prt;
for (int a = 0; a < 7; a++){
System.out.println("Enter in the hours worked by employee " + pr.getEmployeeID(a));
hr = 1;
pr.setHours(a,hr);
while(wgs <= 0){
System.out.println("Enter in a number greater than 0");
wgs = 1;
pr.setWages(a,wgs);
}
System.out.println("Enter in the pay rate for employee " + pr.getEmployeeID(a));
prt = 1;
while(prt < 6.00){
System.out.println("Enter in a payrate greater than 6.00");
prt = 7;
pr.setPayrate(a,prt);
}
}
pr.Grosspay();
for(int a = 0; a < 7; a++){
System.out.println("Employee " + pr.getEmployeeID(a) + " has a gross pay of " + pr.getWages(a));
}
}