Тестирование программы
Для создания программы использовалась универсальная среда разработки программного обеспечения - Geany 1.27 и компилятор OpenJDK 1.8.0.
![]() |
Тест №1 (рисунок 15) демонстрирует работу меню программы.
Рисунок 15 — Главное меню программы
![]() |
Тест №2 (рисунок 16) показывает работу первого пункта меню «Читаем исходные данные», которая cчитает файл infile.txt и выводит на экран объекты с помощью метода output.
Рисунок 16 - Вывод данных
Тест №3 (рисунок 17) демонстрирует работу второго пункта меню «Записываем». Команда осуществляет считывание данных со стандартного вводы и записывает результат в файл outfile.txt.
![]() |
Рисунок 17 - Ввод данных
Тесте №4 (рисунок 18) показывает выполнение пункта меню «Информация о проданных билетах», которая выводит в файл outsold.txt форматированную информацию о проданных билетах, а затем построчно выводит на экран его содержимое.
Рисунок 18 - отчёт по проданным билетам.
Тест № 6 (рисунок 19) демонстрирует работу пункта меню «Дописать информацию», которая осуществляет дописывание дополнительного пункта расписания в выходной файл outfile.txt.
![]() |
Рисунок 19 - дописывание информации.
![]() |
Тест № 7 (рисунок 20) демонстрирует работу пункта меню «Изменить цену», позволяющий исправить цену для одного из маршрутов и записать результат в outfile.txt.
Рисунок 20 – Изменение цены билета
![]() |
Тест № 8 (рисунок 21) демонстрирует работу пункта меню «Фильтр по минимальной цене», позволяющий убрать из outfile.txt записи, с ценой меньше заданной, а затем вывести оставшиеся записи на экран.
Рисунок 21 — Фильтр по минимальной цене
Тест № 9 (рисунок 22) демонстрирует работу пункта меню «Изменить количество проданных билетов», позволяющий исправить количество проданных билетов для одного из маршрутов и записать результат в outfile.txt.
![]() |
Рисунок 22 - Изменить количество проданных билетов
Тест № 10 (рисунок 23) демонстрирует работу пункта меню «Показать отчёт», позволяющий считать данные из outfile.txt и вывести их на экран.
![]() |
Рисунок 23 - Показать отчёт
![]() |
Рисунок 24 показывает примерный вид файлов infile.txt и outfile.txt.
Рисунок 24 — Содержимое infile.txt
Рисунок 25 показывает примерный вид файла outsold.txt.
![]() |
Рисунок 25 — Содержимое outsold.txt
4 Реализация задачи на языке C#
Описание программы
Для создания программы использовалась универсальная среда разработки программного обеспечения - Geany 1.27 и Mono 4.2.1.
Исходный код программы находится в приложение A. Рисунок 26 демонстрирует состав проекта программы. Программа состоит из трёх файлов: main.cs, timef.cs, bus.cs.
Рисунок 26 – Состав проекта программы
Файл time.cs содержит описание класса time, его полей и методов.
Класс time используется для работы со временем и содержит поля: hours — количество часов, minutes – количество минут, abs — абсолютное значение времени в минутах:
5) output() – формирует строку заданного формата для её вывода;
6) getabs() - реализует вычисление абсолютного значения времени и запись результата в поле abs;
7) tohhmm() - реализует расчет времени в виде hh:mm и запись результата в поля hours и minutes;
Файл bus.cs содержит описание класса time, его полей и методов.
Класс bus используется для работы с элементами расписания маршрутов и содержит поля: number — номер автобуса, route - маршрут, starttime – время отправления, maker — производитель автобуса, price – цена билета, sold — количество проданных билетов, которые необходимо разобрать и методы:
1) input() – реализует ввод информации об автобусе с клавиатуры, а именно номер, маршрут, время отправления, производитель, цена, количество проданных билетов;
2) output() – реализует вывод информации об автобусе на консоль;
3) diskRead(StreamReader fin) – реализует ввод информации об автобусе из файла, на который указывает fin, а именно номер, маршрут, время отправления, производитель, цена, количество проданных билетов;
4) diskWrite(StreamWriter fout) – реализует вывод информации об автобусе в файл, на который указывает fout;
5) outSold(StreamWriter fout) - реализует вывод информации о проданных билетов для каждого автобуса в файл, на который указывает fout;
6) void fixprice(int newprice) – реализует изменение цены для автобуса;
7) void fixprice(int newprice) – реализует изменение количества проданных билетов для автобуса;
8) getnumber() - реализует возврат поля number;
9) getprice() - реализует возврат поля price;
10) getsold(); - реализует возврат поля sold;
Файл main.cs содержит описание класса main, его полей и методов.
Данный метод не содержит полей, но содержит методы:
1) cntlines(String inf) — подсчитывает количество строк в файле inf.
2) read(bus[] data, int cnt, string filename) — считать записи из файла filename в количестве cnt и записать в массив data.
3) read(bus[] data, int cnt, string filename) — записать в файл filename записи в количестве cnt из массива data.
4) Main(strin[] args) - основная функция.
В методе main() реализуются следующие возможности:
1) Чтение исходных данных из входного файла и вывод их в консоль.
2) Заполнение расписания и его запись в выходной файл.
3) Вывод информации о проданых билетах в специальный файл или консоль.
4) Дописывание информации в выходной файл.
5) Изменение цены для какого-либо маршрута.
6) Фильтрация записей по минимальной цене.
7) Изменение количества проданных билетов для какого-либо маршрута.
8) Чтение отчёта из выходного файла.
9) Завершение работы программы.