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

Глава 4

Задача 4.11 "Длина дорожек компакт диска и обработка иключительных ситуаций."

Модифицируйте задачу 4.10, используя обычные средства ввода-вывода языка Java( а так же класс Stream). Чтобы сигнализировать программе о том, что уже введена инф о последней дорожке, используйте комбинации клавиш (Ctrl-D, Ctrl-Z), а так же исключительные ситуации.

Решение

Поскольку я не знаю как использовать указанные клавиши для выхода из программы, я использую переменную exit типа int, присваивая ей отрицательное значение.

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



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

class RoadOfDisk {

RoadOfDisk() throws IOException {

Time t;
Time sum = new Time(0,0);

Stream in = new Stream(System.in);
for (; ;) {

System.out.print("Enter 0 to continue or -1 to exit");
int exit = in.readInt();
if(exit == -1)break;

System.out.println(" ");
System.out.print("Enter hours");
int hour = in.readInt();
System.out.print("Enter minutes");
int min = in.readInt();

t = new Time(hour,min);
int min1 = (int)(t.hour*60 + t.min);
sum.addTime(min1);
System.out.println("Sound trak time - " + t+"\nCurrent summ of sound time = " + sum );

}//end for
System.out.println("Total sound time of disk = " + sum );

}

public static void main (String[] args) throws IOException {

new RoadOfDisk();
}
}

class Time {

int hour;
long min;
Time (int h, int m) {
hour = h;
min = m;
}
Time (int mins) {
hour = mins / 60;
min = mins % 60;
}
Time (double t) {
hour = (int) t;
min = Math.round(t*100 - hour*100);
}
Time (Time t) {
hour = t.hour;
min = t.min;
}
void addTime (int m) {
min +=m;
hour+= min / 60;
min %= 60;
}
boolean lessThan (Time t) {
return hour < t.hour | (hour==t.hour & min < t.min);
}
public String toString () {
if(min<10) return hour + ":0" + min + " " ;
else
return hour + ":" + min + " ";
}
}


Результат :

Подсказка


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

Hosted by uCoz