Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio2.h> //Eu deixei essa biblioteca aqui, porque irei usar ela mais a frente
#include <locale.h>

#define quantidade 10 // Aqui eu defini a minha quantidade de clientes, 

struct cliente{            
    
    char nome[50];
    char cpf[12];
    char numero[20];
    char endereco [200];
    char data[20]; 
    
        
}qt[quantidade];        

//declação das minhas funções
void menu();
void cadastro();
void pesquisar();
void creditos();
void sair();


int main(int ardc, char const *argv[]){
    
    
    setlocale(LC_ALL, "Portuguese");
    menu();
    
    return 0;
}

void menu(){                //Menu do programa 

    int op;                    //op é a minha opção que o usuário esclheu
        
        do{
            system("cls");
            printf("\n-----------------------------------PRÉ-MOLDADOS----------------------------------------");
            printf("\n\n\n1 - CADASTRAR CLIENTE\n");
            printf("\n2 - PESQUISAR CLIENTE\n");
            printf("\n3 - CRÉDITOS\n");
            printf("\n4 - SAIR\n");
            scanf("%d", &op);
                    switch(op){
                    case 1:
                        cadastro();
                    break;
                    
                    case 2:
                        pesquisar();
                    break;
                }            
            
        getchar();
        }while(op != 0);
        
} //fim do meu menu


void cadastro(){                //tela de cadastramento do cliente
    
    static int linha;            //Cada vez que eu for cadastrar uma pessoa, eu cadastro ela em uma "nova linha"
    int op;
            do{
            system("cls");
            printf("\n--------------------------------CADASTRAR CLIENTE-------------------------------------\n");
            printf("\n\nDigite o nome: ");
            fflush(stdin);
            fgets(qt[linha].nome, 50, stdin);
            printf("\nDigite o CPF: ");
            fflush(stdin);
            fgets(qt[linha].cpf, 15, stdin);
            printf("\nDigite o numero: ");
            fflush(stdin);
            fgets(qt[linha].numero, 20, stdin);
            printf("\nDigite o endereço: ");
            fflush(stdin);
            fgets(qt[linha].endereco, 255, stdin);
            printf("\nDigite a data de hoje: ");
            fflush(stdin);
            fgets(qt[linha].data, 20, stdin);
            
            
            
        printf("\n1 - Continuar\n0 - Sair\n");    
        scanf("%d", &op);
        linha ++;    
        }while(op != 0);
        
} //fim do meu cadastro


