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

Вариант 5 Книжный каталог

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

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

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

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

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

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

  • Для таблицы

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

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

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

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

  • Для любого издания:

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

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

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

  • Для учебного или научного издания:

    • вернуть в качестве результата перечень названий курсов, использующих это издание;

    • изменить или добавить название курса, использующего это издание.

  • Для художественного издания:

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

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

    • оформить поступление нового издания (создается новая запись в таблице);

    • оформить выдачу экземпляра издания (уменьшение количества хранящихся книг);

    • оформить возврат экземпляра издания;

    • определить тип издания по заданному шифру;

    • получить отчёт обо всех изданиях, имеющихся в библиотеке, в краткой форме;

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

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

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

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

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

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

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

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

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

Вариант 6 Таблица идентификаторов

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

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

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

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

Каждый элемент вектора или матрицы (массива) содержит признак определенности переменной и значение; память под массив выделяется динамически.

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

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

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

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

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

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

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

  • Для простой переменной:

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

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

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

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

    • вывести значение переменной.

  • Для массива (вектора или матрицы ):

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

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

    • получить (вернуть в качестве результата) признак определённости массива (массив определен, если определены все его элементы);

    • записать в определённый элемент массива, заданный его индексом (индексами);

    • вывести значение элемента массива, заданного его индексом (индексами).

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

    • внесение идентификатора в таблицу при условии, что его в таблице нет (с инициализацией неопределённым значением);

    • определение переменной (части массива);

    • исключение описания переменной из таблицы;

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

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

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