Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Ajuda com pilha fila e lista

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Ajuda com pilha fila e lista

    Bom galera estou com 3 programa que um professor mando eu explica cada função e code detalhadamente só que não sei explica detalhadamente queria ajuda de vocês se poder me ajudar aki esta os programa




    Lista:
    Código:
    #include <iostream>
    #include <stdlib.h>
    #define tam_lista 100
    using namespace std;
    
       struct lista
    {
        string aluno;
        int nota;
        int cod;
    };
    lista princ[tam_lista];
    int cheia(int topo)
    {
        if (topo==tam_lista-1)
            return 1;
        else
            return 0;
    }
    
    int vazia (int topo)
    {
        if (topo==-1)
            return 1;
        else
            return 0;
    }
    
    int inserir (int topo)
    {
    	lista secund[1];
    	int i, x;
        int a;
        a=cheia(topo);
        system("cls");
        if (a==1){
            cout << "\t\t\t\tErro - Lista Cheia!\n";
        }
        else
    	{
        	topo = topo+1;
            cout<<"Insira o nome do aluno: ";
            cin>>princ[topo].aluno;
            cout<<"Insira o código do aluno: ";
            cin>>princ[topo].cod;
            cout<<"Insira a nota do aluno: ";
            cin>>princ[topo].nota;
            for(i=0; i<=topo; i++){
            	if( princ[topo].cod <= princ[i].cod){
            		x=i;
            		break;
            	}
            }
            secund[0].cod = princ[topo].cod;
            secund[0].aluno = princ[topo].aluno;
            secund[0].nota = princ[topo].nota;
    
            for(i=topo; i>x; i--){
            	princ[i].cod = princ[i-1].cod;
            	princ[i].aluno = princ[i-1].aluno;
            	princ[i].nota = princ[i-1].nota;
    
            	princ[i-1].cod= secund[0].cod;
            	princ[i-1].aluno = secund[0].aluno;
            	princ[i-1].nota = secund[0].nota;
    		}
        }
    
        system("pause");
        system("cls");
        return topo;
    }
    
    int mostrar (int topo)
    {
        int i, a=vazia(topo);
        if (a==1)
        {
            cout << "\t\t\t\tErro - Lista Vazia!\n";
        }
        else
        {
            for (i=0;i<=topo;i++){
            	cout<<"Código: "<< princ[i].cod<<"\n";
                cout<<"Aluno: " << princ[i].aluno<<"\n";
                cout<<"Nota: " << princ[i].nota<<"\n\n";
            }
        }
        system("pause");
        system("cls");
    }
    
    int remover(int topo)
    {
        int i, y, x=-1, a=vazia(topo);
        if (a==1)
        {
            cout <<"\t\t\t\tErro - Lista Vazia!\n";
        }
        else
        {
        	cout<<"Digite o código do aluno que você deseja excluir: ";
        	cin>>y;
            for(i=0; i<=topo; i++){
            	if( y == princ[i].cod){
            		x=i;
            		break;
            	}
            }
            if(x!=-1){
            	for(i=x; i<=topo; i++){
    	        	princ[i].cod = princ[i+1].cod;
    	        	princ[i].aluno = princ[i+1].aluno;
    	        	princ[i].nota = princ[i+1].nota;
    	        }
    	        topo=topo-1;
    	        system("cls");
    	        cout<<"\t\t\t\tAluno retirada da lista com sucesso!\n";
        	}
        	else
    		{
    			cout<<"\t\t\t\tCódigo não encontrado!!\n";
        	}
        }
        system("pause");
        system("cls");
        return topo;
    }
    
    int main(int topo)
    {
    cout <<"Universidade federal do Maranhão - Campus de Balsas\n";
    cout <<"Bacharelado Interdisciplinar em Ciencia e Tecnologia\n";
    cout <<"Disciplina: Algoritimos e Estruturas de Dados\n";
    cout <<"Professor: Antonio Oseas.\n";
    cout <<"Aluno: Higor Augusto Pereira Faustino.\n\n\n";
    
        setlocale(LC_ALL, "Portuguese");
        topo=-1;
    	int op=0;
        lista princ[tam_lista];
        while (op!=4)
        {
        cout<<"Operações da Lista\n";
                        cout<<" 1 - Adicionar aluno a lista\n";
                        cout<<" 2 - Retirar aluno da lista\n";
                        cout<<" 3 - Mostrar aluno(s) da lista\n";
                        cout<<" 4 - Sair\n";
                        cout<<"\n\n Escolha uma Operação: ";
            cin>>op;
            switch (op)
            {
            case 1:
                topo = inserir(topo);
                break;
            case 2:
                topo = remover(topo);
                break;
            case 3:
                mostrar(topo);
                break;
            }
        }
        return 0;
    }









    Fila:
    Código:
    #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #define tam_fila 100
    using namespace std;
    
    struct fila{
       string nome;
       float nota;
    };
    int topo;
    fila fil[tam_fila];
    
    int fila_cheia(){
    
       if(topo==(tam_fila-1)){
           return 1;
       } else {
           return 0;
       }
    }
    
    void colocar_fila(string nome2, float nota2){
       if ((fila_cheia())==1){
          cout<<"\t\t\t\tErro - fila Cheia!";
       } else{
          topo=topo+1;
          fil[topo].nome=nome2;
          fil[topo].nota=nota2;
          cout<<"\t\t\tO aluno foi colocada na fila com sucesso!\n";
                }
       }
    int fila_vazia (){
          if(topo== -1){
             return 1;
          }else {
             return 0;
          }
          }
    
       void tirar_fila(){
          if (fila_vazia()== 1){
             cout<<"\t\t\t\tErro - fila Vazia!";
          }else{
             //fi.topo = fi.topo -1;
             int i;
              for (i=0;i<=topo;i++){
                 fil[i].nome = fil[i+1].nome;
                 fil[i].nota = fil[i+1].nota;
                 }
              topo--;
             cout<<"\t\t\t\tAluno retirada da fila com sucesso!";
          }
       }
    
    
    
          void mostra_fila(){
             int j;
    
             if (fila_vazia()==1){
                cout<<"\t\t\t\tErro - fila Vazia!";
             }else{
                cout<<"\t\t\t\tDados da Pessoa:\n";
                for (j=0;j<=topo;j++){
                cout<<"\n\nNome:"<<fil[j].nome;
                cout<<"\nNota:"<<fil[j].nota;
                }
             }
          }
    
          int main()
    {
     cout <<"Universidade federal do Maranhão - Campus de Balsas\n";
    cout <<"Bacharelado Interdisciplinar em Ciencia e Tecnologia\n";
    cout <<"Disciplina: Algoritimos e Estruturas de Dados\n";
    cout <<"Professor: Antonio Oseas.\n";
    cout <<"Aluno: Higor Augusto Pereira Faustino.\n\n\n";
        setlocale(LC_ALL, "Portuguese"); //Idioma português
        int opcao; //declaração de variáveis
        string nome3;
        float nota3;
    
        topo=-1; //Zerando a Fila
    
        menu1: //Identificador do menu principal
    
            cout<<" 1 - Fila de Alunos\n";
            cout<<" 2 - Fechar\n";
    
    		cout<<"\n\n Escolha uma Operação: ";
            cin>>opcao;
    
    
            switch (opcao){
    
    
              case 1:
                    system("cls");
                    do{
       cout<<"Operações da Fila\n";
    cout<<" 1 - Adicionar aluno\n";
           cout<<" 2 - Retirar aluno \n";
            cout<<" 3 - Mostrar aluno da fila\n";
            cout<<" 4 - Menu principal\n";
               cout<<"\n\n Escolha uma Operação: ";
               cin>>opcao;
    
    
                        switch (opcao){ //Escolha de opções do menú da fila
    
                            case 1:
                                if ((fila_cheia())==1){
                                    system("cls");
                                    cout<<"\t\t\t\tErro - Fila Cheia!";
                                    break;
                                } else{
                                    system("cls");
                                    cout<<"Digite os dados do aluno:\n\nNome:";
                                    cin>>nome3;
                                    cout<<"Nota:";
                                    cin>>nota3;
                                    colocar_fila(nome3,nota3);
                                    break;
                                }
    
                case 2:
                      system("cls");
              tirar_fila();
                     break;
    
                            case 3:
                system("cls");
                                mostra_fila();
                       break;
                        }
                    } while (opcao!=4);
          system("cls");
                    goto menu1;
    
              case 2:
                return 0;
          }
    
           while (opcao!=2);
    
        return 0;
    }




    Código:
    Pilha:
    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    #include <string.h>
    #define tam_pilha 5
    using namespace std;
    
     struct aluno{
    	string nome;
    	float nota;
    	};
    aluno alunos[tam_pilha];
    int topo;
    int pilha_cheia(){
    
       if(topo==(tam_pilha-1)){
           return 1;
       } else {
           return 0;
    
       }
    }
    
    void empilhar(string nome2, float nota2){
            topo=topo+1;
            alunos[topo].nome=nome2;
            alunos[topo].nota=nota2;
            cout<<"Cadastro adicionado na pilha com sucesso!";
       }
    
    int pilha_vazia(){
          if(topo== -1){
             return 1;
          }else {
             return 0;
          }
          }
    
    void desempilhar(){
          if (pilha_vazia()== 1){
             cout<<"Erro - Pilha Vazia!!";
          }else{
             topo=topo-1;
             cout<<"Cadastro removida da pilha com sucesso!!";
          }
       }
    
    
    void imprime_pilha(){
             int i;
    
            if (pilha_vazia()==1){
                cout<<"\t\t\t\t Erro - Nenhum cadastro registrado!!";
            }else{
            cout<<"Cadastros empilhados:\n";
                for (i=topo;i>=0;i--)
            {
                cout<<"\nNome:" <<alunos[i].nome <<"\nNota: "<<alunos[i].nota;
            }
             }
          }
    
    int main()
    {
    
       cout <<"Universidade federal do Maranhão - Campus de Balsas\n";
    cout <<"Bacharelado Interdisciplinar em Ciencia e Tecnologia\n";
    cout <<"Disciplina: Algoritimos e Estruturas de Dados\n";
    cout <<"Professor: Antonio Oseas.\n";
    cout <<"Aluno: Higor Augusto Pereira Faustino.\n\n\n";
    
    
        setlocale(LC_ALL, "Portuguese");
        int opcao;
        string nome3;
        float nota3;
    
    	aluno alunos[topo];
    	topo=-1;
    
    		menu:
    		cout<<" 1 - Cadastro\n";
            cout<<" 2 - Sair\n";
    
            cout<<"\n\n Escolha uma Operação: ";
            cin>>opcao;
    
            switch (opcao){
    
                case 1:
                    system("cls");
                    do{
                        cout<<"\nOperações Pilha\n";
                        cout<<" 1 - Empilhar Cadastros\n";
                        cout<<" 2 - Desempilhar Cadastros\n";
                        cout<<" 3 - Mostrar cadastros empilhados\n";
                        cout<<" 4 - Voltar ao menu principal\n";
                        cout<<"\n\n Escolha uma Operação: ";
                        cin>>opcao;
    
    
                        switch (opcao){
    
                            case 1:
                                if ((pilha_cheia())==1){
                                    system("cls");
                                    cout<<"Erro - Pilha Cheia!";
                                    break;
                                } else{
                                    system("cls");
                                    cout<<"Digite os dados para o cadastro:\n\nNome: ";
                                    cin>>nome3;
                                    cout<<"Nota: ";
                                    cin>>nota3;
                                    empilhar(nome3, nota3);
                                    break;
                                }
    
                            case 2:
                                system("cls");
                                desempilhar();
                                break;
    
                            case 3:
                                system("cls");
                                imprime_pilha();
                                break;
                            default:
                            	system("cls");
    							main();
    
    
                }
    
            } while (opcao!=4);
                system("cls");
    
          case 2:
            return 0;
    
    
         default:
    			  main();
    
    
    
          }
    
           while (opcao!=2);
    
        return 0;
    }
X
Working...
X