Отчет ОПР
.pdf2РАЗРАБОТКА АЛГОРИТМОВ МОДУЛЯ 2
2.1Полиморфизм
Вариант: 3 Задание: «Описать классы «Шахматная фигура», «Легкая фигура»,
«Тяжелая фигура», «Пешка», «Король», «Слон», «Ладья». Выстроить правильную иерархию наследования этих классов, определить какие из классов должны быть абстрактными, какие методы абстрактными или виртуальными. Описать конструкторы и деструкторы разработанных классов. Создать по одному объекту каждого класса, для которого это возможно, поместить их в один массив. Считать, что все элементы массива
— это фигуры на доске. Для объекта класса «Король» метод Сastling (возможность рокировки) и вывести на экран все свойства каждого из объектов.»
Были разработаны абстрактные классы «ChessPiece», «LightPiece» и «HeavyPiece», а также классы «Pawn», «Bishop», «Rook» и «King». Класс
«ChessPiece» является родительским классом, от которого наследуются атрибуты и методы. Классы «LightPiece» и «HeavyPiece» наследуют от класса «ChessPiece» только атрибуты, так как являются лишь характеристикой той или иной фигуры и не выполняют никаких дополнительных функций. Классы «Pawn» и «Bishop» наследуют от класса «LightPiece», так как являются легкими фигурами. Классы «Rook» и «King» наследуют от класса «HeavyPiece», так как являются тяжелыми фигурами. В классах реализуются следующие методы: Function(), Weight(), Colored(), Position(), PrintInfo(), Castling_Proverka(). Метод Function() выводит в консоль функциональное значение той или иной фигуры в игре. Метод Weight() выводит в консоль вес той или иной фигуры. Метод Colored() выводит цвет фигуры, который задается с помощью пользовательского ввода. Метод Position() выводит координаты той или иной фигуры на доске. Метод PrintInfo() выводит в
11
консоль имя той или иной фигуры на русском языке. Метод Castling_Proverka() выводит в консоль состояние фигуры, определяющее возможность или невозможность рокировки короля. Работа программы представлена на рисунках 2.1 и 2.2.
При вводе в консоль строки отличной от «Черная» или «Белая», программа выводит сообщение об ошибке в соответствующую строку (рисунок 2.3). При вводе значений, отличных от цифр, в качестве координат, программа выводит сообщение об ошибке в соответствующую строку (рисунок 2.4).
Рисунок 2.1 – Работа программы
Рисунок 2.2 – Работа программы
12
Рисунок 2.3 – Проверка на валидность
Рисунок 2.4 – Проверка на валидность
Для задания также была создана UML-диаграмма классов и их связей (рисунок 2.5).
13
Рисунок 2.5 – UML-диаграмма
14
3РАЗРАБОТКА АЛГОРИТМОВ МОДУЛЯ 3
3.1Технологии Windows Forms
Вариант: 3 Задание: «Написать программу, которая вычисляет силу тока в
электрической цепи. Цепь состоит из двух последовательно соединенных сопротивлений.»
С помощью технологии Windows Forms было создано графическое отображение программы (рисунок 3.1). Пользователю дается ввод сопротивлений первого и второго элементов в Омах, а также общее напряжение цепи в Вольтах. Расчет значений происходит при нажатии кнопки «Рассчитать!». Результат расчетов выводится в нижнюю строку, которой присвоено значение True в свойстве ReadOnly (рисунок 3.2).
При вводе значений, отличных от цифр, программа стирает введенные ранее значения и дает написать их заново (рисунок 3.3).
Рисунок 3.1 – Форма
15
Рисунок 3.2 – Работа программы
Рисунок 3.3 – Проверка на валидность в коде программы
Задание: «Написать программу, которая находит максимум, либо минимум для двух задаваемых чисел.»
С помощью технологии Windows Forms было создано графическое отображение программы (рисунок 3.4). Пользователю дается ввод первого и второго числа для сравнения. Сравнение происходит при нажатии кнопки «Рассчитать!». Результат выводится в нижние строки, которым присвоены значение True в свойстве ReadOnly (рисунок 3.5).
При вводе значений, отличных от цифр, программа стирает введенные ранее значения и дает написать их заново (рисунок 3.6).
16
Рисунок 3.4 – Форма
Рисунок 3.5 – Работа программы
17
Рисунок 3.6 – Проверка на валидность в коде программы
18
4РАЗРАБОТКА АЛГОРИТМОВ МОДУЛЯ 3
4.1Технологии Windows Forms
Вариант: 3 Задание: «Организовать вычисление с помощью полосы прокрутки для
различных n. Причем, предусмотреть вычисление как в цикле, так и по формуле, приведенной в правой части выражения: 1 + 3 + 5 + + (2n − 1) = n2.»
С помощью технологии Windows Forms было создано графическое отображение программы (рисунок 4.1). Значение n пользователь выбирает с помощью ползунка. Расчет значений происходит при нажатии кнопки «Рассчитать!». Результат расчетов выводится в нижнюю строку, которой присвоено значение True в свойстве ReadOnly (рисунок 4.2). Так как пользователь не может ничего ввести с клавиатуры, дополнительно не было написано никакой проверки (рисунок 4.3).
Рисунок 4.1 – Форма
Рисунок 4.2 – Работа программы
19
Рисунок 4.3 – Код программы
Задание: «Дана запись с именем STUDENT, содержащая следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти элементов). Написать программу, которая выполняет следующие действия: генерация из 10 записей типа STUDENT, и занесение их в файл данных; чтение данных из файла и вывод их на экран; вывод на экран фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2 (если таких нет - вывести об этом сообщение). Список студентов должен быть упорядочен по алфавиту фамилий.»
С помощью технологии Windows Forms было создано графическое отображение программы (рисунок 4.4). Для генерации учеников был создан класс Student. Генерация списка из 10 учеников происходит при нажатии на кнопку «Генерация», он выводится в левое поле (рисунок 4.5). При нажатии кнопки «Фильтрация» сгенерированный ранее список фильтруется по наличию оценки «2» у того или иного ученика и выводится в правое поле (рисунок 4.7). При отсутствии подходящих учеников выводится сообщение «Нет студентов с оценкой 2». При нажатии кнопки «Сортировка» сгенерированный ранее список сортируется в алфавитном порядке
20
