Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct data {
- int ano;
- int mes;
- int dia;
- int hora;
- int min;
- int segundo;
- }DATA;
- 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;
- int tempoUtilizacao;
- int total_faturado;
- }Computadores;
- typedef struct sessoes
- {
- int estado;
- int codComputador;
- int codUtilizador;
- char dataInicio;
- int minutosUtilizacao;
- int preco;
- int pagamento;
- }Sessoes;
- // Poe computadores livres
- void ocupado(Computadores *c, int n) {
- for (int i = 0; i < n; i++){
- c->codigoComputador = i + 1;
- c->estado = 0;
- c->tempoUtilizacao = 0;
- c->total_faturado = 0;
- c++;
- }
- }
- // Poe os utilizadores livres
- void ocupadou(Utilizadores *p, int n) {
- for (int i = 0; i < n; i++){
- p->ocupado = 0;
- p->tempo_total_utilizacao = 0;
- p->total_dinheiro_gasto = 0;
- p++;
- }
- }
- // Isto vai ser a tabela de preços
- void tabela(Sessoes *s, Utilizadores *p, int n) {
- float preco;
- p->codigoUtilizador = s->codUtilizador;
- if (s->minutosUtilizacao < 30)
- preco = s->minutosUtilizacao * 0.05;
- else if (s->minutosUtilizacao > 30)
- preco = 30 * 0.05 + (s->minutosUtilizacao - 30) * 0.025;
- if (preco < 2)
- s->preco = 2;
- else s->preco = preco;
- }
- // Regista a data atual
- 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;
- }
- // lista computadores
- void listar_computadores(Computadores *c, int n)
- {
- printf("\n\n LISTA DE COMPUTADORES \n\n");
- int i;
- for (i = 0; i < n; i++)
- {
- printf("Código: %d\n", c->codigoComputador);
- printf("Estado: %d\n", c->estado);
- printf("Faturado: %d\n", c->total_faturado);
- printf("Tempo Utilização: %d\n\n", c->tempoUtilizacao);
- c++;
- }
- }
- //Adicionar Utilizador
- void inserirUtilizador(Utilizadores *p, data*h , int n)
- {
- int i = 0;
- while ((p->ocupado != 0) && (i < n)) {
- i++;
- p++;
- }
- 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));
- printf("\n Utilizador registado em %d-%d-%d as %d:%d:%d.\n", h->ano, h->mes, h->dia, h->hora, h->min, h->segundo);
- p->ocupado = 1;
- printf("\n Utilizador registado na posicao %d", i + 1);
- }
- else printf(" nao ha mais espaco");
- system("pause");
- }
- // Mostra utilizadores
- void listarUtilizador(Utilizadores *p,data *h, 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: %d-%d-%d as %d:%d:%d.\n", h->ano, h->mes, h->dia, h->hora, h->min, h->segundo);
- }
- p++;
- }
- }
- char menu1()
- {
- char op;
- printf("\n#--------------------------#");
- printf("\n Fazer Login (1) \n");
- printf("\n Criar Conta (2) \n");
- printf("\n Sair (3) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '1' || op > '5');
- 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 < '1' || 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);
- p++;
- if (cmpStringUser != 0 || cmpStringPass != 0)
- if (p->tipoUser == 0)
- menuAdmin();
- else
- menuUser();
- else
- menuLogin(user, nUsers);
- }
- do {
- fseek(stdin, 0, 2);
- printf("Insira o nome de utilizador: ");
- gets_s(nome);
- fseek(stdin, 0, 2);
- printf("Insira a password: ");
- gets_s(password);
- for (i = 0; i < n; i++) {
- p++;
- }
- } while (cmpStringUser != 0 || cmpStringPass != 0);
- }
- void main()
- {
- setlocale(LC_ALL, ""); //Caracteres acentuados
- Utilizadores user[10];
- int nUsers = 10;
- int nComputadores = 20;
- Computadores pc[20];
- data h[10];
- ocupado(pc, nComputadores);
- char ope;
- ocupadou(user, nUsers);
- do {
- ope = menu1();
- switch (ope) {
- case '1':
- menuLogin(user, nUsers);
- break;
- case '2':
- dataregisto(h);
- inserirUtilizador(user, h, nUsers); //Registar-se no sistema
- break;
- case '3':
- break; //Sair do programa
- case '4':
- listar_computadores(pc, nComputadores);
- break;
- case '5':
- listarUtilizador(user,h, nUsers);//Servirá para o login (nao e suposto)
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- } while (ope != '3');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement