Лабораторноi роботи із дисципліни: «ООП»
Автор: Олександр Виганяйло • Декабрь 22, 2020 • Лабораторная работа • 1,475 Слов (6 Страниц) • 304 Просмотры
[pic 1]МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ СУМСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ КАФЕДРА КОМП’ЮТЕРНИХ НАУК СЕКЦІЯ ІНФОРМАЦІЙНО-КОМУНІКАЦІЙНИХ ТЕХНОЛОГІЙ
ЗВІТ ПРО ВИКОНАННЯ
ЛАБОРАТОРНОЇ РОБОТИ №10
із дисципліни: «ООП»
Варіант 6
Виконав студент групи ІН-92
Забара І.
Суми 2020
Завдання 1:
Визначити базовий клас «транспорт» і похідні від нього класи «вантажний транспорт» та «пасажирський транспорт». Загальним для них є «чистий прибуток».
Елементами даних похідних класів та віртуальними функціями задатися САМОСТІЙНО!
Код програми:
#include <iostream>
using namespace std;
class Transport {
public:
Transport() {//конструктор по умолчанию
Mark = "no mark";
NetProfit = 0;
}
Transport(string Mark_init, unsigned int NetProfit_init = 0) {//конструктор
Mark = Mark_init;
NetProfit = NetProfit_init;
}
virtual void Profit() {//виртуальный метод , который показывает прибыль
cout << "Mark " << Mark << endl;
cout << "Net profit " << NetProfit << endl;
}
protected:
string Mark;
unsigned int NetProfit;
};
class FreightTransport : public Transport {
public:
FreightTransport(string Mark_init, unsigned int Kilograms_init, unsigned int Kilometrs_init,
unsigned int NetProfit_init = 0) {//конструктор
Mark = Mark_init;
Kilograms = Kilograms_init;
Kilometrs = Kilometrs_init;
NetProfit = NetProfit_init;
}
void Profit() override {//oveeride метод класса Transport, который показывает прибыль
NetProfit = Kilograms * Kilometrs;
cout << "Mark " << Mark << endl;
cout << "Net profit " << NetProfit << endl;
}
private:
unsigned int Kilograms;
unsigned int Kilometrs;
};
class PassengerTransport : public Transport {
public:
PassengerTransport(string Mark_init,unsigned int AmountOfPeople_init, unsigned int Fare_init, unsigned int NetProfit_init = 0) {//конструктор
Mark = Mark_init;
AmountOfPeople = AmountOfPeople_init;
Fare = Fare_init;
NetProfit = NetProfit_init;
}
void Profit() override {//override метод класса Transport, который показывает прибыль
NetProfit = AmountOfPeople * Fare;
cout << "Mark " << Mark << endl;
cout << "Net profit " << NetProfit << endl;
}
private:
unsigned int AmountOfPeople;
unsigned int Fare;
};
int main() {
Transport transport("Golf");
FreightTransport freightTransport("Deer", 100, 500);
PassengerTransport passengerTransport("Bus",20, 5);
cout << "---------------" << endl;
transport.Profit();
cout << "---------------" << endl;
freightTransport.Profit();
cout << "---------------" << endl;
passengerTransport.Profit();
cout << "---------------" << endl;
return 0;
}Результат роботи:
[pic 2]
Завдання 2:
Для заданого варіанту описати класи, самостійно визначивши елементи даних. Застосувати віртуальні функції і продемонструвати варіанти їхнього виклику.
квитанція, накладна, документ, чек;
#include <iostream>
using namespace std;
class Document {
public:
Document() {
}
Document(int NumberPages_init, string Purpose_init, int Barcode_init) {//конструктор
...