Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- typedef struct Aluno{ //usando struct para definir variáveis utilizadas
- char nome_aluno[100], numero_matricula[100];
- double nota[4], media_aluno, media_turma;
- struct Aluno *Proximo;
- }Aluno;
- Aluno *primeiro, *atual, *NovoAluno;
- void GetAluno(){
- char temp[80];
- NovoAluno=(Aluno *)malloc(sizeof(Aluno));
- if(primeiro==(Aluno *)NULL)
- primeiro=atual=NovoAluno;
- else
- {
- atual=primeiro;
- while(atual->Proximo !=(Aluno *)NULL)
- atual=atual->Proximo;
- atual->Proximo=NovoAluno;
- atual=NovoAluno;
- }
- printf("Número da Matrícula do Aluno ");
- gets(atual->numero_matricula);
- printf("Nome do Aluno ");
- gets(atual->nome_aluno);
- printf("Nota da Prova 1 ");
- gets(temp);
- atual->nota[0]=atof(temp);
- printf("Nota da Prova 2 ");
- gets(temp);
- atual->nota[1]=atof(temp);
- printf("Nota da Prova 3 ");
- gets(temp);
- atual->nota[2]=atof(temp);
- printf("Nota da Prova 4 ");
- gets(temp);
- atual->nota[3]=atof(temp);
- printf("Nota da Prova Substitutiva ");
- gets(temp);
- atual->nota[4]=atof(temp);
- atual->Proximo=(Aluno *)NULL;
- {
- if (atual->nota[0] < atual->nota[1] && atual->nota[0] < atual->nota[2] && atual->nota[0] < atual->nota[3] && atual->nota[4] > atual->nota[0])
- atual->nota[0] = atual->nota[4];
- else
- if (atual->nota[1] < atual->nota[2] && atual->nota[1] < atual->nota[3] && atual->nota[1] < atual->nota[0] && atual->nota[4] > atual->nota[1])
- atual->nota[1] = atual->nota[4];
- else
- if (atual->nota[2] < atual->nota[3] && atual->nota[2] < atual->nota[1] && atual->nota[2] < atual->nota[0] && atual->nota[4] > atual->nota[2])
- atual->nota[2] = atual->nota[4];
- else
- if (atual->nota[3] < atual->nota[0] && atual->nota[3] < atual->nota[1] && atual->nota[3] < atual->nota[2] && atual->nota[4] > atual->nota[3])
- atual->nota[3] = atual->nota[4];
- else
- if (atual->nota[0] == atual->nota[1] && atual->nota[0] == atual->nota[2] && atual->nota[0] == atual->nota[3] && atual->nota[4] > atual->nota[0])
- atual->nota[0] = atual->nota[4];
- else
- if (atual->nota[1] == atual->nota[2] && atual->nota[1] == atual->nota[3] && atual->nota[4] > atual->nota[1])
- atual->nota[1] = atual->nota[4];
- else
- if (atual->nota[2] == atual->nota[3] && atual->nota[4] > atual->nota[3])
- atual->nota[2] = atual->nota[4];
- }
- atual->media_aluno=(atual->nota[0]*0.1+atual->nota[1]*0.2+atual->nota[2]*0.3+atual->nota[3]*0.4);
- }
- void PrintAluno(){
- if (primeiro==(Aluno *)NULL){
- puts("LISTA VAZIA");
- return;
- }
- atual=primeiro;
- do{
- printf("Nome do Aluno : %s\n",atual->nome_aluno);
- printf("Número da Matrícula do Aluno : %s\n",atual->numero_matricula);
- printf("Nota da Prova 1 :%.2f\n", atual->nota[0]);
- printf("Nota da Prova 2 :%.2f\n", atual->nota[1]);
- printf("Nota da Prova 3 :%.2f\n", atual->nota[2]);
- printf("Nota da Prova 4 :%.2f\n", atual->nota[3]);
- printf("Nota da Prova Sub :%.2f\n", atual->nota[4]);
- printf("Média do Aluno :%.2f\n", atual->media_aluno);
- atual=atual->Proximo;
- }while (atual != NULL);
- }
- int main(){
- //criando lista
- char ch;
- primeiro=(Aluno *)NULL;
- do{
- GetAluno();
- puts("\nInserir outro Aluno(s/n?) ");
- ch=getch();
- }while((ch!='n') && (ch!='N'));
- puts("\nLista dos Alunos Cadastrados");
- puts("================================");
- PrintAluno();
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement