Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Максим_Воробьев
1 / 1 / 0
Регистрация: 29.03.2016
Сообщений: 51
1

Убрать не лишние функции программы

24.04.2016, 17:45. Просмотров 376. Ответов 0
Метки нет (Все метки)

В программке нужно оставить все присутствующие классы и функции ввода с клавиатуры и вывод на экран. Нужно убрать конструкторы и диструкторы и перегруженные операторы. Знаю что звучит дико и по идиотски, но преподу заняться нечем...
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
#include <iostream>
#include <string>
#include <vector>
 
namespace cf{
    // класс игрок 
    class Player {
            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 {
        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 {
        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 << "\n\n\n";
    ftm.print();
    
    return 0;
}
Пробовал убирать и заменять конструкторы, но что плохо получается. Если можно хотя бы подскажите на что лучше можно заменить и как лучше убрать.

Добавлено через 15 часов 22 минуты
...

Добавлено через 2 часа 30 минут
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2016, 17:45
Ответы с готовыми решениями:

Убрать лишние пробелы
отформотировать строку 1)убрать все лишние пробелы 2) убрать 1 пробел после знака препинания ...

Как убрать лишние нули?
Как убрать лишние нули? void Gaus::outPut_AB() { for (int i = 0; i &lt; n; i++) {...

Убрать лишние строчки флагами
Господа, прошу помощи)) Если вводить номера поездов, а затем выбрать номер поезда, то выводится...

Задача: Убрать лишние скобки
Описание Преобразовать математическое выражение, удалив в нём лишние скобки, которые не влияют...

Убрать лишние пробелы в строке
дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так чтобы между...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2016, 17:45

В тексте убрать лишние пробелы и разделительные символы
1. Определить какие символы и сколько раз встречаются в тексте. Или 2. В тексте убрать лишние...

Убрать лишние(повторяющиеся) пробелы, и записать в файл
помоги, пожалуйста, доработать программу Надо убрать лишние(повторяющиеся) пробелы, и записать в...

Перевод в шестнацатиричную систему счисления (убрать лишние нули)
Помоги с задачкой пожалуйста. #include&lt;iostream&gt; using namespace std; void dtas(int num) {...


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

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

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