Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <time.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <math.h>
- #include <string.h>
- #include <windows.h>
- //Utilizador - 0 Admin, 1 - User normal
- //Criação das estruturas necessárias
- typedef struct utilizadores
- {
- int ocupado;
- int codigoUtilizador;
- char nome[100];
- char morada[150];
- int contacto;
- char dataRegisto[20];
- char nomeUtilizador[15];
- char password[15];
- int tipoUser;
- int logado;
- int tempo_total_utilizacao;
- int total_dinheiro_gasto;
- }Utilizadores;
- typedef struct computadores
- {
- int codigoComputador;
- int estado;
- }Computadores;
- typedef struct sessoes
- {
- int estado;
- int codUtilizador;
- char dataInicio;
- int minutosUtilizacao;
- int preco;
- int pagamento;
- }Sessoes;
- typedef struct data {
- int ano;
- int mes;
- int dia;
- int hora;
- int min;
- int segundo;
- }DATA;
- // Poe computadores livres
- void ocupado(Computadores *c, int n) {
- for (int i = 0; i < n; i++) {
- c->estado = 0;
- c++;
- }
- }
- // Poe os utilizadores livres
- void ocupadou(Utilizadores *p, int n) {
- for (int i = 0; i < n; i++) {
- p->ocupado = 0;
- p->tipoUser = 1;
- p++;
- }
- }
- // Isto vai ser a tabela de preços
- void tabela(Sessoes *s, Utilizadores *p, int n) {
- p->codigoUtilizador = s->codUtilizador;
- }
- void dataregisto(DATA *h) {
- SYSTEMTIME st;
- GetSystemTime(&st);
- h->ano = st.wYear;
- h->mes = st.wMonth;
- h->dia = st.wDay;
- h->hora = st.wHour;
- h->min = st.wMinute;
- h->segundo = st.wSecond;
- }
- char menu1()
- {
- char op;
- printf("\n#--------------------------#");
- printf("\n Fazer Login (1) \n");
- printf("\n Criar Conta (2) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '3');
- system("cls");
- return op;
- }
- char menuAdmin()
- {
- char op;
- printf("\n#--------------------------------------------#");
- printf("\n Adicionar Computador (1) \n");
- printf("\n Editar Computador (2) \n");
- printf("\n Tornar utilizador em Admin (3) \n");
- printf("\n Editar utilizador (4) \n");
- printf("\n Remover utilizador (5) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '5');
- system("cls");
- return op;
- }
- char menuUser()
- {
- char op;
- printf("\n#--------------------------------------------#");
- printf("\n (1) \n");
- printf("\n (2) \n");
- printf("\n (3) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '6');
- system("cls");
- return op;
- }
- void menuLogin(Utilizadores *p, int n)
- {
- int i, cmpStringUser, cmpStringPass;
- char nome[15], password[15];
- Utilizadores *user = new Utilizadores;
- *user = *p;
- int nUsers = n;
- fseek(stdin, 0, 2);
- printf("\nInsira o nome de utilizador: ");
- gets_s(nome);
- fseek(stdin, 0, 2);
- printf("\nInsira a password: ");
- gets_s(password);
- for (i = 0; i < n; i++)
- {
- cmpStringUser = strcmp(nome, p->nomeUtilizador);
- cmpStringPass = strcmp(password, p->password);
- if (cmpStringUser != 0 && cmpStringPass != 0)
- if (p->tipoUser == 0)
- menuAdmin();
- else {
- p->logado = 1;
- menuUser();
- }
- else
- menuLogin(user, nUsers);
- p++;
- }
- }
- //Adicionar Utilizador
- void inserirUtilizador(Utilizadores *p, int n)
- {
- int i = 0;
- while ((p->ocupado != 0) && (i < n)) {
- i++;
- p++;
- printf("teste");
- }
- if (i < n) {
- printf("\nInserir novo utilizador no sistema\n\n");
- fseek(stdin, 0, 2);
- printf("\nInsira o nome completo: ");
- gets_s(p->nome);
- //Percorrer todo o vetor para verificar se há utilizadores com nomes iguais (POR FAZER!!!)
- fseek(stdin, 0, 2);
- printf("\nInsira o nome de utilizador: ");
- gets_s(p->nomeUtilizador);
- fseek(stdin, 0, 2);
- printf("\nInsira a morada: ");
- gets_s(p->morada);
- printf("\nInsira o contacto de telefone: ");
- scanf("%d", &(p->contacto));
- fseek(stdin, 0, 2);
- printf("\nInsira password: ");
- gets_s(p->password);
- p->ocupado = 1;
- printf("\n posicao %d", i + 1);
- }
- else printf(" nao ha mais espaco");
- system("pause");
- //Falta fazer a data de registo em que tem de se ir buscar ao computador
- }
- void listarUtilizador(Utilizadores *p, int n)
- {
- int i;
- for (i = 0; i < n; i++)
- {
- if (p->ocupado != 0) {
- printf("\nO utilizador %s tem os seguintes dados: ", p->nomeUtilizador);
- printf("\nNome: %s", p->nome);
- printf("\nMorada: %s", p->morada);
- printf("\nContacto: %d", p->contacto);
- // printf("\nData de Registo: ", p->dataRegisto);
- }
- p++;
- }
- }
- void inicioPrograma()
- {
- Utilizadores user[10];
- int nUsers = 10;
- char ope;
- ocupadou(user, nUsers);
- do {
- ope = menu1();
- switch (ope) {
- case '1':
- menuLogin(user, nUsers);//Servirá para o login (nao e suposto)
- break;
- case '2':
- inserirUtilizador(user, nUsers); //Registar-se no sistema
- break;
- case '0':
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- } while (ope != '0');
- }
- void main()
- {
- setlocale(LC_ALL, ""); //Caracteres acentuados
- inicioPrograma();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement