Глава 4
Задача 4.16 "Показатели уровня осадков "
Показатели уровня осадков в мм можно получить для каждого дня за последние четыре недели. Мы хотим знать общий уровень осадков для каждой недели, самый влажный день и самую сухую неделю.
Напишите программу, которая будет читать в несколько приемов 28 показателей из файла и выводить в другой файл три фрагмента требуемой инф вместе с входными данными. Ниже представлены возможные данные и полученные на их основе результаты:
Решение
Входной файл будет следующим:
Далее двойной вложенный цикл для считывания данных из файла. Присваивание переменным значений, необходимые подсчеты и вывод в файл.
Код программы:
import java.io.*;
import javagently.*;
class Weather {
Weather() throws IOException {
Stream in = new Stream(System.in);
// default the file to the keyboard
Stream fin = new Stream(System.in);
Stream fout= new Stream ("data.out",Stream.WRITE);
// try open file
try {
fin = Filer.open("data.txt");
}
catch (FileNotFoundException e) {
System.out.println("Five tries up");
System.out.println("Connecting to keyboard by default");
}
fout.println("Sample data \t Sample results");
int sumRain = 0;
int minRain = 100;
int current = 0;
int wetDay = 0;
int dryWeek = 0;
int numWeek = 0;
int numDay = 0;
// try read file
try {
for(int j=1; j<5;j++){
for (int i=1;i<8;i++) {
current = fin.readInt();
sumRain = sumRain+current;
fout.print(current + " ");
if(current > wetDay){
wetDay = current;
numDay = i;
numWeek = j;
}
}//end for2
if(sumRain < minRain)
dryWeek = j;
fout.print( "\t " + sumRain + "\n");
sumRain = 0;
}//end for1
fout.println("The wettest day was day " + numDay + " of " + numWeek + " Week ");
fout.println("The driest week was week " + dryWeek);
}
catch (EOFException e) {
System.out.println(" All data is reading ");
}
fin.close();
fout.close();
}//end constructor
public static void main (String [ ] args)throws IOException {
new Weather ();
}
}
Результат :
Назад |
Начало урока |
Вверх |
Вперед
Содержание