ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 141
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской ФедерацииФедеральное государственное бюджетное образовательное учреждение высшего образованияТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)Кафедра телевидения и управления (ТУ)НАСЛЕДОВАНИЕ КЛАССОВЛабораторная работапо дисциплине: «Объектно-ориентированное программирование»Выполнил студент гр. 111________ Батенко Д.М.«___» ____________ 2022 г.Руководитель:Ассистент кафедры ТУ_________Рылов К.А.«___» _________ 2022 г.Томск 2022
Введение 3
1 ПРАКТИЧЕСКОЕ ЗАДАНИЕ 3
1.1Выполнение задачи 1 3
1.2Выполнение задачи 7 7
1.3Выполнение задачи 11 11
Заключение 16
Приложение A Листинг программы для задачи 1 17
Приложение B Листинг программы для задачи 7 18
Приложение C Листинг программы для задачи 11 19
Рисунок 1.4 – Работа с классамиРисунок 1.5 – Результат выполнения программы
Блок-схема программы представлена на рисунке 1.11. Ход выполнения работы представлен на рисунках 1.12-1.15.Рисунок 1.11 – Блок-схема программыРисунок 1.12 – Создание базовых классовРисунок 1.13 – Создание произвольного классаРисунок 1.14 – Работа с классамиРисунок 1.15 – Результат выполнения программы Приложение A
#include
using namespace std;
class Money
{
public:
int r = 1;
int nom;
int count;
};
class Euro : public Money
{
public:
int e;
void rashetr(){
cout << r * nom * count << endl;
}
void rashete()
{
cin >> e;
e = e * 60;
cout << e * nom * count << endl;
}
};
int main()
{
Euro dengi;
cout << "Enter the denomination of banknotes: " << endl;
cin >> dengi.nom;
cout << "Enter the number of banknotes: " << endl;
cin >> dengi.count;
dengi.rashetr();
cout << "Enter the amount of euro: " << endl;
dengi.rashete();
return 0;
}
Приложение B
#include
using namespace std;
class three
{
public:
int a;
int b;
int c;
three()
{
}
};
class two : public three
{
public:
int x;
int y;
int z;
double v[4];
double m[4];
void scalar()
{
int i;
double res = 0.0;
v[1] = a;
v[2] = b;
v[3] = c;
m[1] = x;
m[2] = y;
m[3] = z;
for(i=0; i < 4; i++)
res = res + (v[i]*m[i]);
cout << "a.b = " << res << endl;
}
};
int main()
{
two chislo;
cin >> chislo.a;
cin >> chislo.b;
cin >> chislo.c;
cin >> chislo.x;
cin >> chislo.y;
cin >> chislo.z;
chislo.scalar();
return 0;
}
Приложение C
#include
using namespace std;
class Man
{
public:
string name;
string surname;
string patronymic;
int age;
Man()
{
}
};
class Worker
{
public:
string work;
double zp;
int reiting;
int staz;
};
class Papich : public Man, public Worker
{
public:
void infa(double zp)
{
if (reiting >= 60 && reiting <= 75)
{
if (staz > 20)
zp = zp +((zp/100) * 20) + ((zp/100) * 10) ;
else
zp = zp + ((zp/100) * 20);
}
if (reiting >= 75 && reiting <= 90)
{
if (staz > 20)
zp = ((zp/100) * 40) + ((zp/100) * 40) ;
else
zp = ((zp/100) * 40);
}
if (reiting >= 90 && reiting <= 100)
{
if (staz > 20)
zp = zp + ((zp/100) * 60) + ((zp/100) * 10) ;
else
zp = zp + ((zp/100) * 60);
}
cout << "Final salary = " << zp << endl;
}
};
int main()
{
Papich vlog;
cout << "Enter name: " << endl;
cin >> vlog.name;
cout << "Enter surname: " << endl;
cin >> vlog.surname;
cout << "Enter patronymic: " << endl;
cin >> vlog.patronymic;
cout << "Enter age: " << endl;
cin >> vlog.age;
cout << "Enter work: " << endl;
cin >> vlog.name;
cout << "Enter salary: " << endl;
cin >> vlog.zp;
cout << "Enter raiting: " << endl;
cin >> vlog.reiting;
cout << "Enter expirience: " << endl;
cin >> vlog.staz;
vlog.infa(vlog.zp);
return 0;
}
Оглавление
Введение 3
1 ПРАКТИЧЕСКОЕ ЗАДАНИЕ 3
1.1Выполнение задачи 1 3
1.2Выполнение задачи 7 7
1.3Выполнение задачи 11 11
Заключение 16
Приложение A Листинг программы для задачи 1 17
Приложение B Листинг программы для задачи 7 18
Приложение C Листинг программы для задачи 11 19
Введение
Цель данной работы: приобретение практических навыков при написании объектно-ориентированных программ с использованием механизма наследования.1 ПРАКТИЧЕСКОЕ ЗАДАНИЕ
-
Выполнение задачи 1
Рисунок 1.4 – Работа с классамиРисунок 1.5 – Результат выполнения программы
-
Выполнение задачи 7
-
Выполнение задачи 11
Блок-схема программы представлена на рисунке 1.11. Ход выполнения работы представлен на рисунках 1.12-1.15.Рисунок 1.11 – Блок-схема программыРисунок 1.12 – Создание базовых классовРисунок 1.13 – Создание произвольного классаРисунок 1.14 – Работа с классамиРисунок 1.15 – Результат выполнения программы
Заключение
По итогу выполнения задания были получены навыки в работе с наследованием классов на языке C++. Изучен механизм множественного наследования. Приложение A
Листинг программы для задачи 1
#include using namespace std;
class Money
{
public:
int r = 1;
int nom;
int count;
};
class Euro : public Money
{
public:
int e;
void rashetr(){
cout << r * nom * count << endl;
}
void rashete()
{
cin >> e;
e = e * 60;
cout << e * nom * count << endl;
}
};
int main()
{
Euro dengi;
cout << "Enter the denomination of banknotes: " << endl;
cin >> dengi.nom;
cout << "Enter the number of banknotes: " << endl;
cin >> dengi.count;
dengi.rashetr();
cout << "Enter the amount of euro: " << endl;
dengi.rashete();
return 0;
}
Приложение B
Листинг программы для задачи 7
#include
using namespace std;
class three
{
public:
int a;
int b;
int c;
three()
{
}
};
class two : public three
{
public:
int x;
int y;
int z;
double v[4];
double m[4];
void scalar()
{
int i;
double res = 0.0;
v[1] = a;
v[2] = b;
v[3] = c;
m[1] = x;
m[2] = y;
m[3] = z;
for(i=0; i < 4; i++)
res = res + (v[i]*m[i]);
cout << "a.b = " << res << endl;
}
};
int main()
{
two chislo;
cin >> chislo.a;
cin >> chislo.b;
cin >> chislo.c;
cin >> chislo.x;
cin >> chislo.y;
cin >> chislo.z;
chislo.scalar();
return 0;
}
Приложение C
Листинг программы для задачи 11
#include
using namespace std;
class Man
{
public:
string name;
string surname;
string patronymic;
int age;
Man()
{
}
};
class Worker
{
public:
string work;
double zp;
int reiting;
int staz;
};
class Papich : public Man, public Worker
{
public:
void infa(double zp)
{
if (reiting >= 60 && reiting <= 75)
{
if (staz > 20)
zp = zp +((zp/100) * 20) + ((zp/100) * 10) ;
else
zp = zp + ((zp/100) * 20);
}
if (reiting >= 75 && reiting <= 90)
{
if (staz > 20)
zp = ((zp/100) * 40) + ((zp/100) * 40) ;
else
zp = ((zp/100) * 40);
}
if (reiting >= 90 && reiting <= 100)
{
if (staz > 20)
zp = zp + ((zp/100) * 60) + ((zp/100) * 10) ;
else
zp = zp + ((zp/100) * 60);
}
cout << "Final salary = " << zp << endl;
}
};
int main()
{
Papich vlog;
cout << "Enter name: " << endl;
cin >> vlog.name;
cout << "Enter surname: " << endl;
cin >> vlog.surname;
cout << "Enter patronymic: " << endl;
cin >> vlog.patronymic;
cout << "Enter age: " << endl;
cin >> vlog.age;
cout << "Enter work: " << endl;
cin >> vlog.name;
cout << "Enter salary: " << endl;
cin >> vlog.zp;
cout << "Enter raiting: " << endl;
cin >> vlog.reiting;
cout << "Enter expirience: " << endl;
cin >> vlog.staz;
vlog.infa(vlog.zp);
return 0;
}