Курсовая работа: Наследование типа включение делегирование. Классы-коллекции вариант 13
Описание
Цель: освоение навыков составления и тестирования алгоритмов и объектно-ориентированных программ, использующих абстрактные структуры данных и абстрактные классы по принципу «включение – делегирование».
Задание
- Составить программу на языке C# для обработки структурированных данных с помощью классов-коллекций. В программе согласно индивидуальному заданию (табл. 12.2):
- определить базовый класс как абстрактный;
- ввести в абстрактный класс дополнительные абстрактные методы для изменения значений полей класса;
- в производных классах переопределить наследуемый метод для специализированной операции изменения полей класса (операции выбрать самостоятельно).
- Создать класс по принципу «включение – делегирование», содержащий коллекцию производных от базового абстрактного класса объектов. Для реализации выбрать один из предложенных в табл. 12.2 производных классов. Описать следующие методы:
- добавление в коллекцию новых объектов;
- изменение свойств и полей имеющихся объектов по номеру объекта в коллекции;
- удаление из коллекции объекта по его номеру;
- вывод информации об имеющихся в коллекции объектах.
- Продемонстрировать работу класса, построенного по принципу «включение – делегирование». Для этого в методе Main реализовать текстовое меню для выбора одного из возможных действий:
- добавить в коллекцию объект (производного класса);
- внести изменения в характеристики объекта коллекции;
- удалить объект из коллекции;
- вывести сведения по имеющимся в коллекции объектам;
- выйти из программы.
- Разработать модульный тест для проверки работоспособности заданного метода обработки данных, в том числе для контроля исключений. Результаты тестирования сохранить в файле test.log.
- Продемонстрировать работу класса, построенного по принципу «включение – делегирование». Для этого в методе Main реализовать текстовое меню для выбора одного из возможных действий:
- Создать класс по принципу «включение – делегирование», содержащий коллекцию производных от базового абстрактного класса объектов. Для реализации выбрать один из предложенных в табл. 12.2 производных классов. Описать следующие методы:
Таблица 12.2
Варианты индивидуальных заданий к лабораторной работе 12
Номер варианта | Класс-коллекция | Базовый абстрактный класс | Производные классы (дополнительные атрибуты) | Метод для тестирования |
13 | Жилой массив | Здание (число этажей, материал стен, адрес) | Жилое здание (число подъездов, число квартир на этаже), промышленное здание (число и дата заправки огнетушителей) | Добавление |
ИСПОЛЬЗОВАНИЕ ИНТЕРФЕЙСОВ И ДЕЛЕГАТОВ
Цель: освоение навыков составления и тестирования алгоритмов и объектно-ориентированных программ, использующих стандартные интерфейсы и делегаты.
Задание
- На примере одного из классов-потомков (выбрать самостоятельно из классов, реализованных при выполнении лабораторной работы 12) реализовать интерфейсы ICloneable, IComparable и IComparer. Реализовать поверхностное и глубокое копирование объектов, вывод отсортированного списка объектов класса по произвольному полю.
- С помощью делегатов создать метод сортировки заданным методом списка объектов класса-коллекции. Обеспечить возможность проведения сортировки объектов по полям разных типов данных. Делегат должен передавать информацию о функции сравнения двух объектов классаколлекции.
- С помощью лямбда-выражений реализовать операции поиска данных по нескольким заданным критериям и вывод найденных записей на консоль.
- Протестировать модульными тестами работу делегатов и обработку контролируемых исключений.
ДВУМЕРНАЯ ГРАФИКА В C#. БИНАРНЫЕ ДЕРЕВЬЯ
Цель: освоение навыков составления программ с графическим интерфейсом Windows для работы с бинарными деревьями, применения средств пространства имен System.Drawing и его классов Graphics, Pen и Brush.
Задание
- Дана последовательность целых чисел, оканчивающаяся нулем. Написать программную реализацию класса для внесения и хранения данной последовательности в виде дерева двоичного поиска. Если согласно табл. 14.1 заданы 2 дерева, то их следует задавать двумя последовательностями. Реализовать графический интерфейс.
- Разработать два метода обработки данных исходного дерева согласно индивидуальному заданию из табл. 14.1. Преобразованное дерево сохранить в файл tree.res. После преобразования проверить, осталось ли дерево деревом двоичного поиска. Результат этой проверки, а также число, возвращенное методом вычисления показателя, выводить посредством элементов управления TextBox.
- Операции построения и обработки дерева инициировать посредством элементов управления CommandButton.
- Для прорисовки исходного и результатного бинарного дерева использовать элементы управления PictureBox. Использовать классы Graphics, Pen и Brush пространства имен System.Drawing.
- Рассчитанные скалярные значения выводить посредством элемента управления TextBox.
- Разработать модульный тест для метода преобразования дерева. При проверке читать дерево из файла tree.res.
- При программировании задачи выполнять обработку исключительных ситуаций.
Таблица 14.1
Варианты индивидуальных заданий к лабораторной работе 10
Номер варианта | Задание на преобразование дерева | Задание на вычисление показателя |
13 | Поменять местами элементы с максимальным и минимальным значением | Найти номер уровня бинарного дерева с максимальной суммой элементов |
ОБРАБОТКА ГРАФОВ В C#. ДВОЙНАЯ БУФЕРИЗАЦИЯ ГРАФИКИ
Цель: освоение навыков составления программ с графическим интерфейсом Windows для работы с простыми и ориентированными графами, с реализацией дополнительного буфера для обеспечения плавности анимации.
Задание
- Написать программную реализацию класса графа с возможностью добавления элементов во множество вершин и во множество ребер. Способ представления ребер зависит от варианта индивидуальной задачи (списки смежности, матрица смежности, список ребер). Реализовать графический интерфейс с двойной буферизацией, в котором элементы графа можно свободно перемещать по области рисования.
- Разработать метод класса для обработки данных графа согласно индивидуальному заданию из табл. 15.1. Результат обработки отражать графически и выводить посредством элементов управления TextBox согласно индивидуальному заданию из табл. 15.1.
- Операции загрузки, сохранения и обработки графа инициировать посредством элементов управления Button.
- Разработать модульный тест для метода обработки графа. При проверке читать граф из файла G.grf.
- При программировании задачи выполнять обработку исключительных ситуаций.
- Представить результаты выполнения программы и сделать выводы по работе.
Таблица 15.1
Варианты индивидуальных заданий к лабораторной работе 15
Номер варианта | Задание | Вид* графа | Способ представления | Метод обхода |
13 | Поиск точек сочленения графически отобразить эти вершины красным цветом либо вывести в TextBox, что таких вершин нет | Н | Любой | DFS |
СибГУТИ
















