Advertisement
ivodevweb

Untitled

Dec 27th, 2022
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.43 KB | Software | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. #include <memory>
  6.  
  7. class Jogador {
  8.     public:
  9.         Jogador(int number
  10.                 , std::string name
  11.                 , std::string position) : m_number{number}
  12.                                         , m_name{name}
  13.                                         , m_position{position} {}
  14.         void PrintTitulares() {
  15.             std::cout << "_____________________________________________"<< std::endl;
  16.             std::cout << m_number << "," << m_name << "," << m_position << std::endl;
  17.         }
  18.  
  19.         void PrintSuplentes() {
  20.             std::cout << "_____________________________________________"<< std::endl;
  21.             std::cout << m_number << "," << m_name << "," << m_position << std::endl;
  22.         }
  23.         int getNumber() const;
  24.         std::string getName() const;
  25.         std::string getPostition() const;
  26.         void addPlayerTitulares(Jogador Valor);
  27.         void addPlayerSuplentes(Jogador valor);
  28.  
  29.     protected:
  30.         int m_number = -1;
  31.         int op{-1};
  32.         std::string m_name;
  33.         std::string m_position;
  34. //    private:
  35. //        int m_number = -1;
  36. //        std::string m_name;
  37. //        std::string m_position;
  38. private:
  39.          std::vector<Jogador> titulares;
  40.          std::vector<Jogador> suplentes;
  41. };
  42.  
  43. //Getters
  44.  
  45. int Jogador::getNumber() const {
  46.     return m_number;
  47. }
  48. std::string Jogador::getName() const {
  49.     return m_name;
  50. }
  51. std::string Jogador::getPostition() const {
  52.     return m_position;
  53. }
  54.  
  55. void Jogador::addPlayerTitulares(Jogador valor) {
  56.     titulares.emplace_back(std::move(valor));
  57. }
  58.  
  59. void Jogador::addPlayerSuplentes(Jogador valor) {
  60.      suplentes.emplace_back(std::move(valor));
  61. }
  62.  
  63. int main() {
  64.     int op = -1;
  65.     std::vector<std::unique_ptr<Jogador>> titulares;
  66.     std::vector<std::unique_ptr<Jogador>> suplentes;
  67.     while(true){
  68.         std::cout << std::endl;
  69.         std::cout << " (1)Carregar Titulares - (2)Carregar Suplentes " << std::endl;
  70.         std::cout << " (3) Mostrar Titulares - (4) Mostrar Suplentes" << std::endl;
  71.         std::cout << " (5) Expulsar Jogador  - (6) Subtituição Jogador" << std::endl;
  72.         std::cout <<"Opção: " << std::endl;
  73.         std::cin >> op;
  74.            if(op == 1){
  75.             std::cout << "Carregando Titulares......." << std::endl;
  76.             std::ifstream in;
  77.             std::ofstream out;
  78.             out.open("FutHistorico.txt", std::ios_base::app);
  79.             in.open("FutTeamA.txt");
  80.             while(!in.eof()) {
  81.                 int number = -1;
  82.                 std::string name;
  83.                 std::string position;
  84.  
  85.                 in >> number >> name >> position;
  86.  
  87.                 out << number << " " << name << " " << position << std::endl;
  88.                 titulares.emplace_back(std::move(number,name,position));
  89.             std::cout << "Titulares Carregados OK..." << std::endl;
  90.             std::cout << std::endl;
  91.             }// while in.eof() titulares
  92.            } else if(op == 2){
  93.                std::cout << "Carregando Suplentes......." << std::endl;
  94.                std::ifstream in;
  95.                std::ofstream out;
  96.                in.open("FutSupA.txt");
  97.                while(!in.eof()) {
  98.                    int number = -1;
  99.                    std::string name;
  100.                    std::string position;
  101.  
  102.                    in >> number >> name >> position;
  103.  
  104.                    out << number << " " << name << " " << position << std::endl;
  105.  
  106.                    suplentes.emplace_back(std::move(number, name, position));
  107.  
  108.                    std::cout << "Suplentes Carregados OK..." << std::endl;
  109.                    std::cout << std::endl;
  110.                }//while in.eof() suplentes
  111.            } else if (op == 3){
  112.                 std::cout << "Lista de Titulares" << std::endl;
  113.                 for(auto jogador : titulares) jogador.PrintTitulares();
  114. //               for (size_t i = 0; i < titulares.size(); ++i) {
  115. //                  std::cout << i << ". "
  116. //                            << titulares[i].getNumber() << " "
  117. //                            << titulares[i].getName() << " "
  118. //                            << titulares[i].getPostition() << std::endl;
  119. //               } //for titulares
  120.            } else if (op == 4){
  121.                std::cout << "Lista de Suplentes" << std::endl;
  122.                for(auto jogador : suplentes) jogador.PrintSuplentes();
  123.                for (size_t i = 0; i < suplentes.size(); ++i) {
  124.                   std::cout << i << ". "
  125.                             << suplentes[i].getNumber() << " "
  126.                             << suplentes[i].getName() << " "
  127.                             << suplentes[i].getPostition() << std::endl;
  128.                }// for suplentes
  129.            } else if (op == 5){
  130.                for(auto jogador : titulares) jogador.PrintTitulares();
  131.                    std::cout << std::endl;
  132.  
  133.                    int bye = -1;
  134.                    std::cout << "Entre o numero do jogador a Expulsar: " << std::endl;
  135.                    std::cin >> bye;
  136.                    std::cout << "Expulsando jogador.... " << bye << std::endl;
  137.                    std::vector<Jogador>::iterator it = titulares.begin();
  138.                    for( ; it != titulares.end(); it++) {
  139.                        if ((*it).getNumber() == bye) {
  140.                            break;
  141.                        }
  142.                    }
  143.                    titulares.erase(it);
  144.                    for(auto jogador : titulares) jogador.PrintTitulares();
  145.                    std::cout << std::endl;
  146.                    std::cout << "OK Jogador: "<< bye << " Foi Expulso" << std::endl;
  147.            } else if (op == 6){
  148.                std::string name;
  149.                std::string position;
  150.                for(auto jogador : titulares) jogador.PrintTitulares();
  151.                    std::cout << std::endl;
  152.                    int number = -1;
  153.                    //sai jogador para o banco
  154.                    std::cout << "Entre o numero nome e posição do jogador a Sair: (5 jog5 defesa) :" << std::endl;
  155.                    std::cin >> number >> name >> position;
  156.                    std::cout << "Saindo jogador.... " << number << std::endl;
  157.                    std::vector<Jogador>::iterator it = titulares.begin();
  158.                    for( ; it != titulares.end(); it++) {
  159.                        if ((*it).getNumber() == number) {
  160.                            break;
  161.                        }
  162.                    }
  163.                    titulares.erase(it);
  164.                    for(auto jogador : titulares) jogador.PrintTitulares();
  165.                      std::cout << std::endl;
  166.                      for(auto jogador : suplentes) jogador.PrintSuplentes();
  167.                      std::cout << std::endl;
  168.                     std::cout << std::endl;
  169.                     std::cout << "OK Jogador: "<< number << " "<< name <<" "<< position <<" Foi para o banco de Suplentes" << std::endl;
  170.                   suplentes.emplace_back(std::move(number, name, position));
  171.                    for(auto jogador : suplentes) jogador.PrintSuplentes();
  172.                       //Entra jogador do banco para o campo
  173.                        std::cout << std::endl;
  174.                        std::cout << "Entre o numero nome e posição do jogador a Entrar: (5 jog5 defesa) :" << std::endl;
  175.                        std::cin >> number >> name >> position;
  176.                        std::cout << "Entrando jogador.... " << number << std::endl;
  177.                        std::vector<Jogador>::iterator ite = suplentes.begin();
  178.                        for( ; ite != suplentes.end(); ite++) {
  179.                            if ((*ite).getNumber() == number) {
  180.                                break;
  181.                            }
  182.                        }
  183.                        suplentes.erase(ite);
  184.                        //Entra jogador do banco para o campo
  185.                        for(auto jogador : suplentes) jogador.PrintSuplentes();
  186.                          std::cout << std::endl;
  187.                          for(auto jogador : titulares) jogador.PrintTitulares();
  188.                          std::cout << std::endl;
  189.                         std::cout << std::endl;
  190.                         std::cout << "OK Jogador: "<< number << " "<< name <<" "<< position <<" Entrou a jogar..." << std::endl;
  191.                        titulares.emplace_back(std::move(number,name,position));
  192.                      
  193.            }
  194.      }//while true
  195.  
  196.     return EXIT_SUCCESS;
  197. }
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement