Ir ao conteúdo

Posts recomendados

Postado
#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
Postado

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
Postado

@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'    );
}

 

Postado
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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!