Buscar

main

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>
#include <time.h>
#include <math.h>
struct tCliente
{
 int cpfCliente;
 char nome[50];
 int pontosFidelidade;
 int diaDevolucao;
 int dia;
 int mes;
 int ano;
 float preco;
 float precoTotal;
 int locacoes;
 int resposta;
 int numtelefone;
 char endereco[50];
};
struct tVeiculos
{
 char cor[50];
 int codigo;
 char modelo[50];
 float preco;
 float precoTotalcarro;
 char status[50];
 int placanum;
 char placaletra[30];
};
int menuprincipal();
void cadastCliente();
void cadastVeiculo();
void listar();
void consultar();
void fidelidade();
void alterar();
void baixa_locacao();
int main(void)
{
 setlocale(LC_ALL,"Portuguese");
 int op;
 do
 {
 op = menuprincipal();
 switch (op)
 {
 case 1:
 printf("----Aba Clientes----\n");
 cadastCliente();
 break;
 case 2:
 printf("----Aba Veículos----\n");
 cadastVeiculo();
 break;
 case 3:
 printf("----Clientes cadastrados----\n");
 listClientes();
 break;
 case 4:
 printf("----Veículos cadastrados----\n");
 listVeiculos();
 break;
 case 5:
 printf("-----Listar Informações já cadastradas----\n");
 listInfos();
 break;
 case 6:
 printf("----Consultar Cliente----\n");
 consultCliente();
 break;
 case 7:
 printf("----Consultar Veículos----\n");
 consultVeiculos();
 break;
 case 8:
 printf("\n----Fidelidade----\n");
 fidelidade();
 break;
 case 9:
 printf("----Baixa em Locação----\n");
 baixa_locacao();
 break;
 case 10:
 printf("----Alterar----\n");
 alterar();
 break;
 }
 }
 while (op != 0);
system("pause");
 return 0;
}
int menuprincipal (void)
{
 int opcao;
 do
 {
 printf("\n\n---------------------------!SEJA BEM-VINDO!----------------------------\n");
 printf("\n---------------------------Cadastro de cliente----------------(Digite 1)\n");
 printf("\n---------------------------Cadastro de veículo----------------(Digite 2)\n");
 printf("\n---------------------------Listar clientes--------------------(Digite 3)\n");
 printf("\n---------------------------Listar veículos--------------------(Digite 4)\n");
 printf("\n---------------------------Listar Informações já cadastradas--(Digite 5)\n");
 printf("\n---------------------------Consultar clientes-----------------(Digite 6)\n");
 printf("\n---------------------------Consultar veículos-----------------(Digite 7)\n");
 printf("\n---------------------------Pontos de Fidelidade---------------(Digite 8)\n");
 printf("\n---------------------------Baixa em Locação-------------------(Digite 9)\n");
 printf("\n---------------------------Alterar----------------------------(Digite 10)\n");
 printf("\n---------------------------Sair-------------------------------(Digite 0)\n");
 printf("Digite a sua escolha: ");
 scanf("%d", &opcao);
 if ((opcao < 0) || (opcao > 10))
 printf ("Não existe essa opção de escolha!\n");
 }
 while ((opcao < 0) || (opcao > 10));
 return opcao;
}
void cadastCliente()
{
 struct tCliente clientes;
 FILE *arq = fopen("clientes.txt", "ab");
 if (arq == NULL)
 {
 printf("Erro no arquivo");
 return;
 }
 printf("Digite o endereço: \n");
 scanf("%s",&clientes.endereco);
 printf("Digite o numero de telefone: \n");
 fflush(stdin);
 scanf("%i",&clientes.numtelefone);
 printf("Digite os primeiros 3 digitos do CPF que será o código do cliente: \n");
 scanf("%u", &clientes.cpfCliente);
 printf("Digite o nome do cliente: \n");
 fflush(stdin);
 gets(clientes.nome);
 fwrite (&clientes, sizeof(clientes), 1, arq);
 fclose(arq);
}
void cadastVeiculo()
{
 struct tVeiculos veiculos;
 FILE *arq = fopen("veiculos.txt", "ab");
 if (arq == NULL)
 {
 printf("Erro no arquivo");
 return;
 }
 printf("Digite a cor do veículo: \n");
 scanf("%s",&veiculos.cor);
 printf("Digite o status do veículo:\n");
 scanf("%s",veiculos.status);
 printf("Digite o preço:\n");
 fflush(stdin);
 scanf("%f",&veiculos.preco);
 printf("Digite o modelo do veículo: \n");
 fflush(stdin);
 gets(veiculos.modelo);
 printf("Digite as letras da placa:\n");
 scanf("%s",&veiculos.placaletra);
 printf("Digite os números da placa:\n");
 scanf("%i",&veiculos.placanum);
 veiculos.codigo = randomCode(rand() % 10);
 fwrite (&veiculos, sizeof(veiculos), 1, arq);
 fclose(arq);
}
void listClientes()
{
 struct tCliente clientes;
 FILE *arq = fopen("clientes.txt", "rb");
 if (arq == NULL)
 {
 printf("Arquivo inexistente!");
 return;
 }
 while (fread (&clientes, sizeof(clientes), 1, arq))
 printf("\nEndereço: %s",clientes.endereco);
 printf("\nNúmero de Telefone: %i",clientes.numtelefone);
 printf("\nCódigo: %i",clientes.cpfCliente);
 printf("\nDescrição:%s",clientes.nome);
 fclose(arq);
}
void listVeiculos ()
{
 struct tVeiculos veiculos;
 FILE *arq = fopen("veiculos.txt", "rb");
 if (arq == NULL)
 {
 printf("Arquivo inexistente!");
 return;
 }
 while (fread (&veiculos, sizeof(veiculos), 1, arq))
 printf("\nCod: %i",veiculos.codigo);
 printf("\nModelo:%s",veiculos.modelo);
 printf("\nCor: %s",veiculos.cor);
 printf("\nStatus:%s",veiculos.status);
 printf("\n PLACA: %s%i",veiculos.placaletra,veiculos.placanum);
 fclose(arq);
}
void listInfos()
{
 printf("\n----Lista de clientes----\n");
 listClientes();
 printf("\n----Lista de veículos----\n");
 listVeiculos();
}
int randomCode(unsigned int aleatorio)
{
 unsigned short cod;
 cod = ((aleatorio * (time(NULL)))%1000000);
 return cod;
}
void consultVeiculos()
{
 FILE *arq = fopen("veiculos.txt", "rb");
 if (arq == NULL)
 {
 printf("Arquivo inexistente!");
 return;
 }
 struct tVeiculos veiculos;
 int cod, achei = 0;
 printf ("Digite o código de veículo que procura: \n");
 scanf ("%d", &cod);
 while (fread (&veiculos, sizeof(veiculos), 1, arq))
 {
 if ((cod == veiculos.codigo))
 {
 printf("Código: %i\n",veiculos.codigo);
 printf("Modelo: %s\n",veiculos.modelo);
 printf("Cor:%s\n",veiculos.cor);
 printf("Status: %s\n",veiculos.status);
 printf("\n PLACA: %s%i\n",veiculos.placaletra,veiculos.placanum);
 achei = 1;
 }
 }
 if (!achei)
 printf ("\\nCódigo não cadastrado!!\n");
 fclose(arq);
}
void baixa_locacao(){
FILE *arq = fopen("clientes.txt", "r+b");
if (arq == NULL){
 printf("O arquivo não existe!");
 return;
}
struct tCliente clientes;
 int cod,resposta,achei=0;
 printf("Digite o codigo do cliente:\n");
 scanf("%i",&cod);
 while(fread(&clientes,sizeof(clientes),1,arq))
 if((cod==clientes.cpfCliente)){
 printf("digite o dia da locação:\n");
 scanf("%i",&clientes.diaDevolucao);
 printf("Digite o preço da locação:\n");
 scanf("%f",&clientes.preco);
 printf("Digite o dia de devolução o veículo da locação:\n");
 scanf("%i",&clientes.dia);
 printf("Digite o mês de
devolução o veículo da locação:\n");
 scanf("%i",&clientes.mes);
 printf("Digite o ano de devolução do veículo da locação:\n");
 scanf("%i",&clientes.ano);
 printf("Deseja um seguro:(Digite 1 para SIM e 2 para NÃO)\n");
 scanf("%i",&clientes.resposta);
 if(clientes.resposta==1 && clientes.dia>clientes.diaDevolucao){
 printf("Será adicionado 50 reais no preço total mais 30 de multa!\n");
 clientes.precoTotal=clientes.preco+80;
 printf("Valor total a ser pago: %2.f",clientes.precoTotal);
 }
 if (clientes.resposta==2 && clientes.dia<=clientes.diaDevolucao){
 clientes.precoTotal= clientes.precoTotal;
 }
 achei=1;
 }
 if(!achei)
 printf("Codigo não existe!");
 fclose(arq);
}
void consultCliente()
{
 FILE *arq = fopen("clientes.txt", "rb");
 if (arq == NULL)
 {
 printf("Arquivo inexistente!");
 return;
 }
 struct tCliente clientes;
 int cod, achei = 0;
 printf ("Digite os primeiros 3 números do CPF que procura: \n");
 scanf ("%d", &cod);
 while (fread (&clientes, sizeof(clientes), 1, arq))
 {
 if ((cod == clientes.cpfCliente))
 {
 printf("\nCódigo: %i",clientes.cpfCliente);
 printf("\nDescrição:%s",clientes.nome);
 printf("\nEndereço: %s",clientes.endereco);
 printf("\nTelefone: %i",clientes.numtelefone);
 achei = 1;
 }
 }
 if (!achei)
 printf ("\\nCódigo não cadastrado!!\n");
 fclose(arq);
}
void fidelidade()
{
 FILE *arq = fopen("clientes.txt", "r+b");
if (arq == NULL){
 printf("O arquivo não existe!");
 return;}
 struct tCliente clientes;
 int locacoes,pontos, achei= 0;
 while (fread (&clientes, sizeof(clientes), 1, arq)){}
 printf("\nDigite quantas locações você tem:\n");
 scanf("%i",&clientes.locacoes);
 clientes.pontosFidelidade=(clientes.locacoes*10);
 printf("\nVocê tem %i pontos de locação!\n",clientes.pontosFidelidade);
 if(clientes.pontosFidelidade>=500)
 {
 printf("\n!!!PARABÉNS VOCÊ GANHOU O KITLOCAMAIS!!!\n");
 }
 fclose(arq);
}
void alterar()
{
 FILE *arq = fopen("clientes.txt", "r+b");
 if (arq == NULL)
 {
 printf("Arquivo inexistente!");
 return;
 }
 struct tCliente clientes;
 int cod, achei = 0;
 printf ("Digite os primeiros 3 digítos do CPF do cliente que deseja alterar: \n");
 scanf ("%d", &cod);
 while (fread (&clientes, sizeof(clientes), 1, arq))
 {
 if (cod == clientes.cpfCliente)
 {
 printf("\nCódigo: %i",clientes.cpfCliente);
 printf("\nDescrição:%s",clientes.nome);
 printf("\nEndereço: %s",clientes.endereco);
 printf("\nTelefone: %i",clientes.numtelefone);
 achei = 1;
 fseek(arq,sizeof(struct tCliente)*-1, SEEK_CUR);
 printf("\\nDigite o novo nome desejado: \\n");
 fflush(stdin);
 gets(clientes.nome);
 printf("\\nDigite o novo número de telefone: \\n");
 scanf("%i", &clientes.numtelefone);
 fwrite(&clientes, sizeof(clientes), 1, arq);
 fseek(arq, sizeof(clientes)* 0, SEEK_END);
 return;
 }
 }
 if (!achei)
 printf ("\\nCódigo não cadastrado!!\\n");
 fclose(arq);
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?