Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
RenanMaia

C Como pesquisar dados do cliente pelo CPF em um arquivo txt?

Recommended Posts

Olá, estou fazendo um programa de cadastro de produtos e cliente, no menu de cadastros tem a opção "Pesquisar cliente". Nessa opção é pedido o CPF do cliente ha ser localizado! 

o problema é que as informações de todos os clientes estão em um arquivo .txt! 

como eu posso fazer para alem de achar o CPF mostrar as informações do usuário correspondentes ao CPF pesquisado?

 

Me perdoem qualquer erro grosseiro no código! faz pouco tempo que comecei a programar.

 

segue o código

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

struct servicos
{
    int numero_servico;
    float valor_servico;
    char codigo_servico[5];
    int codigo_cliente;
};
struct servicos serv[4];
struct cadastro
{
    char primeiro_nome[15];
    char ultimo_nome[15];
    char cpf[15];
    char data_nasc[11];
};

int main()
{
    FILE *cliente_file[200];
    FILE *lerBackUp;
    FILE *BackUP;
    FILE *descricao;
    int opcao, opcao2, opcao3;
    char ler_descricao[1000];
    int conta_cliente;
    char confirma_cpf[15];
    struct cadastro
    {
        char primeiro_nome[15];
        char ultimo_nome[15];
        char cpf[15];
        char data_nasc[11];
    };
    struct cadastro cliente[200];

    while(opcao < 1 || opcao > 7)
    {
        system("cls");
        puts("======================");
        puts("PRESTADORA DE SERVICOS");
        puts("======================");
        puts("          MENU        ");
        puts("----------------------");
        puts("1 - Tipos de servicos");
        puts("2 - Cadastro de Clientes");
        puts("3 - Cadastrar os servicos prestados");
        puts("4 - servicos (por dia)");
        puts("5 - servicos prestados por valor");
        puts("6 - relatorio geral");
        puts("7 - Sair");
        puts("----------------------");
        scanf("%i", &opcao);
        opcao2 = 0;
        opcao3 = 0;

        switch (opcao)
        {
            case 1:
                    system("cls");

                    while(opcao2 < 1 || opcao2 > 5)
                    {
                        system("cls");
                        puts("======================");
                        puts("PRESTADORA DE SERVICOS");
                        puts("======================");
                        puts("  CADASTRAR SERVICOS  ");
                        puts("----------------------");
                        puts("1 - PINTURA           ");
                        puts("2 - JARDINAGEM        ");
                        puts("3 - FAXINA            ");
                        puts("4 - REFORMA EM GERAL  ");
                        puts("5 - VOLTAR            ");
                        puts("----------------------");
                        scanf("%i", &opcao2);

                        switch (opcao2)
                        {
                            case 1:
                                system("cls");
                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("       PINTURA        ");
                                puts("----------------------");
                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao pintura.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #100\n");

                                printf("\nDigite Enter para voltar!");

                                system("pause");

                                opcao2 = 0;
                                break;
                            case 2:
                                system("cls");
                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("      JARDINAGEM      ");
                                puts("----------------------");
                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao jardinagem.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #200\n");

                                printf("\nDigite Enter para voltar!");

                                system("pause");
                                opcao2 = 0;
                                break;
                            case 3:
                                system("cls");

                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("        FAXINA        ");
                                puts("----------------------");

                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao faxina.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #300\n");

                                printf("\nDigite Enter para voltar!");

                                system("pause");
                                opcao2 = 0;
                                break;
                            case 4:
                                system("cls");

                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("     REFORMA GERAL    ");
                                puts("----------------------------------");
                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao rg.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #400\n");

                                printf("\nDigite Enter para voltar!");
                                fclose(descricao);
                                system("pause");
                                opcao2 = 0;
                                break;
                            case 5:
                                system("cls");
                                opcao = 0;
                        }
                    }
                    break;
            case 2:

                while (opcao3 < 1 || opcao3 > 5)
                {
                        system("cls");

                        puts("======================");
                        puts("PRESTADORA DE SERVICOS");
                        puts("======================");
                        puts("  CADASTRAR CLIENTES  ");
                        puts("----------------------");
                        puts("1 - Cadastrar Cliente ");
                        puts("2 - Pesquisar Cliente ");
                        puts("3 - Listar Clientes   ");
                        puts("4 - Excluir Cliente   ");
                        puts("5 - Voltar            ");
                        puts("----------------------");
                        scanf("%i", &opcao3);

                        switch (opcao3)
                        {
                            case 1:
                                system("cls");

                                lerBackUp = fopen("BackUp.txt", "r");

                                if(lerBackUp == NULL)
                                {
                                    printf("\a Arquivo nao encontrado!\n");
                                    getchar();
                                    break;
                                }

                                fscanf(lerBackUp, "%i", &conta_cliente);

                                fclose(lerBackUp);

                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("       CADASTRO       ");
                                puts("----------------------");
                                puts("Primeiro nome:        ");
                                scanf("%s", cliente[conta_cliente].primeiro_nome);
                                puts("Ultimo Nome:          ");
                                scanf("%s", cliente[conta_cliente].ultimo_nome);
                                puts("CPF:                  ");
                                scanf("%s", cliente[conta_cliente].cpf);
                                puts("Data de Nascimento:   ");
                                scanf("%s", cliente[conta_cliente].data_nasc);
                                puts("----------------------");
                                getchar();

                                cliente[conta_cliente].primeiro_nome[0] = toupper(cliente[conta_cliente].primeiro_nome[0]);
                                cliente[conta_cliente].ultimo_nome[0] = toupper(cliente[conta_cliente].ultimo_nome[0]);

                                cliente_file[conta_cliente] = fopen("clientes\\client.txt", "a");

                                fprintf(cliente_file[conta_cliente], "\n\n");
                                fputs("---------------------------\n", cliente_file[conta_cliente]);
                                fputs("         CADASTRO                           \n", cliente_file[conta_cliente]);
                                fputs("---------------------------\n", cliente_file[conta_cliente]);
                                fprintf(cliente_file[conta_cliente], "Nome: %s %s\n", cliente[conta_cliente].primeiro_nome, cliente[conta_cliente].ultimo_nome);
                                fprintf(cliente_file[conta_cliente], "CPF: %s\n", cliente[conta_cliente].cpf);
                                fprintf(cliente_file[conta_cliente], "Data de Nascimento: %s\n", cliente[conta_cliente].data_nasc);
                                fprintf(cliente_file[conta_cliente], "Numero Do Cliente: #%i\n", conta_cliente);
                                fputs("---------------------------", cliente_file[conta_cliente]);
                                fclose(cliente_file[conta_cliente]);

                                conta_cliente++;

                                BackUP = fopen("BackUp.txt", "w");

                                fprintf(BackUP, "%i", conta_cliente);

                                fclose(BackUP);

                                system("cls");

                                printf("Cadastro efetuado com sucesso!\n");
                                system("pause");
                                opcao3 = 0;
                                break;
                            case 2:
                                system("cls");

                                puts("======================");
                                puts("          PRESTADORA DE SERVICOS      ");
                                puts("======================");
                                puts("             PESQUISAR CLIENTES            ");
                                puts("---------------------------------------------------------");
                                printf("Digite o CPF do cliente (incluindo pontos e traço): \n");
                                scanf("%s", confirma_cpf);


                                system("pause");
                                break;
                            case 3:
                                system("cls");


                                system("pause");
                                break;
                            case 4:
                                system("cls");


                                system("pause");
                                break;
                            case 5:
                                opcao = 0;

                                break;


                        }
                }


                    system("cls");

                    break;
            case 3:
                    system("cls");

                    break;
            case 4:
                    system("cls");

                    break;
            case 5:
                    system("cls");

                    break;

            case 6:
                    system("cls");

                    break;
            case 7:
                    system("cls");
                    exit(0);

                    break;
        }
    }

    return 0;
}

 

Editado por RenanMaia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeira e importantíssima dica :

Modularize.

Crie funções que fazem os blocos do programa. Por exemplo. para cada case no switch, faça uma funçào. Isso facilita a manutenção e o entendimento do programa.

 

Recomendo usar o arquivo em disco como uma coisa que você "salva". ASsim, uma rotina carrega os dados do arquivo em memória. Vale a pena usar uma estrutura como vetor para manipular os dados. 

Uma opção de "salvar" o arquivo com os dados. Isso facilita demais. Hoje em dia, computadores tem muita RAM então esse cadastro deve caber na RAM da maioria dos computadores.

 

Dessa forma, o programa fica mais simples e rápido. Crie uma rotina para ler o arquivo e carregar um vetor de estruturas. Depois crie outra rotina que grava o vetor de estruturas.

O programa vai funcionar todo manipulando os vetores.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×