Ir ao conteúdo

Cadastro e pesquisar em c\c++ AJUDA


andressa.funes

Posts recomendados

Postado

Gente ja to desesperada to fazendo uma atividade na faculdade não quero que vocês fação o programa pra mim só me da uma luz porque já não sei mais como fazer essa ***** funciona já faz duas semanas q to nisso e não saio.

O programa é um seguinte preciso cadastrar 20 pessoas com nome, idade, e profissão só que não pode ser tudo de uma vez e depois eu preciso pesquisar por nome.

O isso q eu ja fiz

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

struct agenda {
int cod;
char nome[50];
int idade;
char profissao[30];
} registros[20];

int main() {
int i;
int opcao=1;
int x;
char busca();
char vazio=0;
int codigo=0;

for(i = 1; i <= 20; i++){
registros[i].cod=codigo;
}
while (opcao!=5) {
printf("MENU \n");
printf("1 - Inserir Dados \n");
printf("2 - Pesquisar \n");
printf("3 - Alterar Dados \n");
printf("4 - Excluir \n");
printf("\n opcao: ");
scanf("%d", &opcao);
switch(opcao){
scanf("%d", &opcao);
case 1: { // Cadastrar
if (registros[i].cod==0){
x=i;
printf("Digite o Codigo: ");
scanf("%d", &registros[x].cod);
printf("Digite o seu nome: ");
scanf("%s", &registros[x].nome);
printf("Digite o sua idade: ");
scanf("%d", &registros[x].idade);
printf("Digite o sua profissao: ");
scanf("%s", &registros[x].profissao);
}

else {
printf("A agenda esta cheia \n");

}
}
break;
case 2: { // Busca
for(i = 1; i <= 20; i++){
printf("%d", i);
x=i;
busca();
printf("Digite o nome a ser pesquisado: ", busca);
scanf("%s", &busca);
if (busca==registros[x].nome) {
printf("\nNome:%s",registros[x].nome);
printf("\nIdade:%d",registros[x].idade);
printf("\nProfissao:%s",registros[x].profissao);
}
else {
printf("Nome não encontrado");
}
}
}

}

}
}

+ não ta pesquisando e não sei onde ta o erro e tambem ta cadastrando + só consigo cadastra uma pessoa não 20 me ajudem por favor.

Postado

Corrigi a parte de sintaxe do seu código e algumas coisas que você estava fazendo errado.

Não mexi nele pra funcionar como você quer, mas já é um passo pra poder dar continuidade.

Segue código para comparação:


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

struct agenda
{
int cod;
char nome[50];
int idade;
char profissao[30];
};

int main()
{

int i;
int opcao = 1;
int x;
char busca[50];
// char vazio = 0; // nao utilizada
int codigo = 0;
struct agenda registros[20];

for ( i = 1; i <= 20; i++ )
{
registros[i].cod = codigo;
}

while ( opcao != 5 )
{

printf("MENU \n");
printf("1 - Inserir Dados \n");
printf("2 - Pesquisar \n");
printf("3 - Alterar Dados \n");
printf("4 - Excluir \n");
printf("5 - Sair \n");
printf("\n opcao: ");
scanf("%d", &opcao );

switch ( opcao )
{
case 1:
{ // Cadastrar
if ( registros[i].cod == 0 )
{

x = i;

printf("Digite o Codigo: ");
scanf("%d", &registros[x].cod );

printf("Digite o seu nome: ");
scanf("%s", registros[x].nome );

printf("Digite o sua idade: ");
scanf("%d", &registros[x].idade );

printf("Digite o sua profissao: ");
scanf("%s", registros[x].profissao );

}
else
{
printf("A agenda esta cheia \n");
}
break;
}


case 2:
{ // Busca

for ( i = 1; i <= 20; i++ )
{

printf("%d", i );

x = i;

printf("Digite o nome a ser pesquisado: ");
scanf("%s", busca );

if ( busca == registros[x].nome )
{

printf("\nNome:%s", registros[x].nome );
printf("\nIdade:%d", registros[x].idade );
printf("\nProfissao:%s", registros[x].profissao );

}
else
{
printf("Nome não encontrado");
}
}

}

}

}

return 0;

}

Agora ele compila corretamente.

Qualquer dúvida, é só postar.

Postado
Corrigi a parte de sintaxe do seu código e algumas coisas que você estava fazendo errado.

Não mexi nele pra funcionar como você quer, mas já é um passo pra poder dar continuidade.

Segue código para comparação:


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

struct agenda
{
int cod;
char nome[50];
int idade;
char profissao[30];
};

int main()
{

int i;
int opcao = 1;
int x;
char busca[50];
// char vazio = 0; // nao utilizada
int codigo = 0;
struct agenda registros[20];

for ( i = 1; i <= 20; i++ )
{
registros[i].cod = codigo;
}

while ( opcao != 5 )
{

printf("MENU \n");
printf("1 - Inserir Dados \n");
printf("2 - Pesquisar \n");
printf("3 - Alterar Dados \n");
printf("4 - Excluir \n");
printf("5 - Sair \n");
printf("\n opcao: ");
scanf("%d", &opcao );

switch ( opcao )
{
case 1:
{ // Cadastrar
if ( registros[i].cod == 0 )
{

x = i;

printf("Digite o Codigo: ");
scanf("%d", &registros[x].cod );

printf("Digite o seu nome: ");
scanf("%s", registros[x].nome );

printf("Digite o sua idade: ");
scanf("%d", &registros[x].idade );

printf("Digite o sua profissao: ");
scanf("%s", registros[x].profissao );

}
else
{
printf("A agenda esta cheia \n");
}
break;
}


case 2:
{ // Busca

for ( i = 1; i <= 20; i++ )
{

printf("%d", i );

x = i;

printf("Digite o nome a ser pesquisado: ");
scanf("%s", busca );

if ( busca == registros[x].nome )
{

printf("\nNome:%s", registros[x].nome );
printf("\nIdade:%d", registros[x].idade );
printf("\nProfissao:%s", registros[x].profissao );

}
else
{
printf("Nome não encontrado");
}
}

}

}

}

return 0;

}

Agora ele compila corretamente.

Qualquer dúvida, é só postar.

Valeu pela ajuda + tentei rodar e ainda esta dando problema pois a agenda aparece como cheia sem eu cadastrar nada então a pesquisa não sai

Postado

Isso acontece porque, o valor de 'i' no momendo da verificação é '20', por causa do contador 'for' que você colocou antes.

Crie uma variável 'j' que será o contador de inserção, inicie com '0' e quando terminar de cadastrar, incremente ele em 1.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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