【发布时间】:2018-05-01 15:25:36
【问题描述】:
我在使用 Java 方法时遇到问题。这段代码应该有三种方法。方法 1) 输入员工人数。方法 2) 输入每位员工的缺勤天数。方法 3) 计算平均缺勤天数。然后,在 Main 中,应打印员工人数、缺勤天数和平均缺勤天数。显然,我不明白方法是如何工作的,因为当我运行代码时,在提供员工数、缺勤天数和平均缺勤天数之前,用户会被询问 4 倍的员工人数和 2 倍的员工缺勤天数缺席的日子。如何更改代码以便用户只需要输入一次信息?
public static void main(String[] args) {
/** Asks for the # of employees and their days absent using
3 methods. 1) Requests number of employees, 2) # of days absent, 3)
Average # of days absent)*/
int numEmployeeM, numDaysMissedM;
double averageNumDaysAbsentM;
numEmployeeM = numEmployee();
numDaysMissedM = numDaysMissed(numEmployeeM);
averageNumDaysAbsentM = averageNumDaysAbsent(numEmployeeM,
numDaysMissedM);
System.out.println("\n\tTotal number of employees: " + numEmployeeM +
"\n\tTotal number of days missed: " + numDaysMissedM +
"\n\tAverage number of days absent: " + averageNumDaysAbsentM);
}
public static int numEmployee() {
Scanner keyboard = new Scanner(System.in);
int numEmployee;
System.out.print("Number of employees in company:");
numEmployee = keyboard.nextInt();
return numEmployee;
}
public static int numDaysMissed(int numEmployee1) {
Scanner keyboard = new Scanner(System.in);
int count, numDaysMissed, totalNumDaysMissed;
count = 1;
totalNumDaysMissed = 0;
numEmployee1 = numEmployee();
while (count <= numEmployee1) {
System.out.print("Enter number of days missed by Employee #"
+ count + ": ");
numDaysMissed = keyboard.nextInt();
totalNumDaysMissed += numDaysMissed;
count++;
}
return totalNumDaysMissed;
}
public static double averageNumDaysAbsent(int numEmployee2,
int totalNumDaysMissed1) {
double averageDaysMissed;
numEmployee2 = numEmployee();
totalNumDaysMissed1 = numDaysMissed(numEmployee2);
averageDaysMissed = (totalNumDaysMissed1 / numEmployee2);
return averageDaysMissed;
}
【问题讨论】:
-
我不太明白您想做什么...您只想显示所有员工的总缺勤天数的统计信息,或者您想对所有员工及其天数进行登记工作/错过?
-
我只想显示所有员工的总缺勤天数、员工人数以及所有员工的平均缺勤天数。
-
@user3120754 我想从主要方法中显示所有员工的总缺勤天数、员工人数和所有员工的平均缺勤天数。
-
另外,请注意,您也可以在 glocal 中定义一次
Scanner keyboard = new Scanner(System.in);,而不是在每个请求用户输入的方法中重新定义类。
标签: java methods parameter-passing