Файл: Отчет за практическое занятие 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 Результат работы программы по нахождению минимального значения цены устройства
Вывод: в результате работы были получены практические навыки разработки классов, перегрузок функций и создания объектов при помощи конструкторов класса.