Baixe o app para aproveitar ainda mais
Prévia do material em texto
Faça um programa que defina uma lista de no maximo 30 alunos, cada um com 2 notas (usando struct). O programa deve ter um menu com as seguintes opções: - Incluir o nome e as notas de um aluno - Mostrar a lista de alunos em ordem alfabética, com as respectivas notas - Mostrar a lista de alunos em ordem decrescente de média (nome e média). - Sair do programa Obs: a lista pode ter qualquer número de alunos até o máximo de 30; a opção de inclusão é para um aluno por vez, voltando para o menu. #include <stdio.h> #include <stdlib.h> #include <string.h> #define maximo_alunos 30 struct TipoAluno { char nome[50]; float media; }; int main() { struct TipoAluno alunos[maximo_alunos]; struct TipoAluno cresc[maximo_alunos]; struct TipoAluno dec[maximo_alunos]; struct TipoAluno aux; int x=-1,cont=0,i,j; char anome[50]; float n1,n2,media; while(x!=4){ system("cls"); printf("1-Incluir Aluno\n\n2-Mostrar alunos em ordem alfabetica\n\n3-Mostrar alunos em ordem decrescente\n\n4-Sair"); scanf("%i",&x); switch(x){ case 1: system("cls"); printf("Digite o nome do Aluno: "); fflush(stdin); scanf("%s",&anome); printf("Digite a primeira nota: "); scanf("%f",&n1); printf("Digite a segunda nota: "); scanf("%f",&n2); if((n1>=0)&&(n2<=10)){ if((n2>=0)&&(n2<=10)){ media = n1+n2; strcpy(alunos[cont].nome,anome); alunos[cont].media = media/2; cont++; } else{ printf("\nNota Invalida"); system("PAUSE"); } } else{ printf("\nNota Invalida"); system("PAUSE"); } break; case 2: system("cls"); for(i=0;i<cont;i++){ cresc[i]=alunos[i]; } for(i=0;i<cont;i++){ for(j=i+1;j<cont;j++){ if(strcmp(cresc[i].nome,cresc[j].nome)>0){ aux=cresc[i]; cresc[i]=cresc[j]; cresc[j]=aux; } } } for(i=0;i<cont;i++){ if(cresc[i].nome!=NULL){ printf("Nome: %s\nMedia: %.2f\n",cresc[i].nome,cresc[i].media); } } system("PAUSE"); break; case 3: system("cls"); for(i=0;i<cont;i++){ dec[i]=alunos[i]; } for(i=0;i<cont;i++){ for(j=i+1;j<cont;j++){ if(dec[i].media<dec[j].media){ aux=dec[i]; dec[i]=dec[j]; dec[j]=aux; } } } for(i=0;i<cont;i++){ if(dec[i].nome!=NULL){ printf("Nome: %s\nMedia: %.2f\n",dec[i].nome,dec[i].media); } } system("PAUSE"); break; case 4: exit(0); } } system("PAUSE"); }
Compartilhar