Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы вариант 4 / Классы2.1

.docx
Скачиваний:
6
Добавлен:
15.12.2020
Размер:
71.32 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования

Национальный исследовательский университет «МЭИ»

Институт ИнЭИ

Кафедра БИТ

ПРАКТИЧЕСКАЯ РАБОТА №2

Задание №1

по дисциплине

«Объектно-ориентированный анализ и программирование»

Тема

« Классы »

Студент

Газизова Юлия Маратовна

_______________________

Группа

ИЭс-161-19

_______________________

Лектор

Овсянникова М.Р.

_______________________

Руководитель

_______________________

Работа защищена

_______________________

оценка

_______________________

дата

Москва

2020

1. Условие задачи

Разработать программу с использованием класса объектов.

Для класса объектов разработать подпрограммы (методы класса) для:

- создания объекта с заданными значениями,

- показать характеристики объекта класса,

- вычисление объема правильной четырехугольной призмы,

- вычисление площади правильной четырехугольной призмы

В программе:

- создать один объект класса и показать его характеристики;

- создать два объекта класса;

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

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

2. Состав данных

В таблице 1 показаны данные используемые в программе.

Таблица 1

Название

Тип данных

Значение

R

double

Внешний радиус кольца для первого объекта

r

double

Внутренний радиус кольца для первого объекта

R1

double

Внешний радиус кольца для второго объекта

r1

double

Внутренний радиус кольца для второго объекта

S

double

Переменная площади

P

double

Переменная периметра

3. Набор тестовых данных. Ожидаемые результаты

Внешний радиус кольца для первого объекта :1

Внутренний радиус кольца для первого объекта :2

Внешний радиус кольца для второго объекта :2

Внутренний радиус кольца для второго объекта :4

Ожидаемые результаты :

Для первого объекта:

S=π(R^2r^2)=9,42

P=2π(R+r)=18,84

Для второго объекта:

S=π(R^2r^2)=-37,68

P=2π(R1+r1)=37,68

4. Метод решения задачи, основные формулы

Формула для вычисления площади кольца:

S=π⋅(R^2r^2)

Формула для вычисления периметра кольца:

P=2⋅π⋅(R+r)

5. Текст программы

#include <iostream>

#include <cmath>

using namespace std;

class ring // Имя класса

{

public: // Спецификатор доступа

double S; // Переменная площади

double P; // Переменная периметра

double s(double R, double r) // Метод класса - расчитывает площадь через радиусы

{

S = 3.14 * (pow(R,2) - pow(r,2));

return S;

}

double p(double R, double r) // Метод класса - расчитывает периметр

{

P = 2 * 3.14 * (R + r);

return P;

}

void output_s(int b) // Метод класса - выводит посчитанную площадь

{

cout << "Area of a circle: " << S << endl;

}

void output_p(int b) // мМетод класса - выводит посчитанный периметр

{

cout << "Circle perimeter: " << P << endl;

}

};

int main()

{

double R = 1; // Внешний радиус кольца для первого объекта

double r = 2; // Внутренний радиус кольца для первого объекта

double R1 = 2; // Внешний радиус кольца для второго объекта

double r1 = 4; // Внутренний радиус кольца для второго объекта

// Блок для объекта 1

ring object; // Объявление объекта A

object.s(R,r); // Вызов функции класса s (тут у нас считается площадь)

object.p(R,r); // Вызов функции класса p (тут у нас считается периметр)

cout << "Object 1" << endl;

object.output_s(object.s(R,r)); // Вызов метода класса output_s - вывод посчитанной площади на экран)

object.output_p(object.p(R,r)); // Вызов метода класса output_p - вывод посчитанного периметра на экран)

cout << "\n";

// Блок для объекта 2

ring object2;

object2.s(R1,r1); // Вызов функции класса s (тут у нас считается площадь)

object2.p(R1,r1); // Вызов функции класса p (тут у нас считается периметр)

cout << "Object 2" << endl;

object2.output_s(object2.s(R1,r1)); // Вызов функции класса output_s (выводит посчитанную площадь на экран) ДЛЯ ОБЪЕКТА Б

object2.output_p(object2.p(R1,r1)); // Вызов функции класса output_p (выводит посчитанный периметр на экран) ДЛЯ ОБЪЕКТА Б

cout << "\n";

cout << "--------------------Result--------------------" << endl;

// Блок сравнения вычисленных значений

if (object.s(R,r) == object2.s(R1,r1))

{

cout << "Areas of objects are equal" << endl;

}

else if (object.s(R,r) > object2.s(R1,r1))

{

cout << "Object area 1 > Object area 2 " << endl;

}

else

{

cout << "Object area 1 < Object area 2 " << endl;

}

if (object.p(R,r) == object2.p(R1,r1))

{

cout << "Perimeters of objects are equal" << endl;

}

else if (object.p(R,r) > object2.p(R1,r1))

{

cout << "Object perimeter 1 > Object perimeter 2 " << endl;

}

else

{

cout << "Object perimeter 1 < Object perimeter 2 " << endl;

}

system("pause");

return 0;

}

6. Результаты выполнения программы на наборе тестовых данных

Результаты работы программы при тестовых данных показаны на рисунке 1.

Рисунок 1 - Результаты работы программы

Соседние файлы в папке лабы вариант 4