0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12

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

01.01.2016, 21:25. Показов 4682. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru