Advertisement
Guest User

Untitled

a guest
Nov 5th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. typedef struct Aluno{ //usando struct para definir variáveis utilizadas
  6. char nome_aluno[100], numero_matricula[100];
  7. double nota[4], media_aluno, media_turma;
  8. struct Aluno *Proximo;
  9. }Aluno;
  10. Aluno *primeiro, *atual, *NovoAluno;
  11. void GetAluno(){
  12. char temp[80];
  13. NovoAluno=(Aluno *)malloc(sizeof(Aluno));
  14. if(primeiro==(Aluno *)NULL)
  15. primeiro=atual=NovoAluno;
  16. else
  17. {
  18. atual=primeiro;
  19. while(atual->Proximo !=(Aluno *)NULL)
  20. atual=atual->Proximo;
  21. atual->Proximo=NovoAluno;
  22. atual=NovoAluno;
  23. }
  24. printf("Número da Matrícula do Aluno ");
  25. gets(atual->numero_matricula);
  26.  
  27. printf("Nome do Aluno ");
  28. gets(atual->nome_aluno);
  29.  
  30. printf("Nota da Prova 1 ");
  31. gets(temp);
  32. atual->nota[0]=atof(temp);
  33.  
  34. printf("Nota da Prova 2 ");
  35. gets(temp);
  36. atual->nota[1]=atof(temp);
  37.  
  38. printf("Nota da Prova 3 ");
  39. gets(temp);
  40. atual->nota[2]=atof(temp);
  41.  
  42. printf("Nota da Prova 4 ");
  43. gets(temp);
  44. atual->nota[3]=atof(temp);
  45.  
  46. printf("Nota da Prova Substitutiva ");
  47. gets(temp);
  48. atual->nota[4]=atof(temp);
  49. atual->Proximo=(Aluno *)NULL;
  50. {
  51. 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])
  52. atual->nota[0] = atual->nota[4];
  53. else
  54. 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])
  55. atual->nota[1] = atual->nota[4];
  56. else
  57. 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])
  58. atual->nota[2] = atual->nota[4];
  59. else
  60. 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])
  61. atual->nota[3] = atual->nota[4];
  62. else
  63. 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])
  64. atual->nota[0] = atual->nota[4];
  65. else
  66. if (atual->nota[1] == atual->nota[2] && atual->nota[1] == atual->nota[3] && atual->nota[4] > atual->nota[1])
  67. atual->nota[1] = atual->nota[4];
  68. else
  69. if (atual->nota[2] == atual->nota[3] && atual->nota[4] > atual->nota[3])
  70. atual->nota[2] = atual->nota[4];
  71. }
  72. atual->media_aluno=(atual->nota[0]*0.1+atual->nota[1]*0.2+atual->nota[2]*0.3+atual->nota[3]*0.4);
  73. }
  74. void PrintAluno(){
  75. if (primeiro==(Aluno *)NULL){
  76. puts("LISTA VAZIA");
  77. return;
  78. }
  79. atual=primeiro;
  80. do{
  81. printf("Nome do Aluno : %s\n",atual->nome_aluno);
  82. printf("Número da Matrícula do Aluno : %s\n",atual->numero_matricula);
  83. printf("Nota da Prova 1 :%.2f\n", atual->nota[0]);
  84. printf("Nota da Prova 2 :%.2f\n", atual->nota[1]);
  85. printf("Nota da Prova 3 :%.2f\n", atual->nota[2]);
  86. printf("Nota da Prova 4 :%.2f\n", atual->nota[3]);
  87. printf("Nota da Prova Sub :%.2f\n", atual->nota[4]);
  88. printf("Média do Aluno :%.2f\n", atual->media_aluno);
  89. atual=atual->Proximo;
  90. }while (atual != NULL);
  91. }
  92. int main(){
  93. //criando lista
  94. char ch;
  95. primeiro=(Aluno *)NULL;
  96. do{
  97. GetAluno();
  98. puts("\nInserir outro Aluno(s/n?) ");
  99. ch=getch();
  100. }while((ch!='n') && (ch!='N'));
  101. puts("\nLista dos Alunos Cadastrados");
  102. puts("================================");
  103. PrintAluno();
  104. system("PAUSE");
  105. return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement