Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include "carro_locacao.h"
- #include "arquivos.h"
- void carro_locacao_menu(void) {
- short int opcao_menu = 1;
- while (opcao_menu != 0) {
- clrscr();
- mensagem_menu("LOCAÇÃO DE CARROS\n");
- printf(" _____________________________\n");
- printf("|| (1)Nossa Frota ||\n");
- printf("|| (2)Simulador de Tarifa ||\n");
- printf("|| (3)Locar Carro ||\n");
- printf("|| (0)Voltar Menu Principal ||\n");
- printf("||_____________________________||\n");
- printf("Digite sua Opção: ");
- scanf("%d",&opcao_menu);
- switch (opcao_menu) {
- case 1: locacao_frota(); break;
- case 2: locacao_tarifas(); break;
- case 3: locacao_locar(); break;
- case 0: main(); break;
- default: mensagem("Opcao Inválida");
- }
- }
- }
- void locacao_frota(void){
- FILE * p;
- tcarro reg_carro;
- clrscr();
- printf("\nListagem de toda Frota\n");
- p = (FILE *) abre_arquivo("carro.dat");
- if (p == NULL)
- mensagem("Erro ao criar/abrir arquivo carro.dat");
- else {
- while (!feof(p)) {
- fread(®_carro, sizeof(tcarro), 1, p);
- if (!feof(p)){
- if(reg_carro.flag==0)
- printf("\n%5d %-30s %-20s %10.2f", reg_carro.id, reg_carro.nome, reg_carro.marca, reg_carro.valor);}
- }
- fclose(p);
- mensagem("Fim da listagem");
- }
- }
- void locacao_tarifas(void){
- short int listar,id,valid_id,dias,protecao;
- float res_simulacao;
- do{
- clrscr();
- mensagem_menu("SIMULAÇÃO DE TARIFAS");
- printf("\n\nDeseja Visualizar nossa Frota?\n (1) SIM / (2) NÃO: ");
- scanf("%d",&listar);
- switch(listar){
- case 1: carro_lista();break;
- case 2: break;
- default: mensagem("Opção Inválida");}} while(listar<1||listar>2);
- do {
- clrscr();
- mensagem_menu("SIMULAÇÃO DE TARIFAS");
- printf("\n\nInforme o ID do Carro Desejado: ");
- scanf("%i",&id);
- valid_id=id_invalido(id);
- if(valid_id!=0)
- mensagem("ID Inválido");
- }while (valid_id!=0);
- clrscr();
- mensagem_menu("SIMULAÇÃO DE TARIFAS");
- printf("\n\n");
- consulta_id(id);
- printf("Por Quantos Dias Deseja locar o Carro? ");
- scanf("%d",&dias);
- printf("\nDeseja Contratar alguma Proteção?");
- printf("__________________________________\n");
- printf("| PROTEÇÕES |\n");
- printf("|(1) Gold Basic |\n");
- printf("|(2) Gold Premium |\n");
- printf("|(3) Gold Total |\n");
- printf("|(4) Informação Sobre as Proteções|\n");
- printf("|(0) Não Contratar Proteção |\n");
- printf("|_________________________________|\n");
- printf("Informe Sua Opção: ");
- scanf("%d",&protecao);
- switch(protecao){
- case 4: info_protecao();break;
- case 0: carro_locacao_menu();break;
- }
- res_simulacao=calculo_tarifa(id,dias,protecao);
- printf("Valor de Res: %.1f",res_simulacao);
- getch();
- }
- void locacao_locar(void){
- int id_cliente, id_carro,confirmacao_1,confirmacao_2,i,dias,protecao,valor_tarifa;
- char cod_locacao[6];
- FILE * p_carro, * p_cliente, * p_locacao;
- tcarro reg_carro;
- tcliente reg_cliente;
- tlocacao reg_locacao;
- srand(time(NULL));
- printf("informe o id do cliente\n");
- scanf("%d",&id_cliente);
- p_cliente=fopen("cliente.dat","rb");
- fseek(p_cliente,(id_cliente-1)*sizeof(tcliente),SEEK_SET);
- fread(®_cliente,sizeof(tcliente),1,p_cliente);
- printf("informe o id do carro\n");
- scanf("%d",&id_carro);
- p_carro=fopen("carro.dat","rb");
- fseek(p_carro,(id_carro-1)*sizeof(tcarro),SEEK_SET);
- fread(®_carro,sizeof(tcarro),1,p_carro);
- printf("Informe Por Quantos Dias Deseja Locar o Carro: ");
- scanf("%d",&dias);
- printf("\nDeseja Contratar alguma Proteção?");
- printf("|\n_________________________________|\n");
- printf("| PROTEÇÕES |\n");
- printf("|(1) Gold Basic |\n");
- printf("|(2) Gold Premium |\n");
- printf("|(3) Gold Total |\n");
- printf("|(4) Informação Sobre as Proteções|\n");
- printf("|(0) Não Contratar Proteção |\n");
- printf("|_________________________________|\n");
- printf("Informe Sua Opção: ");
- scanf("%d",&protecao);
- switch(protecao){
- case 4: info_protecao();break;
- case 0: carro_locacao_menu();break;}
- valor_tarifa= calculo_tarifa(id_carro,dias,protecao);
- //p_locacao = fopen ("locacao.dat","wb+");
- printf("Valor de id Cliente: %d\nValor de id Carro: %d\n",id_cliente,id_carro);
- printf("Deseja Locar Este Carro (1) SIM / (2) NÃO");
- scanf("%d",&confirmacao_1);
- switch(confirmacao_1){
- case 1: {
- p_locacao = (FILE *) abre_arquivo("locacao.dat");
- if (p_locacao == NULL)
- mensagem("Erro ao criar/abrir arquivo locacao.dat");
- reg_locacao.id_cliente = id_cliente;
- reg_locacao.id_carro = id_carro;
- for(i=0;i<=strlen(reg_carro.nome);i++){
- reg_locacao.nome_carro[i] = reg_carro.nome[i];}
- for(i=0;i<=strlen(reg_carro.marca);i++){
- reg_locacao.marca_carro[i] = reg_carro.marca[i];}
- reg_locacao.dias = dias;
- reg_locacao.protecao = protecao;
- reg_locacao.valor = valor_tarifa;
- reg_locacao.flag = 1;
- printf("\nConfirma a Locação (1)SIM / (2)NÃO: ");
- scanf("%d",&confirmacao_2);
- switch(confirmacao_2){
- case 1:
- fseek(p_locacao, 0L, SEEK_END);
- fwrite(®_locacao, sizeof(tlocacao), 1, p_locacao);
- //printf("id_cliente: %d\nid_carro: %d\nnome_carro: %s\nmarca_carro: %s\ndias: %d\nprotecao: %d\nflag: %d\nvalor: %f\n",reg_locacao.id_cliente,reg_locacao.id_carro,reg_locacao.nome_carro,reg_locacao.marca_carro,reg_locacao.dias,reg_locacao.protecao,reg_locacao.flag,reg_locacao.valor);
- //getch();
- fclose(p_locacao);
- mensagem("Locação Concluída com Sucesso!");break;
- case 2:
- mensagem("Locação Não Confirmada");
- carro_locacao_menu();break;
- default: mensagem("Opção Inválida!");}
- }
- }}
- float calculo_tarifa(int id, int dias , int protecao){
- float valor_tarifa,val_protecao;
- tcarro reg_carro;
- FILE * p;
- switch(protecao){
- case 1 : val_protecao = 33.9 ; break ;
- case 2 : val_protecao = 48.9 ; break ;
- case 3 : val_protecao = 57.9 ; break ;
- }
- p = fopen("carro.dat","rb");
- fseek(p,(id-1)*sizeof(tcarro),SEEK_SET);
- fread(®_carro,sizeof(tcarro),1,p);
- valor_tarifa = (reg_carro.valor + val_protecao) * dias;
- fclose(p);
- return valor_tarifa;
- }
- void info_protecao(void){
- clrscr();
- printf("PROTEÇÃO GOLD BASIC\n");
- printf("Cobertura do veículo em casos de colisão, \ndevendo o Locatário participar com \nno máximo de:R$ 2.000,00\ne nos casos de roubo, furto, incêndio ou perda\ntotal, devendo o Locatário participar\ncom no máximo de:R$ 3.000,00");
- printf("\n\n\nPROTEÇÃO GOLD PREMIUM\n");
- printf("Cobertura do veículo em casos de colisão, \ndevendo o Locatário participar com \nno máximo de:R$ 1.500,00\ne nos casos de roubo, furto, incêndio ou perda\n total, devendo o Locatário participar\n com no máximo de:R$ 2.000,00");
- printf("\n\n\nPROTEÇÃO GOLD TOTAL\n");
- printf(" Cobertura do veículo em casos de colisão, \ndevendo o Locatário participar com \nno máximo de:R$ 2.000,00\ne nos casos de roubo, furto, incêndio ou perda\n total, devendo o Locatário participar\n com no máximo de:R$ 3.000,00\nCobertura a terceiros: Danos Materiais R$ 20.000,00,\n Danos pessoais R$ 50.000,00 devendo o Locatário \nparticipar com no máximo de :R$ 1.000,00");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement