Задания
по курсу "Объектно-ориентированное программирование" 1 семестр |
||
1. | Определите классы Vector и Matrix и операции над ними, исходя из использования этих классов для решения задач линейной алгебры. Напишите тестовую программу. | |
2. | Определите класс комплексных чисел Complex и проверьте целостность полученной абстракции путем замены в Vector и Matrix (из предыдущего задания) double на Complex. Тесты этих классов должны работать практически без изменений. | |
3. | Реализуйте список произвольных структур данных (задайте некоторую
тестовою struct и используйте typedef для обеспечения независимости исходного
текста от типа хранимых данных). Обеспечьте возможность итерации списка
в прямом и обратном направлении при помощи вложенного класса Iterator, реализованного
по одной из схем:
Обеспечьте классу list корректный деструктор, методы добавления и удаления элементов. Напишите тестовую программу. Класс должен быть реализован как отдельный модуль, подключаемый к тестовой программе при сборке. |
|
4. | Переделайте классы Vector и Matrix из заданий №1 и №2 используя шаблоны. Напишите тестовую программу. | |
5. | Переделайте список из задания №3 используя шаблоны. Напишите тестовую программу. | |
6. | Напишите программу на С++, которая вызовет чистую виртуальную функцию. Сколькими способами это можно сделать? | |
7. |
Создайте две реализации класса string: с использованием технологии copy-on-write и без таковой. Используя класс списка из задания №5, напишите программу, которая вводит строки из файла и выводит их на стандартный вывод в обратном порядке. Сравните производительность программы на разных реализациях класса string. |
|
8. | Напишите программу просмотра субтитров к фильмам в цифровом формате. Программа должна уметь считывать данные из файла, сохранять данные в файл, находить и показывать реплику для любого момента фильма. Программа должно поддерживать более одного формата субтитров. Используйте при написании классы string и list из предыдущих заданий. |