Ir ao conteúdo

Problemas no Cadastro em C


HeberttGomes

Posts recomendados

Postado

Bem eu tenho que fazer um programa de cadastro que contenha a seguintes informações Add Aluno , Pesquisar Aluno , Relatórios de Aluno , Excluir/Editar Alunos e Finalizar e Salvar

Pois bem estou com problemas na opção e editar e excluir e Finalizar e salvar

aqui embaixo segue o programa


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

struct cadastro{

char Nome[200];
char NR[200];
char Telefone[200];
char Celular[200];
char Escola [200];
char Horario[200];
char Serie[200];


}pessoa[200];

void menu();
void selecao();
void cadastro();
void relatorio();
void pesquisar();
void verificacao();
void excluir();

int main(){

menu();
return 0;
system("pause");
}

void menu(){
system("cls");
printf("\n\n ESCOLHA UMA OPCAO: \n\n");
printf("________________________________________________________________________________");
printf("\n 1 - Cadastro de Aluno ");
printf("\n 2 - Relatorio de Aluno");
printf("\n 3 - Pesquisa de Aluno ");
printf("\n 4 - FECHAR PROGRAMA ");
printf("\n________________________________________________________________________________\n");
selecao();


}

void selecao(){

int opcao;

printf("\n\n\n DIGITE SUA OPCAO: ");
scanf("%i",&opcao);

switch(opcao){
case 1:
cadastro();
getch();
menu();
break;
case 2:
relatorio();
getch();
menu();
break;
case 3:
pesquisar();
getch();
menu();
break;
break;
case 4:
exit(0);
break;
default:
printf("\n\n NUMERO NAO IDENTIFICADO!");
printf("\n\n POR FAVOR TENTE NOVAMENTE");
getch();
menu();
break;
}

}

void cadastro(){

for(int i=0; i<1; i++){
system("cls");
printf("\n\n FORMULARIO PARA CADASTRO DE CLIENTES \n\n");
printf("\n 1 - DIGITE O NOME DO Aluno: ");
fflush(stdin);
gets(pessoa[i].Nome);
printf("\n 2 - DIGITE Nome do Responsavel: ");
fflush(stdin);
gets(pessoa[i].NR);
printf("\n 3 - DIGITE Celular do Aluno: ");
fflush(stdin);
gets(pessoa[i].Celular);
printf("\n 4 - DIGITE o Telefone Fixo: ");
fflush(stdin);
gets(pessoa[i].Telefone);
printf("\n 5 - DIGITE Serie/Turma do aluno: ");
fflush(stdin);
gets(pessoa[i].Serie);
printf("\n 6 - DIGITE a Escola do Aluno: ");
fflush(stdin);
gets(pessoa[i].Escola);
printf("\n 6 - DIGITE os horarios do Aluno: ");
fflush(stdin);
gets(pessoa[i].Horario);


}
}

void relatorio(){

for(int i=0; i<1; i++){

void verificacao();
system("cls");
printf("\n\n LISTA DE CLIENTES QUE FORAM CADASTRADOS \n\n");
printf("\n 1 - Nome do Aluno: %s",pessoa[i].Nome);
printf("\n 2 - Nome do Responsavel: %s",pessoa[i].NR);
printf("\n 3 - Telefone Celular : %s",pessoa[i].Celular);
printf("\n 4 - Telefone Fixo: %s",pessoa[i].Telefone);
printf("\n 5 - Serie/Turma do Aluno: %s",pessoa[i].Serie);
printf("\n 6 - Escola do Aluno: %s",pessoa[i].Escola);
printf("\n 7 - Horario do Aluno: %s",pessoa[i].Horario);

}
}









void pesquisar(){

char pesquisa[100];

system("cls");
printf("\n DIGITE O NOME DO CLIENTE PARA PESQUISA: ");
fflush(stdin);
gets(pesquisa);

for(int i=0; i<1; i++){
if(strcmp(pessoa[i].Nome,pesquisa)){
printf("\n\n NOME NAO ENCONTRADO!");
printf("\n\n POR FAVOR TENTE NOVAMENTE");
getch();
system("cls");
pesquisar();
}
else{
system("cls");
printf("\n\n CLIENTE ENCONTRADO \n\n");
printf("\n 1 - Nome do Aluno: %s",pessoa[i].Nome);
printf("\n 2 - Nome do Responsavel: %s",pessoa[i].NR);
printf("\n 3 - Telefone Celular : %s",pessoa[i].Celular);
printf("\n 4 - Telefone Fixo: %s",pessoa[i].Telefone);
printf("\n 5 - Serie/Turma do Aluno: %s",pessoa[i].Serie);
printf("\n 6 - Escola do Aluno: %s",pessoa[i].Escola);
printf("\n 7 - Horario do Aluno: %s",pessoa[i].Horario);

}

Qualquer Ajuda é bem vinda desde já Agredecido =):D

Postado

Bom, para salvar é 1 pouco chato, mas nada difícil.

um exemplo:


typedef struct Aluno
{
int matricula;
char nome[60];
} aluno;

defini a Struct Aluno como aluno

e no MAIN

chamei ela como ponteiro.


aluno *Regbin=NULL;
Regbin = (aluno *)malloc(sizeof(aluno));

e ja aloquei ela na memória.

Agora.

antes de cadastrar você deve alocar ele na memórica com o malloc

e depois abrir o arquivo


Sua_Struct = (nome_da_Struct *)malloc(sizeof(nome_da_Struct));
Arquivo = fopen("NomeDoArquivo.extensão","w+b");


no meu exemplo fica assim:
Arqbin = fopen("Arqbin.dat","w+b");
Regbin = (aluno *)malloc(sizeof(aluno));

w+b seria Write Binary

e apos digitar os dados, voce da um fwrite

como você usa struct fica bem mais simples

só fica assim


fwrite(Struct_Utilizada,sizeof(Nome_da_Struct),1,Arquivo_de_cadastro);

meu exemplo:
fwrite(Regbin,sizeof(aluno),1,Arqbin);

no meu caso:


fwrite(Regbin,sizeof(aluno),1,Arqbin);

declarei como ponteiro a Struct Aluno como Regbin.

aluno seria a minha struct aluno

Arqbin seria o meu arquivo.

e para salvar.

apenas um


fclose(Arquivo_a_ser_Salvo);

no meu exemplo:
fclose(Arqbin);

@edit: Lembrando, que você tem que declarar no MAIN uma variavel do tipo FILE

que eu usei no meu.


FILE *Arqbin;

e ja declarei ela como ponteiro (*)

Pesquise pela net sobre manipulação de Arquivos Binários, la você encontra códigos feitos e simples de como se manipula o arquivo.

creio que até aqui (no Forum do CDH) na area de C/C++ tenha alguns com a mesma dúvida e com os problemas resolvidos

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!