Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cpp4_2008.doc
Скачиваний:
9
Добавлен:
04.11.2018
Размер:
212.99 Кб
Скачать

Вариант 14 Жилищный фонд

Разработать приложение, позволяющее организовать работу по учёту жилищного фонда некоторой территории. Информация о жилье разного типа (типовая однокомнатная квартира, комфортабельная квартира – апартаменты, коттедж) хранится в описателе жилья.

Описатель квартиры содержит следующую информацию: адрес квартиры (название улицы, номер дома, номер квартиры) и массив из четырех описателей помещений квартиры (комната, кухня, санузел, прихожая).

Описатель апартаментов содержит следующую информацию: адрес квартиры (название улицы, номер дома, номер квартиры); количество помещений квартиры и указатель на динамический массив описателей помещений квартиры.

Описатель коттеджа содержит следующую информацию: адрес коттеджа (название улицы, номер дома); количество строений и указатель на динамический массив описателей строений.

Описатель помещения – название помещения, площадь помещения, комментарий. Описание строения – номер строения, количество помещений и указатель на динамический массив описателей помещений.

Информация обо всём жилье сведена в просматриваемую таблицу, каждый элемент которой содержит признак состояния (заселено или нет), стоимость 1 кв. м. жилья и указатель на описатель жилья.

Обеспечить выполнение следующих операций:

  • Для таблицы:

    • включить новый элемент в таблицу;

    • найти элемент по заданному адресу жилья;

    • показать содержимое таблицы.

  • Для любого жилья:

    • вывести информацию о жилье;

    • получить (вернуть в качестве результата) тип жилья;

    • получить значение состояния жилья; получить стоимость 1 кв. м.; получить адрес жилья;

    • рассчитать общую площадь квартиры, строения или дома.

  • Для любого строения:

    • получить информацию о помещениях строения;

    • получить значение площади строения.

  • Для любого помещения:

    • вывести информацию о помещении в квартире или строении;

    • получить значение площади помещения.

  • Для приложения:

    • зарегистрировать заселение в жильё (для нового адреса – создать новый элемент; для незаселённого жилья – оформить заселение);

    • зарегистрировать освобождение жилья;

    • показать информацию обо всём предложении жилья (незаселённое жильё);

    • (*) показать информацию обо всём жилье с расчетом его стоимости, используя класс-итератор.

Порядок выполнения работы

  1. На основе описания задачи определить состав классов.

  2. Разработать иерархию классов и схему их взаимодействия.

  3. Для каждого класса определить его состояние и необходимые методы.

  4. Разработать и отладить все классы. Приложение реализовать в виде простой диалоговой программы.

  5. (*) Разработать и отладить класс, реализующий работу приложения. Предусмотреть в классе возможность сохранения таблицы в файле и ее восстановления.

  6. (*) Разработать и отладить класс-итератор, с помощью которого реализовать дополнительные операции.

Примечание: пункты задания, отмеченные (*), являются дополнительными.

Вариант 15 Туристическое бюро

Разработать приложение, предоставляющее информацию об различных туристических маршрутах и их реализации. Информация о туристическом маршруте – экскурсии хранится в некотором описателе экскурсии. Туристические маршруты делятся на однодневные и многодневные экскурсии.

Описатель однодневной экскурсии содержит: название экскурсии; дата экскурсии; стоимость одно места; максимальное число экскурсантов в группе и число проданных мест; маршрут экскурсии.

Описатель многодневной экскурсии содержит: название экскурсии; дата начала экскурсии и число дней; стоимость одно места; максимальное число экскурсантов в группе и число проданных мест; указатель на динамический массив описателей маршрута для каждого дня экскурсии.

Описатель маршрута экскурсионного дня – количество пунктов экскурсии и указатель на динамический массив описателей пункта экскурсии. Описатель пункта экскурсии – название населённого пункта, название экскурсионного объекта, время начала и продолжительность экскурсии (в часах) на экскурсионном объекте.

Информация обо всех туристических маршрутах сведена в перемешанную таблицу (перемешивание сцеплением). Доступ к элементам таблицы осуществляется по «коду» экскурсии. В таблице могут быть несколько описателей экскурсии с определённым «кодом», которые планируются на различные даты (версия). Каждый элемент таблицы содержит указатель на описатель экскурсии.

Обеспечить выполнение следующих операций.

  • Для таблицы описателей экскурсий:

    • включить новый элемент в таблицу по «коду» и «дате»;

    • исключить элемент из таблицы по «коду» и «дате»;

    • найти элемент в таблице по «коду» и «дате»;

    • показать содержимое таблицы.

  • Для любой экскурсии:

    • показать информацию об экскурсии;

    • получить (вернуть в качестве результата) информацию о количестве проданных мест; изменить информацию о количестве проданных мест;

    • получить (вернуть в качестве результата) дату начала экскурсии; изменить «дату».

  • Для любого маршрута:

    • получить (вернуть в качестве результата) название населённого пункта; получить название экскурсионного объекта;

    • получить время начала экскурсии; получить продолжительность экскурсии.

  • Для приложения:

    • объявить новый экскурсионный маршрут;

    • отменить экскурсию по указанному туристическому маршруту для указанной даты;

    • модифицировать информации о местах для экскурсии (оформить покупку, отказ);

    • (*) выбрать ближайшую экскурсию по указанному туристическому маршруту (относительно указанной даты), используя класс-итератор.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]