мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
java:vtoroj_semestr [19/01/2015 09:29] – ybezrukov | java:vtoroj_semestr [09/02/2015 12:20] (текущий) – ybezrukov | ||
---|---|---|---|
Строка 2: | Строка 2: | ||
- | ===== Задание 1. Тур де Франс ===== | + | ===== Тур де Франс ===== |
Наша задача состоит в том, чтобы написать красивую объектно-ориентированную программу, | Наша задача состоит в том, чтобы написать красивую объектно-ориентированную программу, | ||
+ | |||
+ | * {{: | ||
+ | * {{: | ||
+ | * {{: | ||
**Файл 1** tdf14_teams.txt | **Файл 1** tdf14_teams.txt | ||
Строка 45: | Строка 49: | ||
Участники, | Участники, | ||
+ | |||
+ | Пример строки | ||
+ | |||
+ | < | ||
+ | 1 198 76 04:58:16 | ||
+ | </ | ||
Класс-обертка для чтения из файла прилагается. | Класс-обертка для чтения из файла прилагается. | ||
Строка 113: | Строка 123: | ||
Наша задача состоит в обработке файла tdf14_teams.txt. Для этого требуется создать следующие 4 класса. | Наша задача состоит в обработке файла tdf14_teams.txt. Для этого требуется создать следующие 4 класса. | ||
- | | + | |
- | - **Team** Команда имеет название и список участников. Должны быть реализованы следующие методы: | + | <code java> |
+ | public class Racer { | ||
+ | String name; | ||
+ | String surname; | ||
+ | String nationality; | ||
+ | int yearOfBirth; | ||
+ | int number; | ||
+ | |||
+ | public int getNumber() { | ||
+ | return number; | ||
+ | } | ||
+ | |||
+ | public void setNumber(int number) { | ||
+ | this.number = number; | ||
+ | } | ||
+ | |||
+ | public int getYearOfBirth() { | ||
+ | return yearOfBirth; | ||
+ | } | ||
+ | |||
+ | public void setYearOfBirth(int year) { | ||
+ | this.yearOfBirth = year; | ||
+ | } | ||
+ | |||
+ | public String getName() { | ||
+ | return name; | ||
+ | } | ||
+ | |||
+ | public void setName(String name) { | ||
+ | this.name = name; | ||
+ | } | ||
+ | |||
+ | public String getSurname() { | ||
+ | return this.suername; | ||
+ | } | ||
+ | |||
+ | public void setSurname(String surname) { | ||
+ | this.surname = surname; | ||
+ | } | ||
+ | |||
+ | public String getNationality() { | ||
+ | return this.nationality; | ||
+ | } | ||
+ | |||
+ | public void setNationality(String nationality) { | ||
+ | this.nationality = nationality; | ||
+ | } | ||
+ | |||
+ | public int age(int year) { | ||
+ | return year - yearOfBirth; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | * **Team** Команда имеет название и список участников. Должны быть реализованы следующие методы: | ||
* Team(String name) конструктор, | * Team(String name) конструктор, | ||
* void insert(Racer racer) добавляет гонщика в команду | * void insert(Racer racer) добавляет гонщика в команду | ||
Строка 121: | Строка 184: | ||
* Racer getRacers(int i) возвращает гонщика по номеру. Нумерация идет с нуля. | * Racer getRacers(int i) возвращает гонщика по номеру. Нумерация идет с нуля. | ||
* int totalAge(int year) возвращает суммарный возраст участников. Год передается в качестве параметра. | * int totalAge(int year) возвращает суммарный возраст участников. Год передается в качестве параметра. | ||
- | - **TeamsList** Класс для списка команд. Должны быть реализованы следующие методы: | + | <code java> |
+ | public class Team { | ||
+ | String name; | ||
+ | ArrayList< | ||
+ | |||
+ | public Team(String name) { | ||
+ | this.name = name; | ||
+ | racers = new ArrayList< | ||
+ | } | ||
+ | |||
+ | public void insert(Racer racer) { | ||
+ | racers.add(racer); | ||
+ | } | ||
+ | |||
+ | public String getName() { | ||
+ | return this.name; | ||
+ | } | ||
+ | |||
+ | public int numberOfRacers() { | ||
+ | return racers.size(); | ||
+ | } | ||
+ | |||
+ | public Racer getRacers(int i) { | ||
+ | return racers.get(i); | ||
+ | } | ||
+ | |||
+ | public int totalAge(int year) { | ||
+ | int sum = 0; | ||
+ | for(Racer racer : racers) { | ||
+ | sum = sum + racer.totalAge(year); | ||
+ | } | ||
+ | return sum; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | * **TeamsList** Класс для списка команд. Должны быть реализованы следующие методы: | ||
* TeamsList() конструктор, | * TeamsList() конструктор, | ||
* void insert(Team team) добавляет команду в общий список. | * void insert(Team team) добавляет команду в общий список. | ||
Строка 127: | Строка 225: | ||
* int numberOfTeams() возвращает количество команд | * int numberOfTeams() возвращает количество команд | ||
* Team getTeam(int i) возвращает i-ю команду. Нумерация с нуля. | * Team getTeam(int i) возвращает i-ю команду. Нумерация с нуля. | ||
- | | + | |
<code java> | <code java> | ||
Строка 137: | Строка 235: | ||
* @param teamsList список команд, | * @param teamsList список команд, | ||
*/ | */ | ||
- | public static void parceTeamLine(String line, ListeEquipe | + | public static void parceTeamLine(String line, TeamsList |
// Элементы в строках нашего файла разделени знаками табуляции, | // Элементы в строках нашего файла разделени знаками табуляции, | ||
// и будем использовать чтобы отличить один элемет от другого. | // и будем использовать чтобы отличить один элемет от другого. | ||
Строка 163: | Строка 261: | ||
* В противном случае возвращается false | * В противном случае возвращается false | ||
*/ | */ | ||
- | public static boolean createTeams(String fileName, | + | public static boolean createTeams(String fileName, |
// Объект, | // Объект, | ||
ReadData reader = new ReadData(); | ReadData reader = new ReadData(); | ||
Строка 206: | Строка 304: | ||
</ | </ | ||
+ | |||
+ | ==== Часть 2 ==== | ||
+ | |||
+ | Задача – это обработать файлы | ||
+ | - Какова общая дистанция, | ||
+ | - Найти самый длинный и самый короткий этапы | ||
+ | - Кто выиграл этап, который начинается в городе Mulhouse? Кто выиграл этап, который заканчивается в городе Risoul? Кто выиграл этап 14 июля? | ||
+ | - Какова тройка победителей 2014 года? Какова общая таблица зачета? | ||
+ | - Какое общее время потребовалось участникам команды FDJ.FR на завершение гонки? И какое общее время, для 3 лучших каждого этапа? | ||
+ | - Кто из участников по своей воле сошел с дистанции и на каких этапах? | ||
+ | - На каких этапах среднее время участников, | ||
+ | - Кто из участников набрал наибольшую среднюю скорость на том или ином этапе, и на каком этапе? | ||
+ | - В какой команде участники двигаются с одинаковой скоростью (т.е. время на этап примерно одинаковое)? | ||
+ |