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

Обработка событий. Виртуальные функции и абстрактные классы

Автор:   •  Февраль 27, 2022  •  Лабораторная работа  •  7,587 Слов (31 Страниц)  •  199 Просмотры

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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

им. проф. М.А. Бонч-Бруевича»

(СПбГУТ)

Санкт-Петербургский колледж телекоммуникаций

Отчет по лабораторной работе № 14  

Обработка событий. Виртуальные функции и абстрактные классы

Выполнили: Обучающиеся 2 курса, группы КЗФ-95,

Чистяков Константин Вячеславович

Проверил: преподаватель Баталов Дмитрий Иннокентиевич

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

2020г.


Цель работы

1) Получить навык создания классов с использованием принципа наследования и реализации полиморфного поведения классов.


Выполнение работы

Задание: Определить класс «Шахматная фигура» и унаследовать от него классы, соответствующие шахматным фигурам «Ферзь», «Король», «Ладья», «Пешка», «Конь», «Слон». Задать позицию на доске и определить, не стоит ли мат одному из королей.

Описание классов.

UML диаграмма

[pic 1]

Листинг программы:

class figure

{

public:

        

        int x;

        int y;

        string name;

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

        figure(int x, int y, string name)

        {

                

                this->x = x;

                this->y = y;

                this->name = name;

                

        }

        //метод вывода фигуры

        void show()

        {

                cout << convert(x, y) + "_" + name;

        }

        

        // метод для конвертации позиции фигуры в нормальный формат

private:

        string convert(int x, int y)

        {

                char symb;

                switch (x)

                {

                case 0: {symb = 'a'; break; }

                case 1: {symb = 'b';break; }

                case 2: {symb = 'c';break; }

                case 3: {symb = 'd';break; }

                case 4: {symb = 'e'; break; }

                case 5: {symb = 'f'; break; }

                case 6: {symb = 'g'; break; }

                case 7: {symb = 'h'; break; }

                default: {symb = 'q'; break; }

                }

                string result = symb + to_string(y);

                return result;

        }

};

class Pawn : public figure

{

        

public:

        Pawn(int x, int y, string desk[8][8], string canBite[8][8]) : figure(x, y, "P")

        {

                //Присваимаем имя и размещаем на доске

                desk[x][y] = 'P';

                // помечаем клетки которые может бить фигуры, заполняя полученный массив

                if ((x < 8) && (y < 8))

                {

                        if (y == 0)

                        {

                                canBite[x - 1][y + 1] = "+";

...

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