- •Лабораторные работы по курсу «Инструментальные средства визуального программирования»
- •1. Программирование односвязного списка
- •1.1.Задание
- •1.2.Описание вариантов заданий
- •2.Перегрузка векторных и матричных операций
- •2.1.Задание
- •2.2.Бесценные методические указания
- •2.3.Некоторые особенности перегрузки операций
- •2.4.Варианты заданий
- •3.Классная работа
- •3.1.Постановка задачи
- •3.2.Задания
- •3.3.Методические наказания к первой части работы
- •3.4.Методические наказания ко второй части работы
- •4.Алгоритмы
- •Задание
- •Варианты классов и их обработки
- •5.Приложение WinForms (cli)
- •5.1.Задание
- •5.2.Бесценные методические предписания
- •Int nRec;//Число записей файла, оно же будет числом элементов массивов
- •6.Графика в WinForms (cli)
- •6.1.Задание
- •6.2.Бесценные методические предписания
- •6.3.Индивидуальные задания
- •7.1.Задание
- •7.2.Бесценные методические наставления
- •8.Квикли файдингуем рутсы
- •8.1.Дармовые методические рекомендации
- •8.2.Задание
- •Варианты индивидуальных заданий
- •9.Приложение, основанное на модальном диалоговом окне
- •9.1.Нудные методические указания Модальные и немодальные диалоговые окна
- •Ресурсы и элементы управления
- •Сценарий создания приложения
- •Разбор приложения
- •Усовершенствование приложения
- •10.Разработка графического редактора
- •Задание.
- •10.1.Проектирование программы
- •10.2.Разработка интерфейса
- •Установка флагов
- •Создание меню и панели инструментов
- •Обработка сообщений о нажатии кнопки мыши
- •10.3.Рисование
- •10.4.Растягивание фигур
- •10.5.Обновление изображения
- •10.6.Сохранение метафайла на диске и его загрузка
- •Список ссылок
- •Работы, выполненные в осеннем семестре 2016/2017 по курсу ооп
Лабораторные работы по курсу «Инструментальные средства визуального программирования»
(4-й семестр, весна 2016/17)
Лабораторные работы по курсу «Инструментальные средства визуального программирования» 1
1. Программирование односвязного списка 2
2. Перегрузка векторных и матричных операций 4
3. Классная работа 10
4. Алгоритмы 24
5. Приложение WinForms (CLI) 27
6. Графика в WinForms (CLI) 36
7. Классы C++/CLI 45
8. Квикли файдингуем рутсы 50
53
9. Приложение, основанное на модальном диалоговом окне 54
10. Разработка графического редактора 81
Список ссылок 100
Работы, выполненные в осеннем семестре 2016/2017 по курсу ООП 100
1. Программирование односвязного списка
Если в программе предусмотрен контроль всех исходных данных, то преподаватель обязательно найдет способ, чтобы ошибочные данные прошли через этот контроль и завалили вашу программу
Закон Мерфи-ОВН
Цель работы – освоить разработку консольных приложений Windows, использующих односвязные списки для обработки данных (4 час.).
1.1.Задание
По работе [4] изучите подраздел 13.4 «Реализация связного списка как класса», в котором изложен сценарий создания односвязного списка и приведены листинги программы.
Создайте консольное приложение, добавьте в него класс узел связного списка и класс список на основе данных листингов. Разместите эти классы в разных файлах.
Выполните отладку приложения, тестируйте его и добейтесь корректной работы. Убедитесь, что по завершению работы вашей программы утечек памяти нет. Смотрите пример проекта LinkV2.exe.
Разработайте собственный класс узел (элемент списка) в соответствии с вашим вариантом задания, приведенным ниже в табл. 9.1. Далее необходимо разработать класс список, который будет оперировать объектами-узлами: добавлять, удалять и т.д. Один из вариантов реализации класса список имеется в работе [4].
При выполнении любого варианта задания предусмотреть такую реализацию программы, использующей разработанные вами классы, которая бы позволила убедиться в корректности реализации методов класса. В частности, во всех вариантах список должен быть реализован метод вывода на монитор значений всех член-данных объектов.
Ваше приложение должно быть русифицировано, а еще лучше – украинизировано.
Варианты заданий приведены в табл. 9.1. Разрешается выбрать свой вариант задания, но перед выполнением согласовать его с преподавателем.
Предусмотрите в программе два варианта ввода данных, которые должны сохраняться в узлах списка:
ввод данных с клавиатуры;
чтение данных из текстового файла.
Эти варианты ввода должны выбираться с помощью меню.
1.2.Описание вариантов заданий
В каждом варианте задания оговаривается содержимое класса узла, т.е. те данные, которые должны там сохраняться, и их типы (если не указан – то int). Кроме того, оговаривается член-функция класса списка, которая должна быть реализована в дополнение к тем, текст которых приведен в приведенном выше источнике.
Таблица 9.1.
Варианты заданий
№ вар. |
Задание |
1 |
Узел списка Трактор с член-данными марка (char *), цвет (char *), объем (float) и мощность двигателя. Реализовать член-функцию «добавление в начало списка нового узла» |
2 |
Узел списка Служащий с член-данными ФИО (char *), идентификационный код, возраст. Реализовать член-функцию «удаление первого элемента списка» |
3 |
Узел списка Книга с член-данными число страниц, язык издания (char *), наличие иллюстраций (bool). Реализовать член-функцию «удаление последнего элемента списка» |
4 |
Узел списка Комната с член-данными ширина (float), длина (double) и цвет стен (char *). Реализовать член-функцию «получение элемента с заданным порядковым номером» |
5 |
Узел списка Птица с член-данными вес (float), максимальные высота и скорости, порода (char *). Реализовать член-функцию «удаление элемента с заданным порядковым номером» |
6 |
Узел списка Двигатель с член-данными тип двигателя ((char *)бензиновый, дизельный, электрический, комбинированный), фирма-производитель (char *) и мощность двигателя (float). Реализовать член-функцию «замена элемента с заданным порядковым номером на новый» |
7 |
Узел списка Вектор с член-данными указатель на целочисленный тип данных, его размер и фактическое число элементов, т.е. массив. Реализовать член-функцию «поиск в списке массива с заданным содержимым». Требуется найти в списке все узлы, которые содержат массив с заданным содержимым. Разные узлы списка должны содержать различное число элементов массива |
8 |
Узел списка Муха с член-данными вид (char *), число крыльев и их размах (float). Реализовать член-функцию «вставка элемента перед указанным порядковым номером» |
9 |
Узел списка Сок с член-данными марка (char *), производитель (char *) и объем упаковки. Реализовать член-функцию «удаление всех элементов, удовлетворяющих некоторому условию» |
10 |
Узел списка Ребенок с член-данными вес, рост и раса (char *). Реализовать член-функцию «вставка элемента после указанного порядкового номера» |
11 |
Узел списка Компьютер с член-данными марка (char *), число процессоров, объем оперативной памяти. Реализовать член-функцию «добавление в конец списка нового узла» |
12 |
Узел списка Окно с член-данными меню (char *) и число тем меню, наличие инструментальной панели (bool) и строки статуса (bool). Реализовать член-функцию «замена элемента с заданным порядковым номером на новый» |
13 |
Узел списка с член-данными ФИО (char *), пол (char), специальность (char *), курс обучения. Реализовать член-функцию «замена элемента с заданным порядковым номером на новый» |