void pesquisar(){                //tela de pesquisa do cliente
    
    int op;
    char cpf2[12];    
                
    do{// aqui eu escolho se quero pesquisar meu cliente plo cpf ou listar todos os clientes cadastrados
        system("cls");    printf("--------------------------PESQUISAR POR CLIENTE-------------------------------------\n\n");
        printf("\n1 - Pequisar pelo CPF");
        printf("\n2 - Listar todos os clientes");
        printf("\n\n\n0 - sair\n");
        scanf("%d", &op);
        
        if(op == 1){ //aqui eu mostro só cliente que pesquisei, porém, não ta funcionando
            system("cls");
            printf("----------------------------PESQUISAR POR CLIENTE--------------------------------------\n\n\n");
            printf("\nDigite o CPF: ");
            fflush(stdin);
            fgets(cpf2, 12, stdin);
            
            for(int i = 0; i < quantidade; i++){ 
                    system("cls");
                    if(strncmp(cpf2, qt.cpf, 11)){
                        printf("---------------------------------DADOS DO CLINTE-------------------------------------\n\n\n");
                        printf("\nNOME: %s\n");
                        printf("CPF: %s\n");
                        printf("NÚMERO: %s\n");
                        printf("ENDEREÇO: %s\n");
                        printf("DATA: %s\n\n");
                        printf("--------------------------------------------------------");
                                    
                    }
                                }
        printf("\n\n\n0 - sair\n");
        scanf("%d", &op);
        } 
        
        
        if(op == 2){ //aqui eu mostro só os que cadastrei
            system("cls");
            printf("--------------------------------LISTA DE CLIENTES---------------------------------\n\n\n");
            for(int i = 0; i < quantidade; i++){
                if(qt.cpf != NULL){
                printf("\n\nNOME: %s\nCPF: %s\nNÚMERO: %s\nENDEREÇO: %s\nDATA: %s\n\n--------------------------------------------------------", qt.nome, qt.cpf, qt.numero, qt.endereco, qt.data);
                 }
            }
         printf("\n\n\n0 - sair\n");
        scanf("%d", &op);
        }
    
    }while(op != 0);
} // fim da minha listagem de clientes
  1. Olá, sou novo aqui no fórum e programando também, se alguém puder me ajudar eu ficaria muito agradecido.

      Esse aqui é um programa que cadastra pessoas e atribui a elas o um pedido, ainda não comecei a parte do pedido. Enfim eu estou fazendo ele e me deparei com um problema que pode ser besteria para alguns, só que, para min está me dando muita dor de cabeça, já refiz o código três vezes e ele sempre aparece. Na linha 123 do meu código, onde eu pesquiso o cliente pelo cpf, eu estou tentanto comparar uma string com a outra e listar todos os dados onde essa string está porém não consigo, dessa vez não aparece nada, outras as vezes monstra todos os cadastro, até os que eu ainda não cadastrei.

      O  meu segundo problema é quando eu tento listar todos os meu clientes, de fato ele mostra todos os clientes, porém monstra até os cadastro que eu ainda não preenchi, eu tentei tirar isso, coloquei uma condição, mas não está funcionando mesmo assim. 

 

 

  • Curtir 1
Postado

@Jeff_021 @Jeff_021      aqui , você não colocou a posição do vetor de struct , 

 

Em 12/05/2020 às 20:31, Jeff_021 disse:

