Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Как "подружить" wxWidgets-3.2.2.1 с Embarcadero_Dev-Cpp_6.3_TDM-GCC_9.2? https://www.cyberforum.ru/ cpp-beginners/ thread3098921.html
Установил Embarcadero_Dev-Cpp_6.3_TDM-GCC_9.2_Setup и пытаюсь "подружить" его с wxWidgets v3.2.2.1 или с wxWidgets v3.2.1. Пытался устанавливать бинарник (wxMSW-3.2.2.1-Setup.exe) и просто разархивировал на диск эту библиотеку. К сожалению, ничего не получается (в Dev-Cpp не появляется возможность создавать приложение wxWidgets). Искал в интернете инструкцию, но нашёл только обрывочные...
C++ Найти собственные значения матрицы на С++
Дана квадратная матрица A размерности n×n . Построить многочлен, корнями которого являются собственные значения указанной матрицы(могут быть действительными или целыми). \sum_{i=0}^{n}={a}_{i}*{x}^{i}
C++ Алгоритм Беллмана-Форда https://www.cyberforum.ru/ cpp-beginners/ thread3098843.html
Не могу понять, как оптимизировать код, чтобы он прошел все тесты (на 40 тесте превышение времени и нельзя посмотреть вводные данные) Вот задача: В империи графов намечается вечеринка. изначально было запланировано, что на нее смогут прийти только образцовые жители страны графов (пропаганда отрицательных циклов запрещена законом), но в последний момент был разрешен выход гражданам с...
C++ Крестики-нолики Решил как-то написать крестики-нолики, опираясь на свои навыки, который у меня появились. Может есть какие-нибудь рекомендации по оптимизированию кода?(P.S. Для удобства - сделал управление num-падом) #include <iostream> #include <conio.h> #define ZERO 0 #define SIZE 3 using namespace std; https://www.cyberforum.ru/ cpp-beginners/ thread3098840.html
C++ Квадратная матрица порядка 3N. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы
Дана действительная квадратная матрица порядка 3N. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы. Границы диагоналей входят. Напишите программу на Pascal или C++ без использования сложных функций
C++ Квадратная матрица порядка 2N. Получить новую матрицу, переставляя ее блоки размера N*N, как показан Дана действительная квадратная матрица порядка 2N. Получить новую матрицу, переставляя ее блоки размера N*N, как показано на рисунке. Напишите программу на Pascal или C++ не используя сложных функций. https://www.cyberforum.ru/ cpp-beginners/ thread3098832.html
C++ Выводить информацию о всех двоечниках и корректировать ее Используя функции и режим меню, создать файл из 10 записей, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа, выполнить: фамилия студента, номер зачетной книжки, 4 оценки за экзамен. Выводить информацию о всех двоечниках и корректировать ее. Не работает последняя функция и сохранение оценок в файл некорректно. #define _CRT_SECURE_NO_WARNINGS #include... https://www.cyberforum.ru/ cpp-beginners/ thread3098802.html C++ Проблема с Visual Studio
Такая проблема. ВЫБРАННЫЙ ФАЙЛ НЕ ЯВЛЯЕТСЯ ДЕЙСТВИТЕЛЬНЫМ ФАЙЛОМ РЕШЕНИЯ VISUAL STUDIO. Что делать?
C++ Стек. Есть ли ошибки? https://www.cyberforum.ru/ cpp-beginners/ thread3098723.html
Здравствуйте, пишу стек на плюсах. Подскажите пожалуйста, есть ли ошибки где-то? #include <cstdio> #include <cstdlib> //#include <stdio.h> //#include <stdlib.h> #define BUF 10
C++ Нужно установить компонент ядра системы, который распределяет PID между всеми процессами https://www.cyberforum.ru/ cpp-beginners/ thread3098693.html
помогите пожалуйста решить задачу, нужно написать код на с++: Антон занят созданием совершенно новой революционной операционной системы, он уже придумал логотип, решил о цвете экрана загрузки и теперь занят созданием ядра ОС. Главной концепцией системы является процесс. Каждый процесс имеет числовой идентификатор PID - идентификатор процесса. Согласно идее Антона, значение 0 будет зарезервировано...
Реализовать прямой обход двоичного дерева поиска C++
Реализовать на языке C++ функции, создающие соответствующие варианту бинарные деревья из символьных файлов. В файлах могут быть только целые числа. В программе необходимо реализовать: 1. Динамическую структуру, необходимую для создания бинарного дерева. 2. Функцию, выполняющую процедуру, соответствующую заданию для обработки построенного дерева (дерева, а не элемента). 3. Функцию...
C++ Как работать со списками, созданными через структуры? Как вообще работать со списками, созданными через структуры? В интернете все только через классы, не могу найти то что нужно. https://www.cyberforum.ru/ cpp-beginners/ thread3098656.html
0 / 0 / 0
Регистрация: 18.02.2022
Сообщений: 5
31.05.2023, 11:12  [ТС] 0

