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

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


Yuri Carlos

Pergunta

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


 

Editado por Yuri Carlos
Link estava inacessível
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

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

 

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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...