Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.45 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <time.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <locale.h>
  6. #include <math.h>
  7. #include <string.h>
  8. #include <windows.h>
  9.  
  10. //Utilizador - 0 Admin, 1 - User normal
  11. //Criação das estruturas necessárias
  12.  
  13. typedef struct utilizadores
  14. {
  15. int ocupado;
  16. int codigoUtilizador;
  17. char nome[100];
  18. char morada[150];
  19. int contacto;
  20. char dataRegisto[20];
  21. char nomeUtilizador[15];
  22. char password[15];
  23. int tipoUser;
  24. int logado;
  25. int tempo_total_utilizacao;
  26. int total_dinheiro_gasto;
  27. }Utilizadores;
  28.  
  29. typedef struct computadores
  30. {
  31. int codigoComputador;
  32. int estado;
  33. }Computadores;
  34.  
  35. typedef struct sessoes
  36. {
  37. int estado;
  38. int codUtilizador;
  39. char dataInicio;
  40. int minutosUtilizacao;
  41. int preco;
  42. int pagamento;
  43. }Sessoes;
  44.  
  45. typedef struct data {
  46. int ano;
  47. int mes;
  48. int dia;
  49. int hora;
  50. int min;
  51. int segundo;
  52. }DATA;
  53.  
  54. // Poe computadores livres
  55. void ocupado(Computadores *c, int n) {
  56. for (int i = 0; i < n; i++) {
  57. c->estado = 0;
  58. c++;
  59. }
  60. }
  61.  
  62. // Poe os utilizadores livres
  63. void ocupadou(Utilizadores *p, int n) {
  64. for (int i = 0; i < n; i++) {
  65. p->ocupado = 0;
  66. p->tipoUser = 1;
  67. p++;
  68. }
  69. }
  70.  
  71. // Isto vai ser a tabela de preços
  72. void tabela(Sessoes *s, Utilizadores *p, int n) {
  73. p->codigoUtilizador = s->codUtilizador;
  74.  
  75. }
  76.  
  77. void dataregisto(DATA *h) {
  78. SYSTEMTIME st;
  79. GetSystemTime(&st);
  80. h->ano = st.wYear;
  81. h->mes = st.wMonth;
  82. h->dia = st.wDay;
  83. h->hora = st.wHour;
  84. h->min = st.wMinute;
  85. h->segundo = st.wSecond;
  86.  
  87. }
  88.  
  89.  
  90. char menu1()
  91. {
  92. char op;
  93. printf("\n#--------------------------#");
  94. printf("\n Fazer Login (1) \n");
  95. printf("\n Criar Conta (2) \n");
  96. printf("\n Sair (0) \n");
  97. printf("\n#--------------------------#");
  98. do {
  99. printf("\nQual a opção? ");
  100. scanf(" %c", &op);
  101. } while (op < '0' || op > '3');
  102. system("cls");
  103. return op;
  104. }
  105.  
  106. char menuAdmin()
  107. {
  108. char op;
  109. printf("\n#--------------------------------------------#");
  110. printf("\n Adicionar Computador (1) \n");
  111. printf("\n Editar Computador (2) \n");
  112. printf("\n Tornar utilizador em Admin (3) \n");
  113. printf("\n Editar utilizador (4) \n");
  114. printf("\n Remover utilizador (5) \n");
  115. printf("\n Sair (0) \n");
  116. printf("\n#--------------------------#");
  117. do {
  118. printf("\nQual a opção? ");
  119. scanf(" %c", &op);
  120.  
  121. } while (op < '0' || op > '5');
  122. system("cls");
  123. return op;
  124. }
  125.  
  126.  
  127. char menuUser()
  128. {
  129. char op;
  130. printf("\n#--------------------------------------------#");
  131. printf("\n (1) \n");
  132. printf("\n (2) \n");
  133. printf("\n (3) \n");
  134. printf("\n Sair (0) \n");
  135. printf("\n#--------------------------------------------#");
  136. do {
  137. printf("\nQual a opção? ");
  138. scanf(" %c", &op);
  139. } while (op < '0' || op > '6');
  140. system("cls");
  141. return op;
  142. }
  143.  
  144. void menuLogin(Utilizadores *p, int n)
  145. {
  146. int i, cmpStringUser, cmpStringPass;
  147. char nome[15], password[15];
  148. Utilizadores *user = new Utilizadores;
  149. *user = *p;
  150. int nUsers = n;
  151.  
  152. fseek(stdin, 0, 2);
  153. printf("\nInsira o nome de utilizador: ");
  154. gets_s(nome);
  155. fseek(stdin, 0, 2);
  156. printf("\nInsira a password: ");
  157. gets_s(password);
  158.  
  159. for (i = 0; i < n; i++)
  160. {
  161. cmpStringUser = strcmp(nome, p->nomeUtilizador);
  162. cmpStringPass = strcmp(password, p->password);
  163.  
  164. if (cmpStringUser != 0 && cmpStringPass != 0)
  165. if (p->tipoUser == 0)
  166. menuAdmin();
  167.  
  168. else {
  169. p->logado = 1;
  170. menuUser();
  171. }
  172. else
  173. menuLogin(user, nUsers);
  174. p++;
  175. }
  176.  
  177. }
  178.  
  179. //Adicionar Utilizador
  180.  
  181. void inserirUtilizador(Utilizadores *p, int n)
  182.  
  183. {
  184. int i = 0;
  185. while ((p->ocupado != 0) && (i < n)) {
  186. i++;
  187. p++;
  188. printf("teste");
  189. }
  190. if (i < n) {
  191. printf("\nInserir novo utilizador no sistema\n\n");
  192.  
  193. fseek(stdin, 0, 2);
  194. printf("\nInsira o nome completo: ");
  195. gets_s(p->nome);
  196.  
  197. //Percorrer todo o vetor para verificar se há utilizadores com nomes iguais (POR FAZER!!!)
  198. fseek(stdin, 0, 2);
  199. printf("\nInsira o nome de utilizador: ");
  200. gets_s(p->nomeUtilizador);
  201.  
  202. fseek(stdin, 0, 2);
  203. printf("\nInsira a morada: ");
  204. gets_s(p->morada);
  205.  
  206. printf("\nInsira o contacto de telefone: ");
  207. scanf("%d", &(p->contacto));
  208.  
  209. fseek(stdin, 0, 2);
  210. printf("\nInsira password: ");
  211. gets_s(p->password);
  212.  
  213. p->ocupado = 1;
  214. printf("\n posicao %d", i + 1);
  215. }
  216. else printf(" nao ha mais espaco");
  217. system("pause");
  218. //Falta fazer a data de registo em que tem de se ir buscar ao computador
  219. }
  220.  
  221. void listarUtilizador(Utilizadores *p, int n)
  222. {
  223. int i;
  224. for (i = 0; i < n; i++)
  225. {
  226. if (p->ocupado != 0) {
  227. printf("\nO utilizador %s tem os seguintes dados: ", p->nomeUtilizador);
  228. printf("\nNome: %s", p->nome);
  229. printf("\nMorada: %s", p->morada);
  230. printf("\nContacto: %d", p->contacto);
  231. // printf("\nData de Registo: ", p->dataRegisto);
  232. }
  233. p++;
  234.  
  235. }
  236. }
  237.  
  238. void inicioPrograma()
  239. {
  240. Utilizadores user[10];
  241. int nUsers = 10;
  242. char ope;
  243. ocupadou(user, nUsers);
  244. do {
  245. ope = menu1();
  246.  
  247. switch (ope) {
  248. case '1':
  249. menuLogin(user, nUsers);//Servirá para o login (nao e suposto)
  250. break;
  251. case '2':
  252. inserirUtilizador(user, nUsers); //Registar-se no sistema
  253. break;
  254. case '0':
  255. break;
  256. default:
  257. printf("\nOpção inválida.");
  258. break;
  259. }
  260. } while (ope != '0');
  261. }
  262.  
  263.  
  264. void main()
  265. {
  266. setlocale(LC_ALL, ""); //Caracteres acentuados
  267.  
  268. inicioPrograma();
  269. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement