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;
}
}
Pergunta
Yuri Carlos
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?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.