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