• 0
Sign in to follow this  
Yuri Carlos

Dúvida ao criar structs, relacionando uma struct a outra.

Question

Eu criei as seguintes structs:

   

typedef struct cliente{
        unsigned long int codigo;
        char nome[50];
        char endereco[50];
        char cpf[11];
        char idade[3];
        struct cliente* prox;
    }Cliente;
    
    typedef struct funcionario{
        unsigned int codigo;
        char nome[50];
        char endereco[50];
        struct funcionario* prox;
    }Funcionario;
    
    typedef struct veiculo {
        unsigned int codigo;
        char placa[6];
        char modelo[50];
        char cor[30];
        char assentos[2];
        struct veiculo* prox;
    }Veiculo;

Elas tem a função de armazenar dados e cadastrar algumas informações sobre **cliente**, **veículo** e **funcionário**, dessa forma: (os demais tem a mesma estrutura):
   

//Inserindo clientes
    Cliente* inserir_cliente(Cliente *primeiroCliente){
        Cliente cliente;
        Cliente *atual = primeiroCliente;
        char identificador = 'F' ;
    
        //Lendo as informacoes do cliente.
        printf(" Codigo do cliente: ");
        scanf("%u", &cliente.codigo); printf("\n");
        printf(" Nome: ");
        fflush(stdin); fgets(cliente.nome, 40, stdin); printf("\n");
        printf(" Endere%co: ", 135);
        fflush(stdin); fgets(cliente.endereco, 40, stdin); printf("\n");
        printf(" CPF: ");
        fflush(stdin); fgets(cliente.cpf, 11, stdin); printf("\n");
        printf(" Idade: ");
        fflush(stdin); fgets(cliente.idade, 11, stdin); printf("\n");
    
        //Verificando se o cadastro já existe.
        for(atual=primeiroCliente; atual!=NULL; atual=atual->prox){
            if(atual->codigo==cliente.codigo){
                identificador = 'V';
                break;
            }
        }
    
        if(identificador!='V' && (strlen(cliente.nome)!=1 && strlen(cliente.endereco)!=1)){
            //Alocando espacos e guardando informacoes do cliente.
            Cliente* NovoCliente=(Cliente*) malloc(sizeof(Cliente));
            strcpy(NovoCliente->nome, cliente.nome);
            strcpy(NovoCliente->endereco, cliente.endereco);
            strcpy(NovoCliente->cpf, cliente.cpf);
            strcpy(NovoCliente->idade, cliente.idade);
            NovoCliente->codigo = cliente.codigo;
            NovoCliente->prox = primeiroCliente;
            printf(" Cadastro realizado com sucesso.");
            printf("\n\n PRESSIONE QUALQUER TECLA PARAVA VOLTAR AO MENU PRINCIPAL.");
            return NovoCliente;
        }else{
            printf(" Cadastro inv%clido.", 160);
            printf(" \n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
            return primeiroCliente;
        }
    
    }

Minha dúvida é a seguinte, eu também fiz a seguinte estrutura:

    typedef struct locacao {
        unsigned long int codigo;
        int cod_veiculo;
        char modelo[50];
        char cor[30];
        int codCliente;
        char nomeCliente[50];
        char idadeCliente[2];
        int codFuncionario;
        char nomeFuncionario[50];
        Data locacao;
        struct locacao* prox;
    }Locacao;

Eu gostaria de saber se teria alguma forma de eu inserir informações na struct **Locacao** a partir dos dados já cadastrados nas struct, **cliente**, **funcionario** e **veiculo**.

Obs: Estou fazendo no DevC++, no ambiente windows.

Quem quiser verificar o código inteiro:
 

https://github.com/yuryshadow/sistema_locacao_veicuos.git


 

Edited by Yuri Carlos
Link estava inacessível

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Não se entende direito o que você quer, e não é possível acessar seu código.

Share this post


Link to post
Share on other sites
  • 0

Mas não lhe posso ajudar porque não tenho acesso a seu código. A direção(link) que você deixou não leva a nenhuma parte.

Share this post


Link to post
Share on other sites
  • 0

suponho que para quando você for fazer uma locação você teria ao menos um cliente, um veiculo e um funcionário cadastrados no sistema.

Seria caso de criar um novo objeto da estrutura locação e inserir o código do funcionário e do cliente. Logo após inserir os códigos dos usuários involucrados na struct locacao, deveria aparecer um menu que permitisse escolher um dos carros disponíveis e uma vez escolhido deveria ser copiado os tais dados do veiculo para locacao e por ultimo ser inserido na lista.

Acredito que seria de grande utilidade guardar esses dados em um arquivo ao fechar o programa.

 

Share this post


Link to post
Share on other sites
  • 0

Sim eu também pensei em criar uma persistência de dados,  porém é um trabalho para faculdade com base no conteúdo que o professor deu, ele não chegou a falar sobre persistência de dados, e também falou que não era obrigatório. Sendo assim no sistema eu criei uma opção de listar locações só de aparecer a locação criada já está bom.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this