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

Домашнее задание. Вариант 3.

Задание 1. Turbo Delphi

Часть 1.1. Delphi. Программирование с использованием классов. Графика. Обработка события нажатия клавиши мыши. Наследование. Полиморфизм.

Разработать иерархию классов Delphi. Разместить определение классов в отдельном модуле. Разработать программу, содержащую описание трех графических объектов:

окружность с вырезанной четвертью, эллипс, квадрат.

Реализуя механизм полиморфизма, привести объекты в одновременное вращение вокруг их геометрических центров с различными угловыми скоростями.

Параметры задаются с использованием интерфейсных элементов.

В отчете показать иерархии используемых классов Delphi и разработанных классов, граф состояния пользовательского интерфейса и объектную декомпозицию.

Часть 1.2. Программирование с использованием метаклассов. Создание контейнеров. Использование исключений при программировании в среде Delphi.

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

В отчете представить структуру использованных классов и обосновать выбранную структуру представления данных.

Задание 2. С++.

Часть 2.1. Текстовая обработка.

Дана последовательность строк. Каждая строка состоит из слов, разделенных пробелами в конце – точка. Слова в строке образуют пары: каждое первое слово – заменяемое, каждое второе – замещающее. Написать программу, обеспечивающую ввод строк и их корректировку. Корректировка заключается в замене всех заменяемых слов замещаемыми. Вывести на печать исходную и скорректированную последовательности строк. Реализовать как с использованием библиотечных функций работы со строками, так и с помощью собственной их реализации. Оценить время выполнения программы разными реализациями.

Часть 2.2. Файлы.

Сформировать программным образом символьный файл F, содержащий различные комбинации латинских символов со средней длиной строки 10 символов. Файл должен содержать не менее 1 млн. строк. Разработать программу, позволяющую сгенерировать индексную структуру данных для определения наличия указанной строки в этом файле, состоящую из двух файлов. Использовать хэщ-функцию CRC16. В файле H в смещениях, соответствующих хэш-функции, должны содержаться смещения от начала файла I списков номеров строк файла F. Предусмотреть проверку коллизий хэш-функции. Сравнить время работы программы в случае последовательного поиска строки и поиска по индексу.

Часть 2.3. Программирование с использованием классов. Простые объекты.

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

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

Задание 3. Программирование с использованием классов в С++.

Часть 3.1. Программирование с использованием классов в С++. Наследование и композиция. Оформление программной документации средствами doxygen

Разработать и реализовать диаграмму классов для описанных объектов предметной о механизмы наследования и композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных. Подготовить документацию.

Даны:

объект символ, умеющий печатать свое значение и отвечать на запрос о значении своего символьного поля.

Объект «строка», как массив из символов, умеющий выводить на печать значение своих элементов, удалять символ по номеру, удалять символ по значению, возвращать номер символа, начиная с которого некоторая подстрока или символ входят в строку.

Часть 3.2. Меню. Стандартные диалоги Qt.

Разработать программу-табло, обеспечивающую запрос имени текстового файла, открытие его в режиме просмотра, причём каждая файла должна отображаться индивидуальным объектом QLabel.. Предусмотреть возможность выбора цвета и шрифта отображения для каждого элемента QLabel.

Часть 3.3. Классы Model/View.

Разработать приложение, предназначенное для создания, редактирования и сохранения таблицы стоимости проезда с тремя колонками (номер зоны, цена проезда одной зоны, общая стоимость). Вводимое значение только в поле номера зоны. Цена проезда одинакова, общая стоимость вычисляется как произведение номера зоны на цену проезда одной зоны.

Соседние файлы в папке ДЗ