for(int i = 0; i < quantidade; i++){ 
    system("cls");
    if(strncmp(cpf2, qt.cpf, 11)){   //  <---- aqui
    printf("---------------------------------DADOS DO CLINTE-------

 

Seria assim  :

for(int i = 0; i < cont; i++){            
    if(strcmp(cpf2, qt[i].cpf) == 0 ){   //  <---- aqui

 

cont é um contador global, criado lá no início antes da função main, assim ele pode ser
acessado de qualquer parte do program. e use-o também para cadastrar.

 

  • Obrigado 1
Postado

@AdrianoSiqueira Cara muito obrigado, sério mesmo, são pequenos detalhes que tenho que pegar, agora não posso testar por quê estou meio ocupado, mais tarde eu vou corrigir e comentar aqui sobre o mesmo.

 

  • Curtir 1
Postado

@Jeff_021    ok , e seu código também poderia ser assim  :

#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <windows.h>
#include <ctype.h>
#define cls system("cls");
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int letra, int fundo){
    SetConsoleTextAttribute(H,letra+(fundo<<4));
}
struct cliente{
    char nome[50],cpf[15],numero[15],
         endereco    [50],data  [30];
};
struct cliente qt[100];
void cadastro();
void pesquisar();
void pesq_por_cpf();
void Lista_todos();
void escrever();
void removeNewLine();
int cont,_flag,_i;
int main(){
    setlocale(LC_ALL,"portuguese");
    int op;
    do{
        textcolor_2(14,0);
        cls
        printf("\t\t------- Pre Moldados -------\n");
        printf("\t\t 1 - cadastrar              \n");
        printf("\t\t 2 - pesquisar              \n");
        printf("\t\t 3 - créwditoS              \n");
        printf("\t\t 4 - sair Do Programa       \n");
        printf("\t\t   >> "                        );
        op= getch()-48                              ;
        printf("\n"                                );
        switch( op                                 ){
        case 1:
            cadastro();
            break;
        case 2:
            pesquisar();
            break;
        case 3:
            //cadastro();
            break;
        case 4:
            printf(" Encerrando O Programa . . . !    Tecle\n");
            getch();
            break;
        default:
            printf("Opção Invalida . . . !\n");
        }
    }while( op != 4 );
    printf("\n\n\n");
    textcolor_2(10,12);
    return 0;
}
void cadastro(){
    do{
        cls
        printf(" o nome ");
        fflush(stdin);
        fgets(qt[cont].nome,50,stdin);
        printf(" o Cpf ");
        fflush(stdin);
        fgets(qt[cont].cpf,50,stdin);
        printf(" o numero ");
        fflush(stdin);
        fgets(qt[cont].numero,50,stdin);
        printf(" o endereço ");
        fflush(stdin);
        fgets(qt[cont].endereco,50,stdin);
        printf(" o Data ");
        fflush(stdin);
        fgets(qt[cont].data,50,stdin);
        removeNewLine();
        cont++;
        printf(" Outro Cadastro S/N ");
    }while( toupper((char)getch()) != 'N' );
}
void pesquisar(){
    int op;
    char cpf2[15];
    do{
        do{
            textcolor_2(14,0);
            cls
            printf("\n------ pesquisar cliente -------\n");
            printf("0 - sair\n");
            printf("1 - pesquisar por cpf\n");
            printf("2 - Listar Todos Clientes\n");
            op = getch()-48;
        }while(op<0 || op>2);
        switch( op ){
        case 0:
            textcolor_2(12,15);
            printf("\n  Voltando Ao Menu Principal . . . !  \n");
            textcolor_2(14,0);
            printf("\n    Tecle ");
            getch();
            break;
        case 1:
            pesq_por_cpf();
            break;
        case 2:
            Lista_todos();
            break;
        default:
            textcolor_2(12,15);
            printf("\n  Opção Inválida . . . !    Tecle  \n");
            getch();
        }
    }while(op != 0 );
}
void pesq_por_cpf(){
    textcolor_2(14,0);
    cls
    char cpf[15];
    _flag = 0;
    textcolor_2(12,15);
    printf("\n ---------- pesquisar por clientes ------------ \n");
    textcolor_2(14,0);
    printf(" O Cpf ");
    fflush(stdin);
    fgets(cpf,15,stdin);
    cpf[strlen(cpf)-1] = '\0' ;
    for(_i=0; _i<cont; _i++)
        if(strcmp(cpf,qt[_i].cpf)==0){
            escrever();
            _flag = 1;
            break;
        }
    if( ! _flag )
        printf("\n Cpf não CaDastrado . . . !    Tecle ");
    else
        printf(" Pesqizada Pronta !     Tecle ");
    getch();
}
void Lista_todos(){
    textcolor_2(14,0);
    cls
    textcolor_2(12,15);
    printf("\n  ListandO TodoS Cadastros  \n");
    textcolor_2(14,0);
    for(_i=0; _i<cont; _i++){
        escrever();
    }
    printf(" Listagem Pronta   Tecle ");
    getch();
}
void escrever(                                  ){
    printf(" CadaStRo %d\n"     ,_i+1           );
    printf(" Nome -------: %s\n",qt[_i].nome    );
    printf(" Cpf --------: %s\n",qt[_i].cpf     );
    printf(" Numero -----: %s\n",qt[_i].numero  );
    printf(" Endereço ---: %s\n",qt[_i].endereco);
    printf(" Data -------: %s\n",qt[_i].data    );
    printf(" --------------------------\n\n"    );
}
void removeNewLine(){
    qt[cont].nome    [strlen(qt[cont].nome)    -1] = '\0' ;
    qt[cont].cpf     [strlen(qt[cont].cpf )    -1] = '\0' ;
    qt[cont].numero  [strlen(qt[cont].numero)  -1] = '\0' ;
    qt[cont].endereco[strlen(qt[cont].endereco)-1] = '\0' ;
    qt[cont].data    [strlen(qt[cont].data)    -1] = '\0' ;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!