Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторноi роботи із дисципліни: «ООП»

Автор:   •  Декабрь 22, 2020  •  Лабораторная работа  •  1,475 Слов (6 Страниц)  •  311 Просмотры

Страница 1 из 6

[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) {//конструктор

...

Скачать:   txt (7.5 Kb)   pdf (111.8 Kb)   docx (19.5 Kb)  
Продолжить читать еще 5 страниц(ы) »
Доступно только на Essays.club