【发布时间】:2014-03-04 19:19:56
【问题描述】:
我的班级作业是这样的: "编写一个使用以下数组作为字段的 Payroll 类:
- employeeID - 包含七个整数的数组,用于保存员工标识号。 该数组应使用以下数字初始化: 5658845 4520125 7895122 8777541 8451277 1302850 7580489
- 小时 - 一个由七个整数组成的数组,用于保存每位员工的工作小时数。
- payRate - 包含七个双精度值的数组,用于保存每位员工的小时工资率。
- 工资 - 包含七个双精度值的数组,用于保存每位员工的总工资。
类应该通过下标关联每个数组中的数据。 例如,hours 数组元素 0 中的数字应该是员工工作的小时数 其标识号存储在employeeID 数组的元素0 中。 同一员工的工资率应存储在 payRate 数组的元素 0 中。 除了适当的访问器和修改器方法之外, 该类应该有一个接受员工身份证号码的方法 作为参数并返回该员工的总工资。
我无法从我创建的程序中传递值。这是课程:
public class moduleArray2
{
final int NUM_EMPLOYEES = 7;
int[] employeeID = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};
int[] hours = new int[NUM_EMPLOYEES];
double[] payRate = new double[NUM_EMPLOYEES];
double[] wages = new double[NUM_EMPLOYEES];
int employee = 0;
double wage = 0;
// setHours method
public void setHours(int[] time)
{
time = hours;
}
// setPayRate method
public void setPayRate(double[] pay)
{
pay = payRate;
}
// setWages method
public void setWage(int[] time, int[] pay)
{
for (int index = 0; index < NUM_EMPLOYEES; index++)
wages[index] = time[index] * pay[index];
}
//getEmployeeID method
public int getEmployeeID(int index)
{
return employee;
}
// getWage method
public double getWage(int index)
{
return wage;
}
}
该程序应该显示每个员工编号并要求用户输入该员工的小时数和工资率。然后它应该显示每个员工的身份证号码和总工资。当我运行该程序时,它只是将所有内容都列为零值,包括员工 ID 号。
import java.util.Scanner;
public class moduleArrayDemo2
{
public static void main(String[] args)
{
final int NUM_EMPLOYEES = 7;
int[] time = new int[NUM_EMPLOYEES];
double[] pay = new double[NUM_EMPLOYEES];
// Create new Scanner object
Scanner keyboard = new Scanner(System.in);
// Create employee object
moduleArray2[] employee = new moduleArray2[NUM_EMPLOYEES];
// A loop that creates objects for each element
for (int i = 0; i < employee.length; i++)
employee[i] = new moduleArray2();
for (int i = 0; i < employee.length; i++)
{
System.out.print("Enter hours for Employee #" + employee[i].getEmployeeID(i) +
": ");
time[i] = keyboard.nextInt();
employee[i].setHours(time);
System.out.print("Enter how much Employee #" + employee[i].getEmployeeID(i) +
" makes per hour: ");
pay[i] = keyboard.nextDouble();
employee[i].setPayRate(pay);
}
for (int i = 0; i < employee.length; i++)
{
System.out.println("Employee #" + employee[i].getEmployeeID(i) +
" Wages: " + employee[i].getWage(i));
}
}
}
我可以在一个简单的程序中创建数组,并且我可以使用创建这些类的实例的程序来创建类。类中的数组......我完全迷失了。如何引用类中的数组来获取程序本身的值?任何反馈或建议将不胜感激!
【问题讨论】:
-
你的二传手落后了。你有
time = hours;,它将方法变量time(在方法执行后不再存在)设置为hours字段的值。您想做相反的事情:将字段hours设置为time变量的值(传递给方法的值)。 -
酷。我继续切换它们,但在创建列表时程序仍然将所有内容读取为零值: for (int i = 0; i
-
你的练习真的是
Write a Payroll class that uses the following arrays as fields吗?您不能创建具有 ID、小时数、工资率和工资字段的 Employee 类吗?我简直不敢相信。 -
我知道,对吧?我成功地创建了那个类,但是类中的数组让我头疼。
-
为什么老师不看软件设计方面的书?很明显,问题需要创建一个包含employeeID、hour、.. 字段的Employee 类。并使用 List
(在大多数情况下比数组好得多)。好的做法应该从一开始就学习。
标签: java