4 семестр / samostoiatelnaia-rabota-29
.pdfНАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ» Кафедра информатики и процессов управления (№17)
Дисциплина «Информатика» (основной уровень), 2-й курс, 4-й семестр.
Задание для самостоятельной работы 29
Тема 29: Шаблоны.
Составить программу на языке Си++, в которой описан рациональный набор шаблонов классов для реализации очереди (FIFO) на основе линейного односвязного списка. Шаблоны должны учитывать, что элементами очереди могут быть: целые и вещественные числа, символы, нуль-терминированные строки, указатели на объекты.
Для описанных шаблонов реализовать возможности удобной работы с ними, приведенные в следующей таблице.
№ |
Реализовано в решении |
1 |
Для шаблонов очереди реализовать две основные операции очереди: добавление |
|
и извлечение элементов. Значение извлекаемого элемента должно возвращаться |
|
из очереди (например, передаваться в отдельную переменную, не связанную с |
|
очередью). |
2 |
Перегрузить операцию "<<" для добавления элементов в очередь. |
3 |
Очередь для целых чисел (типа int) содержит метод для вычисления суммы всех |
|
элементов очереди. |
4 |
Очередь для символов (типа char) реализовывать не через линейный |
|
односвязный список, а через массив заданного размера, расположенный в |
|
динамической памяти. В этом случае размер очереди не может превышать |
|
заданный размер массива. |
5 |
В шаблоне очереди для нуль-терминированных строк хранить копии |
|
добавляемых в очередь строк, размещаемые в динамической памяти. |
|
Нуль-терминированная строка – массив символов, в котором концом строки считается |
|
специальный нуль-символ ('\0'). |
6* |
Предусмотреть возможность хранения в очереди указателей на графические |
|
объекты, описанные в задании для самостоятельной работы 28. |
|
* - для получения максимального балла |
В программе должен содержаться код, создающий объекты и вызывающий каждый из реализованных методов для демонстрации их работы на одном или нескольких конкретных примерах.
При выполнении задания запрещено использовать стандартные средства и возможности сторонних библиотек (кроме стандартных математических функций и средств текстового ввода-вывода).
