Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
#1

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

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

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

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


Добавлено через 2 часа 19 минут
Очень нужно
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2016, 21:25
Ответы с готовыми решениями:

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число"
Ткма работы создать класс pair (пара чисел); определить метод перемножения...

Создать базовый класс "Массив" и класс-наследник "Матрица"
Добрый день! такой вопрос, как задать двумерный массив и заполнить его...

Опишите абстрактный базовый класс "строка",реализующий методы ввода-вывода строки
Кто поможет,тому магарыч. Опишите абстрактный базовый класс...

Разработать класс "Информация о поездах" с функционалом для консольного и файлового ввода/вывода результатов
Добрый вечер, уважаемые форумчане. Новичок нуждается в вашей помощи. Есть...

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

24
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
01.01.2016, 22:30 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class FTeam
{
// ...
public:
   FTeam();
// ...
};
 
class FTeamCh: public FTeam
{
// ...
public:
   FTeamCh();
// ...
};
А вообще, лучше бы конкретно написал что ты уже сделал и что у тебя не получается. А так какие-то одни абстракции.
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
02.01.2016, 12:50  [ТС] #3
Kirik516, Пробую разобраться с классами не дружу совсем ((
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 19:16  [ТС] #4
Люди может кто посоветует идею что можно забобахать в класс футбольные команды?

Добавлено через 1 минуту
Имею ввиду что вообще с этим классом можно сделать ?
0
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
03.01.2016, 19:17 #5
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
Люди может кто посоветует идею что можно забобахать в класс футбольные команды?
Число бойцов, их имена, статистика побед-поражений, имя тренера и его зарпата.
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
Имею ввиду что вообще с этим классом можно сделать ?
Назначить тренера, назначить ему зарплату, назначить коллектив, расформировать команду.
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 19:28  [ТС] #6
А не сможете помочь или хотя бы намекнуть как бы это реализовать?
0
Ника))
41 / 41 / 20
Регистрация: 08.12.2010
Сообщений: 340
03.01.2016, 19:38 #7
Тебе же уже намекнули. Просто найди как строиться класс в c++.
Ну а, если совсем ни как, то вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ComandF
{
    char * trener=new char[128];
 
ComandF
{
    sprinf_s(trener,128,"%s","Василий");
}
~ComandF()
{
delete[] trener;
}
 
}Prototip_class_ComandF;
Jобращение к классу:
Prototip_class_ComandF.trener;
А теперь открой инет и посмотри про наследование и сделай что нибудь...
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 19:51  [ТС] #8
Хорошо сейчас попробую по колдую если что не получится выложу
0
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
03.01.2016, 19:56 #9
Цитата Сообщение от Ника)) Посмотреть сообщение
class ComandF
Бее... Надо было писать не Comand, а Team. Но с другой стороны показана альтернативность.
0
Ника))
41 / 41 / 20
Регистрация: 08.12.2010
Сообщений: 340
03.01.2016, 20:12 #10
На примерах я всегда пишу транслитом, многим это более понятно
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 20:30  [ТС] #11
Вот я тут подумал хочу сделать просто класс где будет описываться данные команды ( название, лига, тренер, победы и поражения) и когда пользователь введет название команды программа ему выдаст все данные о команде.

Подскажите вот код пишу по книгам, (я начинающий так что сильно не критикуйте) как я на верном пути можно ли так это реалезовать?

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
class FTeam                             // Класс футбольная команда
{
    char Team [35]                      // Название команды
    char League [15]                    // Лига в которой играет команда
    char Trainer [40]                   // Тренер
    char Victory [20]                   // Победы команды
    char Defeat [20]                    // поражения команды
public: 
   FTeam();
   void Show();                         //функция будет отображать данные команды
   void Input();                        //функция ввода данных 
 
};
 
void Student::Input() 
{
    cout<<"\n\n";
    cout<<"ÊîìГ*Г*Г¤Г*\t\t";
    cin.getline(Team,35);              //считали команду    
    
}
 
void Student::Show()                   //функция показывает данные на экране
{
    cout<<Team<<League<<Trainer<<Victory<<Defeat
}
Это пока набросок!
0
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
03.01.2016, 20:42 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class FTeam                             // Класс футбольная команда
{
    char Team [35]                      // Название команды
    char League [15]                    // Лига в которой играет команда
    char Trainer [40]                   // Тренер
    char Victory [20]                   // Победы команды
    char Defeat [20]                    // поражения команды
public: 
   FTeam();
   void Show();                         //функция будет отображать данные команды
   void Input();                        //функция ввода данных 
 
};
Лучше объявлять не статические массивы чаров, а указатели на них. Или вообще воспользоваться стандартным классом std::string, тогда попроще будет.

Ну пока все нормально.
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 20:53  [ТС] #13
Kirik516,
Цитата Сообщение от Kirik516 Посмотреть сообщение
Лучше объявлять не статические массивы чаров, а указатели на них.
Это как?
И еще такой вопрос мне в Input нужно все данные положить какие я указал?
0
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
03.01.2016, 21:05 #14
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
Это как?
Как-то так:
C++
1
char *trener;
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
И еще такой вопрос мне в Input нужно все данные положить какие я указал?
Это по твоему желанию. Как тебе больше нравится, так и можешь делать.
Также у тебя есть конструктор FTeam();. Он вызывается при создании объекта.
В нем ты можешь задать значение твоих членов по умолчанию и выделить память для своих массивов.

Или сделать его параметризованным и отдавать ему какие-то значение при инициализации.
C++
1
2
3
4
5
FTeam(char &tren, char &team)
{
   this->tren = tren;
   this->team = team; // надеюсь, это понятно
}
Правда я не уверен, что такая реализация будет корректно работать. Надо просто поэкспериментировать со строками. Там не должно быть ничего трудного.
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 21:29  [ТС] #15
Kirik516, Что то я запутался не много если я хочу вбить в программу данные команды (ну например их будет 8) это мне как можно сделать? С помощью Input я правильно понял? Или вообще проще проще убрать input и вставлять в FTeam();?
0
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
03.01.2016, 21:49 #16
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
Kirik516, Что то я запутался не много если я хочу вбить в программу данные команды (ну например их будет 8) это мне как можно сделать? С помощью Input я правильно понял? Или вообще проще проще убрать input и вставлять в FTeam();?
В теории ты можешь это реализовать где твоей душе угодно. Никаких ограничений в этом плане нет. Но считается, что в конструкторе нужно только задать начальное состояние объекта. А вот ввод данных лучше сделать в отдельном методе, например, как у тебя в Input. Точнее это не просто ввод, а ввод с клавиатуры. Вообще есть более совершенные средства ввода, но на первое время достаточно того, что делаешь ты.
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
03.01.2016, 21:57  [ТС] #17
Kirik516, фухххх скоро сдавать а у меня код нихрена не готов...
про Input я понял это нужно будет если я буду вводить что -то с клавы. Но как мне сделать что бы программа уже содержала информацию о команде? А пользователь вызвав эту команду получил инфу о ней?
0
Kirik516
6 / 6 / 1
Регистрация: 27.12.2014
Сообщений: 66
03.01.2016, 22:12 #18
Цитата Сообщение от Павел_ТПР Посмотреть сообщение
Но как мне сделать что бы программа уже содержала информацию о команде?
Ты можешь курами по-умолчанию забить данные в конструкторе. Аля.
C++
1
tren = "Misha"; // здесь я тоже не очень уверен
Можешь сделать конструктор с параметрами и инициализировать свой объект при создании.
Можешь сделать отдельный метод, который принимает параметры и вставляет их в твои члены.
Можешь сделать для каждого члена "сетер", которые берет параметр и забивает его значение в член.
Как-то так, я думаю.
0
Павел_ТПР
0 / 0 / 0
Регистрация: 01.01.2016
Сообщений: 12
04.01.2016, 10:33  [ТС] #19
Мда что-то нне очень у меня получается
0
egor2116
571 / 375 / 215
Регистрация: 20.01.2013
Сообщений: 1,135
04.01.2016, 11:48 #20
Кто-нибудь поможет с программкой
Наверное можно как то так
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
#include <iostream>
#include <string>
#include <vector>
 
namespace cf{
    
    struct Player{
            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;
            }
    };
    
    class Out{
        public:
            virtual void print() const = 0;
            virtual ~Out(){}
    };
    
    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){
                    
                }
                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){
                        std::cout << team[i].m_name << " " << team[i].m_bDay << std::endl;
                    }
                    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);
                }
                virtual void print() const{
                    for(size_t i = 0; i < teams.size(); ++i){
                        teams[i]->print();
                    }
                }
                virtual ~FTeamManager(){}
    };
}
 
int main(){
    
    cf::FTeamManager ftm;
    
    cf::FTeam ft1(cf::Player(std::string("treiner 1"), 1969), std::string("team A"), std::string("liga A"));
    cf::FTeam ft2(cf::Player(std::string("treiner 2"), 1969), std::string("team B"), std::string("liga A"));
    cf::FTeam ft3(cf::Player(std::string("treiner 3"), 1969), std::string("team C"), std::string("liga A"));
    
    ft1.add(cf::Player(std::string("Name 1"), 1985));
    ft1.add(cf::Player(std::string("Name 2"), 1986));
    ft1.add(cf::Player(std::string("Name 3"), 1987));
    
    ft2.add(cf::Player(std::string("Name 11"), 1985));
    ft2.add(cf::Player(std::string("Name 22"), 1986));
    ft2.add(cf::Player(std::string("Name 33"), 1987));
    
    ft3.add(cf::Player(std::string("Name 111"), 1985));
    ft3.add(cf::Player(std::string("Name 222"), 1986));
    ft3.add(cf::Player(std::string("Name 333"), 1987));
    
    ftm.add(&ft1);
    ftm.add(&ft2);
    ftm.add(&ft3);
    
    ftm.print();
    
    return 0;
}
1
04.01.2016, 11:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2016, 11:48

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

typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения
Вот код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt;...

Реализовать класс "наследник"
Spisok.h #pragma once class Spisok { int size1; int size2; int **mas;...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru