Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12

Реализовать базовый класс "Футбольная команда" и класс-наследник с методами консольного ввода/вывода

01.01.2016, 21:25. Показов 4466. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу на языке С++, в которой описывается класс (с добавлением наследуемого подкласса) с методами ввода с клавиатуры и вывода на экран монитора всех данных класса в табличной форме.
Футбольные команды.
Кто-нибудь поможет с программкой буду очень благодарен.

Добавлено через 4 часа 11 минут


Добавлено через 2 часа 19 минут
Очень нужно
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.01.2016, 21:25
Ответы с готовыми решениями:

Реализовать базовый класс Человек и класс-наследник Студент
Создать базовый класс Человек. Каждый объект этого класса должен содержать ФИО, год рождения и пол. Необходимые функции: ввод-вывод...

Реализовать базовый класс , объекты которого могут создавать свои копии, и класс-наследник для базового класса
В обучающей системе есть задание, которое сама же система и проверяет. По заданию необходимо реализовать базовый класс (структуру),...

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

24
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
04.01.2016, 13:10  [ТС]
Студворк — интернет-сервис помощи студентам
egor2116, Большущее спасибо!!!! этого в полнее думаю будет достаточно, попробую еще сам на основе твоей программке что-нибудь сделать. Еще раз спасибо огромное выручил
Это конечно не много нахально с моей стороны, но не мог бы ты написать комментарии к этому коду?Пожалуйста.

Добавлено через 2 минуты
egor2116, И еще такой вопрос а здесь с наследником класса программка?

Добавлено через 12 минут
А тут еще ввод с клавиатуры нужен как например чтоб я ввел название футбольной команды, и программа выдал все данные о ней. Как это можно сделать? (Может быть сейчас сам что-нибудь придумаю)
0
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 67
05.01.2016, 00:00
Цитата Сообщение от egor2116 Посмотреть сообщение
Наверное можно как то так
По-моему это чересчур сурово для начинающего в С++.

Добавлено через 8 минут
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
egor2116, И еще такой вопрос а здесь с наследником класса программка?
Да, там с наследованием.
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
А тут еще ввод с клавиатуры нужен как например чтоб я ввел название футбольной команды, и программа выдал все данные о ней. Как это можно сделать? (Может быть сейчас сам что-нибудь придумаю)
У него там забито уже API для реализации подобного. Достаточно в мейне сделать:
C++
1
2
3
4
5
6
7
std::string name;
cout << "Enter team name" << endl;
cin >> name;
if (name == fteam.getTeamName())
   fteam.print() // могу ошибаться в названиях методов и объектов классов
else
   cout << "Incorrect team name" << endl;
Добавлено через 9 часов 47 минут
Цитата Сообщение от egor2116 Посмотреть сообщение
const std::string & FTeam::getNameTeam() const{ return name; }
Возвращает const, чтобы нельзя было изменять имя с помощью этого метода?
1
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
05.01.2016, 09:47
Лучший ответ Сообщение было отмечено Павел_ТПР как решение

Решение

Возвращает const, чтобы нельзя было изменять имя с помощью этого метода?
Да, для этого есть сетМетод

Добавлено через 33 минуты
но не мог бы ты написать комментарии к этому коду
Как то так, немного переделал и добавил ввод с клавиатуры, и поиск по названию
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
#include <iostream>
#include <string>
#include <vector>
 
namespace cf{
    
    // абстрактный базовый класс, используется как 
    // интерфейс обьектов
      class Out{
        public:
            virtual void print() const = 0;
            virtual ~Out(){}
    };
    
    // класс игрок который наследуется от базового
    class Player : public Out{
            public:
            std::string m_name; // имя игрока
            size_t m_bDay;          // год рождения
            Player(std::string name = std::string(), size_t bDay = 0) : 
                            m_name(name), m_bDay(bDay){} // конструктор с параметрами
            Player(const Player & p){ // конструктор копирования
                m_name = p.m_name;
                m_bDay = p.m_bDay;
            }
            Player & operator=(const Player & p){ // перегруженный оператор =
                m_name = p.m_name;
                m_bDay = p.m_bDay;
            }
            virtual void print() const{ // реализация функции печати наследовано от базового класса
                            std::cout << m_name << " " << m_bDay << std::endl;
                        }
                        virtual ~Player(){} // диструктор
    };
    
    // класс футбольной команды наследуется от базового
    class FTeam : public Out{
        private:
            std::vector<Player> team; // список игроков в команде
            std::string liga;               // название лиги
            std::string name;                   // название команды
            Player trainer;                     // тренер
            size_t wins;                            // количество побед
            size_t defeat;                      // количество поражений
        public:
                FTeam() : trainer(), name(std::string()), liga(std::string()), wins(0), defeat(0){} // конструктор по умолчанию
                void add(Player p){ // добавление игрока в команду
                    team.push_back(p);
                }
                FTeam(Player t, std::string n, std::string l, size_t w = 0, size_t d = 0) : trainer(t), 
                            name(n), liga(l), wins(w), defeat(d){} // конструктор с параметрами
                FTeam(const FTeam & ft){ // конструктор копирования
                    team = ft.team;
                    liga = ft.liga;
                    name = ft.name;
                    trainer = ft.trainer;
                    wins = ft.wins;
                    defeat = ft.defeat;
                }
                virtual void print() const{ // реализация функции печати наследовано от базового класса
                    std::cout << "Team : " << name << std::endl;
                    std::cout << "Liga : " << liga << std::endl;
                    std::cout << "Trainer : " << trainer.m_name << std::endl;
                    for(size_t i = 0; i < team.size(); ++i){
                        team[i].print();
                    }
                    std::cout << "----------------------------------------------------"  << std::endl;
                }
                // Сеттеры и Геттеры
                void setTrainer(Player p){
                    trainer = p;
                }
                const Player & getTrainer() const{
                    return trainer;
                }
                void setLiga(std::string s){
                    liga = s;
                }
                const std::string & getLiga() const{
                    return liga;
                }
                void setNameTeam(std::string s){
                    name = s;
                }
                const std::string & getNameTeam() const{
                    return name;
                }
                void addWin(){
                    ++wins;
                }
                size_t getWins() const{
                    return wins;
                }
                void resetWins(){
                    wins = 0;
                }
                void addDefeat(){
                    ++defeat;
                }
                size_t getDefeat() const{
                    return defeat;
                }
                void resetDefeat(){
                    defeat = 0;
                }
                virtual ~FTeam(){}
    };
    
    // класс футбольного менеджера, наследуется от базового
    class FTeamManager : public Out{
        private:
                std::vector<FTeam> teams; // список команд
        public:
                void add(FTeam ft){ // добавление команды
                    teams.push_back(ft);
                }
                void findFTeam(std::string nameTeam){
                    for(size_t i = 0; i < teams.size(); ++i){
                        if(teams[i].getNameTeam() == nameTeam)
                            teams[i].print();
                    }
                }
                
                virtual void print() const{ // реализация функции печати наследовано от базового класса
                    for(size_t i = 0; i < teams.size(); ++i){
                        teams[i].print();
                    }
                }
                virtual ~FTeamManager(){} // диструктор
    };
    
    // фабрика классов для создания обьектор
    class InputDataFTeam{ 
        public:
            
            static Player getPlayer(){ // получение обьекта игрока
                std::string name;
                size_t bDay = 0;
                std::cout << "input name palyer : "; getline(std::cin, name);
                std::cout << "input birthday player : "; std::cin >> bDay;
                std::cin.get();
                
                return Player(name, bDay);
            }
            
            static FTeam getFTeam(){ // получения обьекта команді
                std::string nameTrainer;
                std::string nameTeam;
                std::string nameLiga;
                size_t bDay = 0;
                std::cout << "input name trainer : "; getline(std::cin, nameTrainer);
                std::cout << "input name team : "; getline(std::cin, nameTeam);
                std::cout << "input name liga : "; getline(std::cin, nameLiga);
                std::cout << "input birthday trainer : "; std::cin >> bDay;
                std::cin.get();
                     
                return FTeam(cf::Player(nameTrainer, bDay), nameTeam, nameLiga);
            }
    };
}
 
int main(){
    
    cf::FTeamManager ftm; // обьявляем обьект класса менеджера
    
    // создаем обьекты команд с параметрами
    cf::FTeam ft1(cf::InputDataFTeam::getFTeam());
    cf::FTeam ft2(cf::InputDataFTeam::getFTeam());
    cf::FTeam ft3(cf::InputDataFTeam::getFTeam());
    
    //добавляем игроков в команды
    ft1.add(cf::InputDataFTeam::getPlayer());
    ft1.add(cf::InputDataFTeam::getPlayer());
    ft1.add(cf::InputDataFTeam::getPlayer());
    
    ft2.add(cf::InputDataFTeam::getPlayer());
    ft2.add(cf::InputDataFTeam::getPlayer());
    ft2.add(cf::InputDataFTeam::getPlayer());
    
    ft3.add(cf::InputDataFTeam::getPlayer());
    ft3.add(cf::InputDataFTeam::getPlayer());
    ft3.add(cf::InputDataFTeam::getPlayer());
    
    //добавляем команды менеджеру 
    ftm.add(ft1);
    ftm.add(ft2);
    ftm.add(ft3);
    
    //поиск орпеделенной команды по названию и вывод данных о ней
    std::string findFteam; 
    std::cout << "Input team name for find : "; getline(std::cin, findFteam); 
    ftm.findFTeam(findFteam);
    
    // выводим данные всех команд, которыми "управляет" менеджер
    std::cout << std::endl;
    std::cout << std::endl;
    std::cout << std::endl;
    ftm.print();
    
    return 0;
}
2
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
06.01.2016, 13:51  [ТС]
egor2116, Благодарю от всей души!!!

Добавлено через 21 час 38 минут
Тут не большая проблемка получается. Когда в вожу все данные трех команд программа выдает весь список команд и потом закрывается, а поиск не запускается. что не так?
0
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
11.01.2016, 09:06
и потом закрывается
C++
1
2
3
4
5
   
    ftm.print();
    std::cin.get(); // ТУТ
    return 0;
}
а поиск не запускается.
Миниатюры
Реализовать базовый класс "Футбольная команда" и класс-наследник с методами консольного ввода/вывода  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2016, 09:06
Помогаю со студенческими работами здесь

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

Создать классовую модель, включающую абстрактный класс CGraphicsObject, его наследник – базовый класс CPoint,
Создать классовую модель, включающую абстрактный класс CGraphicsObject, его наследник – базовый класс CPoint, и класс-наследник от...

Базовый класс Строка и класс-наследник Комплексное_число
аследование в С#. вообще не понимаю как делать.пожалуйста,выручайте Описать базовый класс Строка. Обязательные поля класса: •...

Построить базовый класс с указанными полями и методами и класс-потомок который содержит дополнительное поле
Задание 3: построить класс 1-го уровня с указанными полями и методами: - конструктор; - функция, которая определяет «качество»...

Создать класс «параллелограмм» с соответствующими данными класса и методами для ввода-вывода
Класс «параллелограмм» с соответствующими данными класса и методами для ввода-вывода данных, описывающих фигуру и координатной плоскости....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru