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

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

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

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

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

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

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

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

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

Вариант 3 Программа на ассемблере

Разработать приложение, позволяющее описать программу на языке некоторого ассемблера. Информация о формате оператора языка ассемблера хранится в описателе оператора. В записи операторов языка могут использоваться регистры и идентификаторы. Регистр - число в диапазоне 0..15; идентификатор – последовательность латинских букв длиной не более 8 символов.

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

Описатель оператора регистр-память содержит следующую информацию: поле метки (может отсутствовать) и код операции; номер регистра и идентификатор области памяти.

Описатель оператора перехода содержит следующую информацию: код операции и идентификатор метки перехода.

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

Совокупность операторов образует программу на ассемблере, которая представлена таблицей. Каждый элемент таблицы содержит адрес оператора и указатель на его описатель. Элементы таблицы упорядочены по возрастанию значений адреса.

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

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

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

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

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

    • показать всю программу.

  • Для любого оператора:

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

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

  • Для регистрового оператора:

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

    • изменить значение указанного регистра.

  • Для оператора регистр-память:

    • вернуть значение регистра; изменить значение регистра;

    • вернуть значение идентификатора; изменить значение идентификатора.

  • Для оператора объявления данных и оператора перехода:

    • вернуть значение идентификатора; изменить значение идентификатора.

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

    • редактирование программы - внесение, исключение и модификация операторов;

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

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

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

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

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

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

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

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

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

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