Ir ao conteúdo
  • Cadastre-se

flee

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por flee

  1. @r_Tray Muito obrigado pela resposta, eu notei que a parte que você tirou do código foi o "for" usando "iterator", como nesse caso:

    for(Turma *it : v_turma){
                    if(it->getNomeT() == novaTurma->getNomeT()){
                        cout << "Turma ja existente \n"<< endl;
                        turmaexiste = true;
                    }
                }

    essa parte no código deve ser usado para percorrer o vector e procurar se ja existe alguma turma ou aluno com esse nome, caso exista, o programa nao deve adicionar ao vector e exibir uma mensagem dizendo que o aluno ou turma ja esta cadastrado, entende? pode ser usado com outra sintaxe também, porém quando uso outra sintaxe da erro e nao compila. 

     

    Já no caso do main, eu nao entendi muito bem... você acha que é melhor eu usar o switch para capturar a opção do usuario e criar o loop?

    obrigado novamente.

  2. Boa noite pessoal, 

     

    sou novo aqui e recentemente comecei a estudar sobre POO, atualmente estou com um problema no código abaixo, no exercicio eu devo criar uma classe "Aluno" com seus atributos e métodos, outra classe chamado "turma" onde deve ser possivel acrescentar um aluno em um vector e outra classe "grade curricular", onde devo ter um vector para incluir uma turma. Porém, percebi que a funcionalidade de incluir um aluno na turma não está funcionando, acredito que seja algum erro de logica, mas nao consigo encontrar. 

     

    Agradeço desde já pela atenção.

    Codigo: 

    #include <iostream>
    #include <string>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    using namespace std;
    
    
    class Aluno{
        private:
            string nome;
            string matricula;
            int periodo;
            int idade;
            
            
        public:
            Aluno(string nome, string matricula, int periodo, int idade){
                this->nome = nome;
                this->matricula = matricula;
                this->periodo = periodo;
                this->idade = idade;
    
            }
            Aluno(){
            }
            ~Aluno(){
    
            }
            void setnome(string nome){
                 nome = nome;
            }
            string getnome(){
                 return this->nome;
            }
    
            void setmatri(string matricula){
                 matricula = matricula;
            }
            string getmatri(){
                 return this->matricula;
            }
            void setperiodo(int periodo){
                 periodo = periodo;
            }
            int getperiodo(){
                 return this->periodo; 
            }
            void setidade(int idade){
                 idade = idade;
            }
            int getidade(){
                 return this->idade; 
            }
    
             
    
        
    
    };
    
    class Turma{
        private:
        string nomeT;
        string codigo;
        vector<Aluno*>v_aluno;
    
        public:
            Turma(){
    
            }
            Turma(string nomeT, string codigo, vector<Aluno*> v_aluno){
                this->nomeT = nomeT;
                this->codigo = codigo;
                this->v_aluno = v_aluno;
            }
            ~Turma(){}
            
            string getNomeT(){
                return this->nomeT;
            }
            string getCodigo(){
                return this->codigo;
            }
            vector <Aluno*> getV_aluno(){
                return this->v_aluno;
            }
    
            void novoAluno(){
                string nome,  matricula;
                int periodo, idade;
                bool AlunoExiste = false;
                vector<Aluno*> v_aluno;// vetor do tipo da classe Aluno
                cout << "Digite o nome: "<< endl;
                getline(cin, nome);
                cout << "Digite a matricula: "<< endl;
                getline(cin, matricula);
                cout << "Digite o periodo: "<< endl;
                cin >> periodo;
                cout << "Digite a idade: "<< endl;
                cin >> idade;
    
                Aluno *novoalu= new Aluno(nome, matricula, periodo, idade);
                for (Aluno *it : v_aluno){
                    
                    if(it->getnome() == novoalu->getnome()){
                        cout << "Aluno ja cadastrado" << endl;
                        AlunoExiste = true;
                    }
                }
    
                if (!AlunoExiste)
                {
                        v_aluno.push_back(novoalu);
                        cout <<"Aluno cadastrado com sucesso " <<endl;
                }
        }
    
    };
    class GradeCurricular{
        private:
            vector<Turma*> v_turma;
    
        public:
            GradeCurricular(vector<Turma*> v_turma){//construtor parametrizado
                this->v_turma = v_turma;
            }
            GradeCurricular(){}//construtor padrão
    
            ~GradeCurricular(){}// descontrutor 
    
            void addTurma(){
                string nomeT;
                string codigo;
                vector<Aluno*> v_aluno;
                vector<Turma*> v_turma;
                bool turmaexiste = false;
    
                cout << "Digite o nome da turma\n" << endl;
                getline(cin, nomeT);
                cout << "Digite o codigo da turma\n" << endl;
                getline(cin, codigo);
                Turma *novaTurma = new Turma(nomeT, codigo, v_aluno);
                for(Turma *it : v_turma){
                    if(it->getNomeT() == novaTurma->getNomeT()){
                        cout << "Turma ja existente \n"<< endl;
                        turmaexiste = true;
                    }
                }
                if(!turmaexiste){
                    v_turma.push_back(novaTurma);
                    cout << "Turma criada com sucesso !\n"<< endl; 
                }
    
            }
            void addAluno(){
                string nomeT;
                string codigo;
                vector<Aluno*> v_aluno;
                vector<Turma*> v_turma;
                bool turmaExiste = true;
    
                cout << "Digite o nome da turma que deseja adicionar o aluno\n" << endl;
                getline(cin, nomeT);
                cout << "Digite o codigo da turma que deseja adicionar o aluno\n" << endl;
                getline(cin, codigo);
                Turma *novaT = new Turma(nomeT, codigo, v_aluno);
                for(Turma *it : v_turma){
                    cout << "entrou no for" << endl;
                    if(it->getNomeT() == novaT->getNomeT()){
                        cout << "Turma encontrada\n"<< endl;
                        turmaExiste = false;
                    }
                }
                if(!turmaExiste){
                    cout << "teste" << endl;
                    novaT->novoAluno();
    
                }
    
    
            }
    
    };
    
    int main(){
        int op=5;
        GradeCurricular materia; //objeto da classe grade curricular
        
        
        
        while(op !=0){
            cout << "Digite 1 para adicionar uma nova turma a grade curricular \n"<< endl;
    
            cout << "Digite 2 para adicionar um aluno a uma turma \n"<< endl;  
            cin >> op;
            if(op == 1){
                materia.addTurma();
            }
            if(op == 2){
                materia.addAluno();
            }
            if(op == 0){
                break;
            }
    
    }
    
    
        return 0;
            
    }

     


     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!