Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema de Locadora de Veiculos


pvj

Pergunta

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.

//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)
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...