Untitled
unknown
plain_text
a year ago
32 kB
8
Indexable
/* Esse projeto tem o intuito de simular um sistema de leilao e aluguel.Contendo as seguintes propriedades Cadastro de usuário, sendo dividido em : Cliente ou Negociador. Autenticação de seu respectivo usuario, podendo ser autenticado o cliente ou o negociador. Sistema de cadastro de veiculos, tanto cadastrar veiculo para ser alugado ou leiloado. Sistema de participação em leilões. Sistema de alocação de veiculo. */ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <locale.h> #include <time.h> #include <windows.h> #define MAX_USERS 100 // A constante MAX_USERS define a quantidade máxima de usuários que podem ser cadastrados. #define MAX_CARS 100 // A constante MAX_CARS define a quantidade máxima de carros que podem ser cadastrados. #define MAX_CARACTERES 50 // A constante MAX_CARACTERES define a quantidade de caracteres que podem ser utilizados. #define MAX_CPF_CARACTERES 15 // A constante MAX_CPF_CARACTERES define a quantidade de caracteres do CPF. // Estrutura para o cadastro de usuarios negociantes typedef struct { char nome[MAX_CARACTERES]; char cpf[MAX_CARACTERES]; char email[MAX_CARACTERES]; char endereco[MAX_CARACTERES]; char marca[MAX_CARACTERES]; char modelo[MAX_CARACTERES]; char cor[MAX_CARACTERES]; char senha[MAX_CARACTERES]; int ano; float preco_aluguel; int id; }negociante; // Estrutura para o cadastro de usuarios clientes typedef struct { char nome[MAX_CARACTERES]; char cpf[MAX_CARACTERES]; char senha[MAX_CARACTERES]; char endereco[MAX_CARACTERES]; char email[MAX_CARACTERES]; float saldo; int id; char leiloes_ganhos[MAX_CARACTERES]; char aluguel_realizados[MAX_CARACTERES]; float lance1; float lance2; float lance3; }cliente; // Estrutura para o cadastro de carros em aluguel typedef struct { char marca[MAX_CARACTERES]; char placa[MAX_CARACTERES]; int ano; char cor[MAX_CARACTERES]; float preco_aluguel; int dono; char telefone[MAX_CARACTERES]; } Carro; // Estrutura para o cadastro de carros em leilao typedef struct { char marca[MAX_CARACTERES]; char placa[MAX_CARACTERES]; int ano; char cor[MAX_CARACTERES]; int dono; } Carro_leilao; // Funcao para limpar o buffer do teclado void clear_keyboard_buffer(void) { int c = 0; while ((c = getchar()) != '\n' && c != EOF) {} return; } //Funcao para cadastrar negociante int cadastro_negociante(negociante negociadores[], int* contadorUsuariosNegociantes, int* userId) { if (*contadorUsuariosNegociantes >= MAX_USERS) { printf("Limite máximo atingido"); return 0; } negociante negociadores_db; printf("Nome: "); scanf("%s", &negociadores_db.nome); printf("Cpf: "); scanf("%s", &negociadores_db.cpf); printf("Senha: "); scanf("%s", &negociadores_db.senha); printf("Email: "); scanf("%s", &negociadores_db.email); printf("Endereço: "); scanf("%s", &negociadores_db.endereco); // Verificação de existência de um mesmo nome de usuario. int i; for (i = 0; i < *contadorUsuariosNegociantes; i++) { if (strcmp(negociadores[i].nome, negociadores_db.nome) == 0) { printf("Já existe um usuário com este nome. Por favor, escolha outro nome de usuário.\n"); return 0; // retorna 0 para indicar erro } } negociadores_db.id = *contadorUsuariosNegociantes + 1; negociadores[*contadorUsuariosNegociantes] = negociadores_db; *contadorUsuariosNegociantes += 1; *userId = negociadores_db.id; printf("Cadastro realizado com sucesso! Seu ID de usuário é %d.\n", negociadores_db.id); // Salvar usuário em arquivo .txt escrevendo as informações no formato <ID> <CPF> <nome> <senha>. FILE* file = fopen("usuarios_negociantes.txt", "a"); if (file != NULL) { fprintf(file, "%d %s %s %s\n", negociadores_db.id, negociadores_db.cpf, negociadores_db.nome, negociadores_db.senha); // Escrevendo o CPF no arquivo fclose(file); } return 1; } //Funcao para cadastrar clientes int cadastro_cliente(cliente clientes[], int* contadorUsuariosClientes, int* userId) { if (*contadorUsuariosClientes >= MAX_USERS) { // Verificação se o contador 'userCount' atingiu o limite máximo de usuários atribuido pela constante 'MAX_USUARIOS'. printf("Limite máximo atingido"); return 0; } cliente cliente_db; // Declaração da variável 'cliente_db' do tipo 'Usuario'. Será utilizada para armazenar as informações colhidas do usuário a ser cadastrado. printf("Nome: "); scanf("%s", &cliente_db.nome); printf("Cpf: "); scanf("%s", &cliente_db.cpf); printf("Senha: "); scanf("%s", &cliente_db.senha); printf("Email: "); scanf("%s", &cliente_db.email); printf("Endereço: "); scanf("%s", &cliente_db.endereco); // Verificação de existência de um mesmo nome de usuário. int i; for (i = 0; i < *contadorUsuariosClientes; i++) { if (strcmp(clientes[i].nome, cliente_db.nome) == 0) { printf("Já existe um usuário com este nome. Por favor, escolha outro nome de usuário.\n"); return 1; // Retorna 0 para indicar falha no cadastro } } // Define o ID do usuário como o número de usuários cadastrados + 1. cliente_db.id = *contadorUsuariosClientes + 1; // Adiciona o usuário cadastrado na lista de usuários incrementando contador de usuários e atualizando o ID. clientes[*contadorUsuariosClientes] = cliente_db; *contadorUsuariosClientes += 1; *userId = cliente_db.id; printf("Cadastro realizado com sucesso! Seu ID de usuário é %d.\n", cliente_db.id); // Salvar usuário em arquivo .txt escrevendo as informações no formato <ID> <CPF> <nome> <senha>. FILE* file = fopen("usuarios_clientes.txt", "a"); if (file != NULL) { fprintf(file, "%d %s %s %s\n", cliente_db.id, cliente_db.cpf, cliente_db.nome, cliente_db.senha); // Escrevendo o CPF no arquivo fclose(file); } return 0; } // Autenticação de usuario negociante int aut_negociantes(negociante negociadores[], int contadorUsuariosNegociantes, int* userId) { char cpf[MAX_CARACTERES]; char senha[MAX_CARACTERES]; printf("Insira seu cpf: "); scanf("%s", &cpf); printf("\nInsira sua senha: "); scanf("%s", &senha); // Verifica as credenciais int i; for (i = 0; i < contadorUsuariosNegociantes; i++) { if (strcmp(negociadores[i].cpf, cpf) == 0 && strcmp(negociadores[i].senha, senha) == 0) { *userId = negociadores[i].id; printf("Autenticação bem-sucedida! Bem-vindo(a), %s.\n", negociadores[i].nome); return 0; } } return 1; } // Autenticação de usuario cliente int aut_clientes(cliente clientes[], int contadorUsuariosClientes, int* userId) { char cpf[MAX_CARACTERES]; char senha[MAX_CARACTERES]; printf("Insira seu cpf: "); scanf("%s", &cpf); printf("\nInsira sua senha: "); scanf("%s", &senha); // Verifica as credenciais int i; for (i = 0; i < contadorUsuariosClientes; i++) { if (strcmp(clientes[i].cpf, cpf) == 0 && strcmp(clientes[i].senha, senha) == 0) { *userId = clientes[i].id; printf("Autenticação bem-sucedida! Bem-vindo(a), %s.\n", clientes[i].nome); return 0; } } return 1; } // Funcao para cadastrar veiculos em aluguel int cadastrarVeiculoAluguel(Carro carros[], int* carroCount, int *userId) { if (*carroCount >= MAX_CARS) { printf("Limite máximo de veículos atingido!\n"); return; } Carro novoCarro; printf("\nCadastro de veículo\n"); printf("Digite a marca do veículo: "); scanf("%s", &novoCarro.marca); printf("Digite a placa do veículo: "); scanf("%s", &novoCarro.placa); printf("Digite o ano do veículo: "); scanf("%d", &novoCarro.ano); printf("Digite a cor do veículo: "); scanf("%s", &novoCarro.cor); printf("Digite o preço do aluguel por dia: R$"); scanf("%f", &novoCarro.preco_aluguel); printf("Digite seu telefone de contato: "); scanf("%s", &novoCarro.telefone); // Define o dono do veículo como o ID do usuário logado novoCarro.dono = *userId; // Adiciona o veículo ao vetor carros[*carroCount] = novoCarro; *carroCount += 1; // Salva todos os dados cadastrados num arquivo .txt no formato <id> <marca> <placa> <cor> <ano> <preco> <telefone> FILE* filealuguel; // chama a funcao file e cria o ponteiro filealuguel filealuguel = fopen("carros_aluguel.txt", "a"); // o ponteiro filealuguel chama a funcao de abertura de arquivos fopen("nome_do_arquivo.txt", "atributo") nesse caso esta em modo A = acrescenta, caso o arquivo não exista ele cria um if (filealuguel != NULL) { fprintf(filealuguel, "%d %s %s %s %d %f %s\n", novoCarro.dono, novoCarro.marca, novoCarro.placa, novoCarro.cor, novoCarro.ano, novoCarro.preco_aluguel, novoCarro.telefone); // Inserindo todas informações fclose(filealuguel); // fecha o arquivo. } printf("Veículo cadastrado com sucesso!\n"); return 0; } // Cadastrar veiculo leilao int cadastrarVeiculoLeilao(Carro_leilao carrosleilao[], int* carroCountLeilao, int *userId) { if (*carroCountLeilao >= MAX_CARS) { // Verifica se o numero maximo de carros cadastrados atingiu, no caso é o valor predefinido MAX_CARS que é 100. printf("Limite máximo de veículos atingido!\n"); // Se o numero de carros cadastrados for maior ou igual a 100 ele imprime essa mensagem } Carro_leilao novoCarro; // Cria uma variavel chamada de novoCarro que é da STRUCT CARRO, essa variavel ira armazenar as informacoes. printf("\nCadastro de veículo\n"); printf("Digite a marca do veículo: "); scanf("%s", novoCarro.marca); printf("Digite a placa do veículo: "); scanf("%s", novoCarro.placa); printf("Digite o ano do veículo: "); scanf("%d", &novoCarro.ano); printf("Digite a cor do veículo: "); scanf("%s", novoCarro.cor); // Define o dono do veículo como o ID do usuário logado novoCarro.dono = *userId; // Adiciona o veículo ao vetor carrosleilao[*carroCountLeilao] = novoCarro; *carroCountLeilao += 1; // Salva todos carros cadastrados em um .txt no formado <ID> <marca> <placa> <cor> <ano> FILE* filecarro; // Funcao FILE(arquivo) e cria o ponteiro * filecarro filecarro = fopen("carros_leilao.txt", "a"); // Função que abre o arquivo de texto, está no modo A de 'append' ou seja acrescenta, caso o arquivo não exista ele cria um e caso exista ele acrescenta as informacoes ao arquivo existente. if (filecarro != NULL) { fprintf(filecarro, "%d %s %s %s %d\n", novoCarro.dono, novoCarro.marca, novoCarro.placa, novoCarro.cor, novoCarro.ano); // Insere todos os dados que acabaram de ser inseridos no cadastro, dentro do arquivo de texto fclose(filecarro); // Fecha o arquivo de texto, para evitar o vazamento. } printf("Veículo cadastrado com sucesso!\n"); return 0; } // Função para carregar usuários do arquivo int carregarUsuariosClientes(cliente clientes[]) { FILE* file = fopen("usuarios_clientes.txt", "r"); if (file == NULL) { printf("Erro ao abrir arquivo de usuários.\n"); return 0; } int count = 0; while (fscanf(file, "%d %s %s %s", &clientes[count].id, clientes[count].cpf, clientes[count].nome, clientes[count].senha) == 4) { // Lendo o CPF do arquivo count++; } fclose(file); return count; } // Função para carregar usuários do arquivo int carregarUsuariosNegociantes(negociante negociadores[]) { FILE* file = fopen("usuarios_negociantes.txt", "r"); if (file == NULL) { printf("Erro ao abrir arquivo de usuários.\n"); return 0; } int count = 0; while (fscanf(file, "%d %s %s %s", &negociadores[count].id, negociadores[count].cpf, negociadores[count].nome, negociadores[count].senha) == 4) { count++; } fclose(file); return count; } // Função para carregar veículos do arquivo int carregarCarrosAluguel(Carro carros[]) { FILE* file = fopen("carros_aluguel.txt", "r"); if (file == NULL) { printf("Erro ao abrir arquivo de veículos.\n"); return 0; } // <id> <marca> <placa> <cor> <ano> <preco> <telefone> int counter = 0; while (fscanf(file, "%d %s %s %s %d %f %s", &carros[counter].dono, carros[counter].marca, carros[counter].placa, &carros[counter].ano,carros[counter].cor, &carros[counter].preco_aluguel,carros[counter].telefone) == 7) { // printf("1\n"); // debug verificand se o numero de impressoes do numero bate com o numero de veiculos cadastrados counter++; } fclose(file); return counter; } // Função para carregar veículos do arquivo int carregarCarrosLeilao(Carro_leilao carrosleilao[]) { FILE* file = fopen("carros_leilao.txt", "r"); if (file == NULL) { printf("Erro ao abrir arquivo de veículos.\n"); return 0; } int count = 0; while (fscanf(file, "%d %s %s %s %d", &carrosleilao[count].dono, carrosleilao[count].marca, carrosleilao[count].placa, carrosleilao[count].cor, &carrosleilao[count].ano) == 5) { //printf("1\n"); // debugando, verificand se o numero de impressoes do numero bate com o numero de veiculos cadastrados count++; } fclose(file); return count; } // Funcao participar de um leilao int participar_leilao(Carro_leilao carrosleilao[], int* carroCountLeilao, cliente clientes[], int* contadorUsuarioClientes, int* userId) { printf("\nLista de veiculos leiloados\n\n"); FILE* pleilao; pleilao = fopen("carros_leilao.txt", "r"); if (pleilao == NULL) { printf("Erro ao localizar o arquivo"); } do { char c = fgetc(pleilao); // Checando o final do arquivo. if (feof(pleilao)) { break; } printf("%c", c); } while (1); // <ID> <marca> <placa> <cor> <ano> char placa[MAX_CARACTERES]; printf("\nInsira aqui o a placa do veiculo cadastrado no leilao: "); scanf("%s", placa); int j; int rodadas = 0; // Variaveis locais do leilao int valormin1, valormin2, valormin3; float valor_inicial = 0.0; int roundcount1, roundcount2, roundcount3; int maxvalor; // Criação de usuários fantasmas para simulação. //Pessoa 1 char nome_fic[MAX_CARACTERES] = "Felipe"; float lances_fic, lances_fic2, lances_fic3; // Pessoa 2 char nome_pessoa[MAX_CARACTERES] = "Henrique"; float lances_pessoa, lances2_pessoa, lances3_pessoa; for (j = 0; j < *carroCountLeilao; j++) { if (strcmp(carrosleilao[j].placa, placa) == 0) { printf("\nPlaca do veiculo selecionado: %s", carrosleilao[j].placa); printf("\n\n[Regras]\nO Leilão será encerrado após três rodadas.\nCada rodada é estabelecido um novo valor minimo, que será passado para a próxima.\nO intervalo entre uma rodada e outra é de 60 segundos(1 minuto).\nCaso o cliente desista do leilão basta inserir o valor de 0 nas rodadas.\nO vencedor deverá entrar em contato com a nossa empresa através do telefone (81) 2538-2657\n\n "); // PRIMEIRA RODADA printf("Valor minimo inicial: %.2f\n", valor_inicial); printf("\tRodada 1:\n"); for (roundcount1 = 0; roundcount1 < 1; roundcount1++) { printf("%s \n", nome_fic); printf("Lance: "); scanf("%f", &lances_fic); printf("\nPróximo lance em 20 segundos, fique atento....\n\n"); Sleep(2000); // próximo lance após 20s ( 20mil milisegundos) printf("%s \n", nome_pessoa); printf("Lance: "); scanf("%f", &lances_pessoa); printf("\nPróximo lance em 20 segundos, fique atento....\n\n"); Sleep(2000); // próximo lance após 20s ( 20mil milisegundos) int k; for (k = 0; k < *contadorUsuarioClientes; k++) { // Verificando qual foi o usuário logado e realizando os lances do leilao a partir dele. if (clientes[k].id == *userId) { printf("%s\n", clientes[k].nome); printf("Lance: "); scanf("%f", &clientes[k].lance1); if (lances_fic > lances_pessoa && lances_fic > clientes[k].lance1){ valormin1 = lances_fic; } else if (lances_pessoa > lances_fic && lances_pessoa > clientes[k].lance1){ valormin1 = lances_pessoa; } else if (clientes[k].lance1 > lances_fic && clientes[k].lance1 > lances_pessoa){ valormin1 = clientes[k].lance1; } } } } maxvalor = valormin1; // define o valor máximo do leilao com o valor maximo da 1 rodada printf("Processando todos os lances e definindo um novo valor minimo.....\n\n"); Sleep(2000); printf("\tRodada 2:\n"); printf("Valor minimo inicial: %d", valormin1); // SEGUNDA RODADA ######################################################## for (roundcount2 = 0; roundcount2 < 1; roundcount2++) { printf("\nNome: %s", nome_fic); printf("\nLance: "); scanf("%f", &lances_fic2); if (lances_fic2 < valormin1) { printf("Você inseriu um valor menor que o minimo da rodada\n"); } printf("\nPróximo lance em 20 segundos, fique atento....\n\n"); Sleep(20000); printf("%s \n", nome_pessoa); printf("Lance: "); scanf("%f", &lances2_pessoa); if (lances2_pessoa < valormin1) { printf("Você inseriu um valor menor que o minimo da rodada\n"); } printf("\nPróximo lance em 20 segundos, fique atento....\n\n"); Sleep(2000); int k; for (k = 0; k < *contadorUsuarioClientes; k++) { if (clientes[k].id == *userId) { printf("%s\n", clientes[k].nome); printf("Lance: "); scanf("%f", &clientes[k].lance2); if (clientes[k].lance2 < valormin1) { printf("Você inseriu um valor menor que o minimo da rodada\n"); } if (lances_fic2 > lances2_pessoa && lances_fic2 > clientes[k].lance2 && lances_fic2 > valormin1){ valormin2 = lances_fic2; } else if (lances2_pessoa > lances_fic2 && lances2_pessoa > clientes[k].lance2 && lances2_pessoa > valormin1){ valormin2 = lances2_pessoa; } else if (clientes[k].lance2 > lances2_pessoa && clientes[k].lance2 > lances_fic2 && clientes[k].lance2 > valormin1){ valormin2 = clientes[k].lance2; } else if (valormin1 > clientes[k].lance2 && valormin1 > lances2_pessoa && valormin1 > lances_fic2){ valormin2 = valormin1; } } // final do if que verifica usuario logado } // final for verifica cliente } // final do for rodada2 maxvalor = valormin2; // define o valor máximo do leilao com o valor maximo da 2 rodada printf("Processando todos os lances e definindo um novo valor minimo.....\n\n"); Sleep(5000); // TERCEIRA RODADA ################################################################################################ printf("\tRodada 3:\n"); printf("Valor minimo inicial: %d", valormin2); for (roundcount3 = 0; roundcount3 < 1; roundcount3++) { printf("Nome: %s", nome_fic); printf("\nLance:"); scanf("%f", &lances_fic3); if (lances_fic3 < valormin2) { printf("Você inseriu um valor menor que o minimo da rodada\n"); } printf("\nPróximo lance em 20 segundos, fique atento....\n\n"); Sleep(20000); printf("Nome: %s", nome_pessoa); printf("\nLance: "); scanf("%f", &lances3_pessoa); if (lances3_pessoa < valormin2) { printf("Você inseriu um valor menor que o minimo da rodada\n"); } printf("\nPróximo lance em 20 segundos, fique atento....\n\n"); Sleep(20000); int k; for (k = 0; k < *contadorUsuarioClientes; k++) { if (clientes[k].id == *userId) { printf("Nome: %s\n", clientes[k].nome); printf("Lance: "); scanf("%f", &clientes[k].lance3); if (clientes[k].lance3 < valormin2) { printf("Você inseriu um valor menor que o minimo da rodada\n"); } if (lances_fic3 > lances3_pessoa && lances_fic3 > clientes[k].lance3 && lances_fic3 > valormin2){ valormin3 = lances_fic2; maxvalor = valormin3; // define o valor máximo do leilao com o valor maximo da 3 rodada printf("Parabéns %s você teve o maior lance entre os competidores e venceu o leilão, entre em contato conosco através do telefone:(81) 2538-2657 ", nome_fic); printf("\nPlaca do veiculo %s", placa); return 0; // Leilao foi um sucesso } else if (lances3_pessoa > lances_fic3 && lances3_pessoa > clientes[k].lance3 && lances3_pessoa > valormin2){ valormin3 = lances2_pessoa; maxvalor = valormin3; // define o valor máximo do leilao com o valor maximo da 3 rodada printf("Parabéns %s você teve o maior lance entre os competidores e venceu o leilão, entre em contato conosco através do telefone:(81) 2538-2657 ", nome_pessoa); printf("\nPlaca do veiculo %s", placa); return 0; // Leilao foi um sucesso } else if (clientes[k].lance3 > lances3_pessoa && clientes[k].lance3 > lances_fic3 && clientes[k].lance3 > valormin2){ valormin3 = clientes[k].lance3; maxvalor = valormin3; // define o valor máximo do leilao com o valor maximo da 3 rodada printf("Parabéns %s você teve o maior lance entre os competidores e venceu o leilão, entre em contato conosco através do telefone:(81) 2538-2657", clientes[k].nome); printf("\nPlaca do veiculo %s", placa); return 0; // Leilao foi um sucesso } } // final do if que verifica usuario logado } // final for verifica cliente }// final for da rodada 3 return 1; // PLACA NAO LOCALIZADA } // Comparador se a placa digitada pelo usuario está cadastrada no leilao } // Final do verificador da placa }// final da funcao // Funcao alugar veiculo int alugar_veiculo(Carro carros[], int* carroCount, cliente clientes[], int* contadorUsuarioClientes, int* userId) { printf("\nLista de veiculos disponiveis para alugar\n\n"); FILE* paluguel; paluguel = fopen("carros_aluguel.txt", "r"); if (paluguel == NULL) { printf("Erro ao localizar o arquivo"); } do { char d = fgetc(paluguel); // Checando o final do arquivo. if (feof(paluguel)) { break; } printf("%c", d); } while (1); // <ID> <marca> <placa> <cor> <ano> <telefone> char placaaluguel[MAX_CARACTERES]; printf("\n\nInsira aqui a placa do veiculo a ser alugado: "); scanf("%s", placaaluguel); int q; for (q = 0; q < *carroCount;q++){ if (strcmp(carros[q].placa, placaaluguel) == 0) { printf("\nPlaca do veiculo selecionado: %s\n" , carros[q].placa); int resposta; printf("Deseja alocar esse veiculo?\n1-Sim\n2-Não\nEscolha: "); scanf("%d", &resposta); if (resposta == 1) { printf("veiculo alocado com sucesso, por favor entre em contato com o dono do veiculo\n\n"); break; } else if (resposta == 2) { printf("Você optou por não alocar esse veiculo, redirecionando para o menu principal.....\n\n"); Sleep(2000); break; } } // final do if que verifica se a placa que o usuario digitou está cadastrada na struct } // final do for } // Final da funcao // Funcao menu principal int menu_principal() { setlocale(LC_ALL, "Portuguese_Brazil"); // permitir uso da acentuação sem dar problema na hora de imprimir int escolhamenu; // armazena a escolha do menu int cadastro = NULL; // variaveis que normalmente sao carregadas com o retorno das funcoes. cliente clientes[MAX_USERS]; // definindo a variavel clientes do tipo struct cliente com a capacidade MAX_USERS que é definida negociante negociadores[MAX_USERS]; // definindo a variavel negociadores do tipo struct negociante com a capacidade MAX_USERS que é definida Carro carros[MAX_CARS]; // definindo a variavel carros do tipo struct Carro com a capacidade MAX_CARS que é definida Carro_leilao carrosleilao[MAX_CARS]; // definindo a variavel carrosleilao do tipo struct Carro_leilao com a capacidade MAX_CARS que é definida int contadorUsuariosClientes = 0; // inicializando o contador de cliente com 0 int contadorUsuariosNegociantes = 0; // iniciando o contador de negociantes com 0 int carroCount = 0; //contador de carro aluguel int carroCountLeilao = 0; // contador de carro leilao int userId = 0; // iniciando o id do usuario com 0 int i = 1; // posicao inicial do cadastro // Carregar veículos do arquivo carroCount = carregarCarrosAluguel(carros); carroCountLeilao = carregarCarrosLeilao(carrosleilao); // Carregar usuários do arquivo clientes contadorUsuariosClientes = carregarUsuariosClientes(clientes); contadorUsuariosNegociantes = carregarUsuariosNegociantes(negociadores); // inicio da funcao printf("\t\t\t\tSejam bem-vindos a Leilões & Alugueis ltda\n\n"); //Simples loop, caso o valor não seja nenhuma disponivel o menu continua aparecendo. do { printf("[1] Realizar cadastro Negociante\n"); // Realiza o cadastro de negociante printf("[2] Realizar cadastro cliente\n"); // Realiza o cadastro de cliente printf("[3] Participar de um leilão\n"); // Para participar de um leilao, é necessario ter um cadastro como cliente. printf("[4] Alugar um veiculo\n"); // Para alugar um veiculo, é necessário ter um cadastro como cliente. printf("[5] Leiloar meu veiculo\n"); // Para leiloar um veiculo, é necessário ter um cadastro como negociante printf("[6] Alugar meu veiculo\n"); // Para alugar um veiculo, é necessário ter um cadastro como negociante printf("[7] Encerrar programa\n"); // Sai do loop e encerra o programa. printf("Escolha: "); scanf("%d", &escolhamenu); system("cls"); switch (escolhamenu) { case 1: //Realizar cadastro Negociante cadastro_negociante(negociadores, &contadorUsuariosNegociantes, &userId); // funcao de cadastro para negociantes break; case 2: //Realizar cadastro cliente cadastro_cliente(clientes, &contadorUsuariosClientes, &userId); // funcao de cadastro para negociantes break; case 3: //Participar de um leilão printf("Necessário possuir um cadastro como cliente!!\n\n"); int entrarleilao = aut_clientes(clientes, contadorUsuariosClientes, &userId); if (entrarleilao == 0) { participar_leilao(carrosleilao, &carroCountLeilao, clientes,&contadorUsuariosClientes, &userId); } else printf("Encerrando....\n\n"); break; case 4: //Alugar um veiculo printf("Necessário possuir um cadastro como cliente!!\n\n"); int alugarumveiculo = aut_clientes(clientes, contadorUsuariosClientes, &userId); if (alugarumveiculo == 0) { alugar_veiculo(carros, &carroCount, clientes, &contadorUsuariosClientes, &userId); } else printf("Encerrando...\n\n"); break; case 5: //Leiloar meu veiculo printf("Necessário possuir um cadastro como negociador!!\n\n"); int leilaoveiculo = aut_negociantes(negociadores, contadorUsuariosNegociantes, &userId); // Eu carrego a variavel leilaoveiculo com o RETORNO da funcao aut_negociantes. if (leilaoveiculo == 0){ cadastrarVeiculoLeilao(carrosleilao, &carroCountLeilao, &userId); } else printf("Encerrando....\n\n"); break; case 6: // Alugar meu veiculo printf("Necessário possuir um cadastro como negociador!!\n\n"); int aluguelveiculo = aut_negociantes(negociadores, contadorUsuariosNegociantes, &userId); // Eu carrego a variavel aluguelveiculo com o RETORNO da funcao aut_negociantes. if (aluguelveiculo == 0) { // se o valor retornado for igual a 0, ele ira executar a funcao de cadastro dos veiculos para aluguel cadastrarVeiculoAluguel(carros, &carroCount, &userId); } else // se não ele irá encerrrar o programa, medida de seguranca pois a senha inserida foi errada. printf("Encerrando...\n\n"); // break; case 7: // Encerrar programa return 7; break; default: printf("Por favor insira uma escolha valida!!!\n"); } } while (escolhamenu < 1 || escolhamenu >7); } int main() { setlocale(LC_ALL, "Portuguese_Brazil"); // permitir uso da acentuação sem dar problema na hora de imprimir int loop; do { loop = menu_principal(); } while (loop != 7); return 0; }
Editor is loading...
Leave a Comment