Глава 3
Задача 3.2 "Участники марафона "
Существует пять основных кандидатов на участие в марафоне, который проводится в Саванне. Они приехали из Англии, Германии, Италии, Испании и Норвегии. Организаторам гонок должна быть представлена инф о каждом бегуне: имя, страна, возраст и лучший результат, показанный участником до настоящего времени (в часах и минутах).
- создайте класс, описывающий участника марафона. Вы можете использовать класс Time для представления лучшего показателя времени. Обычно время пробега составляет около двух часов.
- напишите короткую программу, чтобы проверить, правильно ли созданы пять объектов упомянутого выше класса для бегунов.
- Теперь напишите программу Race, которая создаст объекты для бегунов, сгенерирует случайным образом время пробега для каждого из них, а затем выведет список бегунов с подробными их описаниями, включая результаты пробега и лучший показатель (Используйте для этого метод Math.min).
Хотя на данном этапе мы не можем с легкостью вычислить победителя пробега, мы вернемся к этой задаче в гл 4.
Решение
Поскольку здесь в условии ставится последовательно две задачи, сделаем соответственно два варианта решения.
Вверх
1-й вариант
1. Для представления спортсмена содадим класс Stayer. Мы уже не раз создавали подобные классы
с переменными, конструктором и функцией вывода write().
class Stayer {
String country;
Stayer(String c, String n, int a, Time t ){ void write () {
Воспользуемся так же классом Time для представления времени. Этот класс весьма удобен
и подробно рассмотрен в книге. Создадим три объекта класса Time и три объекта класса Stayer.
Time t1 = new Time(1,45);
Stayer eng, ger, ita;
В конструкторе инициируем объекты и выведем информацию о них вызвав для каждого
спортсмена его метод
write()
Код программы:
Time t1 = new Time(1,45);
Stayer eng, ger, ita;
Maraphon1 () {
System.out.println();
System.out.println(" In the maraphon run : ");
public static void main (String [ ] args) {
class
Time
{
Time (int h, int m) {
Time (int mins) { Time (double t) {
Time (Time t) {
void addTime (int m) {
boolean lessThan (Time t) {
public String toString () {
class
Stayer
{
String country;
Stayer(String c, String n, int a, Time t ){ void write () {
Результат :
Назад |
Начало урока |
Вверх |
Вперед
String name;
int age;
Time bestTime;
name = n;
age = a;
bestTime = new Time(t);
" the bestMaraphonTime - " + bestTime);
Time t2 = new Time(1,55);
Time t3 = new Time(2,00);
class Maraphon1 {
Time t2 = new Time(1,55);
Time t3 = new Time(2,00);
ger = new Stayer("Germany", "Kurt Schnitke",35, t2);
ita = new Stayer("Italy", "Marko Pavarotti", 29, t3);
System.out.println(" Maraphon1 information\n");
System.out.println(" ======================= ");
eng.write();
ger.write();
ita.write();
System.out.println();
int min;
min = m;
min = mins % 60;
min = (int) t*100 - hour*100;
min = t.min;
hour+= min / 60;
min %= 60;
String name;
int age;
Time bestTime;
name = n;
age = a;
bestTime = new Time(t);
" the bestMaraphonTime - " + bestTime);
Содержание