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