Трактористы и перегрузка методов

В селе Ивановка происходит набор слушателей на двухгодичные курсы трактористов. При этом тех, кто имеет водительские права, берут сразу на второй "курс", остальных - на первый. При записи на курсы требуется указать фамилию, средний балл аттестата и курс начала обучения (1 или 2). Большинство жителей села имеют фамилию Ivanov, средний балл аттестата 4.0, и большинство записывается на 1-ый курс. Используя перегрузку методов реализовать минимальное количество функций для комфортного ввода информации о поступающих (при вызове функций задавать только те значения параметров, которые отличаются от умалчиваемых).

Для хранения списка сделайте класс TraktoristList - со следующими методами:

  • public TraktoristList(int n); - конструктор; параметр n - максимальная вместительность списка;
  • public boolean add(...);
  • public boolean add(...);      - несколько перегруженных вариантов метода добавления слушателя (см. "Примеры"!);
  • public void print();             - вывод всего списка на экран;

Технические подробности

  1. Для хранения списка записавшихся на курсы можно создать специальный класс с термя полями (фамилия, оценка, курс) - а можно по старинке хранить все в трех отдельных массивах. Длина массива(ов) задается в конструкторе класса TraktoristList (через параметр n).
  2. Функция add должна быть перегружена так, чтобы имелась возможность вызывать ее без параметров (используются все значения по умолчанию), с одним параметром (или только фамилия, или только балл, или только курс), с двумя параметрами (фамилия и балл, фамилия и курс, балл и курс), со всеми тремя параметрами (фамилия, балл, курс).
  3. В случае успешного добавления функция add возвращает true, в случае ошибки - false.
  4. Формат вывода списка методом print() см. ниже в таблице с примерами.
  5. "Курс" может быть только 1-ый или 2-ой.

Примеры

Вход
Выход
TraktoristList list = new TraktoristList(10);
list.add("Petrov", 4.5, 2); list.add("Petrov", 4.5); list.add("Petrov"); list.add(); list.add(4.5); list.add(4.5, 2); list.print();
Petrov 4.5 2
Petrov 4.5 1
Petrov 4.0 1
Ivanov 4.0 1
Ivanov 4.5 1
Ivanov 4.5 2
TraktoristList list = new TraktoristList(10);

list.add(); list.add("Petrov"); list.add(4.5); list.add(2); list.add("Petrov", 2); list.add("Petrov", 4.5); list.add(4.5, 2); list.add("Petrov", 4.5, 2); list.print();
Ivanov 4.0 1
Petrov 4.0 1
Ivanov 4.5 1
Ivanov 4.0 2
Petrov 4.0 2
Petrov 4.5 1
Ivanov 4.5 2
Petrov 4.5 2

Замечание

В приведенных выше примерах функция add() ничего на экран не выводит. Все выводится в функции print().

Скачать Traktorist_Tests.java
Comments