Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <locale.h>
- #include <stdio.h>
- #include <windows.h>
- #include <math.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <string.h>
- #include <time.h>
- using namespace std;
- 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;
- void menuPC(Utilizadores *p, data *h, computadores *c, int n);
- void menuAdminUsers(Utilizadores *p, data *h, computadores *c, int n);
- void menuAdminPC(Utilizadores *p, data *h, computadores *c, int n);
- void menuLogin(Utilizadores *p, data *h, computadores *c, int n);
- // 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, int n) {
- SYSTEMTIME st;
- GetSystemTime(&st);
- for (int i = 0; i < n; i++){
- h->ano = st.wYear;
- h->mes = st.wMonth;
- h->dia = st.wDay;
- h->hora = st.wHour;
- h->min = st.wMinute;
- h->segundo = st.wSecond;
- h++;
- }
- }
- // 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++;
- h++;
- }
- if (i < n){
- dataregisto(h, 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);
- printf("\nUtilizador 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("\nUtilizador registado na posicao %d\n", i + 1);
- }
- else printf("\n O programa nao tem espaco para mais utilizadores!! \n");
- printf("\n Pressiona <enter> para continuar\n");
- 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("\nPassword: %s", p->password);
- 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++;
- h++;
- }
- }
- void editarUser() {
- printf("\nFuncao de editar user!");
- system("pause");
- //POR FAZER!!
- }
- void eliminarUser() {
- printf("\nFuncao de eliminar user!");
- system("pause");
- //POR FAZER!!
- }
- void eliminar_pc() {
- printf("\nFuncao de eliminar pc!");
- system("pause");
- //POR FAZER
- }
- void editar_pc() {
- printf("\nFuncao de editar pc!");
- system("pause");
- //POR FAZER
- }
- void adicionar_pc() {
- printf("\nFuncao de adicionar pc!");
- system("pause");
- //POR FAZER
- }
- void editardados(Utilizadores *p, int n) {
- printf("\nFuncao de editar dados!");
- system("pause");
- //POR FAZER
- }
- char menu1()
- {
- char op;
- printf("\n#--------------------------#");
- printf("\n Registar (1) \n");
- printf("\n Logar (2) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '2');
- system("cls");
- return op;
- }
- void menuUser(Utilizadores *p, data *h, computadores *c, int n)
- {
- char op;
- printf("\n#--------------------------------------------#");
- printf("\n Ir para PC (1) \n");
- printf("\n Editar dados (2) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '2');
- switch (op) {
- case '1':
- menuPC(p, h, c, n);
- break;
- case '2':
- editardados(p, n); //POR FAZER
- break;
- case '0':
- menu1();
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- system("cls");
- }
- void menuPC(Utilizadores *p, data *h, computadores *c, int n) {
- char op;
- printf("\n#--------------------------------------------#");
- printf("\n Cena 1 (1) \n");
- printf("\n Cena 2 (2) \n");
- printf("\n Sair da sessao (0) \n");
- printf("\n#--------------------------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '2');
- switch (op) {
- case '1':
- //VAMOS TENTAR SIMULAR A UTILIZAÇAO DE UM COMPUTADOR
- break;
- case '2':
- //VAMOS TENTAR SIMULAR A UTILIZAÇAO DE UM COMPUTADOR
- break;
- case '0':
- menuUser(p,h,c,n);
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- system("cls");
- }
- void menuAdmin(Utilizadores *p,data *h,computadores *c, int n)
- {
- char op;
- printf("\n#--------------------------#");
- printf("\n USERS (1) \n");
- printf("\n PCS (2) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '5');
- switch (op) {
- case '1':
- menuAdminUsers(p,h,c,n);
- break;
- case '2':
- menuAdminPC(p,h,c,n);
- break;
- case '0':
- menuLogin(p, h, c, n);
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- system("cls");
- }
- void menuAdminUsers(Utilizadores *p, data *h,computadores *c, int n)
- {
- char op;
- printf("\n#--------------------------#");
- printf("\n Lista de users (1) \n");
- printf("\n Adicionar user (2) \n");
- printf("\n Editar user (3) \n");
- printf("\n Eliminar user (4) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '4');
- switch (op) {
- case '1':
- listarUtilizador(p, h, n);
- break;
- case '2':
- inserirUtilizador(p, h, n);
- break;
- case '3':
- editarUser(); //POR FAZER
- case '4':
- eliminarUser(); //PORFAZER
- break;
- case '0':
- menuAdmin(p,h,c,n);
- default:
- printf("\nOpção inválida.");
- break;
- }
- }
- void menuAdminPC(Utilizadores *p, data *h, computadores *c, int n) {
- char op;
- printf("\n#--------------------------#");
- printf("\n Lista de PCs (1) \n");
- printf("\n Adicionar PC (2) \n");
- printf("\n Editar PC (3) \n");
- printf("\n Eliminar PC (4) \n");
- printf("\n Sair (0) \n");
- printf("\n#--------------------------#");
- do {
- printf("\nQual a opção? ");
- scanf(" %c", &op);
- } while (op < '0' || op > '5');
- switch (op) {
- case '1':
- listar_computadores(c,n);
- menuAdminPC(p, h, c, n);
- break;
- case '2':
- adicionar_pc(); //POR FAZER
- break;
- case '3':
- editar_pc(); //POR FAZER
- break;
- case '4':
- eliminar_pc(); //POR FAZER
- break;
- case '0':
- menuAdmin(p,h,c,n);
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- }
- void menuLogin(Utilizadores *p, data *h, computadores *c, 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(user, h, c, nUsers);
- else
- menuAdmin(user, h, c, nUsers); //TESTAR
- else
- menuLogin(user, h, c, 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);
- menuAdmin(user, h, c, nUsers);
- }
- 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':
- inserirUtilizador(user, h, nUsers);
- system("cls");
- break;
- case '2':
- menuLogin(user, h, pc, nUsers); //Registar-se no sistema
- system("cls");
- break;
- case '0':
- break;
- default:
- printf("\nOpção inválida.");
- break;
- }
- } while (ope != '0');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement