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

Глава 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 + " ";
}
}


Результат :

Подсказка


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

Hosted by uCoz