Глава 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 ();
}
}
Результат :
Назад |
Начало урока |
Вверх |
Вперед
Содержание