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

lab 3 Zhovtyak

.docx
Скачиваний:
0
Добавлен:
27.08.2024
Размер:
62.08 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

Старший преподаватель

Д.В. Куртяник

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ. ПОЛИМОРФИЗМ.

по курсу: ОСНОВЫ ПРОГРАММИРОВАНИЯ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4016

01.05.2021

М.О.Жовтяк

подпись, дата

инициалы, фамилия

Санкт-Петербург 2021

Вариант 17

Цель лабораторной работы: изучение видов наследования и способов их применения; изучение способов использования виртуальных функций, абстрактных классов; получение навыков объектно-ориентированного программирования на языке C++.

Задание на программирование: используя технологию объектно-ориентированного программирования разработать программу.

Мой индивидуальный вариант: Спортивная игра – Инвентарь – Комбинации.

Моя общая структура классов:

КОД ПРОГРАММЫ:

Главный файл lab3.сpp:

#include <iostream>

#include "sportgame.h"

using namespace std;

int main()

{

golf test1;

test1.play();

cout << "\n \n";

hokkey test2;

test2.play();

}

Файл с классами sportgame.h:

#pragma once

#include <string>

using namespace std;

//базовый класс

class sportgame

{

protected:

//количество игроков

int number;

//время года

string period;

public:

//конструктор

sportgame();

//получение количества игроков

int get_number();

//деструктор

~sportgame(){};

//виртуальная функция

virtual void play();

};

//мяч

class ball : public sportgame

{

protected:

int size_ball = 10;

public:

//виртуальная функция

virtual void play();

//получение размера мяча

int get_size();

};

//клюшка

class putter : public sportgame

{

protected:

//длина клюшки

int length_putter = 5;

public:

//виртуальная функция

virtual void play();

//получение длины клюшки

int get_length();

//cохр кол-ва игроков

int number1();

//сохр времени года

string period1();

};

//шайба

class puck : public sportgame

{

protected:

//диаметр клюшки

int diameter = 7;

public:

//виртуальная функция

virtual void play();

//получение длины клюшки

int get_diameter();

};

//гольф

class golf : public ball, public putter

{

private:

//количество очков

int score = 5;

public:

//виртуальная функция

virtual void play();

//получение кол-ва очков

int get_score();

};

//хоккей

class hokkey : public puck, public putter

{

private:

//количество очков

int score = 3;

public:

//виртуальная функция

virtual void play();

//получение кол-ва очков

int get_score();

};

Файл с реализацией методов sportgame.cpp:

#include "sportgame.h"

#include <iostream>

#include <string>

//базовый класс

int sportgame::get_number()

{

return number;

}

sportgame::sportgame()

{

number = 10;

period = "summer";

}

void sportgame::play()

{

cout << "?";

}

//1-й уровень

void ball::play()

{

cout << "It's just a ball!" << number;

}

int ball::get_size()

{

return size_ball;

}

void putter::play()

{

cout << "It's just a putter!";

}

int putter::get_length()

{

return length_putter;

}

int putter::number1()

{

return number;

}

string putter::period1()

{

return period;

}

void puck::play()

{

cout << "It's just a puck!";

}

int puck::get_diameter()

{

return diameter;

}

//2-й уровень

void golf::play()

{

cout << "Now, lets play golf! It's " << period1() << " now and there are " << number1() << " of us. \n The size of ball is " << get_size() << " and the length of putter is " << get_length() << ". \n So you got " << get_score() << " scores of 5. You win :)";

}

int golf::get_score()

{

return score;

}

void hokkey::play()

{

cout << "So, lets play hokkey! It's " << period1() << ", but we live in Norilsk. \n There are " << number1() << " of us. \n The diameter of puck is " << get_diameter() << " and the length of putter is " << get_length() << ".\n So you got " << get_score() << " scores of 5. You lost :(";

}

int hokkey::get_score()

{

return score;

}

Скриншот работы программы:

Вывод: Я научился создавать наследственные классы, использовать виртуальные функции в ней, перекрывая родительский метод. Я повысил свой навык работы в объектно-ориентированном программировании, используя язык С++.

Соседние файлы в предмете Основы программирования