Tenho que entregar na quarta 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 ");
}
}
//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);
}
//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);
}
}
//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!");
}
}
}
}
#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);
}
Editado por Jonathan Queiroz Modificar título para descrever melhor a dúvida e adcionar tag's (Jonathan)
Pergunta
pvj
Por favor, estou desesperada!
Tenho que entregar na quarta 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.
Editado por Jonathan QueirozModificar título para descrever melhor a dúvida e adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados