Ir ao conteúdo
  • Cadastre-se

priscila_vj

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

1
  1. priscila_vj

    Locadora em C

    Por favor, estou desesperada! Tenho que entregar amanhã um trabalho que é um sistema de locadora de veículos, mas estou enfrentando alguns problermas com erros... Abaixo seguem todas as funções do programa, comentei os erros. Se alguém puder ajudar por favor! Obrigada. //locadora.h #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> // definicao do tipo cliente typedef struct { int codcli; char nome[100]; int cpf[11]; char endereco[30]; int telefone[10]; int idade[2]; int codcarro; int status; // sendo o status 0 para inativo e 1 para ativo }cliente; // definicao do tipo automovel typedef struct { int codcar; char modelo[20]; char marca[20]; char placa[7]; char cor[20]; int status; }automovel; //prototipo das funcoes //funcoes de clientes void Clientes(); void Automoveis(); void Cadastro_Clientes(); void Altera_Clientes(); void Consultar_Clientes(); void Excluir_Clientes(); void Relatorio_Clientes(); //funcoes de automoveis void Cadastro_Automoveis(); void Relatorio_Automoveis(); //funcao de locacao int Gerenciamento_Locacoes(); -------------------------------------------------------------------------------------------------- //main #include <conio.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include "Locadora.h" int main() { char escolha=0; while( (escolha!='s') && (escolha!='S') ) { printf("--------------------------------------------------------------------------------\n"); printf(" Sistema de Gerenciamento de uma Locadora de Automoveis\n"); printf("--------------------------------------------------------------------------------\n"); printf(" Digite o numero referente a opcao desejada:\n"); printf(" 1- Clientes\n"); printf(" 2- Automoveis\n"); printf(" 3- Gerenciamento de Locacoes\n"); printf("Opcao: "); scanf("%i", &escolha); fflush(stdin); switch(escolha) { case 1: Clientes(); break; case 2: Automoveis(); break; case 3: Gerenciamento_Locacoes(); break; default: printf("Opcao invalida, digite a opcao novamente:\n "); } } return 0; } -------------------------------------------------------------------------------------------------- //Clientes #include "locadora.h" // Função de cadastro de clientes void Clientes() { int escolha=0; printf("--------------------------------------------------------------------------------\n"); printf(" Clientes\n"); printf("--------------------------------------------------------------------------------\n"); printf(" Digite o numero referente a opcao desejada:\n"); printf(" 1- Cadastrar Cliente\n"); printf(" 2- Alterar Cliente\n"); printf(" 3- Excluir Cliente\n"); printf(" 4- Consultar Clientes\n"); printf(" 5- Relatorio de Clientes\n"); printf("Opcao: "); scanf("%i", &escolha); fflush(stdin); switch(escolha) { case 1: Cadastro_Clientes(); break; case 2: Altera_Clientes(); break; case 3: Excluir_Clientes(); break; case 4: Consultar_Clientes(); break; case 5: Relatorio_Clientes(); break; default: printf("Opcao invalida, digite a opcao novamente:\n "); } } CODE //Cadastro Clientes #include "locadora.h" // Função de cadastro de clientes void Cadastro_Clientes() { printf("--------------------------------------------------------------------------------\n"); printf(" Cadastro de Clientes\n"); printf("--------------------------------------------------------------------------------\n"); cliente *vetclientes; // vetor de clientes int n; // numero de clientes FILE *arq_cliente; // arq. de armazenamento // abre o arquivo para leitura arq_cliente=fopen("Cadastro_Cliente.txt","r+b"); if(arq_cliente==NULL) { // se arquivo não existe abre para escrita arq_cliente=fopen("Cadastro_Cliente.txt","w+b"); // inicializa num de clientes com 0 n=0; } else { //se arquivo existe le o num de clientes fread(&n,sizeof(int),1,arq_cliente); //aloca memória para os clientes vetclientes = (cliente *)malloc(sizeof(cliente)*n); // e le o vetor de clientes inteiro fread(vetclientes,sizeof(cliente),n,arq_cliente); } if(n==0) { // se n=0, aloca memoria para vetor vetclientes = (cliente *)malloc(sizeof(cliente)); } else { // caso contrario realoca memoria para vetor vetclientes= (cliente *)realloc(vetclientes,sizeof(cliente)*(n+1)); } // cadastra novo cliente printf("\nCliente %d",n); printf("\nNome: "); scanf("%s",vetclientes[n].nome); fflush(stdin); printf("CPF: "); scanf("%i",vetclientes[n].cpf); fflush(stdin); printf("Endereco: "); scanf("%s",vetclientes[n].endereco); fflush(stdin); printf("Telefone: "); scanf("%i",vetclientes[n].telefone); fflush(stdin); printf("Idade: "); scanf("%i",&vetclientes[n].idade); vetclientes[n].codcli = n; vetclientes[n].status = 1; printf("codigo:", &vetclientes[n].codcli); printf("\nRegistro gravado com sucesso!\n"); // incrementa numero de clientes n++; // fecha o arquivo fclose(arq_cliente); // e em seguida reabre para posicionar no comeco arq_cliente=fopen("Cadastro_Cliente.txt","r+b"); //reescreve o numero de clientes atualizado fwrite(&n,sizeof(int),1,arq_cliente); fwrite(vetclientes,sizeof(cliente),n,arq_cliente); // e fecha o arquivo fclose(arq_cliente); //libera memoria free(vetclientes); } CODE //Altera Clientes #include "locadora.h" // Função de cadastro de clientes void Altera_Clientes() { char nomecli[50]; int i; printf("--------------------------------------------------------------------------------\n"); printf(" Alteracao de Clientes\n"); printf("--------------------------------------------------------------------------------\n"); cliente *vetclientes; // vetor de clientes int n; // numero de clientes FILE *arq_cliente; // arq. de armazenamento // abre o arquivo para leitura arq_cliente=fopen("Cadastro_Cliente.txt","r+b"); if(arq_cliente==NULL) { // se arquivo não existe abre para escrita arq_cliente=fopen("Cadastro_Cliente.txt","w+b"); // inicializa num de clientes com 0 n=0; } else { //se arquivo existe le o num de clientes fread(&n,sizeof(int),1,arq_cliente); // e le o vetor de clientes inteiro fread(vetclientes,sizeof(cliente),n,arq_cliente); printf("Digite o nome do cliente que deseja alterar:\n"); scanf("%i", &nomecli); for (i=0; i<n; i++) { //ERRO!!!!!!!!!!!! //NA LINHA ABAIXO DA ERRO! (expected primary-expression before '[' token) if(strcmp(nomecli = cliente[n].nome)==0) { printf("\nCliente %d",n); printf("\nNome: "); scanf("%s",vetclientes[n].nome); fflush(stdin); printf("CPF: "); scanf("%i",vetclientes[n].cpf); fflush(stdin); printf("Endereco: "); scanf("%s",vetclientes[n].endereco); fflush(stdin); printf("Telefone: "); scanf("%i",vetclientes[n].telefone); fflush(stdin); printf("Idade: "); scanf("%i",&vetclientes[n].idade); printf("\nCliente alterado com sucesso:\n"); } } // fecha o arquivo fclose(arq_cliente); // e em seguida reabre para posicionar no comeco arq_cliente=fopen("Cadastro_Cliente.txt","r+b"); //reescreve o numero de clientes atualizado fwrite(&n,sizeof(int),1,arq_cliente); fwrite(vetclientes,sizeof(cliente),n,arq_cliente); // e fecha o arquivo fclose(arq_cliente); //libera memoria free(vetclientes); } } CODE //Excluir Clientes #include "locadora.h" // Função de cadastro de clientes void Excluir_Clientes() { int n; int i; char consulta[40]; char resposta; cliente *vetclientes; printf("--------------------------------------------------------------------------------\n"); printf(" Exclusão de Cliente\n"); printf("--------------------------------------------------------------------------------\n"); printf("Digite o nome do cliente que voce deseja excluir: "); gets(consulta); fflush(stdin); for(i=0;i<n;i++) { if(strcmp(consulta, vetclientes[i].nome)); { printf("Cliente cadastrado. Deseja excluir cliente? s/n: "); scanf("%c", &resposta); if(resposta == 's' or resposta=='S'){ //PROBLEMA NESTA LINHA, ERRO NA EXECUÇÃO //CORTA A EXECUÇÃO QUANDO CHEGA AQUI vetclientes[i].status = 0; //define que o cliente está inativo printf("Cliente excluido com sucesso!"); } } } } CODE #include "locadora.h" // Função Relatório de Clientes void Relatorio_Clientes() { printf("--------------------------------------------------------------------------------\n"); printf(" Relatorio de Clientes\n"); printf("--------------------------------------------------------------------------------\n"); cliente *vetclientes; // vetor de clientes int i, n; // numero de clientes FILE *arq_cliente; //abre o arquivo binario para ler arq_cliente=fopen("Cadastro_Cliente.bin","r+b"); printf("Teste1"); //IMPRIME O PRINTF TESTE1 E DEPOIS não IMPRIME MAIS NADA! //carrega o vetor //se arquivo existe le o num de clientes fread(&n,sizeof(int),1,arq_cliente); //aloca memória para os clientes vetclientes = (cliente *)malloc(sizeof(cliente)*n); // e le o vetor de clientes inteiro fread(vetclientes,sizeof(cliente),n,arq_cliente); // abre o arquivo para leitura arq_cliente=fopen("Relatorio_Clientes.txt","w+t"); printf("Teste2"); if(arq_cliente==NULL){ // se não existe o arquivo exibe mensagem printf("\nErro na abertura do arquivo"); exit(0); } // carrega todas informações de clientes no Relatório_Clientes.txt for(i=0;i<n;i++) { printf("- entrou no for-"); if(vetclientes[i].status == 1){ printf(" - if do status-"); fprintf(arq_cliente, "Cód.Cliente: %i", vetclientes[i].codcli); fprintf(arq_cliente, "Nome: %s", vetclientes[i].nome); fprintf(arq_cliente, "\nCPF: %i", vetclientes[i].cpf); fprintf(arq_cliente, "\nEndereco: %s", vetclientes[i].endereco); fprintf(arq_cliente, "\nTelefone: %i", vetclientes[i].telefone); fprintf(arq_cliente, "\nIdade: %i", vetclientes[i].idade); fprintf(arq_cliente, "----------------------------------------------------------------"); } } printf("-saiu do for-"); system("PAUSE"); // fecha o arquivo fclose(arq_cliente); // libera memória do vetor free(vetclientes); }

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...