Создание иерархии классов по теме «Футбол. Трансферы» - C++ - Ответ 16922615

31.05.2023, 11:12. Показов 600. Ответов 1
Метки (Все метки)

Ответ

Доделать курсовую, нужно дописать main с интерактивным меню на С++, также может что-то исправить в классах

Студент должен реализовать иерархию классов, предложенную преподавателем и использовать ее в решении прикладной задачи, предъявляемой к заданию на работу. При этом следует использовать основные принципы ООП: инкапсуляция, наследование, полиморфизм. Список классов задается в варианте задания. Студент должен реализовать конструкторы классов, поля и методы. Поля класса должны быть закрыты, для доступа к ним должны быть закрытые классы. Студенту задается иерархия классов по отношению к наследованию и композиции. Где нужно использовать виртуальные методы, чистые виртуальные методы и абстрактные классы для реализации идей динамического полиморфизма. Использовать, где необходимо, встроенные классы языка С++, в особенности класс string и шаблонный класс vector. При авторских входных данных методы, конструкторы, функции генерируют исключительные ситуации и используют их с помощью блоков try..catch в функциях более высокого уровня.

Создание иерархии классов по теме «Футбол. Трансферы» Создать классы: «Человек» (ФИО, возраст, рост), наследники «Игрок» (позиция, трансферная цена, базовая зарплата в год), «Тренер» (опыт - в карьере, зарплата в год), «Менеджер» ( зарплата в год), а также «Команда» доходов от классов тренеров, менеджеров и игроков, а также название команды, страны и потери денег на счете. Определить методы, которые дают возможность выбирать команду - при помощи трансферов игроков, найма тренеров и менеджеров или наоборот продать игрока или уволить тренера. При этом должны создаваться объекты класса «Трансферный лист», с данными о игроке, откуда начинается и куда, а также стоимость трансфера - она ​​решает в соответствии с трансферной ценой.

Также реализуется метод выплаты зарплаты игрокам, тренерам, менеджерам. На с++ для Visual Studio, а также сделать интерактивное меню

файл Human.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef HUMAN_H
#define HUMAN_H
 
#include <string>
 
class Human {
private:
    std::string fullName;
    int age;
    int height;
 
public:
    Human(const std::string& fullName, int age, int height);
    virtual ~Human();
 
    std::string getFullName() const;
    int getAge() const;
    int getHeight() const;
};
 
#endif  // HUMAN_H
Файл Human.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "Human.h"
 
Human::Human(const std::string& fullName, int age, int height)
    : fullName(fullName), age(age), height(height) {}
 
Human::~Human() {}
 
std::string Human::getFullName() const {
    return fullName;
}
 
int Human::getAge() const {
    return age;
}
 
int Human::getHeight() const {
    return height;
}
Файл Player.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef PLAYER_H
#define PLAYER_H
 
#include "Human.h"
 
class Player : public Human {
private:
    std::string position;
    int transferPrice;
    int baseSalary;
 
public:
    Player(const std::string& fullName, int age, int height,
           const std::string& position, int transferPrice, int baseSalary);
    virtual ~Player();
    
    std::string getPosition() const;
    int getTransferPrice() const;
    int getBaseSalary() const;
};
 
#endif  // PLAYER_H
Файл Player.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "Player.h"
 
Player::Player(const std::string& fullName, int age, int height,
               const std::string& position, int transferPrice, int baseSalary)
    : Human(fullName, age, height), position(position),
      transferPrice(transferPrice), baseSalary(baseSalary) {}
 
Player::~Player() {}
 
std::string Player::getPosition() const {
    return position;
}
 
int Player::getTransferPrice() const {
    return transferPrice;
}
 
int Player::getBaseSalary() const {
    return baseSalary;
}
Файл Trainer.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef TRAINER_H
#define TRAINER_H
 
#include "Human.h"
 
class Trainer : public Human {
private:
    int experience;
    int salary;
 
public:
    Trainer(const std::string& fullName, int age, int height,
            int experience, int salary);
    virtual ~Trainer();
    
    int getExperience() const;
    int getSalary() const;
};
 
#endif  // TRAINER_H
Файл Trainer.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "Trainer.h"
 
Trainer::Trainer(const std::string& fullName, int age, int height,
                 int experience, int salary)
    : Human(fullName, age, height), experience(experience), salary(salary) {}
 
Trainer::~Trainer() {}
 
int Trainer::getExperience() const {
    return experience;
}
 
int Trainer::getSalary() const {
    return salary;
}
Файл Manager.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef MANAGER_H
#define MANAGER_H
 
#include "Human.h"
 
class Manager : public Human {
private:
    int salary;
 
public:
    Manager(const std::string& fullName, int age, int height, int salary);
    virtual ~Manager();
    
    int getSalary() const;
};
 
#endif  // MANAGER_H
Файл Manager.cpp

C++
1
2
3
4
5
6
7
8
9
10
#include "Manager.h"
 
Manager::Manager(const std::string& fullName, int age, int height, int salary)
    : Human(fullName, age, height), salary(salary) {}
 
Manager::~Manager() {}
 
int Manager::getSalary() const {
    return salary;
}
Файл Team.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef TEAM_H
#define TEAM_H
 
#include <string>
#include <vector>
#include "Player.h"
#include "Trainer.h"
#include "Manager.h"
 
class Team {
private:
    std::string name;
    std::string country;
    int moneyLoss;
    std::vector<Player*> players;
    std::vector<Trainer*> trainers;
    std::vector<Manager*> managers;
 
public:
    Team(const std::string& name, const std::string& country, int moneyLoss);
    ~Team();
    
    std::string getName() const;
    std::string getCountry() const;
    int getMoneyLoss() const;
    
    void addPlayer(Player* player);
    void removePlayer(Player* player);
    
    void addTrainer(Trainer* trainer);
    void removeTrainer(Trainer* trainer);
    
    void addManager(Manager* manager);
    void removeManager(Manager* manager);
    
    void transferPlayer(Player* player, Team* toTeam, int transferPrice);
    void hireTrainer(Trainer* trainer);
    void hireManager(Manager* manager);
    
    void paySalaries();
};
 
#endif  // TEAM_H
Файл Team.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include "Team.h"
 
Team::Team(const std::string& name, const std::string& country, int moneyLoss)
    : name(name), country(country), moneyLoss(moneyLoss) {}
 
Team::~Team() {
    // Освобождаем память от игроков
    for (Player* player : players) {
        delete player;
    }
    // Освобождаем память от тренеров
    for (Trainer* trainer : trainers) {
        delete trainer;
    }
    // Освобождаем память от менеджеров
    for (Manager* manager : managers) {
        delete manager;
    }
}
 
std::string Team::getName() const {
    return name;
}
 
std::string Team::getCountry() const {
    return country;
}
 
int Team::getMoneyLoss() const {
    return moneyLoss;
}
 
void Team::addPlayer(Player* player) {
    players.push_back(player);
}
 
void Team::removePlayer(Player* player) {
    // Ищем игрока в списке и удаляем его
    auto it = std::find(players.begin(), players.end(), player);
    if (it != players.end()) {
        players.erase(it);
    }
}
 
void Team::addTrainer(Trainer* trainer) {
    trainers.push_back(trainer);
}
 
void Team::removeTrainer(Trainer* trainer) {
    // Ищем тренера в списке и удаляем его
    auto it = std::find(trainers.begin(), trainers.end(), trainer);
    if (it != trainers.end()) {
        trainers.erase(it);
    }
}
 
void Team::addManager(Manager* manager) {
    managers.push_back(manager);
}
 
void Team::removeManager(Manager* manager) {
    // Ищем менеджера в списке и удаляем его
    auto it = std::find(managers.begin(), managers.end(), manager);
    if (it != managers.end()) {
        managers.erase(it);
    }
}
 
