Advertisement
FoxTuGa

aluno_menuAMS.h

Nov 16th, 2011
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.99 KB | None | 0 0
  1. void consultNotas ( char input_sig[] ,tagNotas notas[] ){
  2.     int idx;
  3.  
  4.     for(idx=0;idx<MaxNotes;idx++){
  5.         if( !stricmp(input_sig, notas[idx].sigla_disciplina)  || !stricmp(input_sig, "TODAS") )
  6.             printf("\nNotas de %s: %d",notas[idx].sigla_disciplina,notas[idx].classific);
  7.     }
  8.     PAUSA();
  9. }
  10.  
  11. int consultMed ( tagNotas notas[], char sigla_disciplina[], int version, int *num_notas, int *mod_atraso){
  12.     int idx, soma, count, modulos_atraso;
  13.  
  14.     soma=count=modulos_atraso=0;
  15.  
  16.     for(idx=0;idx < MaxNotes;idx++){
  17.         if( notas[idx].classific > 9 ) {
  18.             if( !stricmp(notas[idx].sigla_disciplina, sigla_disciplina) || (!stricmp(sigla_disciplina, "TODAS") && version == 1)) {
  19.                 soma += notas[idx].classific;
  20.                 count++;
  21.             }
  22.         }
  23.         else
  24.             modulos_atraso++;
  25.     }
  26.     *mod_atraso = modulos_atraso;
  27.     *num_notas = count;
  28.     return soma;
  29. }
  30.  
  31. double Media( tagNotas notas [] , tagDisciplinas disciplinas[], char input_sig[]) {
  32.     int idx, soma, numero_notas, total_notas, mods_atraso;
  33.     for(idx=0; idx < MaxDiscip;idx++) {
  34.         if(disciplinas[idx].sigla_disciplina[0] != '\0') {
  35.             soma += consultMed(notas,disciplinas[idx].sigla_disciplina,0,&numero_notas, &mods_atraso);
  36.             if(soma != 0) {
  37.                 printf("\nMedia de %s: %.2lf", disciplinas[idx].sigla_disciplina, (double)(soma/numero_notas));
  38.                 total_notas = numero_notas;
  39.                 numero_notas = 0;
  40.             }
  41.         }
  42.     }
  43.     return (double)(soma/total_notas);
  44. }
  45.  
  46. int Quant_Mods_Atraso(tagNotas notas[], tagDisciplinas disciplinas[], char input_sig[]) {
  47.     int idx, mods_atraso, num_notas;
  48.     mods_atraso = num_notas = 0;
  49.  
  50.     for(idx=0; idx < MaxDiscip; idx++) {
  51.         if( stricmp(input_sig, "todas") )
  52.             strcpy(input_sig, disciplinas[idx].sigla_disciplina);
  53.         consultMed(notas, input_sig, 1, &num_notas, &mods_atraso);
  54.        
  55.     }
  56. }
  57.  
  58. void menuAluno (tagUsers utilizadores[], tagCursos cursos[], tagDisciplinas disciplinas[], tagNotas notas[], tagNotas sigla_disciplina[], int idx_user){
  59.  
  60.     int idx, verific, mod_atraso;
  61.     double media;
  62.     char input_c, input_sig[MaxDiscipSigsChars];
  63.  
  64.     while(TRUE) {
  65.         printf("\t\t\tMenu de Aluno\n\n");
  66.         printf("\t q - Ver notas\n");
  67.         printf("\t w - Consultar Médias\n");
  68.         printf("\t e - Consultar módulos em atraso\n");
  69.         printf("\t r - Sair\n");
  70.         input_c = '\0';
  71.         while(input_c != 'q' && input_c != 'w' && input_c != 'e' && input_c != 'r') {
  72.             fflush(stdin);
  73.             input_c = getch();
  74.         }
  75.  
  76.         if( input_c == 'r')
  77.             break;
  78.         else   
  79.             if( input_c == 'q' ){
  80.                 printf("Introduza a sigla da disciplina: ");
  81.                 fflush(stdin);
  82.                 gets(input_sig);
  83.                 verific = Verificar_Disciplina(disciplinas,cursos,utilizadores,idx_user, input_sig);
  84.                 if( verific > 0 )
  85.                     consultNotas(input_sig, notas);
  86.             }
  87.             else    if( input_c == 'w' ){
  88.                 media = Media(notas, disciplinas, input_sig);
  89.                 if(Media > 0)
  90.                     printf("\nMedia Global: %lf", media);
  91.                 else    if(media == 0) {
  92.                     printf("\nNotas nao lancadas!!!\n\n");
  93.                     PAUSA();
  94.                     system("cls");
  95.                 }
  96.                 else {
  97.                     printf("BUG ALINEA 115: Notas negativas!!\n\n");
  98.                     PAUSA();
  99.                 }
  100.             }
  101.     }
  102.  
  103. }
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement