Advertisement
Guest User

Untitled

a guest
Jan 6th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 18.06 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <locale.h>
  3. #include <stdio.h>
  4. #include <windows.h>
  5. #include <math.h>
  6. #include <stdlib.h>
  7. #include <ctype.h>
  8. #include <string.h>
  9. #include <time.h>
  10. # define NUM_COMPUTADORES 4
  11.  
  12. using namespace std;
  13.  
  14.  
  15. /* Estrutura da data */
  16. typedef struct data {
  17.     int ano;
  18.     int mes;
  19.     int dia;
  20.     int hora;
  21.     int min;
  22.     int segundo;
  23. } DATA;
  24.  
  25. /* EStrutura dos utilizadores */
  26. typedef struct utilizadores
  27. {
  28.     int codigoUtilizador;
  29.     char nome[100];
  30.     char morada[150];
  31.     char contacto[10];
  32.     char dataRegisto[20];
  33.     char nomeUtilizador[15];
  34.     char password[15];
  35.     int tipoUser;
  36.     int logado;
  37.     int tempo_total_utilizacao;
  38.     int total_dinheiro_gasto;
  39. } Utilizadores;
  40.  
  41. /* Estrutura dos computadores */
  42. typedef struct computadores
  43. {
  44.     char nome[100];
  45.     int codigoComputador;
  46.     int estado;
  47.     int tempoUtilizacao;
  48.     int total_faturado;
  49. } Computadores;
  50.  
  51. /* Estrutura das sessões */
  52. typedef struct sessoes
  53. {
  54.     int estado;
  55.     int codComputador;
  56.     int codUtilizador;
  57.     char dataInicio;
  58.     int minutosUtilizacao;
  59.     double preco;
  60.     int pagamento;
  61. }Sessoes;
  62.  
  63.  
  64. /* Prototipos das funções */
  65.  
  66. // Menus
  67. char menu_principal();                                                          /* Menu principal */
  68. void menu_login(Utilizadores *p, data *h, computadores *c, int n);              /* Menu do LOGIN */
  69. void menu_user(Utilizadores *p, data *h, computadores *c, int n);               /* Menu principal do user */
  70. void menu_user_computador(Utilizadores *p, data *h, computadores *c, int n);    /* Menu principal do user - computador */
  71. void menu_admin(Utilizadores *p, data *h, computadores *c, int n);              /* Menu principal da ADMIN */
  72. void menu_admin_users(Utilizadores *p, data *h, computadores *c, int n);        /* Menu principal da ADMIN - usuários */
  73. void menu_admin_computadores(Utilizadores *p, data *h, computadores *c, int n); /* Menu principal da ADMIN - computadores */
  74.  
  75. // Admin - User
  76. void admin_editar_user();                                               /* Admin editar user */
  77. void admin_eliminar_user();                                             /* Admin eliminar user */
  78. // Admin - Computador
  79. void admin_adicionar_computador();                                      /* Admin adicionar computador */
  80. void admin_editar_computador();                                         /* Admin editar computador */
  81. void admin_eliminar_computador();                                       /* Admin eliminar computador */
  82.  
  83. // User
  84. void user_editar_dados(Utilizadores *p, int n);
  85.  
  86. // Computadores
  87. void computadores_inicializa(Computadores *c, int n);                   /* Inicializa computadores */
  88. void computadores_lista(Computadores *c, int n);                        /* Mostra a lista de computadores */
  89.  
  90. // Utilizadores
  91. void utilizadores_inicializa(Utilizadores *p, int n);                   /* Inicializa os utilizadores*/
  92. void utilizadores_introduzir(Utilizadores *p, data*h, int n);           /* Introduz um novo utilizador */                       // Criar verificações (Repitição de user e outros)
  93. void utilizadores_listar_tabela(Utilizadores *p, data *h, int n);       /* Mostra a lista dos utilizadores com tabela */
  94. void utilizadores_listar_simples(Utilizadores *p, data *h, int n);      /* Mostra a lista dos utilizadores sem tabela */
  95.  
  96. // Tabela
  97. void escreve_espacos_branco(int x);                                     /* Escreve espaços em branco (usado na tabela) */
  98. int conta_numeros(int num);                                             /* Conta a quantidade de numeros de um inteiro */
  99. void tabela_escreve_int(int num, int digitos_tabela);                   /* Escreve um inteiro na tabela */
  100. void tabela_escreve_string(char *string, int digitos_tabela);           /* Escreve uma string na tabela */
  101.  
  102. // Sessoes
  103. void sessoes_tabela_precos(Sessoes *s, Utilizadores *p, int n);         /* Calcula o preço da sessao */                            // Verificar funcionamento
  104.  
  105. // Outros
  106. void data_registo(DATA *h, int n);                                      /* Diz a data/hora atual */
  107.  
  108.  
  109.  
  110. /*
  111.     Inicializa os computadores
  112.         - Computadores *c -> Apontador para o vetor de computadores
  113.         - n -> Número de computadores
  114. */
  115. void computadores_inicializa(Computadores *c, int n) {
  116.     for (int i = 0; i < NUM_COMPUTADORES; i++) {
  117.         strcpy(c->nome, "Sem Nome");    /* Limpa o nome do computador */
  118.         c->codigoComputador = i + 1;    /* Começa em 1 até n */
  119.         c->estado = -1;                 /* -1 Não existe computador no vetor | 0 livre | 1 ocupado | 2 indisponivel */
  120.         c->tempoUtilizacao = 0;
  121.         c->total_faturado = 0;
  122.         c++;
  123.     }
  124. }
  125.  
  126. /*
  127.     Inicializa os utilizadores
  128.         - Utilizadores *p -> Apontador para o vetor dos utilizadores
  129.         - n -> Numero de utilizadores
  130. */
  131. void utilizadores_inicializa(Utilizadores *p, int n) {
  132.     for (int i = 0; i < n; i++) {
  133.         p->codigoUtilizador = -1;       /* -1 Não tem código | 0 para ADMIN | > 0 para normais */
  134.         p->tempo_total_utilizacao = 0;
  135.         p->total_dinheiro_gasto = 0;
  136.         p->tipoUser = 1;                /* 0 para ADMIN | 1 para normais */
  137.         p->logado = 0;
  138.         p++;
  139.     }
  140. }
  141.  
  142. /* Escreve x espacos em branco (usado para formatar a tabela) */
  143. void escreve_espacos_branco(int x)
  144. {
  145.     for (int i = 0; i < x; i++) printf(" ");
  146. }
  147.  
  148. /* Conta a quantidade de caracteres de um numero */
  149. int conta_numeros(int num)
  150. {
  151.     if (num < 0) return 0;
  152.     else if (num < 10) return 1;
  153.     else if (num < 100) return 2;
  154.     else if (num < 1000) return 3;
  155.     else if (num < 10000) return 4;
  156.     return 0;
  157. }
  158.  
  159. /* Escreve um inteiro na tabela */
  160. void tabela_escreve_int(int num, int digitos_tabela)
  161. {
  162.     // Conta numeros do inteiro
  163.     int num_dig_codUti = conta_numeros(num);
  164.  
  165.     // Calcula a diferença de digitos necessários da tabela e os digitos do inteiro
  166.     int dif_digitos = digitos_tabela - num_dig_codUti;
  167.  
  168.     // Se a diferença for maior que 0, escreve o inteiro e os espaços em branco necessários (dif_digitos + 1 -> +1 serve para colocar o espaço antes da |)
  169.     if (dif_digitos > 0)
  170.     {
  171.         printf("| %d", num);
  172.         escreve_espacos_branco(dif_digitos + 1);
  173.     } else printf("| %d ", num);
  174. }
  175.  
  176. /* Escreve uma string na tabela */
  177. void tabela_escreve_string(char *string, int digitos_tabela)
  178. {
  179.     // Calcula tamanho da string
  180.     int tam_nome = strlen(string);
  181.  
  182.     // Calcula a diferença de digitos necessários da tabela e os digitos da string
  183.     int dif_caracteres = digitos_tabela - tam_nome;
  184.    
  185.     // Se a diferença for maior que 0, escreve a string e os espaços em branco necessários (dif_digitos + 1 -> +1 serve para colocar o espaço antes da |)
  186.     if (dif_caracteres > 0)
  187.     {
  188.         printf("| %s", string);
  189.         escreve_espacos_branco(dif_caracteres + 1);
  190.     } else printf("| %s ", string);
  191. }
  192.  
  193. /* Lista dos utilizadores com tabela */
  194. void utilizadores_listar_tabela(Utilizadores *p, data *h, int n)
  195. {
  196.     // HEADER
  197.     printf("================================================================================= \n");
  198.     printf("| COD |      USER      |  CONTACTO  | TIPO | LOGADO | TEMPO TOTAL | TOTAL GASTO | \n");
  199.     printf("================================================================================= \n");
  200.    
  201.     // Loop pelos users
  202.     for (int i = 0; i < n; i++)
  203.     {
  204.         // Escreve as infos
  205.         if (p->codigoUtilizador != -1) {
  206.             tabela_escreve_int(p->codigoUtilizador, 3);
  207.             tabela_escreve_string(p->nomeUtilizador, 14);
  208.             tabela_escreve_string(p->contacto, 10);
  209.             tabela_escreve_int(p->tipoUser, 4);
  210.             tabela_escreve_int(p->logado, 6);
  211.             tabela_escreve_int(p->tempo_total_utilizacao, 11);
  212.             tabela_escreve_int(p->total_dinheiro_gasto, 11);
  213.             printf("|\n");
  214.         }
  215.         // Passa para o proximo user
  216.         p++;
  217.     }
  218.     // FOOTER
  219.     printf("|=====|================|============|======|========|=============|=============| \n");
  220.  
  221.     system("pause");
  222.  
  223. }
  224.  
  225. /* Tabela de preços */
  226. void sessoes_tabela_precos(Sessoes *s, Utilizadores *p, int n) {
  227.     double preco;
  228.     p->codigoUtilizador = s->codUtilizador;
  229.     if (s->minutosUtilizacao < 30)
  230.         preco = (double)s->minutosUtilizacao * 0.05;
  231.     else if (s->minutosUtilizacao > 30)
  232.         preco = 30 * 0.05 + ((double)s->minutosUtilizacao - 30) * 0.025;
  233.  
  234.     if (preco < 2)
  235.         s->preco = 2;
  236.     else s->preco = preco;
  237.  
  238. }
  239.  
  240. /* Regista a data atual */
  241. void data_registo(DATA *h, int n)
  242. {
  243.     SYSTEMTIME st;
  244.     GetSystemTime(&st);
  245.     for (int i = 0; i < n; i++) {
  246.         h->ano = st.wYear;
  247.         h->mes = st.wMonth;
  248.         h->dia = st.wDay;
  249.         h->hora = st.wHour;
  250.         h->min = st.wMinute;
  251.         h->segundo = st.wSecond;
  252.         h++;
  253.     }
  254. }
  255.  
  256. /* Mostra a lista de computadores */
  257. void computadores_lista(Computadores *c, int n)
  258. {
  259.     printf("\n\n LISTA DE COMPUTADORES \n\n");
  260.     int i;
  261.     for (i = 0; i < NUM_COMPUTADORES; i++)
  262.     {
  263.         printf("Código: %d\n", c->codigoComputador);
  264.         printf("Nome: %s\n", c->nome);
  265.         printf("Estado: %d\n", c->estado);
  266.         printf("Faturado: %d\n", c->total_faturado);
  267.         printf("Tempo Utilização: %d\n\n", c->tempoUtilizacao);
  268.  
  269.         c++;
  270.     }
  271. }
  272.  
  273. /* Adicionar Utilizador */
  274. void utilizadores_introduzir(Utilizadores *p, data*h, int n)
  275. {
  276.     int i = 0;
  277.     while ((p->codigoUtilizador != -1) && (i < n)) {
  278.         i++;
  279.         p++;
  280.         h++;
  281.     }
  282.  
  283.     if (i < n) {
  284.         data_registo(h, n);
  285.         printf("\nInserir novo utilizador no sistema\n\n");
  286.  
  287.         fseek(stdin, 0, 2);
  288.         printf("\nInsira o nome completo: ");
  289.         gets_s(p->nome);
  290.  
  291.         //Percorrer todo o vetor para verificar se há utilizadores com nomes iguais (POR FAZER!!!)
  292.         fseek(stdin, 0, 2);
  293.         printf("\nInsira o nome de utilizador: ");
  294.         gets_s(p->nomeUtilizador);
  295.  
  296.         fseek(stdin, 0, 2);
  297.         printf("\nInsira a morada: ");
  298.         gets_s(p->morada);
  299.  
  300.         printf("\nInsira o contacto de telefone: ");
  301.         gets_s(p->contacto);
  302.  
  303.         fseek(stdin, 0, 2);
  304.         printf("\nInsira password: ");
  305.         gets_s(p->password);
  306.  
  307.         printf("\nUtilizador registado em %d-%d-%d as %d:%d:%d.\n", h->ano, h->mes, h->dia, h->hora, h->min, h->segundo);
  308.         p->codigoUtilizador = i;
  309.         if (p->codigoUtilizador == 0) p->tipoUser = 0;
  310.  
  311.         printf("\nUtilizador registado na posicao %d\n", i + 1);
  312.     }
  313.     else printf("\n O programa nao tem espaco para mais utilizadores!! \n");
  314.     printf("\n Pressiona <enter> para continuar\n");
  315.     system("pause");
  316.  
  317. }
  318.  
  319. /* Mostra utilizadores sem tabela */
  320. void utilizadores_listar_simples(Utilizadores *p, data *h, int n)
  321. {
  322.     int i;
  323.     for (i = 0; i < n; i++)
  324.     {
  325.         if (p->codigoUtilizador != -1) {
  326.             printf("\nO utilizador %s tem os seguintes dados: ", p->nomeUtilizador);
  327.             printf("\nNome: %s", p->nome);
  328.             printf("\nMorada: %s", p->morada);
  329.             printf("\nContacto: %s", p->contacto);
  330.             printf("\nPassword: %s", p->password);
  331.             printf("\nData de Registo: %d-%d-%d as %d:%d:%d.\n", h->ano, h->mes, h->dia, h->hora, h->min, h->segundo);
  332.         }
  333.         p++;
  334.         h++;
  335.     }
  336. }
  337.  
  338. /* Admin editar user */
  339. void admin_editar_user()
  340. {
  341.     printf("\nFuncao de editar user!");
  342.     system("pause");
  343.     //POR FAZER!!
  344. }
  345.  
  346. /* Admin elimiar user */
  347. void admin_eliminar_user()
  348. {
  349.     printf("\nFuncao de eliminar user!");
  350.     system("pause");
  351.     //POR FAZER!!
  352. }
  353.  
  354. /* Admin eliminar computador */
  355. void admin_eliminar_computador()
  356. {
  357.     printf("\nFuncao de eliminar pc!");
  358.     system("pause");
  359.     //POR FAZER
  360. }
  361.  
  362. /* Admin editar computador */
  363. void admin_editar_computador()
  364. {
  365.     printf("\nFuncao de editar pc!");
  366.     system("pause");
  367.     //POR FAZER
  368. }
  369.  
  370. /* Admin adicionar computador */
  371. void admin_adicionar_computador(Computadores *c)
  372. {
  373.     int computadores_ocupados = 0;
  374.     int i = 0;
  375.  
  376.     // Vai ver todos os computadores
  377.     while (i < NUM_COMPUTADORES)
  378.     {
  379.         if (c->estado != -1)
  380.         {
  381.             computadores_ocupados++;
  382.             c++;
  383.         }
  384.         i++;
  385.     }
  386.  
  387.     // Se os computadores usados forem menos que os computadores existentes
  388.     if (computadores_ocupados < NUM_COMPUTADORES)
  389.     {
  390.         // LOOP que só para quando o computador for adicionado
  391.         while (1)
  392.         {
  393.             // Se o estado do PC for igual a -1
  394.             if ((c->estado == -1))
  395.             {
  396.                 fseek(stdin, 0, 2);
  397.                 printf("\nInsira o nome computador: ");
  398.                 gets_s(c->nome);
  399.                 printf("\nO computador %s foi adicionado.\nCÓDIGO: %d\n\n", c->nome, c->codigoComputador);
  400.                 c->estado = 0;
  401.                 c++;
  402.                 break;
  403.             }
  404.             else c++;
  405.         }
  406.     } else printf("\nNão é possivel adicionar mais computadores, lista cheia!");
  407.    
  408.     system("pause");
  409.     //POR FAZER
  410. }
  411.  
  412. /* User editar dados */
  413. void user_editar_dados(Utilizadores *p, int n)
  414. {
  415.    
  416.     system("pause");
  417.     //POR FAZER
  418. }
  419.  
  420. /* Menu principal */
  421. char menu_principal()
  422. {
  423.     char op;
  424.  
  425.     printf("\n#--------------------------#");
  426.     printf("\n     Registar      (1)     \n");
  427.     printf("\n     Logar         (2)     \n");
  428.     printf("\n     Logar Admin(testes)(3)\n");
  429.     printf("\n     Sair          (0)     \n");
  430.     printf("\n#--------------------------#");
  431.  
  432.     do {
  433.         printf("\nQual a opção? ");
  434.         scanf(" %c", &op);
  435.     } while (op < '0' || op > '3');
  436.  
  437.     //system("cls");
  438.     return op;
  439. }
  440.  
  441. /* Menu principal do user */
  442. void menu_user(Utilizadores *p, data *h, computadores *c, int n)
  443. {
  444.     char op;
  445.  
  446.     printf("\n#--------------------------------------------#");
  447.     printf("\n        Ir para PC                    (1)      \n");
  448.     printf("\n        Editar dados                  (2)      \n");
  449.     printf("\n        Sair                          (0)      \n");
  450.     printf("\n#--------------------------------------------#");
  451.  
  452.     do
  453.     {
  454.         printf("\nQual a opção? ");
  455.         scanf(" %c", &op);
  456.     } while (op < '0' || op > '2');
  457.    
  458.     switch (op)
  459.     {
  460.         case '1':
  461.             menu_user_computador(p, h, c, n);
  462.             break;
  463.         case '2':
  464.             user_editar_dados(p, n); //POR FAZER
  465.             break;
  466.         case '0':
  467.             menu_principal();
  468.             break;
  469.         default:
  470.             printf("\nOpção inválida.");
  471.             break;
  472.     }
  473.     //system("cls");
  474. }
  475.  
  476. /* Menu principal do user - computador */
  477. void menu_user_computador(Utilizadores *p, data *h, computadores *c, int n)
  478. {
  479.     char op;
  480.  
  481.     printf("\n#--------------------------------------------#");
  482.     printf("\n        Cena 1                  (1)      \n");
  483.     printf("\n        Cena 2                  (2)      \n");
  484.     printf("\n        Sair da sessao          (0)      \n");
  485.     printf("\n#--------------------------------------------#");
  486.  
  487.     do {
  488.         printf("\nQual a opção? ");
  489.         scanf(" %c", &op);
  490.     } while (op < '0' || op > '2');
  491.  
  492.     switch (op)
  493.     {
  494.         case '1':
  495.             //VAMOS TENTAR SIMULAR A UTILIZAÇAO DE UM COMPUTADOR
  496.             break;
  497.         case '2':
  498.             //VAMOS TENTAR SIMULAR A UTILIZAÇAO DE UM COMPUTADOR
  499.             break;
  500.         case '0':
  501.             menu_user(p, h, c, n);
  502.             break;
  503.         default:
  504.             printf("\nOpção inválida.");
  505.             break;
  506.     }
  507.     //system("cls");
  508.  
  509. }
  510.  
  511. /* Menu principal da admin */
  512. void menu_admin(Utilizadores *p, data *h, computadores *c, int n)
  513. {
  514.     char op;
  515.  
  516.     do
  517.     {
  518.         printf("\n#--------------------------#");
  519.         printf("\n     USERS            (1)      \n");
  520.         printf("\n     PCS              (2)      \n");
  521.         printf("\n     Sair             (0)      \n");
  522.         printf("\n#--------------------------#");
  523.  
  524.         do {
  525.             printf("\nQual a opção? ");
  526.             scanf(" %c", &op);
  527.  
  528.         } while (op < '0' || op > '5');
  529.  
  530.         switch (op)
  531.         {
  532.         case '1':
  533.             menu_admin_users(p, h, c, n);
  534.             break;
  535.         case '2':
  536.             menu_admin_computadores(p, h, c, n);
  537.             break;
  538.         case '0':
  539.             menu_principal();
  540.             break;
  541.         default:
  542.             printf("\nOpção inválida 1.");
  543.             break;
  544.         }
  545.     } while (op != '0');
  546.    
  547.     //system("cls");
  548.  
  549. }
  550.  
  551. /* Menu principal da admin - Users */
  552. void menu_admin_users(Utilizadores *p, data *h, computadores *c, int n)
  553. {
  554.     char op;
  555.  
  556.     do
  557.     {
  558.         printf("\n#--------------------------#");
  559.         printf("\n     Lista de users   (1)      \n");
  560.         printf("\n     Adicionar user   (2)      \n");
  561.         printf("\n     Editar user      (3)      \n");
  562.         printf("\n     Eliminar user    (4)      \n");
  563.         printf("\n     Sair             (0)      \n");
  564.         printf("\n#--------------------------#");
  565.         do {
  566.             printf("\nQual a opção? ");
  567.             scanf(" %c", &op);
  568.  
  569.         } while (op < '0' || op > '4');
  570.         switch (op) {
  571.         case '1':
  572.             utilizadores_listar_tabela(p, h, n);
  573.             break;
  574.         case '2':
  575.             utilizadores_introduzir(p, h, n);
  576.             break;
  577.         case '3':
  578.             admin_editar_user(); //POR FAZER
  579.             break;
  580.         case '4':
  581.             admin_eliminar_user(); //PORFAZER
  582.             break;
  583.         case '0':
  584.             break;
  585.         default:
  586.             printf("\nOpção inválida. ..");
  587.             break;
  588.         }
  589.     } while (op != '0');
  590.    
  591.    
  592. }
  593.  
  594. /* Menu principal da admin - Computadores */
  595. void menu_admin_computadores(Utilizadores *p, data *h, computadores *c, int n)
  596. {
  597.     char op;
  598.  
  599.     do {
  600.         printf("\n#--------------------------#");
  601.         printf("\n     Lista de PCs   (1)      \n");
  602.         printf("\n     Adicionar PC   (2)      \n");
  603.         printf("\n     Editar PC      (3)      \n");
  604.         printf("\n     Eliminar PC    (4)      \n");
  605.         printf("\n     Sair           (0)      \n");
  606.         printf("\n#--------------------------#");
  607.  
  608.    
  609.         printf("\nQual a opção? ");
  610.         scanf(" %c", &op);
  611.  
  612.    
  613.  
  614.         switch (op)
  615.         {
  616.             case '1':
  617.                 computadores_lista(c, n);
  618.                 menu_admin_computadores(p, h, c, n);
  619.                 break;
  620.             case '2':
  621.                 admin_adicionar_computador(c); //POR FAZER
  622.                 break;
  623.             case '3':
  624.                 admin_editar_computador();  //POR FAZER
  625.                 break;
  626.             case '4':
  627.                 admin_eliminar_computador(); //POR FAZER
  628.                 break;
  629.             case '0':
  630.                 menu_admin(p, h, c, n);
  631.                 break;
  632.             default:
  633.                 printf("\nOpção inválida.");
  634.                 break;
  635.         }
  636.     } while (op != '0');
  637. }
  638.  
  639. /* Menu do LOGIN */
  640. void menu_login(Utilizadores *p, data *h, computadores *c, int n)
  641. {
  642.     int i, cmpStringUser, cmpStringPass;
  643.     char nome[15], password[15];
  644.     Utilizadores *user = new Utilizadores;
  645.     *user = *p;
  646.     int nUsers = n;
  647.  
  648.     fseek(stdin, 0, 2);
  649.     printf("\nInsira o nome de utilizador: ");
  650.     gets_s(nome);
  651.     fseek(stdin, 0, 2);
  652.     printf("\nInsira a password: ");
  653.     gets_s(password);
  654.  
  655.     for (i = 0; i < n; i++)
  656.     {
  657.         cmpStringUser = strcmp(nome, p->nomeUtilizador);
  658.         cmpStringPass = strcmp(password, p->password);
  659.  
  660.         if ((cmpStringUser == 0 && cmpStringPass == 0))
  661.         {
  662.             if (p->codigoUtilizador == 0)
  663.                 menu_admin(p, h, c, n);
  664.             else if (p->codigoUtilizador > 0)
  665.                 menu_user(p, h, c, n);
  666.         }
  667.         else p++;
  668.     }
  669.     printf("\nErrado.\n");
  670.     system("pause");
  671. }
  672.  
  673. /* Main */
  674. void main()
  675. {
  676.     setlocale(LC_ALL, ""); //Caracteres acentuados
  677.  
  678.  
  679.     Utilizadores user_logado;
  680.  
  681.     Utilizadores user[10];
  682.     int nUsers = 10;
  683.  
  684.  
  685.     int nComputadores = 20;
  686.     Computadores pc[NUM_COMPUTADORES];
  687.     data h[10];
  688.     computadores_inicializa(pc, nComputadores);
  689.  
  690.  
  691.     char ope;
  692.     utilizadores_inicializa(user, nUsers);
  693.  
  694.  
  695.     do {
  696.         ope = menu_principal();
  697.  
  698.         switch (ope) {
  699.         case '1':
  700.            
  701.             utilizadores_introduzir(user, h, nUsers);
  702.             //system("cls");
  703.             break;
  704.         case '2':
  705.             menu_login(user, h, pc, nUsers);
  706.             //menuLogin(user, h, pc, nUsers); //Registar-se no sistema
  707.             //system("cls");
  708.             break;
  709.         case '3':
  710.             menu_admin(user, h, pc, nUsers);
  711.             //menuLogin(user, h, pc, nUsers); //Registar-se no sistema
  712.             //system("cls");
  713.             break;
  714.         case '0':
  715.             ope = '0';
  716.             break;
  717.         default:
  718.             printf("\nOpção inválida.");
  719.             break;
  720.         }
  721.     } while (ope != '0');
  722. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement