LifeGames Forums
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
LifeGames Forums

| O seu fórum de games, dicas, tutoriais, downloads, e muito mais


Você não está conectado. Conecte-se ou registre-se

Cadastro de alunos, notas e médias - Simples em C++

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

Detoxxx

Detoxxx
Admin
Admin

O programa é bem simples,


Temos aqui um pequeno cadastro de aluno, com as funções de guardar os nomes dos alunos, notas e a média.

O programa inicia, você escolhe quantos alunos deseja cadastrar e ele te permite fazer cadastros até esse certo número. Colocamos o espaço máximo de alunos permitido como sendo 10000 alunos, certamente ninguém vai colocar nem 10 mas seria interessante com o banco de dados.

Código:
#include <iostream>
#include <string.h>
#include <cstdlib>
#include <locale.h>
#include <iomanip>
 
using namespace std;
 
// protótipo das funções
int _cadastro();
int _verdados();


 //Variaveis globais
int quantidade;
char aluno_nome[10000][121];
float aluno_nota[10000*3];
 
 
//menu-função principal
int main()
{
setlocale(LC_ALL, "portuguese");
        char opcao[121];
        cout<<"\tBem vindo ao cadastro de alunos." <<endl;
        cout<<"Digite Cadastro para iniciar cadastro de alunos" <<endl;
        cout<<"Digite \"ver\" para ver os alunos cadastrador" <<endl;
        cin >> opcao;
        fflush(stdin);
        if(stricmp(opcao,"cadastro")==0)
                _cadastro();
        else if (stricmp(opcao,"ver")==0)
          _verdados();
        else
           cout << "Opção inválida." <<endl;
        cout<<"Fim do programa de cadastros";
        system("PAUSE");
        return 0;
}
 
 
//Criando a função do cadastro
int _cadastro()
{      
        int j = 0;
        char opc_cad[121];
                cout << "Quantos alunos deseja cadastrar?\n";
                fflush(stdin);
                cin >> quantidade;            
        for(int n =quantidade; n!=0; n--)
                {
                        system("cls");
                        cout <<"digite o nome do aluno a ser cadastro: ";
                        fflush(stdin);
                        cin.getline(aluno_nome[j],sizeof(aluno_nome));
                        cout <<"digite a nota do aluno "<<aluno_nome[j] <<" referente ao primeiro bimestre: ";
                        cin >> aluno_nota[j+0];
                        cout <<"\nReferente ao segundo bimestre: ";
                        cin >>aluno_nota[j+1];
                        cout <<"\nReferente ao terceiro bimestre: ";
                        cin >>aluno_nota[j+2];
                        j=j+4;
           }
   cout<< "\n\tAlunos cadastrados com sucesso";
   cout<< "\n\tDeseja ver os alunos cadastrados?";
   cout<<"\n\tdigite \"sim\" para ver, e \"não\" para retornar ao menu.";
   cin>>opc_cad;
   if(stricmp(opc_cad,"sim")==0)
        _verdados();
   else
                return 0;              
   
}
 
//Criando a função de imprimir os dados
int _verdados()
{
        char feedback;
        int j = 0;
        system("cls");
        cout<<"\n________alunos cadastrados_______" <<endl;
        for(int i=quantidade; i!=0; i--)
        {
                cout<<"aluno: "<<aluno_nome[j] <<"\n notas: \n";
                cout<<"Primeiro bimestre: " << setprecision(2) << aluno_nota[j+0];
                cout<<"\nSegundo bimestre: " << setprecision(2) << aluno_nota[j+1];
                cout<<"\nTerceiro bimestre: " << setprecision(2) << aluno_nota[j+2];
                cout<<"\nMedia final: " << setprecision(2) << (aluno_nota[j+0]+aluno_nota[j+1]+aluno_nota[j+2])/3 <<endl;
                cout<<"____________________________\n";
                j=j+4;
        }
        cout<<"Deseja voltar ao menu?";
        cout<<"1- Sim" <<endl;
        cout<<"2- Não" <<endl;
        cin >> feedback;
        do
         {
                cin >> feedback;
        switch(feedback)
                {
                        case '1': main();      
                        case '2': return 0;
                        default: cout << "\nNão corresponde à nenhuma das opções";
                }
       
     }
    while(feedback!=1 || feedback!=2);
}  

Para entender só precisa saber o básico de c/c++.(funções, variaveis, laços, operadores lógicos e aritméticos..etc).

O programa está um pouco bagunçado, pois não passei a limpo após conseguir resolver a questão da quantidade de alunos que o usuario deseja cadastra, tomei uma surra nisso e acabou que nem consegui fazer o que era meu desejo ao princípio : indexar nos vetores o numero informado pelo usuario. +/- se fosse possível ( não é, eu tentei) char nome_aluno[quantidade][121]; e int nota_aluno[quantidade*3];
entendem?

http://www.lifegames.forumeiros.net

~MarLey *

~MarLey *
Gunbound
Gunbound

Opa. Tive que fazer isso hoje em uma lista de exercício da faculdade que eu estudo, porém em com o programa:

Cadastra X alunos com os dados: Número de matrícula, Nome, Nota da primeira prova, nota da segunda prova, nota da terceira prova e média final.
Consulta os alunos que reprovaram ou aprovaram, (média 6)
Consulta o aluno(a) que tirou a maior de tal prova.
Consulta a maior e a menor média final.

Código:
#include <stdio.h>
#include <string.h>
#define D 5 // NUMERO DE ALUNOS

    
    typedef struct aluno{
            int matricula;
            char nome[100];
            float n1,n2,n3,m;
            
    }t_aluno;
    
    // FUNÇÕES
    
    void funcao_1(t_aluno *p){ // CADASTRO DO ALUNO(A)
        int i;
        for(i=0;i<D;i++){
            printf("\n\n=-=-=-=-=-=-=-=-=-=-= Aluno(a) %d =-=-=-=-=-=-=-=-=-=-=-=\n",i+1);
            printf("\nDigite o nome: ");
            fflush(stdin);
            scanf("%[^\n]",p[i].nome);
            
            printf("\nDigite o numero de matricula: ");
            scanf("%d",&p[i].matricula);
            
            printf("\nDigite as 3 notas das provas: ");
            scanf("%f %f %f",&p[i].n1,&p[i].n2,&p[i].n3);
            
            p[i].m = ( p[i].n1 + p[i].n2 + p[i].n3 ) / 3;    // Calculando a média            
        }
    }
    
    void funcao_2(t_aluno *p){ // Calcular a maior nota da prova 1,prova 2 e prova 3
        int i,m1=0,m2=0,m3=0,aux1,aux2,aux3;
        for(i=0 ; i<D ; i++){
            if(m1<p[i].n1){
                m1=p[i].n1;
                aux1=i;    
            }
            if(m2<p[i].n2){
                m2=p[i].n2;
                aux2=i;
            }
            if(m3<p[i].n3){
                m3=p[i].n3;
                aux3=i;
            }
        }
        
        // Primeira prova
        printf("\n-----------------------------------------------\nMaior nota na primeira prova: Aluno(a) %d",aux1+1);
        printf("\nNome: %s",p[aux1].nome);
        printf("\nNota 1: %.2f.        Nota 2: %.2f     Nota 3: %.2f", p[aux1].n1 ,p[aux1].n2,p[aux1].n3);
        printf("\nNumero de matricula: %d",p[aux1].matricula);
        
        // Segunda prova
        
        printf("\n-----------------------------------------------\nMaior nota na segunda prova: Aluno(a) %d",aux2+1);
        printf("\nNome: %s",p[aux2].nome);
        printf("\nNota 1: %.2f.        Nota 2: %.2f     Nota 3: %.2f", p[aux2].n1 ,p[aux2].n2,p[aux2].n3);
        printf("\nNumero de matricula: %d",p[aux2].matricula);
        
        // Terceira prova
        
        printf("\n-----------------------------------------------\nMaior nota na segunda prova: Aluno(a) %d",aux2+1);
        printf("\nNome: %s",p[aux3].nome);
        printf("\nNota 1: %.2f.        Nota 2: %.2f     Nota 3: %.2f", p[aux3].n1 ,p[aux3].n2,p[aux3].n3);
        printf("\nNumero de matricula: %d",p[aux3].matricula);
    }
    
    void funcao_3(t_aluno *p){ // Maior media
        int i,aux;
        int mg=-1;
        for( i=0; i<D ; i++ ){
            
            if(mg > p[i].m ){
                mg = p[i].m ;
                aux=i;
                
            }
        }
        printf("\n\nMaior media: Aluno(a) %d",aux+1);
        printf("\nNome: %s",p[aux].nome);
        printf("\nNota 1: %.2f.        Nota 2: %.2f     Nota 3: %.2f", p[aux].n1 ,p[aux].n2,p[aux].n3);
        printf("\nMedia final: %.2f",p[aux].m);
        printf("\nNumero de matricula: %d",p[aux].matricula);
    }
    
    
        void funcao_4(t_aluno *p){ // Menor media
        int i,aux;
        int mg=11;
        for( i=0; i<D ; i++ ){
            
            if(mg < p[i].m ){
                mg = p[i].m ;
                aux=i;    
            }
        }
        
        printf("\n\nMenor media: Aluno(a) %d",aux+1);
        printf("\nNome: %s",p[aux].nome);
        printf("\nNota 1: %.2f.        Nota 2: %.2f     Nota 3: %.2f", p[aux].n1 ,p[aux].n2,p[aux].n3);
        printf("\nMedia final: %.2f",p[aux].m);
        printf("\nNumero de matricula: %d",p[aux].matricula);
    }
    
    
        void resultadofinal(t_aluno *p){
            
            int i;
            for(i=0;i<D;i++){
            printf("\n-----------------------------------------------------------------\n");
            printf("\nNome: %s",p[i].nome);
            printf("\nNota 1: %.2f.        Nota 2: %.2f     Nota 3: %.2f", p[i].n1 ,p[i].n2,p[i].n3);
            printf("\nMedia final: %.2f",p[i].m);
            printf("\nNumero de matricula: %d",p[i].matricula);
                if(p[i].m >= 6){
                    printf("\n- Aprovado(a).");
                }
                else
                printf("\n- Reprovado(a).");    
            }
        }
        
    int main(){
        t_aluno dados[D];
        int i;
        int opc;
        
        do{
        printf("\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="); // Opções
        printf("\n\n1 - Cadastro de alunos(as).\n2 - Maiores notas das provas.\n3 - Busca por maior media final.\n4 - Busca por menor media final.\n5 - Resultado.\n6 - Sair");
        printf("\n\nDigite uma opcao: ");
        scanf("%d",&opc);
            if(opc>=1 && opc<=6){
                
                switch (opc){  // Menu
                    
                    case 1:
                        funcao_1(dados);
                        break;
                    
                    case 2: 
                        funcao_2(dados);
                        break;
                    
                    case 3:
                        funcao_3(dados);
                        break;
                    
                    case 4:
                        funcao_4(dados);
                        break;
                    
                    case 5: 
                        resultadofinal(dados);
                        break;
                        
                    case 6:
                        goto fim;
                        break;
                }
            }
            else 
            printf("\nOpcao invalida.");
            
        }while(opc>=1 && opc<=6);
            
        fim:
    return 0;
    }  

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos