Professional Documents
Culture Documents
Лабораторна робота № 1
з дисципліни: “Об’єктно-орієнтоване програмування”
на тему:
«Класи у мові C++»
Виконав:
Студент групи АС-191:
Кльопа Микола
Викладач:
Писаренко К. О.
Одеса
2020
Завдання
Варіант 8
Створити клас у відповідності з завданням. Передбачити два конструктора ( перший приймає
значення даних в діалоговому режимі, другий - через параметри), методи зміни та отримання
даних, що представляють властивості приладу. Створити кілька об'єктів класу.
Продемонструвати роботу з об'єктами.
8 1,10,11
1. Найменування приладу.
10.Замовник (організація купує продукцію заводу). Є декілька замовників. Кожен з
них характеризується:
- найменуванням;
- адресою;
- кількістю замовлених приладів.
11. Стан. Може приймати значення: увімкнено, вимкнено, справний, несправний.
Програма
#include <iostream>
#include <vector>
using namespace std;
//1, 10, 11
class zakazchik{
protected:
char *name;
char *adress;
int amount;
public:
zakazchik(){
cout << "Input zakazchik name : ";
name = new char[50];
cin >> name;
cout << "Input zakazchik adress : ";
adress = new char[50];
cin >> adress;
cout << "Input amount of devices for this zakazchik : ";
cin >> amount;
}
zakazchik(char* n, char* ad, int amount){
this->name = new char[strlen(n) + 1];
strcpy(this->name, n);
this->adress = new char[strlen(ad) + 1];
strcpy(this->adress, ad);
this->amount = amount;
}
void show(){
cout << "Name : " << this->name << "\nAdress : " << this->adress <<
"\nAmount of devices : " << this->amount << "\n";
}
};
class pribor{
protected:
char* name;
vector<zakazchik> arr;
bool work;
public :
pribor(){
cout << "Input device name : ";
name = new char[20];
cin >> name;
//constructor
int amount;
int i = 0;
cout << "Input amount of zakazchiks : ";
cin >> amount;
while(i < amount){
cout << i+1 << ")";
zakazchik zak = *new zakazchik();
this->arr.push_back(zak);
i++;
}
cout << "Is device working(1 or 0) : ";
cin >> work;
}
bool returnWorks(){
//receiving whether the device is working
return this->work;
}
char* returnName(){
//receiving the name of the device
return this->name;
}
void show(){
//show
cout << "Device : " << this->name << "\nZakazchiki : \n";
for(int i = 0; i < arr.size(); i++){
cout << i + 1 << ")\n";
arr[i].show();
}
if(this->work){
cout << "Device is working";
}
else{
cout << "Device doesnt work";
}
};
~pribor(){
cout << "\n\n(Destructor pribor)\n";
delete[] name;
}
};
int main() {
cout << "Default constructor\n";
pribor* dev = new pribor();
cout << "\nChanging and showing the first zakazchik of this device\n";
dev1->changeZak(*new zakazchik("Aleksiy", "West 2",5), 1);
zakazchik zak = dev1->returnZakazchiks(0);
zak.show();
delete dev;
delete dev1;
}
Вивід задачі
Висновок
У ході виконання лабораторної роботи я навчився писати код на мові
програмування С++ використовуючи об'єктно орієнтований підхід, а також
придбав навички практичної роботи з класами.