Ir ao conteúdo
  • Cadastre-se

Rita_18

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que Rita_18 postou

  1. Boa tarde, estou a fazer um projeto para uma disciplina. O trabalho é sobre gestão de recintos desportivos. A parte dos clientes está quase 100% funcional, o que acontece é que no caso dos recintos optamos por fazer por arrays devido à quantidade de ordenar e listar que tinhamos, e por listas ligadas seria muito mais trabalhoso. O que está a acontecer é que temos o código escrito na parte dos recintos mas não está a funcionar, quando selecionamos a opção no menu, simplesmente volta ao menu principal, como se não existisse nada. Peço a vossa ajuda, já estamos de volta disto desde ontem e não encontramos o erro e precisamos de ter isto a funcionar para prosseguir, temos de ter pronto amanhã... PS: código bastante extenso #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define MAX 50 typedef struct recinto{ int id; char nome[MAX]; char tipo[MAX]; char conselho[MAX]; float preco; int hAbertura; int hFecho; char iluminacao; char estado; }RECINTOS; typedef struct cliente{ int id; char nome[MAX]; char localidade[MAX]; char morada[MAX]; int nif; int ncc; char email[MAX]; int telefone; }CLIENTE; typedef struct clientes{ CLIENTE info; struct clientes *seguinte; struct clientes *anterior; }CLIENTES; typedef struct aluguer{ CLIENTE cliente; RECINTOS recincto; }ALUGUER; void limparEcra(){ //Função para limpar o ecrã system("cls"); } void guardarCliente(CLIENTES **ini){ //Função para guardar cliente CLIENTES *aux = *ini; FILE *fp; fp=fopen("Clientes.dat","wb"); //abrir ficheiro binário if(fp==NULL){ printf("ERRO AO ABRIR O FICHEIRO"); return ; } while(aux != NULL){ //quando a variável for diferente de NULL escreve para o ficheiro fwrite(&aux->info,sizeof(CLIENTE),1,fp); aux= aux->seguinte; } fclose(fp); } void carregarClientes(CLIENTES **ini,CLIENTES **fim){ //Função carregar clientes CLIENTES *novo; CLIENTE temp; FILE *f = NULL; if ((f = fopen("Clientes.dat", "rb")) != NULL) { while(!feof(f)){ fread(&temp, sizeof (CLIENTE), 1, f); if(feof(f)) break; novo = (CLIENTES *) malloc(sizeof (CLIENTES)); novo->anterior = NULL; novo->seguinte = NULL; novo->info = temp; if ((*ini) == NULL) { *ini = novo; *fim = novo; } else { novo->anterior = *fim; (*fim)->seguinte = novo; *fim = novo; } } fclose(f); } } int verificarFicheiros() { //if (CreateDirectory("pergunta\\", NULL) != ERROR_ALREADY_EXISTS)CreateDirectory("pergunta\\", NULL); //if (CreateDirectory("utilizadores\\", NULL) != ERROR_ALREADY_EXISTS) CreateDirectory("utilizadores\\", NULL); FILE *f; if ((f = fopen("clientes.dat", "rb")) == NULL) { f = fopen("clientes.dat", "wb"); fclose(f); f = fopen("recintos.dat", "wb"); fclose(f); f = fopen("alugueres.dat", "wb"); fclose(f); } return 1; } void inserirCliente(CLIENTES **ini, CLIENTES **fim){ char buf[40], comando[10]; CLIENTE temp; CLIENTES * novo; temp.ncc = -1; do { printf("Pertende introduzir um novo cliente no sistema?(SIM/NAO)\n (Resposta) >"); fflush(stdin); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &comando) == 1) break; else { printf(" (Resposta) >"); } } } while (strcmp(comando, "SIM") != 0 && strcmp(comando, "NAO") != 0); if (!strcmp(comando, "SIM")){ printf("\n(Nome)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &temp.nome) == 1) break; else { printf("\n(Nome)->"); } } printf("\n(Localidade)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &temp.localidade) == 1) break; else { printf("\n(Localidade)->"); } } printf("\n(Morada)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &temp.morada) == 1) break; else { printf("\n(Morada)->"); } } printf("\n(NIF)->"); while (fgets(buf, sizeof buf, stdin) != NULL || temp.nif < 100000000) { if (sscanf(buf, "%i", &temp.nif) == 1 && temp.nif > 100000000 && verificarExisteCliente(ini,temp)== 0) break; else { printf("\n(NIF)->"); } } printf("\n(NCC)->"); while (fgets(buf, sizeof buf, stdin) != NULL || temp.ncc < 10000000) { if (sscanf(buf, "%i", &temp.ncc) == 1 && temp.ncc > 10000000 && verificarExisteCliente(ini,temp)== 0) break; else { printf("\n(NCC)->"); } } printf("\n(Email)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &temp.email) == 1) break; else { printf("\n(Email)->"); } } printf("\n(Nº de Telefone)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%i", &temp.telefone) == 1) break; else { printf("\n(Telefone)->"); } } } temp.id= gerarNumeroSequencial(ini); novo = (CLIENTES *) malloc(sizeof (CLIENTES)); novo->anterior = NULL; novo->seguinte = NULL; novo->info = temp; if ((*ini) == NULL) { *ini = novo; *fim = novo; } else { novo->anterior = *fim; (*fim)->seguinte = novo; *fim = novo; } guardarCliente(ini); } int gerarNumeroSequencial(CLIENTES **ini){ CLIENTES *aux = *ini; int cont=0; while (aux!=NULL) { aux = aux->seguinte; cont++; } return cont +1; } int verificarExisteCliente(CLIENTES **ini, CLIENTE novo){ CLIENTES *aux = *ini; while (aux!=NULL) { if(aux->info.nif == novo.nif || aux->info.ncc == novo.ncc ){ printf("ERRO:Cliente já existe em sistema"); return 1; } aux = aux->seguinte; } return 0; } void listarClientesAlfa(CLIENTES **ini, CLIENTES **fim){ //TODO -> Listar por ordem alfabefica PELO NOME (bubble Sort) CLIENTES *aux = *ini; while (aux!=NULL) { printf("\nNome :%s Loca %s morada %s nif %i Tele %i", aux->info.nome, aux->info.localidade, aux->info.morada, aux->info.nif,aux->info.telefone); aux = aux->seguinte; } printf("\nPrima ENTER para continuar"); fflush(stdin); getchar(); } void listarClientesConcelho(CLIENTES **ini, CLIENTES **fim){ //TODO -> Listar por ordem alfabefica PELO conselho (bubble Sort) // MELHOR ESTRATEGIA SERIA MELHOR PASSAR PARA ARRAY PODE MANDAR O LISTA LIGADA A VIDA CLIENTES *aux = *ini; while (aux!=NULL) { printf("\n%s %s %s %i %i", aux->info.nome, aux->info.localidade, aux->info.morada, aux->info.nif,aux->info.telefone); aux = aux->seguinte; } } void listaDadosCliente(CLIENTES **ini, CLIENTES **fim){ int comando; char buf[40]; CLIENTES *aux = *ini; printf("Introduza o NIF(0 para SAIR)\n (Resposta) >"); fflush(stdin); while (fgets(buf, sizeof buf, stdin) != NULL || comando < 100000000) { if (sscanf(buf, "%i", &comando) == 1 && comando > 100000000) break; else { printf(" (Resposta) >"); } } if(comando==0)return; while (aux!=NULL) { if(comando==aux->info.nif){ printf("\n"); printf("_______________________________________________________________\n"); printf("| CLIENTE |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", aux->info.id); printf("| Nome: %s\n", aux->info.nome); printf("| Localidade: %s\n", aux->info.localidade); printf("| Morada: %s\n", aux->info.morada); printf("| NIF: %i\n", aux->info.nif); printf("| NCC: %i\n", aux->info.ncc); printf("| Email: %s\n", aux->info.email); printf("| Telefone: %i\n", aux->info.telefone); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); fflush(stdin); getchar(); } aux = aux->seguinte; } } void editarCLiente(CLIENTES **ini){ int comando; char buf[40]; CLIENTES *aux = *ini; printf("Introduza o NIF(0 para SAIR)\n (Resposta) >"); fflush(stdin); while (fgets(buf, sizeof buf, stdin) != NULL || comando < 100000000) { if (sscanf(buf, "%i", &comando) == 1 && comando > 100000000) break; else { printf(" (Resposta) >"); } } while (aux!=NULL) { if(comando==aux->info.nif)break; aux = aux->seguinte; } printf("\n"); printf("_______________________________________________________________\n"); printf("| Editar CLIENTE |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", aux->info.id); printf("| (1)Morada: %s\n", aux->info.morada); printf("| (2)Telefone: %i\n", aux->info.telefone); printf("| (0)Sair\n"); printf("|______________________________________________________________|\n"); printf("Introduza 1 ou 2 para editar os dados \n (Resposta) >"); fflush(stdin); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%i", &comando) == 1 && (comando >= 0 && comando <=2) ) break; else { printf(" (Resposta) >"); } } if(comando == 1){ printf(" (Nova Morada) >"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &aux->info.morada) == 1 ) break; else { printf(" (Nova Morada) >"); } } }else if ( comando == 2){ printf(" (Novo Telefone) >"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%i", &aux->info.telefone) == 1 ) break; else { printf(" (Novo Telefone) >"); } } } return; } //RECINTOS void guardaRecintos(RECINTOS recinto[], int total){ //Função para guardar recintos FILE*fp= NULL; int i=0; fp=fopen("recintos.dat", "wb"); if(fp==NULL){ printf("ERRO ao abrir o ficheiro\n"); return; } for(i=0; i<total; i++){ fwrite(&recinto[0] ,sizeof(RECINTOS),1,fp); } fclose(fp); } void carregarRecintos(){ //Função carregar Recintos } int inserirRecintos(RECINTOS recinto[], int *capacTotal){ //Inserir Recintos char buf[40], comando[10]; int i = (*capacTotal); if (( *capacTotal ) >= 80){ printf("Impossivel adicionar recintos\n"); return 0; } do { printf("Pertende introduzir um novo recinto no sistema?(SIM/NAO)\n (Resposta) >"); fflush(stdin); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &comando) == 1) break; else { printf(" (Resposta) >"); } } } while (strcmp(comando, "SIM") != 0 && strcmp(comando, "NAO") != 0); if (!strcmp(comando, "SIM")){ printf("\n(Nome)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &recinto[i].nome) == 1) break; else { printf("\n(Nome)->"); } } printf("\n(Tipo)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &recinto[i].tipo) == 1) break; else { printf("\n(Tipo)->"); } } printf("\n(conselho)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%s", &recinto[i].conselho) == 1) break; else { printf("\n(conselho)->"); } } printf("\n(Preço)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%f", &recinto[i].preco) == 1) break; else { printf("\n(Preço)->"); } } printf("\n(Hora de Abertura)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%i", &recinto[i].hAbertura) == 1) break; else { printf("\n(Hora de Abertura)->"); } } printf("\n(Hora de Fecho)->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%i", &recinto[i].hFecho) == 1) break; else { printf("\n(Hora de Fecho)->"); } } printf("\n(Iluminação (S | N))->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%c", &recinto[i].iluminacao) == 1) break; else { printf("\n(Iluminação)->"); } } printf("\n(Estado (A (Ativo) | D (Desativo))->"); while (fgets(buf, sizeof buf, stdin) != NULL) { if (sscanf(buf, "%c", &recinto[i].estado) == 1) break; else { printf("\n(Estado)->"); } } } (*capacTotal)++; recinto[i].id = (*capacTotal); printf("\nRecinto introduzido com sucesso!"); void guardaRecintos(RECINTOS recinto[], int total); return 0; } int editarRecinto(RECINTOS recinto[], int total){ //Editar Informações dos recintos int nId; int i = 0; if(total == 0){ printf("\nSem recintos registados"); return -1; } printf("\nIntroduza o ID do recinto: "); scanf("%i", &nId); for(i = 0; i < total; i++){ if(nId == recinto[i].id){ printf("_______________________________________________________________\n"); printf("| Editar RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| (1)Hora de abertura: \n", scanf("%i", &recinto[i].hAbertura)); printf("| (2)Hora de fecho: \n", scanf("%i", &recinto[i].hFecho)); printf("| (3)Preco: \n", scanf("%f", &recinto[i].preco)); printf("|______________________________________________________________|\n"); return 0; } } printf("\nNão existe recinto"); return -1; void guardaRecintos(RECINTOS recinto[], int total); } void listaRecintos(RECINTOS recinto[], int total){ //Lista informaçoes dos recintos int i = 0; if(total == 0){ printf("\nSem recintos registados"); return; } for(i = 0; i < total; i++){ printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", recinto[i].id); printf("| Nome: %s\n", recinto[i].nome); printf("| Tipo: %s\n", recinto[i].tipo); printf("| Preço: %.2f\n", recinto[i].preco); printf("| conselho: %s\n", recinto[i].conselho); printf("| Hora de Abertura: %i horas\n", recinto[i].hAbertura); printf("| Hora de Fecho: %i horas\n", recinto[i].hFecho); printf("| Iluminaçao: %c\n", recinto[i].iluminacao); printf("| Estado: %c\n", recinto[i].estado); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); } } int listarPrecoDesc(RECINTOS recinto[], int total){ //LISTAR preço descendente RECINTOS aux; int i = 0, j = 0; if(total == 0){ printf("\nSem recintos registados"); return -1; } for(i = 0; i < total; i++){ for(j = 0; j < total - 1; j++){ if(recinto[j].preco < recinto[j+1].preco){ aux = recinto[j]; recinto[j] = recinto[j+1]; recinto[j+1] = aux; } } } for(i = 0; i < total; i++){ if(toupper(recinto[i].estado) == 1){ printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", recinto[i].id); printf("| Nome: %s\n", recinto[i].nome); printf("| Tipo: %s\n", recinto[i].tipo); printf("| Preço: %.2f\n", recinto[i].preco); printf("| conselho: %s\n", recinto[i].conselho); printf("| Hora de Abertura: %i horas\n", recinto[i].hAbertura); printf("| Hora de Fecho: %i horas\n", recinto[i].hFecho); printf("| Iluminaçao: %c\n", recinto[i].iluminacao); printf("| Estado: %c\n", recinto[i].estado); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); } } return 0; } int listarPorTipo(RECINTOS recinto[], int total){ char nTipo[100]; int i = 0; if(total == 0){ printf("\nSem recintos registados!"); return -1; } printf("\nIntroduza o tipo de Recinto: "); fflush(stdin); gets(nTipo); for(i = 0; i < total; i++){ if(stricmp(nTipo, recinto[i].tipo) == 0 && toupper(recinto[i].estado) == 1){ printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", recinto[i].id); printf("| Nome: %s\n", recinto[i].nome); printf("| Tipo: %s\n", recinto[i].tipo); printf("| Preço: %.2f\n", recinto[i].preco); printf("| conselho: %s\n", recinto[i].conselho); printf("| Hora de Abertura: %i horas\n", recinto[i].hAbertura); printf("| Hora de Fecho: %i horas\n", recinto[i].hFecho); printf("| Iluminaçao: %c\n", recinto[i].iluminacao); printf("| Estado: %c\n", recinto[i].estado); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); } } return 0; } int listarPorConcelho(RECINTOS recinto[], int total){ char nConcelho[100]; int i = 0; if(total == 0){ printf("\nSem recintos registados!"); return -1; } printf("\nIntroduza o conselho: "); fflush(stdin); gets(nConcelho); for(i = 0; i < total; i++){ if(stricmp(nConcelho, recinto[i].conselho) == 0 && toupper(recinto[i].estado) == 1){ printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", recinto[i].id); printf("| Nome: %s\n", recinto[i].nome); printf("| Tipo: %s\n", recinto[i].tipo); printf("| Preço: %.2f\n", recinto[i].preco); printf("| conselho: %s\n", recinto[i].conselho); printf("| Hora de Abertura: %i horas\n", recinto[i].hAbertura); printf("| Hora de Fecho: %i horas\n", recinto[i].hFecho); printf("| Iluminaçao: %c\n", recinto[i].iluminacao); printf("| Estado: %c\n", recinto[i].estado); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); } } return 0; } int listarPorTipoEConcelho(RECINTOS recinto[], int total){ char nConcelho[100]; char nTipo[100]; int i = 0; if(total == 0){ printf("\nSem recintos registados!"); return -1; } printf("\nIntroduza o conselho: "); fflush(stdin); gets(nConcelho); printf("\nIntroduza o tipo de recinto: "); fflush(stdin); gets(nTipo); for(i = 0; i < total; i++){ if((stricmp(nConcelho, recinto[i].conselho) == 0) && stricmp(nTipo, recinto[i].tipo) == 0){ if(toupper(recinto[i].estado) == 1){ printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", recinto[i].id); printf("| Nome: %s\n", recinto[i].nome); printf("| Tipo: %s\n", recinto[i].tipo); printf("| Preço: %.2f\n", recinto[i].preco); printf("| conselho: %s\n", recinto[i].conselho); printf("| Hora de Abertura: %i horas\n", recinto[i].hAbertura); printf("| Hora de Fecho: %i horas\n", recinto[i].hFecho); printf("| Iluminaçao: %c\n", recinto[i].iluminacao); printf("| Estado: %c\n", recinto[i].estado); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); } } } return 0; } int listarPorInt(RECINTOS recinto[], int total){ int IntS = 0; int IntI = 0; int i = 0; if(total == 0){ printf("\nSem recintos registados!"); return -1; } printf("\nIntroduza o preço mais baixo: "); scanf("%i", &IntS); printf("\nIntroduza o preço mais elevado: "); scanf("%i", &IntI); for(i = 0; i < total; i++){ if(recinto[i].preco >= IntI && recinto[i].preco <= IntS && toupper(recinto[i].estado) == 1){ printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTO |\n"); printf("|______________________________________________________________|\n"); printf("| ID: %i\n", recinto[i].id); printf("| Nome: %s\n", recinto[i].nome); printf("| Tipo: %s\n", recinto[i].tipo); printf("| Preço: %.2f\n", recinto[i].preco); printf("| conselho: %s\n", recinto[i].conselho); printf("| Hora de Abertura: %i horas\n", recinto[i].hAbertura); printf("| Hora de Fecho: %i horas\n", recinto[i].hFecho); printf("| Iluminaçao: %c\n", recinto[i].iluminacao); printf("| Estado: %c\n", recinto[i].estado); printf("|______________________________________________________________|\n"); printf("Prima ENTER para continuar\n"); } } return 0; } //MENU int menu() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("________________________________________________________________\n"); printf("| RECINTOALL |\n"); printf("|_______________________________________________________________|\n"); printf("|----------------------- 1 - Recintos --------------------------|\n"); printf("|----------------------- 2 - Clientes --------------------------|\n"); printf("|----------------------- 3 - Alugueres -------------------------|\n"); printf("|------------------------- 0 - SAIR ----------------------------|\n"); printf("|_______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 3){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 3 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 3); // vai bloquear para o utilizador introduzir entre 1 a 3 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int menuRecintos() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("_______________________________________________________________\n"); printf("| RECINTOS |\n"); printf("|______________________________________________________________|\n"); printf("|----------------------- 1 - Inserir --------------------------|\n"); printf("|----------------------- 2 - Editar ---------------------------|\n"); printf("|--------------------- 3 - Ver recintos -----------------------|\n"); printf("|----------------------- 4 - Listar ---------------------------|\n"); printf("|------------------------ 0 - MENU ----------------------------|\n"); printf("|______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 4){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 4 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 4); // vai bloquear para o utilizador introduzir entre 1 a 3 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int listarRecintos() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("_______________________________________________________________\n"); printf("| De que maneira pertende listar? |\n"); printf("|______________________________________________________________|\n"); printf("|-------------- 1 - Ordem decrescente de preço ----------------|\n"); printf("|------------------------ 2 - Tipo ----------------------------|\n"); printf("|-------------------- 3 - Por conselho ------------------------|\n"); printf("|------------------- 4 - Tipo e conselho ----------------------|\n"); printf("|----------------- 5 - Intervalo de preço ---------------------|\n"); printf("|----------------------- 0 - VOLTAR ---------------------------|\n"); printf("|______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 5){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 5 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 5); // vai bloquear para o utilizador introduzir entre 1 a 3 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int menuClientes() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("_______________________________________________________________\n"); printf("| CLIENTES |\n"); printf("|______________________________________________________________|\n"); printf("|----------------------- 1 - Inserir --------------------------|\n"); printf("|----------------------- 2 - Editar ---------------------------|\n"); printf("|----------------------- 3 - Listar ---------------------------|\n"); printf("|----------------------- 0 - VOLTAR ---------------------------|\n"); printf("|______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 3){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 3 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 3); // vai bloquear para o utilizador introduzir entre 1 a 3 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int listarClientes() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("_______________________________________________________________\n"); printf("| CLIENTES |\n"); printf("|______________________________________________________________|\n"); printf("|------------------- 1 - Ordem Alfabetica ---------------------|\n"); printf("|---------------------- 2 - Localidade ------------------------|\n"); printf("|------------------------- 3 - NIF ----------------------------|\n"); printf("|----------------------- 0 - VOLTAR ---------------------------|\n"); printf("|______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 3){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 3 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 3); // vai bloquear para o utilizador introduzir entre 1 a 3 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int aluguer() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("_______________________________________________________________\n"); printf("| ALUGUER |\n"); printf("|______________________________________________________________|\n"); printf("|-------------------- 1 - Fazer Reserva -----------------------|\n"); printf("|---------------------- 2 - Historico -------------------------|\n"); printf("|----------------------- 3 - Listar ---------------------------|\n"); printf("|----------------------- 0 - VOLTAR ---------------------------|\n"); printf("|______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 3){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 3 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 3); // vai bloquear para o utilizador introduzir entre 1 a 3 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int listarAluguer() { limparEcra(); int escolha = 0,i; do { printf("\n"); printf("_______________________________________________________________\n"); printf("| De que maneira pertende listar? |\n"); printf("|______________________________________________________________|\n"); printf("|------- 1 - Alugueres Feitos por determinado cliente ---------|\n"); printf("|---------- 2 - Alugueres de um determinado recinto -----------|\n"); printf("|---- 3 - Recintos disponiveis para alugar de um conselho -----|\n"); printf("|- 4 - Recintos disponiveis para alugar de um conselho e tipo--|\n"); printf("|5 -Recintos disponiveis para alugar no periodo desejado(data e hora)--|\n"); printf("|----------------------- 0 - VOLTAR ---------------------------|\n"); printf("|______________________________________________________________|\n"); printf("\n Por Favor Escolha a opção: "); scanf("%i",&escolha); if(escolha < 0 || escolha > 5){ printf("\nERRO: Escolha incorreta! Pro favor escolha entre 1 e 3 , ou 0 para sair "); fflush(stdin); } } while (escolha < 0 || escolha > 5); // vai bloquear para o utilizador introduzir entre 1 a 5 return escolha; // a escolha e returnada para o ciclo do main para exeucutar o procidimento certo } int main(int argc, char *argv[]) { setlocale(LC_ALL , "PORTUGUESE"); CLIENTES *iniCliente = NULL, *fimCliente = NULL; RECINTOS rec[80]; carregarClientes(&iniCliente,&fimCliente); int total=0, capacTotal=0; do{ switch(menu()){ case 1: // caso do recinto limparEcra(); switch(menuRecintos()){ case 1:// inserir inserirRecintos(rec, &capacTotal); guardaRecintos(rec, total); break; case 2:// editar editarRecinto(rec, total); guardaRecintos(rec, total); break; case 3:// Ver recintos listaRecintos(rec, total); break; case 4://Listar switch(listarRecintos()){// Menu Recintos parte Listar case 1:// Ordem decrescente de preço listarPrecoDesc(rec, total); break; case 2:// Tipo listarPorTipo(rec, total); break; case 3:// conselho listarPorConcelho(rec, total); break; case 4://Tipo e conselho listarPorTipoEConcelho(rec, total); break; case 5://intervalo de preços listarPorInt(rec, total); break; default: break; } break; default: break; } break; case 2:// caso do clientes switch(menuClientes()){// Menu Clientes case 1:// Inserir inserirCliente(&iniCliente, &fimCliente); break; case 2:// EDITAR editarCLiente(&iniCliente); break; case 3:// LISTAR switch(listarClientes()){// Menu Clientes case 1:// Ordem alfabetica listarClientesAlfa(&iniCliente, &fimCliente); break; case 2:// Localidade printf("\nEditar"); getchar();getchar(); break; case 3:// NIF listaDadosCliente(&iniCliente, &fimCliente); break; default: break; } default: break; } break; break; break; case 3:// caso dos algueres :D switch(aluguer()){// ALUGUERES case 1:// FAZER RESERVA printf("\nInserir"); getchar();getchar(); break; case 2:// HISTORICO printf("\nEditar"); getchar();getchar(); break; case 3:// LISTAR switch(listarAluguer()){ case 1: //Alugueres Feitos por determinado cliente printf("\nInserir"); getchar();getchar(); break; case 2: //Alugueres de um determinado recinto printf("\nInserir"); getchar();getchar(); break; case 3: //Recintos disponiveis para alugar de um conselho printf("\nInserir"); getchar();getchar(); break; case 4: //Recintos disponiveis para alugar de um conselho e tipo printf("\nInserir"); getchar();getchar(); break; case 5: //Recintos disponiveis para alugar no periodo desejado(data e hora) printf("\nInserir"); getchar();getchar(); break; default: break; } } break; default: abort(); } }while(1); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!