Курсовая_работа_ГоловковИЕ_12002108
.pdf
Рисунок 2.3.1 - Поля и начало первого метода doAnimals
В случае ввода 1 будет предложено выбрать группу (класс) животных, а затем, в зависимости от ввода, будет вызван метод добавления животного соответствующего класса. После его выполнения будет вновь выведен список функций меню. Выбор метода добавления животного при работе с меню представлен на рисунок 2.3.2.
Рисунок 2.3.2 – Выбор метода добавления
11
Выбор удаления и изменения реализованы аналогично выбору добавления. Выбор отображения отличается тем, что в дополнение имеет метод вывода животных всех классов. Выбор метода отображения при работе с меню представлен на рисунке 2.3.3.
Рисунок 2.3.3 – Выбор метода отображения
Выбор сохранения и чтения XML-файла вызывают соответствующие методы и после их выполнения будет вновь выведен список функций меню. При выборе вводе 7 программа завершается. При неправильном вводе цифры вновь выводится список функций меню и предлагается ввести цифру. Описанные выборы представлены на рисунке 2.3.4.
12
Рисунок 2.3.4 – Последние выборы метода showMenu
Метод addBird предлагает ввести название (вид) птицы, её размер в сантиметрах и хищность, а затем добавляет в коллекцию объект с помощью конструктора соответствующего класса с введёнными значениями атрибутов в качестве аргументов. Реализация метода addBird представлена на рисунке
2.3.5.
Рисунок 2.3.5 – Реализация метода addBird
Методы добавления млекопитающего (addMammal), пресмыкающегося
(addReptile), земноводного (addAmphibian), рыбы (addFish) реализованы аналогично addBird.
13
Метод removeBird предлагает ввести название (вид) птицы, её размер в сантиметрах и хищность, а затем удаляет из коллекции соответствующего класса объект с введёнными значениями атрибутов. Если такой птицы не существует, то выводится сообщение об ошибке. Реализация метода removeBird представлена на рисунке 2.3.6.
Рисунок 2.3.6 – Реализация метода removeBird
Методы удаления млекопитающего (removeMammal), пресмыкающегося (removeReptile), земноводного (removeAmphibian), рыбы (removeFish) реализованы аналогично removeBird.
Метод changeBird предлагает ввести текущее название (вид) птицы, её размер в сантиметрах и хищность, а затем ввести новые желаемые значения атрибутов. Далее эти значения присваиваются существующему объекту. Если такой птицы не существует, то выводится сообщение об ошибке. Реализация метода changeBird представлена на рисунке 2.3.7.
Рисунок 2.3.7 – Реализация метода changeBird
14
Методы изменения атрибутов млекопитающего (changeMammal), пресмыкающегося (changeReptile), земноводного (changeAmphibian), рыбы (changeFish) реализованы аналогично changeBird.
Метод displayFish перебирает все методы коллекции класса Fish и выводит их в консоль, используя переопределённый метод toString класса Object. Методы вывода информации о млекопитающих (displayMammal), пресмыкающихся (displayReptile), земноводных (displayAmphibian), рыбы (displayFish) реализованы аналогично displayBird. Метод displayAll вызывает все методы вывода в консоль класса животных. Реализация методов displayBird и displayAll представлена на рисунке 2.3.8.
Рисунок 2.3.8 – Реализация методов displayBird и displayAll
Метод inputNumInt запрашивает ввод целого числа и пропускает знак конца строки, если он есть, а также обрабатывает исключение, сообщая о том, что ввод некорректен. После исключения заново запрашивается ввод числа. Метод inputNumInt представлен на рисунке 2.3.9:
15
Рисунок 2.3.9 – Реализация метода inputNumInt
2.4 Класс Main
Класс Main содержит точку входа в программу – метод main. В нём создаётся объект класса doAnimals и вызывается его метод showMenu, который и реализует дальнейшее поведение программы.
Также класс имеет два метода для работы с XML-файлом: writeToXML и readFromXML. Первый добавляет всю информацию об объектах в коллекцию allAnimals «класса-обёртки» AnimalsXML, а затем с помощью неё записывает их в XML-файл. Второй, наоборот, считывает информацию об объектах из XML-файла в коллекцию allAnimals, а затем добавляет его коллекцию соответствующего класса, указанного в XML-файле. Оба они используют JAXB – Java API для маршалинга объекта в XML и восстановления объекта из XML файла. Данные Реализация методов main, writeToXML представлена на рисунке 2.4.1, а реализация метода readFromXML – на рисунке 2.4.2.
16
Рисунок 2.4.1 – Реализация методов main, writeToXML
Рисунок 2.4.2 – Реализация метода readFromXML
2.5 Класс AnimalsXML
Класс AnimalsXML – «класс-обёртка», позволяющий корректно реализовывать работу с XML-файлом при помощи своей коллекции allAnimals. Программный код класса AnimalsXML представлен на рисунке
2.5.1.
17
Рисунок 2.5.1. - Программный код класса AnimalsXML
В данном разделе была рассмотрена программная реализация консольного приложения.
18
3 ТЕСТИРОВАНИЕ РАЗРАБОТАННОГО ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
При запуске программы в консоль выводится пользовательское меню, предлагающее ввести номер функции (рисунок 3.1):
Рисунок 3.1 – Пользовательское меню
При некорректном вводе (вводе числа или строки) пользователю будет предложено ввести заново число. При корректном вводе вызывается выбранная функция меню (рисунок 3.2):
Рисунок 3.2 – Демонстрация некорректных и корректных вводов при выборе
При выборе добавления предлагается ввести значения параметров животного, а затем выводится сообщение о том, что оно было добавлено (рисунок 3.3):
19
Рисунок 3.3 – Демонстрация добавления животного
При вызове методы вывода пользователь выбирает, вывести одну группу животных или все, а затем в консоли выводится информация обо всех имеющихся животных. При отсутствии информации о них выводится соответствующее сообщение (рисунок 3.4):
Рисунок 3.4 – Демонстрация вывода текущей информации о животных
При выборе изменения параметров вводятся текущие и желаемые значения параметров животного, а затем выводится сообщение о том, что они были изменены и их значения (рисунок 3.5):
20
