MateusFBL / TP_Locadora6

0 stars 0 forks source link

Implemente funções para realizar pesquisas tanto por clientes quanto por veículos #5

Open MateusFBL opened 7 months ago

Vikatormfc commented 7 months ago

PESQUISA CLIENTES:

ifndef PESQUISARCLIENTES_H_INCLUDED

define PESQUISARCLIENTES_H_INCLUDED

void imprimirInfoCliente(const struct Cliente *cliente) { printf("C�digo: %d\n", cliente->codigo); printf("Nome: %s\n", cliente->nome); printf("Endereco: %s\n", cliente->endereco); printf("Telefone: %s\n", cliente->telefone); }

// Fun�o para pesquisar cliente por c�digo ou nome void pesquisarCliente(FILE *arquivoClientes) { int opcao; printf("\n===== PESQUISAR CLIENTE =====\n"); printf("1 - Pesquisar por Codigo\n"); printf("2 - Pesquisar por Nome\n"); printf("Escolha uma opcao: "); scanf("%d", &opcao);

struct Cliente clienteEncontrado;

switch (opcao) {
    case 1: {
        int codigoCliente;
        printf("Digite o codigo do cliente: ");
        scanf("%d", &codigoCliente);

        if (buscarClientePorCodigo(arquivoClientes, codigoCliente, &clienteEncontrado)) {
            imprimirInfoCliente(&clienteEncontrado);
        } else {
            printf("Cliente nao encontrado.\n");
        }
        break;
    }
    case 2: {
        char nomeCliente[50];
        printf("Digite o nome do cliente: ");
        scanf(" %[^\n]s", nomeCliente);

        if (buscarClientePorNome(arquivoClientes, nomeCliente, &clienteEncontrado)) {
            imprimirInfoCliente(&clienteEncontrado);
        } else {
            printf("Cliente nao encontrado.\n");
        }
        break;
    }
    default:
        printf("Opcao invalida.\n");
}

}

endif // PESQUISARCLIENTES_H_INCLUDED

EXPLICAÇÃO DO CÓDIGO: Guarda de Cabeçalho:

Utiliza as diretivas de pré-processador #ifndef, #define e #endif para evitar múltiplas inclusões do mesmo arquivo. Declaração de Função Auxiliar:

imprimirInfoCliente: Uma função auxiliar que imprime as informações de um cliente. Função pesquisarCliente:

Declaração da função responsável por pesquisar um cliente por código ou nome. Exibe um menu com opções para o usuário escolher como deseja realizar a pesquisa. Usa um switch para lidar com a escolha do usuário. Pesquisa por Código:

Solicita o código do cliente e utiliza a função buscarClientePorCodigo para procurar no arquivo de clientes. Se encontrado, imprime as informações do cliente. Caso contrário, exibe uma mensagem informando que o cliente não foi encontrado. Pesquisa por Nome:

Solicita o nome do cliente e utiliza a função buscarClientePorNome para procurar no arquivo de clientes. Se encontrado, imprime as informações do cliente. Caso contrário, exibe uma mensagem informando que o cliente não foi encontrado. Opção Inválida:

Se o usuário escolher uma opção inválida, exibe uma mensagem informando isso. Finalização do Guarda de Cabeçalho:

Encerra as diretivas de pré-processador.

Vikatormfc commented 7 months ago

PESQUISA VEÍCULOS:

ifndef PESQUISARVEICULOS_H_INCLUDED

define PESQUISARVEICULOS_H_INCLUDED

// Fun�o para imprimir as informa�es do ve�culo void imprimirInfoVeiculo(const struct Veiculo *veiculo) { printf("Codigo: %d\n", veiculo->codigo); printf("Descricao: %s\n", veiculo->descricao); printf("Modelo: %s\n", veiculo->modelo); printf("Cor: %s\n", veiculo->cor); printf("Placa: %s\n", veiculo->placa); printf("Valor Diaria: %.2f\n", veiculo->valorDiaria); printf("Ocupantes: %d\n", veiculo->ocupantes); printf("Status: %s\n", veiculo->status); }

// Fun�o para pesquisar ve�culo por c�digo ou descri�o void pesquisarVeiculo(FILE *arquivoVeiculos) { int opcao; printf("\n===== PESQUISAR VE�CULO =====\n"); printf("1 - Pesquisar por Codigo\n"); printf("2 - Pesquisar por Descricao\n"); printf("Escolha uma opcao: "); scanf("%d", &opcao);

struct Veiculo veiculoEncontrado;

switch (opcao) {
    case 1: {
        int codigoVeiculo;
        printf("Digite o codigo do veiculo: ");
        scanf("%d", &codigoVeiculo);

        if (buscarVeiculoPorCodigo(arquivoVeiculos, codigoVeiculo, &veiculoEncontrado)) {
            imprimirInfoVeiculo(&veiculoEncontrado);
        } else {
            printf("Veiculo nao encontrado.\n");
        }
        break;
    }
    case 2: {
        char descricaoVeiculo[50];
        printf("Digite a descricao do veIculo: ");
        scanf(" %[^\n]s", descricaoVeiculo);

        if (buscarVeiculoPorDescricao(arquivoVeiculos, descricaoVeiculo, &veiculoEncontrado)) {
            imprimirInfoVeiculo(&veiculoEncontrado);
        } else {
            printf("VeIculo n�o encontrado.\n");
        }
        break;
    }
    default:
        printf("Op�o inv�lida.\n");
}

}

endif // PESQUISARVEICULOS_H_INCLUDED

Guarda de Cabeçalho:

Utiliza as diretivas de pré-processador #ifndef, #define e #endif para evitar múltiplas inclusões do mesmo arquivo. Declaração de Função Auxiliar:

imprimirInfoVeiculo: Uma função auxiliar que imprime as informações de um veículo. Função pesquisarVeiculo:

Declaração da função responsável por pesquisar um veículo por código ou descrição. Exibe um menu com opções para o usuário escolher como deseja realizar a pesquisa. Usa um switch para lidar com a escolha do usuário. Pesquisa por Código:

Solicita o código do veículo e utiliza a função buscarVeiculoPorCodigo para procurar no arquivo de veículos. Se encontrado, imprime as informações do veículo. Caso contrário, exibe uma mensagem informando que o veículo não foi encontrado. Pesquisa por Descrição:

Solicita a descrição do veículo e utiliza a função buscarVeiculoPorDescricao para procurar no arquivo de veículos. Se encontrado, imprime as informações do veículo. Caso contrário, exibe uma mensagem informando que o veículo não foi encontrado. Opção Inválida:

Se o usuário escolher uma opção inválida, exibe uma mensagem informando isso. Finalização do Guarda de Cabeçalho:

Encerra as diretivas de pré-processador.