Advertisement
FoxTuGa

admin_menuAMS.h

Nov 16th, 2011
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.77 KB | None | 0 0
  1. /* Criacao de cursos */
  2. int Verificar_Disp_Curso(tagCursos cursos[], char nome_input[], char sigla_input[]) {
  3.     int idx;
  4.     for(idx=0; idx < MaxCourses; idx++) {
  5.         if( !stricmp(cursos[idx].nome, nome_input) )
  6.             return 1;
  7.         if( !stricmp(cursos[idx].sigla, sigla_input) )
  8.             return 2;
  9.     }
  10.     return 0;
  11. }
  12. int Criar_Curso(tagCursos cursos[], int qtd_cursos) {
  13.     char sigla_input[MaxCourseSigsChars], nome_input[MaxNameChars];
  14.     int verificacao;
  15.  
  16.     printf("\t\t\tCriar Curso\n\n");
  17.     printf("Sigla: ");
  18.     gets(sigla_input);
  19.     printf("Nome: ");
  20.     gets(nome_input);
  21.  
  22.     verificacao = Verificar_Disp_Curso(cursos, nome_input, sigla_input);
  23.  
  24.     system("cls");
  25.     /*if( verificacao == 1 ) {
  26.     printf("Nome ja em utilizacao!!\n\n");
  27.     PAUSA();
  28.     return 0;
  29.     }
  30.     else    */if( verificacao == 2 ) {
  31.         printf("Sigla ja em utilizacao!!\n\n");
  32.         PAUSA();
  33.         return 0;
  34.     }
  35.     else    {
  36.         strcpy(cursos[qtd_cursos].nome, nome_input);
  37.         strcpy(cursos[qtd_cursos].sigla, sigla_input);
  38.     }
  39.  
  40.     return 1;
  41. }
  42.  
  43. /* Criacao de disciplinas */
  44. int Criar_Disciplina(tagDisciplinas disciplinas[], tagCursos cursos[], int quant_discp) {
  45.     char sigla_disciplina_input[MaxDiscipSigsChars], nome_disciplina_input[MaxNameChars/2];
  46.     char sigla_curso_input[MaxCourseSigsChars];
  47.     int quant_mods, verific_sigla_nome, verific_siglaC;
  48.  
  49.     printf("\t\t\tCriar Disciplina\n\n");
  50.     printf("\tSigla: ");
  51.     gets(sigla_disciplina_input);
  52.     printf("\tNome: ");
  53.     gets(nome_disciplina_input);
  54.     printf("\tSigla do Curso: ");
  55.     gets(sigla_curso_input);
  56.     printf("\tQuantidade de Modulos: ");
  57.     scanf("%d", &quant_mods);
  58.  
  59.     verific_siglaC = Verificar_Disp_Curso(cursos, "any", sigla_curso_input);
  60.  
  61.     system("cls");
  62.     if( verific_siglaC != 2) {
  63.         printf("Curso nao encontrado!!\n\n");
  64.         PAUSA();
  65.     }
  66.     else    if( !Entre_AB(quant_mods, MaxModulos, MinModulos) ) {
  67.         printf("Numero de modulos tem de estar entre %d e %d!!\n\n", MinModulos, MaxModulos);
  68.         PAUSA();
  69.     }
  70.     else    if( !strcmp(sigla_disciplina_input, sigla_curso_input) ) {
  71.         printf("Sigla da disciplina e sigla do curso iguais !!\n\n");
  72.         PAUSA();
  73.     }
  74.     else {
  75.         strcpy(disciplinas[quant_discp].nome, nome_disciplina_input);
  76.         strcpy(disciplinas[quant_discp].sigla_disciplina, sigla_disciplina_input);
  77.         return 1;
  78.     }
  79.  
  80.     return 0;
  81. }
  82.  
  83. /* Criacao de utilizadores */
  84. int Criar_Utilizador(tagUsers utilizadores[], tagCursos cursos[], int qtd_users_total, int qtd_users_tipo[]) {
  85.     char input_c = '\0';
  86.     char nome_input[MaxNameChars], sigla_curso_input[MaxCourseSigsChars], password_input[MaxPasswordChars];
  87.     int tipo, numero_input, verific_num, verific_curso;
  88.  
  89.     printf("\t\t\tCriar Utilizador\n\n");
  90.     printf("\t\t q - Aluno ");
  91.     printf("\t w - Professor");
  92.     while(input_c != 'q' && input_c != 'w') {
  93.         fflush(stdin);
  94.         input_c = getch();
  95.     }
  96.  
  97.     if( input_c == 'q' ) {
  98.         tipo = TypeAlunos;
  99.         if( qtd_users_tipo[0] == MaxStudents ) {
  100.             printf("Maximo de alunos atingido!!\n\n");
  101.             PAUSA();
  102.             return 0;
  103.         }
  104.     }
  105.     else {
  106.         tipo = TypeProfs;
  107.         if( qtd_users_tipo[1] == MaxProfs ) {
  108.             printf("Maximo de professores atingido!!\n\n");
  109.             PAUSA();
  110.             return 0;
  111.         }
  112.     }
  113.     system("cls");
  114.     printf("\t\t\tCriar Utilizador\n\n");
  115.     printf("\tNome: ");
  116.     gets(nome_input);
  117.     printf("\tNumero: ");
  118.     scanf("%d", &numero_input);
  119.     printf("\tSigla do Curso: ");
  120.     fflush(stdin);
  121.     gets(sigla_curso_input);
  122.     printf("\tPassword: ");
  123.     fflush(stdin);
  124.     gets(password_input);
  125.  
  126.     verific_num = Verificar_Numero(utilizadores, numero_input);
  127.     verific_curso = Verificar_Disp_Curso(cursos, "any", sigla_curso_input);
  128.  
  129.     if( verific_num == 0 ) {
  130.         if(tipo == 0) {
  131.             if( !Entre_AB(numero_input, MaxNumAlunos, MinNumAlunos) ) {
  132.                 printf("Numero tem de estar entre %d e %d!!\n\n", MinNumAlunos, MaxNumAlunos);
  133.                 PAUSA();
  134.             }
  135.             if(tipo == 1) {
  136.                 if( !Entre_AB(numero_input, MaxNumProfs, MinNumProfs) ) {
  137.                     printf("Numero tem de estar entre %d e %d!!\n\n", MinNumProfs, MaxNumProfs);
  138.                     PAUSA();
  139.                 }
  140.             }
  141.         }
  142.         else    if( verific_curso == 2 ) {
  143.             strcpy(utilizadores[qtd_users_total].nome, nome_input);
  144.             utilizadores[qtd_users_total].numero = numero_input;
  145.             strcpy(utilizadores[qtd_users_total].password, password_input);
  146.             strcpy(utilizadores[qtd_users_total].sigla_curso, sigla_curso_input);
  147.             utilizadores[qtd_users_total].tipo = tipo;
  148.  
  149.             return tipo;
  150.         }
  151.         else {
  152.             printf("Curso nao encontrado !!\n\n");
  153.             PAUSA();
  154.         }
  155.     }
  156.     else {
  157.         printf("Este numero ja se encontra em utilizacao !!\n\n");
  158.         PAUSA();
  159.     }
  160.     return 0;
  161. }
  162.  
  163. /* Criacao de diplomas */
  164.  
  165. /*
  166. double Media_Utilizador(int num_utilizador, tagNotas notas[], int *num_notas_aluno) {
  167.     double soma;
  168.     int idx, count;
  169.     soma = 0.0;
  170.     count = 0;
  171.     for(idx=0; idx < MaxNotes;idx++) {
  172.         if( notas[idx].numero_aluno == -1 )
  173.             return -1;
  174.         if( notas[idx].numero_aluno == num_utilizador ) {
  175.             if( notas[idx].classific >= 10 ) {
  176.                 count++;
  177.                 soma += notas[idx].classific;
  178.             }
  179.             else
  180.                 return -1;
  181.         }
  182.     }
  183.     *num_notas_aluno = count;
  184.     if( count >  0 )
  185.         return (soma / count);
  186.     else
  187.         return 0;
  188. }
  189. int Disciplinas_Aluno(char curso[], tagDisciplinas disciplinas[], int disciplinas_aluno[][3]) {
  190.     int idx, i;
  191.     for(idx=0, i=0; idx < MaxDiscip; idx++) {
  192.         if( !stricmp(disciplinas[idx].sigla_curso, curso) ) {
  193.             disciplinas_aluno[i] = idx;
  194.             i++;
  195.         }
  196.     }
  197.     return i;
  198. }
  199.  
  200. void Criar_Diploma(tagUsers utilizadores[], tagNotas Notas[]) {
  201.     int numero_input, verific_num, num_notas_aluno = 0;
  202.     int disciplinas_aluno[MaxDiscip/2][3];
  203.     char utilizador_curso[MaxCourseSigsChars];
  204.     double media;
  205.  
  206.     printf("\t\t\tCriacao de Diplomas\n\n");
  207.     printf("Numero de Aluno: ");
  208.     scanf("%d", &numero_input);
  209.  
  210.     verific_num = Verificar_Numero(utilizadores, numero_input);
  211.     if( verific_num != 0 ) {
  212.         if( utilizadores[verific_num].tipo != 0 ) {
  213.             printf("Esse utilizadores nao e um aluno !!\n\n");
  214.             PAUSA();
  215.         }
  216.         else {
  217.             strcpy(utilizador_curso, utilizadores[verific_num].sigla_curso);
  218.             Disciplinas_Aluno(utilizador_curso,disciplinas, disciplinas_aluno);
  219.             media = Media_Utilizador(numero_input,notas,&num_notas_aluno);
  220.         }
  221.     }
  222.     else {
  223.         printf("Numero nao encontrado !!\n\n");
  224.         PAUSA();
  225.         system("cls");
  226.     }
  227. }
  228. */
  229. void Menu_Administracao(tagUsers utilizadores[], tagCursos cursos[], tagDisciplinas disciplinas[], tagNotas notas[], int quantidades[], int qtds_users[]) {
  230.     char input_c;
  231.     int verific;
  232.  
  233.     while(TRUE) {
  234.         printf("\t\t\tMenu de Administracao\n\n");
  235.         printf("\t q - Criar Curso\n");
  236.         printf("\t w - Criar Disciplina\n");
  237.         printf("\t e - Criar Utilizador\n");
  238.         printf("\t r - Criar Diploma\n");
  239.         printf("\t t - Sair\n");
  240.         input_c = '\0';
  241.         while(input_c != 'q' && input_c != 'w' && input_c != 'e' && input_c != 'r' && input_c != 't') {
  242.             fflush(stdin);
  243.             input_c = getch();
  244.         }
  245.         system("cls");
  246.  
  247.         if( input_c == 't' )
  248.             break;
  249.         else    if( input_c == 'q' ) {
  250.             if(quantidades[0] == MaxCourses) {
  251.                 printf("Numero maximo de cursos atingido <%d>!!\n\n", MaxCourses);
  252.                 PAUSA();
  253.                 system("cls");
  254.             }
  255.             else {
  256.                 verific = Criar_Curso(cursos, quantidades[0]);
  257.                 if(verific == 1)
  258.                     quantidades[0]++;
  259.             }
  260.         }
  261.         else    if( input_c == 'w' ) {
  262.             if(quantidades[1] == MaxDiscip) {
  263.                 printf("Numero maximo de disciplinas atingido <%d>!!\n\n", MaxDiscip);
  264.                 PAUSA();
  265.                 system("cls");
  266.             }
  267.             else {
  268.                 verific = Criar_Disciplina(disciplinas,cursos,quantidades[1]);
  269.                 if(verific == 1)
  270.                     quantidades[1]++;
  271.             }
  272.         }
  273.         else    if( input_c == 'e' ) {
  274.             if(quantidades[3] == 550) {
  275.                 printf("Maximo de utilizadores antigidos!!\n\n");
  276.                 PAUSA();
  277.                 system("cls");
  278.             }
  279.             else {
  280.                 verific = Criar_Utilizador(utilizadores, cursos, quantidades[3], qtds_users);
  281.                 if( verific != 0 ) {
  282.                     quantidades[3]++;
  283.                     qtds_users[verific]++;
  284.                 }
  285.             }
  286.         }
  287.         else if( input_c == 'e' ) {
  288.             // TODO: Acabar Criar_Diploma
  289.             //Criar_Diploma(utilizadores, notas);
  290.         }
  291.         system("cls");
  292.     }
  293. }
  294. ///
  295.  
  296.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement