Ir ao conteúdo
  • Cadastre-se

Dener Andrade

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

5
  1. Olá boa noite, estou tentando inserir uma função para exibir o Maior e Menor nome cadastrado, não estou conseguindo chamar aqueles nome que já foram cadastrados, tentei por horas porém não obtive sucesso, alguém poderia me dar um Help? por gentileza. #define _WIN32_WINNT 0x0500 // tem ficar aqui na primeira linha #define _CRT_SECURE_NO_WARNINGS // para usar scanf e outras funcoes no visual studio #include <stdio.h> #include <windows.h> #include <ctype.h> // para usar funcoes toupper e outras #include <conio.h> // biblioteca antiga para usar o comandô getch #include <string.h> // faltou esse include #include <stdlib.h> #define cls system("cls"); // Limpa a Tela #define getch() _getch() // para usar comandô getch() no visual studio #define SIZE 200 char nome [SIZE][50]; char sobrenome[SIZE][50]; char email [SIZE][50]; char cpf [SIZE][50]; char ra [SIZE][50]; int cadastro ( int ); void pesquisa (); void listar (); void remover (); int pesqui ( char* , char[200][50] ); int main(void) { int op=0,c=0; do { cls printf("\n-----PROGRAMA CADASTRO DE ALUNO-----\n\n\n\ \r 1 - Cadastrar \n\ \r 2 - Listar todos \n\ \r 3 - Pesquisar \n\ \r 4 - Remover todos \n\ \r 5 - Sair " ); printf("\n"); op = getch() - 48; switch (op) { case 1: c = cadastro( c ); // c eh contador de Linhas break; case 2: listar(); break; case 3: pesquisa(); break; case 4: remover(); break; case 5: printf("\n\n\nSaindo de Programa . . . !\n\n\n");; system("exit"); // fechar janela e voltar pro Windows // menu break; default: printf("Opcao invalida"); } } while ( op != 5 ); return 0; } void listar() { int i; for (i = 0; i < SIZE; i++) { if (cpf[i] > 0) { printf("\n Nome -------: %s\n\ \r Sobrenome --: %s\n\ \r Email ------: %s\n\ \r CPF --------: %s\n\ \r ra ---------: %s\n", nome[i], sobrenome[i], email[i],cpf[i], ra[i]); getchar(); getchar(); break; } else { printf("\tTecle\n"); getch(); break; } } } int cadastro(int linha ) { char aux[50]; do { // printf permite apresentar na tela os valores de qualquer tipo de dado printf("\n Nome --:"); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( nome[linha], aux ); printf(" Sobrenome --: "); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( sobrenome[linha], aux ); //scanf É utilizada para fazer a leitura de dados formatados via teclado. printf(" Email--:"); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( email[linha], aux ); printf(" CPF--: "); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( cpf[linha], aux ); printf(" RA--: "); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( ra[linha], aux ); printf("\ncontinuar S/N "); // para o programa continuar na linha seguinte, e conter os dados anteriomente digitados salvos linha++; } while (toupper((char)getch()) != 'N'); return linha; } // fim da função cadastrô void pesquisa() { char aux[51]; int op; do { printf("\n\tPara fazer a busca digite umas das opções abaixo:\n\n\ \r\t 1 - para pesquisar por Nome \n\ \r\t 2 - para pesquisar por Sobrenome\n\ \r\t 3 - para pesquisar por Email \n\ \r\t 4 - para pesquisar por CPF \n\ \r\t 5 - para pesquisar por Ra \n\ \r\t escolha "); op = getch() - 48; /*Utilizamos SWICTH quando queremos comparar a mesma variável ou expressão com várias opções. SWITCH é um comando em C que serve para fazer testes condicionais, testando igualdades, onde podemos usar várias opções de comparações*/ switch ( op ) { case 1: printf("\nDigite o NOME: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, nome); break; case 2: printf("\nDigite o SOBRENOME: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, sobrenome); break; case 3: printf("\nDigite o E-mail: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, email); break; case 4: printf("\nDigite o CPF: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, cpf); break; case 5: printf("\nDigite o Ra: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, ra); break; } printf("\nContinuar S/N\n"); } while (toupper((char)getch()) != 'N' ); } int pesqui(char* a, char b[200][50] ) { int i=0,flg=0; for (i == 0; i < SIZE; i++) { if (strcmp( a , b[i] ) == 0) // strcmp vai comparar se o dado pesquizado é igual ao que esta no vetor { flg = 1; printf("\n Nome--------: %s\n\ \r Sobrenome --: %s\n\ \r Email ------: %s\n\ \r CPF --------: %s\n\ \r RA ---------: %s\n", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); break; } } if (!flg) printf("\nNao tem naDa Cadastrado . . . !\n\n"); return 0; } void remover() { int i,c=200; printf("\n\nremovendo . . . ! \tTecle\n"); for (i = 0; i < SIZE; i++) { strcpy( nome[i] , "0" ); strcpy( sobrenome[i] , "0" ); strcpy( email[i] , "0" ); strcpy( cpf[i] , "0" ); strcpy( ra[i] , "0" ); } getch(); } #define SIZE 200 char nome [SIZE][50]; char sobrenome[SIZE][50]; char email [SIZE][50]; char cpf [SIZE][50]; char ra [SIZE][50]; int cadastro ( int ); void pesquisa (); void listar (); void remover (); int pesqui ( char* , char[200][50] ); int main(void) { int op=0,c=0; do { cls printf("\n-----PROGRAMA CADASTRO DE ALUNO-----\n\n\n\ \r 1 - Cadastrar \n\ \r 2 - Listar todos \n\ \r 3 - Pesquisar \n\ \r 4 - Remover todos \n\ \r 5 - Sair " ); printf("\n"); op = getch() - 48; switch (op) { case 1: c = cadastro( c ); // c eh contador de Linhas break; case 2: listar(); break; case 3: pesquisa(); break; case 4: remover(); break; case 5: printf("\n\n\nSaindo de Programa . . . !\n\n\n");; system("exit"); // fechar janela e voltar pro Windows // menu break; default: printf("Opcao invalida"); } } while ( op != 5 ); return 0; } void listar() { int i; for (i = 0; i < SIZE; i++) { if (cpf[i] > 0) { printf("\n Nome -------: %s\n\ \r Sobrenome --: %s\n\ \r Email ------: %s\n\ \r CPF --------: %s\n\ \r ra ---------: %s\n", nome[i], sobrenome[i], email[i],cpf[i], ra[i]); getchar(); getchar(); break; } else { printf("\tTecle\n"); getch(); break; } } } int cadastro(int linha ) { char aux[50]; do { // printf permite apresentar na tela os valores de qualquer tipo de dado printf("\n Nome --:"); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( nome[linha], aux ); printf(" Sobrenome --: "); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( sobrenome[linha], aux ); //scanf É utilizada para fazer a leitura de dados formatados via teclado. printf(" Email--:"); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( email[linha], aux ); printf(" CPF--: "); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( cpf[linha], aux ); printf(" RA--: "); fgets( aux, 50, stdin );; aux[ strlen(aux) - 1] = '\0'; strcpy( ra[linha], aux ); printf("\ncontinuar S/N "); // para o programa continuar na linha seguinte, e conter os dados anteriomente digitados salvos linha++; } while (toupper((char)getch()) != 'N'); return linha; } // fim da função cadastrô void pesquisa() { char aux[51]; int op; do { printf("\n\tPara fazer a busca digite umas das opções abaixo:\n\n\ \r\t 1 - para pesquisar por Nome \n\ \r\t 2 - para pesquisar por Sobrenome\n\ \r\t 3 - para pesquisar por Email \n\ \r\t 4 - para pesquisar por CPF \n\ \r\t 5 - para pesquisar por Ra \n\ \r\t escolha "); op = getch() - 48; /*Utilizamos SWICTH quando queremos comparar a mesma variável ou expressão com várias opções. SWITCH é um comando em C que serve para fazer testes condicionais, testando igualdades, onde podemos usar várias opções de comparações*/ switch ( op ) { case 1: printf("\nDigite o NOME: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, nome); break; case 2: printf("\nDigite o SOBRENOME: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, sobrenome); break; case 3: printf("\nDigite o E-mail: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, email); break; case 4: printf("\nDigite o CPF: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, cpf); break; case 5: printf("\nDigite o Ra: "); fgets(aux, 50, stdin);; aux[strlen(aux) - 1] = '\0'; pesqui(aux, ra); break; } printf("\nContinuar S/N\n"); } while (toupper((char)getch()) != 'N' ); } int pesqui(char* a, char b[200][50] ) { int i=0,flg=0; for (i == 0; i < SIZE; i++) { if (strcmp( a , b[i] ) == 0) // strcmp vai comparar se o dado pesquizado é igual ao que esta no vetor { flg = 1; printf("\n Nome--------: %s\n\ \r Sobrenome --: %s\n\ \r Email ------: %s\n\ \r CPF --------: %s\n\ \r RA ---------: %s\n", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); break; } } if (!flg) printf("\nNao tem naDa Cadastrado . . . !\n\n"); return 0; } void remover() { int i,c=200; printf("\n\nremovendo . . . ! \tTecle\n"); for (i = 0; i < SIZE; i++) { strcpy( nome[i] , "0" ); strcpy( sobrenome[i] , "0" ); strcpy( email[i] , "0" ); strcpy( cpf[i] , "0" ); strcpy( ra[i] , "0" ); } getch(); }
  2. @devair1010 Oi Devair boa noite, eu executei o código que você enviou e na paste de Listar todos, quando eu aperto a tecla 2 pra listar, aparece na tela bem rápido e depois some, vi que pra isso é utilizado o break, mas mesmo assim não esta funcionando..
  3. @arfnetomuito obrigado pela ajuda e pelo feedback! , vou me atentar e melhorar tudo isso que você mencionou, sei que estou no começo da programação e toda ajuda e conselho são sempre bem vindos. Valeu mesmo !
  4. oi pessoal tudo bem, eu estou no 2 semestre de Análise e Desenvolvimento de sistema, e estou tendo que fazer um programa de cadastro de alunos, estou com dificuldade para colocar a função EXCLUIR TODOS.. se alguém souber pode me dar um help. #include<stdio.h> #include <stdlib.h> #define SIZE 200 char nome[SIZE][50]; char sobrenome[SIZE][50]; char email[SIZE][50]; double cpf[SIZE]; int op; double ra[SIZE]; void cadastro(); void pesquisa(); void lista(); void remover(); int main(void){ //cadastro(); //lista(); //pesquisa(); do{ system("cls");// printf("\n----CADASTRAR ALUNO----\n\n\n1 - Cadastrar\n2 - Listar todos\n3 - Pesquisar\n4 - Sair\n "); scanf("%d", &op); switch(op){ case 1: cadastro(); break; case 2: lista(); break; case 3: pesquisa(); break; case 4: system("exit"); // fechar janela e voltar pro menu break; default: printf("Opcao invalida"); getchar(); getchar(); break; } }while(op!=4); } void lista(){ int i; for(i=0;i<SIZE;i++){ if(cpf[i]> 0){ printf("\nNome: %s \nSobrenome: %s \nEmail: %s \nCPF: %.0lf \nra: %.0lf ", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); } else{ break; } } getchar(); getchar(); } void cadastro(){ static int linha; do{ // printf permite apresentar na tela os valores de qualquer tipo de dado printf("\nDigite o seu nome: "); scanf("%s", &nome[linha] ); printf("\nDigite seu sobrenome: "); scanf("%s", &sobrenome[linha]); //scanf É utilizada para fazer a leitura de dados formatados via teclado. printf("\nDigite o seu email: "); scanf("%s", &email[linha] ); printf("\nDigite o seu cpf: "); scanf("%lf", &cpf[linha] ); printf("\nDigite o seu RA: "); scanf("%lf", &ra[linha]); printf("\nDigite 1 para continuar ou outro valor para para sair: "); scanf("%d", &op ); // para o programar continuar na linha seguinte, e conter os dados anteriomente digitados salvos // opção 1 linha++; //opção 2 linha=linha+1; }while(op==1); } // fim da função cadastro void pesquisa(){ double cpfPesquisa; char emailPesquisa[50]; char nomePesquisa[50]; char sobrenomePesquisa[50]; double raPesquisa; int i; do{ printf("\n\tPara fazer a busca digite umas das opções abaixo:\n\n "); printf("\n\t1 - para pesquisar por Nome\n "); printf("\t2 - para pesquisar por Sobrenome\n "); printf("\t3 - para pesquisar por Email\n "); printf("\t4 - para pesquisar por CPF\n "); printf("\t5 - para pesquisar por Ra\n "); scanf("%d", &op); /*Utilizamos SWICTH quando queremos comparar a mesma variável ou expressão com várias opções. SWITCH é um comando em C que serve para fazer testes condicionais, testando igualdades, onde podemos usar várias opções de comparações*/ switch(op){ case 1: printf("\nDigite o NOME: "); scanf("%s", &nomePesquisa); for(i==0;i<SIZE;i++){ if(strcmp(nome[i], nomePesquisa)==0){ // strcmp vai comparar sem o emial[i] é igual o que esta no emailPesquisa)){ printf("\nNome: %s\nSobrenome: %s\nEmail: %s\nCPF: %.lf\nRA: %lf", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); } } break; case 2: printf("\nDigite o SOBRENOME: "); scanf("%s", &sobrenomePesquisa); for(i==0;i<SIZE;i++){ if(strcmp(sobrenome[i], sobrenomePesquisa)==0){ // strcmp vai comparar sem o emial[i] é igual o que esta no emailPesquisa)){ printf("\nNome: %s\nSobrenome: %s\nEmail: %s\nCPF: %lf\nRA: %lf", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); } } break; case 3: printf("\nDigite o E-mail: "); scanf("%s", &emailPesquisa); for(i==0;i<SIZE;i++){ if(strcmp(email[i], emailPesquisa)==0){ // strcmp vai comparar sem o emial[i] é igual o que esta no emailPesquisa)){ printf("\nNome: %s\nSobrenome: %s\nEmail: %s\nCPF: %lf\nRA: %lf", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); } } break; case 4: printf("\nDigite o CPF: " ); scanf("%lf", &cpfPesquisa); for(i=0 ;i<SIZE; i++ ) { if(cpf[i]==cpfPesquisa){ printf("\nNome: %s\nSobrenome: %s\nEmail: %s\nCPF: %lf\nRA: %lf", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); } } break; case 5: printf("\nDigite o Ra: " ); scanf("%lf", &cpfPesquisa); for(i=0 ;i<SIZE; i++ ) { if(ra[i]==raPesquisa){ printf("\nNome: %s\nSobrenome: %s\nEmail: %s\nCPF: %lf\nRA: %lf", nome[i], sobrenome[i], email[i], cpf[i], ra[i]); } } break; default: printf("\n Opção invalida"); break; } printf("\nDigite 1 para continuar pesquisando "); scanf("%d", &op); }while(op==1); }

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