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

Вариант 18 Жилищная контора

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

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

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

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

Полная информация о доме собрана в его описателе, который содержит: название улицы, номер дома и корпуса, суммарные платежи на 1 кв. м., суммарные платежи одного жильца, таблицу описателей квартир.

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

  • Для описателя дома:

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

    • найти элемент по заданному номеру квартиры;

    • удалить элемент, заданный номером квартиры;

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

  • Для любой квартиры:

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

    • получить число жильцов квартиры; получить размер площади;

    • изменить число жильцов и описатели съёмщиков;

    • получить количество обычных съёмщиков; получить количество льготных съёмщиков;

    • получить категорию квартиросъёмщика.

  • Для любого съёмщика (жильца) квартиры:

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

    • получить (вернуть в качестве результата) категорию съёмщика.

  • Для льготного съёмщика квартиры:

    • получить размер льготы; изменить размер льготы.

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

    • оформить заселение квартиры (внести в таблицу квартир новый элемент);

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

    • оформить освобождение квартиры;

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

    • (*) рассчитать размер льгот по дому, т.е. разность между максимальным платежом и реальным, используя класс-итератор.

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

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

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

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

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

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

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

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

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