ДЗ: Домашние задания (усложнённый вариант)
Описание
Домашнее задание. Вариант 6
Задание 1. Программирование на Object Pascal с использованием классов
Часть 1.1. Графика. Обработка события нажатия клавиши мыши. Наследование. Полиморфизм
Разработать иерархию классов. Поместить определение классов в отдельном модуле. Разработать программу, содержащую описание трех графических объектов:
отрезок, ромб, астроида.
Реализуя механизм полиморфизма, привести объекты в одновременное колебательное движение с различными амплитудами и периодами колебаний вдоль осей, проходящих через их геометрические центры и параллельных главной диагонали экрана. Колебания должны затухать к центрам осей и затем возобновляться с возрастанием амплитуд вплоть до достижения объектами границ экрана.
В отчете показать иерархии используемых классов VCL и разработанных классов, граф состояния пользовательского интерфейса и объектную декомпозицию.
Часть 1.2. Программирование с использованием метаклассов. Создание контейнеров. Использование исключений при программировании.
Моделировать стек, в качестве элементов которого могут использоваться целые и вещественные числа. Операции: добавление элемента, удаление элемента, печать элементов стека. Создать класс-потомок, который содержит процедуру сортировки элементов стека (целые числа по возрастанию, вещественные – по убыванию). Тестировать полученную модель.
В отчете представить диаграмму классов и обосновать выбранную структуру представления данных.
Задание 2. Программирование на С++
Часть 2.1. Текстовая обработка
Дана последовательность строк. Каждая строка состоит из слов, разделенных пробелами. Написать программу, обеспечивающую ввод строк и их корректировку. Корректировка заключается в удалении или замене слов. Если слово стоит на четном месте и начинается на букву «е», то оно удаляется; если слово стоит на четном месте и начинается на букву «с», то оно заменяется словом, введенным с клавиатуры. Вывести на печать исходную и скорректированную последовательности строк. Реализовать как с использованием библиотечных функций работы со строками, так и с помощью собственной их реализации. Оценить время выполнения программы разными реализациями.
Часть 2.2. Файлы
Даны текстовые файлы F и G. Переписать в файл H только те слова из файла G, которые встречаются в файле F. Вместо отсутствующих слов ставить троеточие. Порядок знаков препинания при этом сохранить. Словоформы считать различными словами. Предусмотреть наличие индексных файлов, для поиска совпадения со словами файла F. Размер файла F – не менее 10 МБ. Проверить работу программы следующим образом. Файл F должен содержать художественные произведения авторов 19-го века, файл G – современные новости или статьи о компьютерных технологиях. Обеспечить время работы алгоритма поиска не более 3 секунд для новости размером не более 10 кБ.
Часть 2.3. Простые объекты
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и список объектов и содержит процедуры, работающие с указанными структурами, а также создает двоичное дерево, ключом в котором является предложение, а значением – позиция объекта в массиве.
Объект – предложение. Параметры: массив слов (n<10) и их количество. Методы: конструктор и процедура, определяющая количество слов, длиннее 5 букв. Определить процент слов длиннее 5 букв в заданном тексте. Реализовать поиск объектов по предложению с использованием дерева. Программа не должна содержать ограничение длины массива. Проверить, что все созданные объекты удаляются.
Задание 3. Программирование на С++ с использованием классов
Часть 3.1. Наследование и композиция. Оформление программной документации средствами doxygen
Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизмы наследования и композиции. Протестировать все методы. Поля классов должны быть частными (private) или защищенными (protected). Методы не должны содержать операций ввода/вывода, за исключением процедур, единственной задачей которых является вывод информации об объекте на экран. Подготовить документацию средствами doxygen.
Объект – билет. Поля: фамилия пассажира, стоимость проезда, стоимость провоза багажа. Методы: процедура инициализации объекта, процедура вывода информации об объекте на экран, функция вычисления полной стоимости билета.
Объект – льготный билет. Поля: фамилия пассажира, стоимость проезда без учета льготы, стоимость провоза багажа, скидка на проезд, вид льготы. Методы: процедура инициализации объекта, процедура вывода информации об объекте на экран, функция вычисления полной стоимости билета.
Объект – сканер контролера. Содержит сведения о просканированных за смену билетах. Методы объекта должны позволять: инициализировать объект, выводить на экран сведения о билетах и определять суммарную выручку от оплаты проезда за смену.
Часть 3.2. Меню. Стандартные диалоги Qt
Разработать программу, открывающую двоичный файл на просмотр (путь к файлу указывает пользователь). Двоичный файл содержит записи о количествах статей за определенные годы. Отобразить в виде текста список соответствия «год – количество статей», а также обеспечить возможность сохранения этого текста в новый текстовый файл с указанным именем. Предусмотреть возможность выбора шрифта отображения.
Часть 3.3. Классы Model/View
Разработать приложение, предназначенное для расчёта статистических характеристик вводимых результатов измерения некоторого числового параметра. Должен быть предусмотрен ввод результатов измерения создания в виде таблицы, содержащей колонку номера измерения и значения, а также отображение автоматически вычисляемых характеристик (максимальное, минимальное, среднее значение и среднеквадратическое отклонение) в отдельной таблице.
Использовать средства Qt для реализации концепции Model/View.
Все отчёты содержат работающий код, полностью принятый преподавателем. Копируете и вставляете
НЕ ЗАБУДЬТЕ ЗАПОЛНИТЬ ТИТУЛЬНЫЕ ЛИСТЫ!!!
Если сдача работ будет производиться дистанционно и нужны будут видео функционирования программ, пишите мне на specialforyours@list.ru
Характеристики домашнего задания
Список файлов
- OOП_усложнённые_дз
- HW_1.docx 490,68 Kb
- HW_2.docx 1,1 Mb
- HW_3.docx 1,91 Mb