OOP / Лаб 1
.docxМинистерство образования и науки Украины
Одесский национальный политехнический университет
Кафедра системного программного обеспечения.
Протокол лабораторной работы № 1
По дисциплине:
Объектно-ориентированное программирование
Вариант 10
Выполнил
студент AC-121
Куценко Дмитрий Сергеевич
Преподаватель Кунгурцев О. Б.
Одесса 2013 (год)
Лабораторная работа №1 ”Классы. Язык С++”
Исходные данные для лабораторной работы
Заводом выпускаются различные измерительные приборы. Каждый прибор может характеризоваться приведенными ниже данными.
1.Наименование прибора.
-
Габариты: длина, высота, ширина.
-
Вес.
-
Стоимость.
-
Гарантийный срок.
-
Диапазон температур: tmin, tmax.
-
Источник питания: напряжение, ток, частота.
-
Измерения. Имеется несколько измеряемых величин. Каждая характеризуется:
названием измеряемой величины;
нижним пределом;
верхним пределом;
погрешностью.
-
Покупные изделия. Имеется несколько покупных изделий. Каждое характеризуется:
названием;
количеством;
названием поставщика
-
Заказчик. Имеется несколько заказчиков. Каждый характеризуется:
Наименованием;
адресом;
количеством заказанных приборов.
Выполнение лабораторной работы
Создать класс в соответствии с заданием. Предусмотреть 2 - 3 конструктора, методы изменения и извлечения данных, представляющих свойства прибора. Создать несколько объектов класса. Продемонстрировать работу с объектами.
Таблица 1. Характеристики приборов, реализуемые в варианте задания
№ варианта |
Характеристики прибора |
10 |
1,3,8 |
Код программы.
/*
1.Наименование прибора.
3. Вес.
8. Измерения. Имеется несколько измеряемых величин. Каждая характеризуется:
названием измеряемой величины;
нижним пределом;
верхним пределом;
погрешностью.
Создать класс в соответствии с заданием.
Предусмотреть 2 - 3 конструктора, методы изменения и извлечения данных, представляющих свойства прибора.
Создать несколько объектов класса.
Продемонстрировать работу с объектами*/
#include <iostream>
#include <string>
#include <locale>
using namespace std;
// начало объявления класса
class Pribor // имя класса
{
private: // спецификатор доступа public
string name;
public:
Pribor( string prib_name)// конструктор класса имя
{
setPrib(prib_name);// вызов функции
}
void setPrib(string prib_name)
{
name = prib_name;// инициализация имени
}
void getName()
{
setlocale( LC_ALL,"Russian" );
cout<<"\n----------------------------------------------------------------------------\n";
cout<<"Имя:"<<name<<"|*|";
}
private:
float ves;
public:
Pribor(float prib_ves) //конструктор класса Вес
{
setPribVes(prib_ves);
}
void setPribVes(float prib_ves)
{
ves = prib_ves;
}
void getVes()
{
setlocale( LC_ALL,"Russian" );
cout<<"Вес:"<<ves<<"|*|";
}
private:
float niz,verx; int pogr;
public:
Pribor(float prib_niz, float prib_verx, int prib_pogr)//конструктор класса Измерения
{
setPribIzm(prib_niz,prib_verx,prib_pogr);
}
void setPribIzm(float prib_niz, float prib_verx, int prib_pogr)
{
niz = prib_niz;
verx = prib_verx;
pogr = prib_pogr;
}
void getIzm()
{
setlocale( LC_ALL,"Russian" );
cout<<"Нижний придел:"<<niz<<"|*|"<<"Верхний придел:"<<verx<<"|*|"<<"Погрешность:"<<pogr;
}
};// конец объявления класса
void main()
{
setlocale( LC_ALL,"Russian" );
string name; float ves; int n;float niz; float verx; int pogr;
cout<<"Введите количество приборов:\n";
cin>>n;
Pribor objPribor(name);
Pribor *Pribors[50];// массив ссылок приборы
for (int i = 0; i < n; i ++)
{
cout<<"Прибор №"<<1+i;
cout<<"\n**********************";
cout<<"\nВведите название прибора:";
cin>>name;
cout<<"\nВведите вес прибора:";
cin>>ves;
cout<<"\nВведите нижний придел измерений:";
cin>>niz;
cout<<"\nВведите верхний придел измерений:";
cin>>verx;
cout<<"\nВведите погрешность измерений:";
cin>>pogr;
Pribors[i] = new Pribor(name);//выделение памяти под объект прибор
Pribors[i]->setPribVes(ves);
Pribors[i]->setPribIzm(niz,verx,pogr);
}
for (int i = 0; i < n; i ++){
Pribors[i]->getName();//вывод информации
Pribors[i]->getVes();
Pribors[i]->getIzm();
}
}