Ir ao conteúdo

Criar cadastro e pesquisa em C


lffreis

Posts recomendados

Postado

Oi, pessoal, bom dia!

Sou novato em programação em C e estou em dúvida do caramba de como fazer o seguinte:

1 - crie um programa que armazene n possibilidades de alunos. Para cada aluno deve ser definido:

- nome; idade ;matrícula;curso;

Criar um tipo Struct chamada “cadastro”. O struct cadastro deverá conter os dados do aluno e deverá ser criado um vetor dinâmico do struct de tamanho n.

2 - Após a inclusão o usuário pode realizar uma busca por matrícula, ao encontrar o aluno, deve ser impresso todos os seus dados*/

3 - O programa deve ter um menu, onde a cada operação deve ser apresentado ao usuário. O menu deve seguir o seguinte layout

1. Adicionar Aluno

2. Buscar Aluno

3. Sair

4 - Para criar o menu deve ser utilizado o comando switch.

5 - A variável matrícula deve ser uma "string", para comparar a variável deve ser utilizada a função strcmp em (#include <string.h>)

6 - Devem ser criadas duas funções:

- add_name; = realiza a inclusão do nome;

- find_name; = realiza a busca do nome;*/

7- Criar uma biblioteca chamada siga.h onde deverão estar as funções add_name e find_name.

8 - Criar os arquivos add_name.c e find_name.c

Até o momento eu conseguir fazer isto:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#include "siga.h"
//#include "siga.h"

//Declaração das variáveis
typedef struct cadastro{
char nome[50];
char idade[2];
char matricula[11];
char endereco[30];
}Cadastro;

//Protótipos (funções)
Cadastro add_name();
void find_name(Cadastro);

//Inicia o programa na função principal main()
int main ()
{
Cadastro *al;
int op=1 ;
int i,j, b=0;
int n;
char com[11];

//Escolha do número de alunos a serem cadastrados
printf("\tBanco de Dados\n");
printf("\nCadastrar quantos alunos?");
scanf("\n %d",&n);
system("cls");
al = (Cadastro*)malloc(n*sizeof(Cadastro));

//Menu
do {

system("cls");
printf("\n\tCadastro de Alunos\n\n");
printf("\n\t 1. Adicionar Alunos");
printf("\n\t 2. Buscar Aluno (por matricula)");
printf("\n\t 3. Sair");
printf("\n\n\t Digite a opcao desejada: ");
scanf("%d", &op);

//Escolha de opção
switch (op)
{
case 1:
al[n]=add_name();
n++;
break;

case 2:
system("cls");
printf ("\n\tInsira a matricula: ");
gets (com);gets (com);
system("cls");

for (j=0;j<n;j++){

if (strcmp(com,al[j].matricula)==0){
find_name(al[j]);
b=1;
}
}

if (b==0) printf ("\n\tSua busca nao retornou valores\n\n");
b=0;
system ("pause");
break;

case 3: system ("cls");
printf("\n\n\t Programa finalizado!\t\t\t");
break;

default: puts("Tente novamente");
}
}
while (op!=3);

printf("\n\n");
system("pause");
}

Cadastro add_name ()
{
Cadastro x;
system("cls");
printf("\n\tInserir nome: ");
gets(x.nome);gets(x.nome);
system("cls");
printf("\n\tInserir idade: ");
gets( x.idade);
system("cls");
printf("\n\tInserir matricula: ");
gets(x.matricula);
system("cls");
printf("\n\tInserir endereço: ");
gets(x.endereco);
system("cls");

return x;
}

void find_name (Cadastro x)
{
printf("\n\n\tNome: %s",x.nome);
printf("\n\tIdade: %s",x.idade);
printf("\n\tMatricula: %s",x.matricula);
printf("\n\tEndereco: %s\n",x.endereco);

}

Mas não está funcionando. Também agradeço se me ajudarem a criar a biblioteca "siga.h".

Fico no aguardo da ajuda de vocês...

Abraço!

Postado
o que não esta funcionando nele?

Seria bom se você posta-se isso, pra facilitar

Bom, após abrir o programa, eu insiro quantos quero cadastrar.

Por exemplo: 2

Depois, quando escolho a opção 1, eu insiro os dados do primeiro, mas após o último cadastro do primeiro, dá erro no programa e fecha.

Na busca por matricula SEMPRE diz que não foi encontrado o aluno.

Obs.: Como faço para criar a biblioteca "siga.h" e inserir neste programa?

Grato pela ajuda!

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!