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

Отчет по лабораторной работе №2

.docx
Скачиваний:
35
Добавлен:
03.10.2022
Размер:
41.01 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

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

Отчет по лабораторной работе №2

«Конструирование простейшего класса»

Цель лабораторной работы:

Познакомиться с основными понятиями объектно­ориентированного программирования (класс,   объект,   свойство,  метод,   конструктор,   деструктор), выполнить конструирование класса, предназначенного для хранения заданной структуры данных, изучить способы создания объектов.

Задание:

В работе требуется сконструировать класс с заданным набором свойств. Набор свойств следует взять из лабораторной работы № 1 в соответствии со своим вариантом. В класс также должно быть добавлено достаточное количество методов для просмотра и редактирования значений любого из свойств. Требования к конструированию класса: доступ к свойствам — закрытый, к методам — открытый. В классе следует предусмотреть конструктор по умолчанию, конструктор с параметрами. Действия, выполняемые программой:

1. Создание объекта с помощью конструктора по умолчанию.

2. Создание объекта с помощью конструктора с параметрами.

3. Создание массива объектов.

4. Редактирование и просмотр свойств каждого объекта (можно однократное).

5. Обработка массива объектов в соответствии с заданием лабораторной работы №1. 

Ввод исходных данных осуществляется с клавиатуры, вывод на экран.

7 Вариант:

Количество строк: 4. Столбцы: Марка монитора, Максимальное разрешение, Цена. Вычислить среднюю цену.

Ход работы

Данные по умолчанию:

Ввод данных с клавиатуры:

Однократное редактирование данных:

Полученный результат:

Заключение

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

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

Примечание

Исходный код:

#include <iostream>

using namespace std;

class Monitor

{ public:

Monitor();

Monitor(string mark,string res,int pr);

~Monitor();

void setMarka(string v);

string getMarka();

void setResolution(string v);

string getResolution();

void setPrice(int v);

int getPrice();

private:

string marka;

string resolution;

int price; };

int main()

{ setlocale(0, "");

Monitor m1;

m1.setMarka("HP");

m1.setResolution("1280x768");

m1.setPrice(2000);

Monitor m2("LG","1280x720",4000);

cout << m1.getMarka() << " " << m1.getResolution() << " " << m1.getPrice() << endl;

cout << m2.getMarka() << " " << m2.getResolution() << " " << m2.getPrice() << endl;

Monitor m3[4];

string MarRes;

int Pri,i;

int c=0;

int sum=0;

int sr;

for (int i=0;i<4;i++)

{cout << "Введите марку монитора" << endl;

cin >> MarRes;

m3[i].setMarka(MarRes);

cout << "Введите разрешение монитора" << endl;

cin >> MarRes;

m3[i].setResolution(MarRes);

cout << "Введите цену монитора" << endl;

cin >> Pri;

m3[i].setPrice(Pri); }

for(int i=0;i<4;i++)

cout << m3[i].getMarka() << " " << m3[i].getResolution() << " " << m3[i].getPrice() << endl;

cout << "Какую строку Вы хотите изменить?" <<endl;

cin >> c;

cout << "Измените параметры:" << endl;

cin >> MarRes;

m3[c-1].setMarka(MarRes);

cin >> MarRes;

m3[c-1].setResolution(MarRes);

cin >> Pri;

m3[c-1].setPrice(Pri);

for(int i=0;i<4;i++)

cout << m3[i].getMarka() << " " << m3[i].getResolution() << " " << m3[i].getPrice() << endl;

for (int i=0;i<4;i++)

sum+=m3[i].getPrice();

sr=sum/4;

cout << "Средняя цена монитора = " << sr << endl;

return 0; }

Monitor::Monitor()

{ marka = "NoMarka";

resolution = "NoResolution";

price = 0; }

Monitor::Monitor(string mark,string res,int pr)

{ marka = mark;

resolution = res;

price = pr; }

Monitor::~Monitor()

{ }

string Monitor::getMarka()

{ return marka; }

void Monitor::setMarka(string v)

{ marka = v; }

string Monitor::getResolution()

{ return resolution; }

void Monitor::setResolution(string v)

{ resolution = v; }

int Monitor::getPrice()

{ return price; }

void Monitor::setPrice(int v)

{ price = v; }