Назад | Начало урока | Вперед
Содержание

Глава 4

Задача 4.18 " Счетчики на автостоянках."

Департамент транспорта города Саванна хочет принять решение относительно того, стоит ли начинать компанию по борьбе с нелегальной парковкой. Определенное число инспекторов этого департамента были посланы в различные районы города, где ограничено время парковки. В каждом районе установлены свои ограничения. Каждый офицер департамента транспорта должен следить за любыми десятью машинами в своем районе и записывать, в течение какого времени транстпортное средство было припарковано в зоне с ограниченным временем парковки.

Если время парковки более 50% машин будет превышать допустимую норму, департамент транспорта примет решение развернуть массированную компанию. Напишите программу, которая:

- считывает из файла инф о количестве районов, ограничении времени и общем времени парковки десяти транспортных средств в каждом районе.
- определяет количество машин в каждом районе, нарушивших ограничение.
-принимает решение следует развернуть кампанию или нет.
- определяет район, в котором ситуация является наихудшей, и выводит его название на экран.
- выводит результаты и входные данные на экран.

Решение

Исходный файл сделаем следующего вида:

Подсказка

Первая цифра означает номер района наблюдения. Вторая цифра - лимит времени стоянки в этом районе. Далее время фактической парковки десяти машин.

Далее считываем при помощи вложенных циклов. Анализируем каждое считанное значение, делаем расчет и выводим в результирующий файл.

Код программы:



import java.io.*;
import javagently.*;

class AutoCalc {

AutoCalc() 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");
}

int num = 0;
int lim = 0;
int overlim = 0;
int temp = 0;
int current = 0;
int max = 0;
int vol = 0;
fout.println("Area\t " + "Limit\t " + "Parking times \t\t\t" + "Over limit");


// try read file
try {

for(int j=0;j<3;j++){

num = fin.readInt();
lim = fin.readInt();
fout.print(" " + num + "\t" + " " + lim + "\t");
for (int i=0;i<10;i++) {

current = fin.readInt();
fout.print(current + " ");
if(current > lim)
temp++;
}
overlim = temp;
temp = 0;
fout.print("\t" + overlim);
if(overlim>5)
fout.print(" A campaign must be mounted." );
fout.println(" ");
if(overlim>max){
max = overlim;
vol = (j+1);
}


}//end for1
fout.println(" Concentrate on area: " + vol );


}
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 AutoCalc ();
}
}


Результат :

Подсказка


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz