Файл: Отчет за практическое занятие 5 Тема Проектирование классов и создание объектов. Перегрузка функций.docx

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

Категория: Отчет по практике

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

Добавлен: 04.12.2023

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

_____________________________________________________________________________
Факультет Информационных систем и технологий

Кафедра Безопасности информационных систем

Дисциплина «Алгоритмизация и программирование»

ОТЧЕТ
За практическое занятие №5

Тема: Проектирование классов и создание объектов. Перегрузка функций

Вариант: _7_

Выполнил

Студент 2 курса, гр. ИБ-02з

_____________ Винокуров А.Ф.
Принял

Доцент кафедры БИС

_____________ Медведев В.А.


Санкт-Петербург

2022

Тема: Проектирование классов и создание объектов. Перегрузка функций
Цель: получение практических навыков разработки классов, перегрузки функций и формирования объектов с помощью конструкторов.

Задание:

Задание 1. Спроектировать класс в соответствии с индивидуальным заданием (см. Приложение), содержащий закрытые переменные, характеризующие свойства моделируемого предмета, и функции доступа к ним; конструктор и деструктор, выводящие сообщения при срабатывании. Создать три объекта и определить Вычисляемый показатель.

Задание 2. В разработанной программе для Задания 1 перегрузить конструктор. Для Вычисляемого показателя разработать отдельную функцию. Результат вывести в главной функции.

Задание 3. Сохранить проект класса, разработанного для Задания 2. Создать массив из 5-ти объектов. Перегрузить функцию, определяющую Вычисляемый показатель. Результат вывести в главной функции.




п/п

Класс

Вычисляемый показатель

7.

Периферийное устройство компьютера

Минимальная цена устройства


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

#include
using namespace std;
class Product {
const char* name;

double price;

int id;
public: Product() { // стандартный конструктор id = 0; name = "Virgin Galactic"; price = 0;

}; Product(int _id, const char* _name, double _price) // перегруженный конструктор

{ id = _id; name = _name; price = _price;

cout << "I am ctor" << endl;

}

Product() { // деструктор

cout << "I am destructor" << endl;

};

int GetID() // доступ к полю id через функцию

{

return id;

}

const char* GetName() { // доступ к полю name через функцию

return name;

}

double GetPrice() { // доступ к полю price

return price;

}

};
double MinValuePrice(Product pro1, Product pro2, Product pro3); // объявление функции для вычисления мин значения поля price среди 3 объектов

double MinValuePrice(Product _products[5]); // перегрузка функции для 5 объектов

int main()

{

double minValue = 0;

//создание объектов класса Product Product mouse(0, "MouseX", 8.31); Product keyboard(1, "BladeZ", 15); Product headphones(2, "Black Spider", 65.1); Product monitor(3, "Dell", 10); Product printer(4, "Xerox", 7); minValue = MinValuePrice(mouse,keyboard,headphones); // вызов функции для мин значения

cout << endl << "( 3 obj ) Min value of price: " << minValue << endl << endl; Product products[5] = { mouse, keyboard,headphones,monitor,printer}; // создан7ие массива из элементов minValue = MinValuePrice(products); // вызов перегруженной функции для мин значения

cout << endl << "min value for mass[5]: " << minValue << endl << endl;

}
double MinValuePrice(Product pro1, Product pro2, Product pro3) {

double min=0; Product products[3] = {pro1,pro2,pro3}; // инициализация массива из объектов
min = products[0].GetPrice();
for (int i = 1; i < 3; i++)

{

if (min > products[i].GetPrice())

{

min = products[i].GetPrice();

}

}

return min;

}
double MinValuePrice(Product _products[5]) {
double min = 0;

min = _products[0].GetPrice();

for (int i = 1; i < 5; i++)

{

if (min > _products[i].GetPrice())

{

min = _products[i].GetPrice();

}

}

return min;

}

Результаты работы программы:



Рисунок 1 Результат работы программы по нахождению минимального значения цены устройства

Вывод: в результате работы были получены практические навыки разработки классов, перегрузок функций и создания объектов при помощи конструкторов класса.