Ir ao conteúdo
  • Cadastre-se

C como faço para listar o que ja foi cadastrado?


Posts recomendados

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
#include <iostream>
#include <windows.h>
#include <conio.h>
#define TAM 200

char nome [TAM][50];
char email [TAM][50];
int cpf[TAM];
int op;
void cadastro();
void pesquisa();
void endereco();
int qntFoco[TAM];
char objFoco [TAM][50];
void lista();

int main (void){
	setlocale (LC_ALL, "Portuguese");
char logar;
char login[20];
char senha[6];
int a=10;
int acesso=0;
int verifica_senha=0;
       
       
       
    while(verifica_senha==0){
       printf("\n\t\tZ-Dengue\n\n login: ");
       gets(login);
       printf("\n senha: ");
//13 é o valor de ENTER na tabela ASCII
       while((logar=getch())!=13){ 
           senha[acesso]=logar;
           acesso++;
//imprime o * Anterisco
           printf("*");      
           }
          senha[acesso]='\0';
          acesso=0;
       system("cls");
       a= strcmp(senha,"1234");

       if(a==0){
	     printf("SENHA CORRETA");
	     system("color 0a");
	     verifica_senha=1;
	     Beep(150,200);
	   } 
	   else{
	     printf("%s SENHA ERRADA\n",senha);
	     system("color 0c");Beep(120,200);
	     printf("\n");
	   }
      
 
       }
       
	do{
		system("cls");
		
		printf("\n---[Menu]---\n\nDigite um dos números abaixo: \n \n1 - Cadastro\n2 - Lista de cadastros realizados\n3 - Pesquisar\n4 - Sair\n");
		scanf("%d", &op);
		switch(op){
			case 1:
				cadastro();
				break;
				
			case 2:
				lista();
				system("pause");
				break;
				
			case 3:
				pesquisa();		
				break;
				
			case 4:
				system("exit");
				break;
				
			default:
				printf("ERRO! OPÇÃO INVÁLIDA!\n");
				system("pause");
				break;
		}
		
	}while(op!=4);
		
}
//Início da função de listagem
void lista(){
	int lacolista;
	for(lacolista=0; lacolista<TAM; lacolista++){
		if (cpf[lacolista]>0){
			printf("\nNome: %s \nEmail: %s \nCPF: %d \n\n", nome[lacolista], email[lacolista], cpf[lacolista]);	
		}else{
			break;
		}
	}
	
}
//Inicio da função de cadastros
void cadastro(){
	static int linha;
	do {
		printf("\n Digite o nome: ");
		scanf("%s", &nome[linha]);
		
		printf("\n Digite o email: ");
		scanf("%s", &email[linha]);
		
		printf("\n Digite o cpf: ");
		scanf("%d", &cpf[linha]);
		
		printf("Digite a quantidade de focos: ");
		scanf("%s, &qntFoco[linha]");
				
		printf("\n Pressione 1 para continuar ou outro número para sair. ");
		scanf("%d", &op);
		linha++;
		
	  } while(op==1);
}
//Fim da função de cadastros

