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

OOP / Лаб 5

.docx
Скачиваний:
27
Добавлен:
10.02.2016
Размер:
17.12 Кб
Скачать

Министерство образования и науки Украины

Одесский национальный политехнический университет

Кафедра системного программного обеспечения.

Протокол лабораторной работы № 5

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

Объектно-ориентированное программирование

Вариант 10

Выполнил

студент AC-121

Куценко Дмитрий Сергеевич

Преподаватель Левченко А.Ю

Одесса 2013 (год)

Лабораторная работа №5 „Статические данные и методы.

Используя задание к лабораторной работе №1 создать класс Прибор, описав некоторые данные как статические.

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

Продемонстрировать работу со статическими данными и методами.

Код программы

#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:

int niz,verx; static int pogr;

public:

Pribor(int prib_niz, int prib_verx, int prib_pogr)//конструктор класса Измерения

{ setPribIzm(prib_niz,prib_verx,prib_pogr);}

void setPribIzm(int prib_niz, int prib_verx, int prib_pogr)

{ niz = prib_niz;

verx = prib_verx;

pogr = prib_pogr;

}

void getIzm()

{setlocale( LC_ALL,"Russian" );

cout<<"Нижний придел:"<<niz<<"|*|"<<"Верхний придел:"<<verx<<"|*|"<<"Погрешность:"<<pogr;}

public:

static void addInf(){setlocale( LC_ALL,"Russian" );

string name; float ves; int n; int niz; int 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();

}

}

private:

static int minc,maxc,gsrok;

public:

Pribor(){

minc++;

maxc++;

gsrok++;

}

int getstat(){

return minc;

}

static void setif(){

Pribor m1,m2,g3;//создание трех обьектов,каждый обьект видит одно и тоже значение

setlocale( LC_ALL,"Russian" );

cout<<"\nПрибор мин:"<<m1.getstat();

cout<<"\nПрибор мах:"<<m2.getstat();

cout<<"\nПрибор срок:"<<g3.getstat();

system ("pause");

}

};// конец объявления класса

int Pribor::pogr=0;//определение pogr

int Pribor::minc=0;//определение minc

int Pribor::maxc=0;

int Pribor::gsrok=0;

void main()

{

Pribor::setif();

Pribor::addInf();//вызов статической функции

}

Соседние файлы в папке OOP