Существует файл, содержащий общее количество осадков за каждый месяц года, по одному двойному значению в каждой строке. Напишите программу, которая:
- Просит пользователя ввести имя файла.
- Считывает данные из этого файла, сохраняя каждое значение в массиве.
- Итерирует массив и распечатывает общее количество осадков за год.
- Итерирует через массив и распечатывает среднемесячное количество осадков.
- Проходит по массиву и выводит месяц с минимальным количеством осадков и его количество. (Печать названия месяца принесет дополнительные баллы).
- Проходит по массиву и распечатывает месяц с наибольшим количеством осадков и его количество. (Опять-таки преобразование номера месяца в строку принесет дополнительные баллы).
Используемый мной файл данных выглядит примерно так:
1,80
2,70
3,75
4,40
5,20
6,15
7,30
8,45
9,60
10,90
11,85
12,100
То, что я сделал, здесь написано:
1.80
2,70 и т. д., что означает, что «1» — январь, «2» — февраль и т. д.
Таким образом, число после точки — это количество осадков. Поэтому мне нужно подсчитать сумму всех чисел в правой части каждой точки.
Тогда мой код таков:
Код: Выделить всё
import java.util.*;
import java.io.*;
class Assignment5{
public static void main(String[] args)throws Exception{
String data;
ArrayList store = new ArrayList();
Scanner scanner = new Scanner(System.in);
System.out.println(" ");
System.out.println("Please enter the name of a file with .txt at the end.");
System.out.println(" ");
data = scanner.nextLine();
File inputFile = new File(data);
Scanner reader = new Scanner(inputFile);
while(reader.hasNext()){
store.add(reader.nextDouble());
}
calculateSum(store);
store.clear();
}
private static void calculateSum(ArrayList ArrayList){
double sum = 0;
double avg = 0;
double total = 0;
double totalrainfall = 0;
Iterator iterator = ArrayList.iterator();
while(iterator.hasNext()){
sum += iterator.next();
}
total = ArrayList.size();
avg = (sum / total);
System.out.println(" ");
System.out.println("The total rainfall is " + totalrainfall);
}
Подробнее здесь: https://stackoverflow.com/questions/169 ... ava-coding
Мобильная версия