
- •Вариант 1 Линия метро
- •Порядок выполнения работы
- •Вариант 2 Гостиница
- •Порядок выполнения работы
- •Вариант 3 Программа на ассемблере
- •Порядок выполнения работы
- •Вариант 4 Студенты института
- •Порядок выполнения работы
- •Вариант 5 Книжный каталог
- •Порядок выполнения работы
- •Вариант 6 Таблица идентификаторов
- •Порядок выполнения работы
- •Вариант 7 Учебные группы
- •Порядок выполнения работы
- •Вариант 8 Информационные агентства
- •Порядок выполнения работы
- •Вариант 9 Учебный план
- •Порядок выполнения работы
- •Вариант 10 Спортивная команда
- •Порядок выполнения работы
- •Вариант 11 Файловая система
- •Порядок выполнения работы
- •Вариант 12 Телефонный сервис
- •Порядок выполнения работы
- •Вариант 13 Торговый склад
- •Порядок выполнения работы
- •Вариант 14 Жилищный фонд
- •Порядок выполнения работы
- •Вариант 15 Туристическое бюро
- •Порядок выполнения работы
- •Вариант 16 Банковские операции
- •Порядок выполнения работы
- •Вариант 17 Отдел кадров
- •Порядок выполнения работы
- •Вариант 18 Жилищная контора
- •Порядок выполнения работы
- •Вариант 19 Налоговая служба
- •Порядок выполнения работы
- •Вариант 20 Сетевой сервер
- •Порядок выполнения работы
- •Вариант 21 Семестровый контроль
- •Порядок выполнения работы
- •Вариант 22 Сетевой сервис
- •Порядок выполнения работы
Вариант 1 Линия метро
Разработать приложение, описывающее характеристики линии метро. Каждая станция линии представляется элементом-описателем станции.
Описатель беспересадочной станции содержит следующую информацию: название станции.
Описатель станции с переходом на одноимённую содержит следующую информацию: название станции; название линии, на которую есть переход (максимум три перехода).
Описатель пересадочного узла содержит следующую информацию: название станции; название станции и линии, на которую есть переход (максимум три перехода).
Информация обо всех станциях линии сведена в просматриваемую таблицу. Каждый элемент таблицы содержит указатель на описатель станции.
Полная информация о линии метро собрана в описателе линии, который содержит: название линии и таблицу станций.
Обеспечить выполнение следующих операций.
-
Для описателя линии:
-
получить название линии;
-
включить новый элемент;
-
найти элемент по заданному имени станции;
-
показать содержимое таблицы.
-
-
Для любой станции:
-
вывести информацию о станции;
-
вернуть название станции; изменить название станции;
-
получить (вернуть в качестве результата) тип станции;
-
изменить тип существующей станции.
-
-
Для станции с переходом:
-
вернуть в качестве результата перечень названий линий перехода;
-
добавить название линии перехода.
-
-
Для пересадочного узла:
-
вернуть в качестве результата перечень названий станций и линий перехода;
-
добавить название станции и линии перехода.
-
-
Для приложения:
-
редактирование описания линии - внесение, исключение и модификация описания станций, возможно, с изменением типа станции;
-
поиск станции на данной линии или по названию станции перехода;
-
(*) проверить корректность описания нескольких линий, используя класс-итератор.
-
Порядок выполнения работы
-
На основе описания задачи определить состав классов.
-
Разработать иерархию классов и схему их взаимодействия.
-
Для каждого класса определить его состояние и необходимые методы.
-
Разработать и отладить все классы. Приложение реализовать в виде простой диалоговой программы.
-
(*) Разработать и отладить класс, реализующий работу приложения. Предусмотреть в классе возможность сохранения таблицы в файле и ее восстановления.
-
(*) Разработать и отладить класс-итератор, с помощью которого реализовать дополнительные операции.
Примечание: пункты задания, отмеченные (*), являются дополнительными.
Вариант 2 Гостиница
Разработать приложение, позволяющее организовать работу по учёту занятости номеров гостиницы. Информация о номере хранится в некотором описателе номера.
Описатель номера “люкс” содержит следующую информацию: свободен или занят (0 или 1); количество комнат (не меньше двух) и количество проживающих (один или два гостя); дата регистрации и число дней проживания; суточный тариф проживания в номере.
Описатель одноместного номера содержит следующую информацию: свободен или занят (0 или 1); дата регистрации и число дней проживания; суточный тариф проживания в номере.
Описатель многоместного номера содержит следующую информацию: свободен или занят (0 или 1); количество мест и сколько занято (два числа); для каждого проживающего (от одного до четырёх гостей) дата регистрации и число дней проживания; суточный тариф проживания в номере для одного гостя.
Информация обо всех номерах гостиницы сведена в таблицу. Каждый элемент таблицы содержит “указатель номера” и указатель на его описатель. Элементы упорядочены по возрастанию значений “указателей номера”.
Обеспечить выполнение следующих операций.
-
Для таблицы:
-
включить новый элемент, не нарушая упорядоченности;
-
найти элемент по заданному “указателю номера”;
-
удалить элемент, заданный “указателем номера”;
-
показать содержимое таблицы.
-
-
Для любого номера:
-
вывести информацию о номере;
-
вернуть в качестве результата тип номера;
-
вернуть в качестве результата состояние номера (свободен или занят); вернуть в качестве результата число гостей в номере;
-
занять номер (с регистрацией гостя); освободить номер.
-
-
Для многоместного номера:
-
занять или освободить часть номера (дополнить или сократить список проживающих).
-
-
Для приложения:
-
оформить регистрацию гостя в гостинице (при наличии свободного номера модифицировать состояние номера);
-
оформить освобождение номера (изменить состояние номера и вернуть в качестве результата сумму оплаты за проживание в номере);
-
вывести информацию о свободных номерах гостиницы;
-
(*) определить занятость гостиницы (отношение числа занятых мест в номерах к общему числу мест в номерах), используя класс-итератор.
-