void Team::transferPlayer(Player* player, Team* toTeam, int transferPrice) {
    // Проверяем, что игрок находится в текущей команде
    auto it = std::find(players.begin(), players.end(), player);
    if (it != players.end()) {
        players.erase(it);  // Удаляем игрока из текущей команды
        toTeam->addPlayer(player);  // Добавляем игрока в новую команду
 
        // Создаем объект класса "Трансферный лист"
        TransferList transferList(player, this, toTeam, transferPrice);
        // Решаем стоимость трансфера в соответствии с трансферной ценой
        transferList.resolveTransfer();
 
        // Вычитаем стоимость трансфера из денег текущей команды
        moneyLoss += transferList.getTransferPrice();
        // Добавляем стоимость трансфера к деньгам новой команды
        toTeam->moneyLoss -= transferList.getTransferPrice();
    }
}
 
void Team::hireTrainer(Trainer* trainer) {
    trainers.push_back(trainer);
}
 
void Team::hireManager(Manager* manager) {
    managers.push_back(manager);
}
 
void Team::paySalaries() {
    // Выплата зарплаты игрокам
    for (Player* player : players) {
        int totalSalary = player->getBaseSalary() + player->getTransferPrice();
        moneyLoss -= totalSalary;
    }
    // Выплата зарплаты тренерам
    for (Trainer* trainer : trainers) {
        moneyLoss -= trainer->getSalary();
    }
    // Выплата зарплаты менеджерам
    for (Manager* manager : managers) {
        moneyLoss -= manager->getSalary();
    }
}
Файл TransferList.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef TRANSFERLIST_H
#define TRANSFERLIST_H
 
#include "Player.h"
#include "Team.h"
 
class TransferList {
private:
    Player* player;
    Team* sourceTeam;
    Team* destinationTeam;
    int transferPrice;
 
public:
    TransferList(Player* player, Team* sourceTeam, Team* destinationTeam, int transferPrice);
    ~TransferList();
 
    void resolveTransfer();
 
    int getTransferPrice() const;
};
 
#endif  // TRANSFERLIST_H
Файл TransferList.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "TransferList.h"
#include <iostream>
 
TransferList::TransferList(Player* player, Team* sourceTeam, Team* destinationTeam, int transferPrice)
    : player(player), sourceTeam(sourceTeam), destinationTeam(destinationTeam), transferPrice(transferPrice) {}
 
TransferList::~TransferList() {}
 
void TransferList::resolveTransfer() {
    // Рассчитываем стоимость трансфера на основе трансферной цены игрока
    transferPrice = player->getTransferPrice();
    std::cout << "Игрок " << player->getFullName() << " перешел из команды "
        << sourceTeam->getName() << " в команду " << destinationTeam->getName()
        << " за " << transferPrice << " долларов" << std::endl;
}
 
 
int TransferList::getTransferPrice() const {
    return transferPrice;
}


Вернуться к обсуждению:
Создание иерархии классов по теме «Футбол. Трансферы» C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2023, 11:12
Готовые ответы и решения:

Футбол.Трансферы
Давайте сюда заливать трансферные новости и слухи.Самая громкая новость пока-это переход Кака в...

Создание иерархии классов
Создать иерархию классов. воздушный шар--дирижабль--самолет Характеристики шара: скорость...

Создание иерархии классов
Помогите пожалуйста сделать задание, или хотябы опишите, как это реализовать, что-то я не могу...

Создание иерархии классов
Здравствуйте, помогите, пожалуйста с заданием. Разработать иерархию из следующих классов,...

1
31.05.2023, 11:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2023, 11:12
Помогаю со студенческими работами здесь

Создание иерархии классов
Помогите пожалуйста! Проблема со второй частью задания :&quot;Создать производный класс Student,...

Создание иерархии классов
Прошу помощи, так-как не могу разобраться в ооп, у вас нет случаем задач на иерархию классов, таких...

Создание иерархии классов
Для условий задачи, приведенных в таблице, обеспечить: создание иерархии классов: базового...

Создание иерархии классов
Создать следующую иерархию классов: Класс CL1 содержит в себе: -Элементы-данные доступные в...

Создание иерархии классов
Создать иерархию из двух классов, обозначающих определенный товар, согласно варианта задания....

Создание иерархии классов
Создать абстрактный базовый класс Struct, с виртуальными методами изменения и получения значения...

Создание иерархии классов
Заданы координаты прямого угла, вершины прямоугольного треугольника и длина его гипотенузы....

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru