Ir para conteúdo
Fórum Script Brasil

Yuri Carlos

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Yuri Carlos

Yuri Carlos's Achievements

0

Reputação

  1. Olá a todos! Eu criei um sisteminha para estudos, algo bem simples só para tirar uma dúvida, que eu já estou a um tempo. O código a seguir é de um sistema de locação de veículos (Como o foco é meramente didático e para o código não ficar tão grande eu me atentei a apenas colocar o código de inserção de cada struct, que já foi testado e está funcionando). Note mais abaixo que existe um método chamado `Locacao* inserir_locacao(Locacao *primeiraLocacao){` esse método deveria conter o nome do veículo e o nome do cliente já cadastrado, provavelmente terei que fazer algum tipo de busca nas struct que eu já criei, porém não tenho idéia de como fazer isso, alguém poderia me ajudar? //Livrarias do sistema #include <stdio.h> //#include <conio.h> #include <string.h> #include <stdlib.h> typedef struct cliente{ unsigned long int codigo; char nome[50]; struct cliente* prox; }Cliente; typedef struct veiculo { unsigned int codigo; char modelo[50]; struct veiculo* prox; }Veiculo; typedef struct locacao { unsigned long int codigo; int codCliente; char nomeCliente[50]; int cod_veiculo; char modelo[50]; struct locacao* prox; }Locacao; //Declaracao de Funcoes //Funcoes de gerenciamento de clientes Cliente* inserir_cliente(Cliente* primeiro); //Funcoes de gerenciamento de veiculos Veiculo* inserir_veiculo(Veiculo* primeiro); //Funcoes de gerenciamento de locacao //Locacao* nova_locacao(Locacao* primeiro); void main(){ //Declaracao de variaveis char opcao; Cliente *primeiroCliente = NULL; Veiculo *primeiroVeiculo = NULL; //Locacao *primeiraLocacao = NULL; while (opcao != 's') { //Menu de opcoes printf(" @----------------------------------------------------------------------------@\n"); printf(" | ");printf("\t\t\t SISTEMA DE LOCACAO DE VEICULOS");printf("\t\t |\n"); printf(" @----------------------------------------------------------------------------@\n"); printf("\n"); printf(" @----------------------------------------------------------------------------@\n"); printf(" | <A> -> Inserir Cliente |\n"); printf(" @----------------------------------------------------------------------------@\n"); printf(" | <B> -> Inserir Veiculo |\n"); printf(" |----------------------------------------------------------------------------|\n"); printf(" | <C> -> Inserir Locacao |\n"); printf(" |----------------------------------------------------------------------------|\n"); //Lendo a opcao do menu fflush(stdin); opcao = getch(); //Menu de opcoes switch (opcao) { //Nova locacao case 'a': case 'A': fflush(stdin); system("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t Inserir Cliente ");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); primeiroCliente = inserir_cliente(primeiroCliente); getch(); system("cls"); break; //Alterar dados da locacao case 'b': case 'B': fflush(stdin); system("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t Inserir Veiculo ");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); primeiroVeiculo = inserir_veiculo(primeiroVeiculo); getch(); system("cls"); break; //Listar locacao case 'c': case 'C': fflush(stdin); system("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t Inserir Locacao ");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); //primeiraLocacao = inserir_locacao(primeiraLocacao); getch(); system("cls"); break; //Sair do programa case 's': case 'S': opcao = 's'; break; //Previne a situacao de um usuario qualquer, digitar uma opcao não fornecida. default: system("cls"); break; } } } //Inserir Locacao /* Locacao* inserir_locacao(Locacao *primeiraLocacao){ Locacao locacao; Locacao *atual = primeiraLocacao; char identificador = 'F'; } //Lendo as informacoes da locacao printf(" Codigo da locacao: "); scanf("%u", &locacao.codigo); printf("\n"); printf("%s\n"," " ); fflush(stdin); fgets(locacao.nome, 40, stdin); printf("\n"); */ //Inserindo veiculo Veiculo* inserir_veiculo(Veiculo *primeiroVeiculo){ Veiculo veiculo; Veiculo *atual = primeiroVeiculo; char identificador = 'F' ; //Lendo as informacoes do veiculo. printf(" Codigo do Veiculo: "); scanf("%u", &veiculo.codigo); printf("\n"); printf(" Modelo: "); fflush(stdin); fgets(veiculo.modelo, 40, stdin); printf("\n"); //Verificando se o cadastro já existe. for(atual=primeiroVeiculo; atual!=NULL; atual=atual->prox){ if(atual->codigo==veiculo.codigo){ identificador = 'V'; break; } } if(identificador!='V' && (strlen(veiculo.modelo)!=1)){ //Alocando espacos e guardando informacoes do veiculo. Veiculo* NovoVeiculo=(Veiculo*) malloc(sizeof(Veiculo)); strcpy(NovoVeiculo->modelo, veiculo.modelo); NovoVeiculo->codigo = veiculo.codigo; NovoVeiculo->prox = primeiroVeiculo; printf(" Cadastro realizado com sucesso."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return NovoVeiculo; }else{ printf(" Cadastro inv%clido.", 160); printf(" \n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return primeiroVeiculo; } } //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"); //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)){ //Alocando espacos e guardando informacoes do cliente. Cliente* NovoCliente=(Cliente*) malloc(sizeof(Cliente)); strcpy(NovoCliente->nome, cliente.nome); 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; } }
  2. 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.
  3. Eu gostaria de recuperar o cliente, o funcionário e o veículo já cadastrado, e colocar dentro da struct locação, através do código deles.
  4. 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
×
×
  • Criar Novo...