В настоящее время я делаю проект в школе, который включает чтение целых чисел из TXT-файла и ввод их в массив. Эти целые числа будут представлять количество продуктов, которые команда производит за год. Затем мне нужно рассчитать среднюю производительность, высоту и т. Д.Создание массива в многочисленных методах?
Все идет хорошо до сих пор, и я знаю, как это сделать, единственное, что я не уверен в том, как заставить массив работать в другие методы, чтобы я мог вычислить среднее значение. Это код, который у меня есть до сих пор. Есть несколько комментариев о меню, которые я еще не закодировал, но, надеюсь, вы можете увидеть, что я хочу сделать, дать пользователю возможность, если они хотят видеть среднюю, самую высокую или наименьшую производительность. Файл, который сканируется, буквально представляет собой только файл .txt с номером на его собственной строке (1 для каждого месяца).
/**
* @author Jack Orr
* @version 1.0
* @since 10-12-2014
*/
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.ArrayList;
// Begin by importing the utilities allowing for scanners and reading from files
public class Assignment {
// main method which will call the other methods, employ a switch to choose
// methods
public static void main(String args[]) throws FileNotFoundException {
readStats2012();
readStats2013();
}
public static void readStats2012() throws FileNotFoundException {
// This method reads the values from a keyboard scanner and assigns them to an array
System.out.println("Productivity for 2012\n");
ArrayList<Integer> teams = new ArrayList<Integer>();
int inTeam;
Scanner in = new Scanner(new File("in2012.txt"));
while (in.hasNextInt()) {
inTeam = in.nextInt();
teams.add(inTeam);
}
in.close();
for (int i = 0; i < teams.size(); i++) {
System.out.println("Team " + (i + 1) + "\t" + teams.get(i));
}
}
public static void readStats2013() throws FileNotFoundException {
// This method reads the values from a keyboard scanner and assigns them to an array
System.out.println("\nProductivity for 2013\n");
ArrayList<Integer> teams = new ArrayList<Integer>();
int inTeam;
Scanner in = new Scanner(new File("in2013.txt"));
while (in.hasNextInt()) {
inTeam = in.nextInt();
teams.add(inTeam);
}
in.close();
for (int i = 0; i < teams.size(); i++) {
System.out.println("Team " + (i + 1) + "\t" + teams.get(i));
}
}
static void calculateandDisplay(){
// This will be a menu option to calculate the average, the highest and the lowest
}
public static double calculateAverage(){
double average = 0;
if(i = 0; i < teams.length; i++){
}
return average;
}
}
Во-первых, рассмотрите один метод, который принимает строку имени файла в качестве аргумента вместо того, чтобы иметь идентичный код для чтения данных конкретного года. Что произойдет в следующем году или году спустя, или через десять лет; разумно ли писать дублированные методы для каждого потенциального года? – ChiefTwoPencils
Это хороший момент, ваше предложение гораздо практичнее! –