Глава 4
Задача 4.10 "Длина дорожек компакт диска."
Компакт-диск имеет 22 дорожки. Используя окно для определения времени звучания каждой из них в часах и минутах, вычислите общее время воспроизведения диска. Используйте поле со значением 1, которое преобразуется в нуль, чтобы сигнализировать программе об окончании ввода данных.
Решение
Display-окно и класс Time помогут нам изящно и просто решить эту задачу.
Код программы:
import java.io.*;
import javagently.*;
class RoadOfDisk {
RoadOfDisk() {
Display d = new Display ("Rulon of paper");
d.prompt("Time",1);
d.prompt("Finished?",1);
Time t;
Time sum = new Time(0,0);
for (; ;) {
d.ready("\nInput time. Stop - input zero in box Finished ");
double m = d.getDouble("Time"); //width of book
t = new Time(m);
int f = d.getInt("Finished?"); //width of book
int min1 = (int)(t.hour*60 + t.min);
sum.addTime(min1);
d.println("Sound trak time - " + t+"\nCurrent summ of sound time = " + sum );
if(f == 0)break;
}//end for
d.println("Total sound time of disk = " + sum );
}
public static void main (String[] args) {
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 + " ";
}
}
Результат :
Назад |
Начало урока |
Вверх |
Вперед
Содержание