void pesquisa(){
	int p_cpf;
	char p_email[50];
	int per_linha;
	do{
		printf("\n Digite 1 para pesquisar por CPF ou 2 para pesquisar por e-mail. ");
		scanf("%d", &op);
		
		switch(op){
			case 1:
				printf("\n Digite o CPF: ");
				scanf("%d", &p_cpf);
				
				for (per_linha=0; per_linha<TAM;per_linha++)
				{
					if(cpf[per_linha]==p_cpf){
						printf("\n Nome: %s \n Email: %s \n CPF: %d ", nome[per_linha], email[per_linha], cpf[per_linha]);
					}
				}
				
			
				break;
				
			case 2:
			    printf("\nDigite o Email: ");
			    scanf("%s", &p_email);
			    
			    for (per_linha=0; per_linha<TAM; per_linha++){
			    	if(strcmp(email[per_linha], p_email)==0){
			    		printf("\nNome: %s \nEmail: %s \nCPF: %d ", nome[per_linha], email[per_linha], cpf[per_linha]);
					}
				}
				break;
				
			default:
				printf("\n Opcao invalida! opções validas: digito 1 e digito 2. ");
				
				break;
		}
		printf ("\n Digite 1 para continuar a pesquisa: ");
		scanf("%d", &op);
		
	}while(op==1);
	
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Seu programa não está bom.

 

Você tem um livro? Um manual? Talvez deva ler a definição de scanf() com cuidado ou usar outra função.

 

Quando você diz "ler e buscar" um cadastro está considerando que toda vez vai digitar tudo de novo ou vai ler de um arquivo?

 

Entenda que vai precisar de algum lugar para guardar esse cadastro na memória. O mais comum é agrupar os campos do cadastro em uma struct{} e declarar um vetor delas. Sabe o que são essas coisas?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@jonathan ferreira dos sant    na Hora de cadastrar , você poderia usar uma variável que sirva de contador , para apontar para qual posição do vetor onde guardar os dados , e a cada cadastro incremente o contador ,  e para listar use um for começando de zero e indo até o valor de tal variável .

    e seu código com algumas modificações poderia ser assim  :

#define _WIN32_WINNT 0X500
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <locale.h>
//#include <iostream>
#include <windows.h>
#include <conio.h>
#define TAM 200
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){
    SetConsoleTextAttribute(H,l+(f<<4));
}
char nome [TAM][50];
char email[TAM][50];
int cpf   [TAM]    ;
int op,j,contador;
void cadastro();
void pesquisa();
void endereco();
int qntFoco[TAM];
char objFoco[TAM][50];
void lista();
int main (void){
    setlocale (LC_ALL, "Portuguese");
    char logar;
    char login[20];
    char senha[6];
    int a=10,contador=0;
    int acesso=0;
    int verifica_senha=0;
    while(verifica_senha==0){
        textcolor_2(14,0);
        printf("\n\t\tZ-Dengue\n\n login: ");
        gets(login);
        printf("\n senha: ");
        //13 é o valor de ENTER na tabela ASCII
        while((logar=getch())!=13){
            senha[acesso]=logar;
            acesso++;
            //imprime o * Anterisco
            printf("*");
        }
        senha[acesso]='\0';
        acesso=0;
        system("cls");
        //a= strcmp(senha,"1234");
        if(strcmp(senha,"1234") == 0 ){
            textcolor_2(12,15);
            printf("SENHA CORRETA");
            verifica_senha=1;
            Beep(150,200);
	    }
	    else{
	        textcolor_2(12,15);
            printf("%s SENHA ERRADA\n",senha);
            Beep(120,200);
            printf("\n");
        }
    }
    do{
        system("cls");
        printf("\n---[Menu]---\n\n");
        printf("Digite um dos números abaixo :\n\n");
        printf("1 - Cadastro\n");
        printf("2 - Lista de cadastros realizados\n");
        printf("3 - Pesquisar\n");
        printf("4 - Sair\n");
        printf("    >> ");
        op = getch()-48;
        printf("\n");
        switch( op ){
        case 1:
            cadastro();
            break;
        case 2:
            lista();
            system("pause");
            break;
        case 3:
            pesquisa();
            break;
        case 4:
            printf(" Saindo . . . !\n     Tecle ");
            getch();
            break;
        default:
            printf("ERRO! OPÇÃO INVÁLIDA!\n");
            system("pause");
            break;
        }
    }while( op != 4 );
    return 0;
}
//Início da função de listagem
void lista(){
	for(j=0; j<contador; j++                    ){
        printf("    cadastro  %d\n"  ,j+1       );
        printf(" Nome ------- %s\n"  ,nome[j]   );
        printf(" Email ------ %s\n"  ,email[j]  );
        printf(" Cpf -------- %d\n"  ,cpf[j]    );
        printf(" QntFoco ---- %d\n\n",qntFoco[j]);
	}
}
//Inicio da função de cadastros
void cadastro(){
    do{
        fflush(stdin);
        printf(" Digite o nome ----------------: ");
        scanf("%s",nome[contador]                 );
        printf(" Digite o email ---------------: ");
        fflush(stdin);
        scanf("%s",email[contador]                );
        printf(" Digite o cpf -----------------: ");
        fflush(stdin);
        scanf("%d",&cpf[contador]                 );
        printf(" Digite a quantidade de focos -: ");
        fflush(stdin);
        scanf("%d",&qntFoco[contador]              );
        printf("Cadastrar Outro S/N "             );
        contador++                                 ;
        printf("\n");
    }while(toupper((char)getch() ) == 'S'       );
}
//Fim da função de cadastros
void pesquisa(){
    int p_cpf;
    char p_email[50];
    int per_linha;
    do{
        printf("\n Digite 1 para pesquisar por CPF ou 2 para pesquisar por e-mail. ");
        scanf("%d", &op);
        switch(op){
        case 1:
            printf("\n Digite o CPF : ");
            scanf("%d",&p_cpf);
            for (per_linha=0; per_linha<contador; per_linha++){
                if( cpf[per_linha] == p_cpf  ){
                    printf(" Nome -----: %s\n"  ,nome [per_linha]);
                    printf(" Email ----: %s\n"  ,email[per_linha]);
                    printf(" CPF ------: %d\n\n",cpf  [per_linha]);
                    break;
                }
            }
            break;
        case 2:
            printf("\nDigite o Email : ");
            scanf("%s",p_email);
            for(per_linha=0; per_linha<contador; per_linha++   ){
                if( strcmp(email[per_linha],p_email) == 0 ){
                    printf(" Nome -----: %s\n"  ,nome [per_linha]);
                    printf(" Email ----: %s\n"  ,email[per_linha]);
                    printf(" CPF ------: %d\n\n",cpf  [per_linha]);
                    break;
                }
            }
            break;
            default:
            printf("\n Opcao invalida! opções validas: digito 1 e digito 2. ");
            break;
        }
        printf (" Continuar a Pesquisa S/N ");
    }while(toupper((char)getch()) == 'S'    );
}

 

Link para o comentário
Compartilhar em outros sites

18 minutos atrás, jonathan ferreira dos sant disse:

@arfneto a principio vai digitar toda vez mesmo, é para um trabalho da faculdade.

 

Entendeu o que eu expliquei? Não perguntou nadinha...

20 minutos atrás, arfneto disse:

Você tem um livro? Um manual? Talvez deva ler a definição de scanf() com cuidado ou usar outra função.

 

Quando você diz "ler e buscar" um cadastro está considerando que toda vez vai digitar tudo de novo ou vai ler de um arquivo?

 

Entenda que vai precisar de algum lugar para guardar esse cadastro na memória. O mais comum é agrupar os campos do cadastro em uma struct{} e declarar um vetor delas. Sabe o que são essas coisas?

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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...