Файл: Лабораторная работа 1 классы Отчет по лабораторной работе по дисциплине Объектноориентированный анализ и программирование.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.12.2023

Просмотров: 74

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской ФедерацииФедеральное государственное бюджетное образовательноеучреждение высшего образования«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТСИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)Кафедра автоматизации обработки информации (АОИ)Лабораторная работа № 1 «КЛАССЫ»Отчет по лабораторной работе по дисциплине«Объектно-ориентированный анализ и программирование»Студент гр. з-422П8-5И. С. Гребнев«21» апреля 2023 г.Руководительдоцент каф. АОИ,канд. техн. наукЮ. В. Морозова«___»___________2023 г.Томск 2023Цель работыИзучить структуру программ на основе использования объектно-ориентированного программирования, а также основные элементы структуры ООП: классы, объекты.Индивидуальный вариант №13Определить класс «Равнобедренный треугольник, заданный длинами сторон». Предусмотреть возможность операции присваивания, определения площади и периметра, а также логический метод, определяющий, существует ли такой треугольник. Конструктор должен позволить создавать объекты с начальной инициализацией и без нее.Краткие теоритические сведенияОбъектно-ориентированное программирование – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.Класс представляет набор объектов, которые обладают общей структурой и одинаковым поведением.Конструктор – это особенный метод класса, который вызывается автоматически в момент создания объектов этого класса.Описание алгоритма работы программыДанный код представляет собой класс IsoscelesTriangle, который описывает равнобедренный треугольник, заданный длинами сторон.
В классе есть три поля: sideA, sideB и sideC, которые представляют длины сторон треугольника. Для каждого поля определены геттеры и сеттеры для доступа к полю извне класса.Класс имеет два конструктора: один без параметров, который создает объект без начальной инициализации, и один с параметрами, который создает объект с начальной инициализацией длин сторон.В классе также определены три метода: calculatePerimeter(), calculateArea() и exists(). Метод calculatePerimeter() возвращает периметр треугольника, вычисленный как сумма длин сторон A и B. Метод calculateArea() возвращает площадь треугольника, вычисленную по формуле для равнобедренного треугольника: основание - сторона A, высота - расстояние от вершины до основания, равное корню из квадрата стороны B минус квадрат половины стороны A. Метод exists() проверяет, существует ли треугольник с заданными длинами сторон. Если существует, метод возвращает true, в противном случае - false.В классе также определен метод setSides(), который позволяет установить длины сторон треугольника.Общий смысл данного кода заключается в описании класса, который предоставляет функциональность для работы с равнобедренным треугольником, заданным длинами сторон. Класс позволяет установить длины сторон, вычислить периметр и площадь треугольника, а также проверить, существует ли такой треугольник. Это может быть полезно при решении задач, связанных с геометрией, например, при построении графиков или вычислении площади поверхности тела. В листинге №2 находится код для проверки работоспособности класса.Листинг №1public class IsoscelesTriangle {private double sideA; // длина стороны Aprivate double sideB; // длина стороны Bprivate double sideC; // длина стороны C// конструктор без параметровpublic IsoscelesTriangle() {this.sideA = 0;this.sideB = 0;this.sideC = 0;}// конструктор с параметрамиpublic IsoscelesTriangle(double sideA, double sideB, double sideC) {this.sideA = sideA;this.sideB = sideB;this.sideC = sideC;}// метод для вычисления периметраpublic double calculatePerimeter() {return sideA + 2 * sideB;}// метод для вычисления площадиpublic double calculateArea() {double height = Math.sqrt(Math.pow(sideB, 2) - Math.pow(sideA / 2, 2));return sideA * height / 2;}// логический метод для определения существования треугольникаpublic boolean exists() {return (sideA < sideB + sideC) && (sideB == sideC);}// метод для присваивания длин сторон

public void setSides(double sideA, double sideB, double sideC) {this.sideA = sideA;this.sideB = sideB;this.sideC = sideC;}}Листинг №2public class Main {public static void main(String[] args) {IsoscelesTriangle triangle1 = new IsoscelesTriangle(); // создание объекта без начальной инициализацииtriangle1.setSides(5, 3, 3); // присваивание длин сторонif (triangle1.exists()) { // проверка существования треугольникаdouble perimeter = triangle1.calculatePerimeter(); // вычисление периметраdouble area = triangle1.calculateArea(); // вычисление площадиSystem.out.println("Triangle: perimeter = " + perimeter + ", area = " + area);} else {System.out.println("Triangle does not exist");} }}Результат работы программыРисунок 1 – Результат выполнения программы ч.1Рисунок 2 – Результат выполнения программы ч.2Рисунок 3 – Результат выполнения программы ч.3Рисунок 4 – Результат выполнения программы ч.4ВыводВ ходе данной лабораторной работы я изучил структуру программ на основе использования объектно-ориентированного программирования, а также основные элементы структуры ООП: классы и объекты.