Ir ao conteúdo
  • Cadastre-se
kika123

Criação de um arquivo binário com o usuário digitando o caminho depois cadastrar

Recommended Posts

Olá pessoal, gostaria de pedir ajuda a vocês, sou iniciante nessa área e por isso queria uma ajuda de alguém para conseguir fazer um algoritmo , Preciso de ajuda para criar um arquivo binário (.dat) , que gerencie dados sobre alunos através de arquivos.(nome,curso e media no caso).(criar,cadasrto e lista)
*Criação de um arquivo
A aplicação deverá solicitar ao usuário o caminho completo + nome do arquivo a ser criado e validar
se as informações permitem a criação do arquivo e, se não permitir, manter a solicitação das
informações, até que o arquivo seja criado corretamente.
*Cadastro de aluno
O usuário deverá digitar as informações do aluno e o mesmo deverá ser salvo no arquivo que foi
criado.
* Listagem de todos os alunos
Listar nome, curso e média global de todos os alunos cadastrados no arquivo

 

Considere as seguintes informações sobre um aluno:
 nome (alfanumérico de até 30 caracteres)
 curso (alfanumérico de até 30 caracteres)
 média global (float)

tentei criar mas acho que so a parte de ciar arquivo deu certo

 

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

using namespace std;

FILE *arq=NULL;

struct aluno{
	char nome[30];
	char curso[30];
	float media;
     // variaveis do tipo registro
};

//função criar aqruivo
void criarArquivo(){
	char local [50];
	
	
	do{
	   system("cls");
     	cout<<"Digite o caminho do novo arquivo: ";
    	cin>>local;
	arq=fopen (local, "w+b");	
	
    if (arq==NULL){
        cout<<("\n O camiho não existe: ");
   }
else {
     	cout<<"\n Arquivo criado com sucesso.";
	
     }

       } while (arq=NULL);
         system ("pause");
 
    }
        
//função Aluno

void addElementos(FILE *arq){
   
     int tam;
     char local [50];
    aluno a; 
  
    
    printf("Digite a Quantidade de Aluno que Deseja Cadastrar: ");
    scanf("%d", &tam);
    (struct aluno*) malloc(tam*sizeof(struct aluno));//Loca memória para a estrutura 

	    cout<<"Digite o caminho onde se econtra arquivo: ";
    	cin>>local;
    	arq = fopen(local,"ab"); 
	 if (arq==NULL){
        cout<<("\n O camiho não existe: ");
   }
else {
     	cout<<"\n Arquivo criado com sucesso.";
     	
    system("CLS");
     }
     printf("\n----------------------------------------------------------\n\n");
     for(int i=0; i<tam; i++){
        fflush(stdin);   
        printf("Digite o Nome do Aluno: ");
        gets(a.nome);
        printf("Digite a curso ");
        gets(a.curso);
        
        printf("Digite a Media: ");
        scanf("%f",&a.media);
        fwrite(&a,sizeof(struct aluno),1,arq);   
     }  
     
     fclose(arq);
      system("PAUSE");
 
}
     
void imprimir(FILE *arq){
	
	int tam;
     char local [50];
     
     
	
	 aluno a; 
	
	
	 cout<<"Digite o caminho onde se econtra arquivo: ";
    	cin>>local;
    	arq = fopen(local,"ab"); 
	 if (arq==NULL){
        cout<<("\n O camiho não existe: ");
   }
else {
     	cout<<"\n Arquivo criado com sucesso.";
	
		system("cls");
}
	 printf("\n\nNome = %s", a.nome);
     printf("\nAluno = %s ", a.curso);
     printf("\nmedia =  %f", a.media);
     putchar('\n'); // avança uma linha
    
  
  fclose(arq);
      system("PAUSE");

}

int main(int argc, char** argv) {
	int esc;
	do{
		system("cls");
		cout<<"O que voce deseja fazer?\n\n";
		cout<<"\t(1) Criar Arquivo\n";
		cout<<"\t(2) Cadastrar Aluno\n";
		cout<<"\t(3) Listar Aluno\n";
		cout<<"\t(4) LIstar auno acima da media\n";
		cout<<"\t(5) Buscar aluno\n";
		cout<<"\t(5) Sar\n";
		cin>>esc;
		
		switch(esc){
			case 1: criarArquivo ();break;
			case 2: addElementos (arq);break;
			case 3: imprimir (arq);break;
		
		
		}
	}while(esc<=6);
	return 0;
		system("pause");
}

gostaria da colaboração de vocês! 

Compartilhar este post


Link para o post
Compartilhar em outros sites

não no caso um único arquivo  que tenhas essas opções  


O método principal desta aplicação deverá exibir um menu, onde o usuário deverá escolher uma das opções

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Nesse caso, você errou na função para criar o arquivo.

 

Use a referência do site da Microsoft, onde há a função mais apropriada para Windows.

 

Se o banco de dados for grande, o fopen() não é nada recomendado.

 

Se não for um trabalho de curso ou faculdade, recomendo ler sobre o sistema de banco de dados SQLite

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tem a ver com banco de dados e apenas pra usar manipulação de arquivos binários e ponteiros,não necessita fazer um banco de dados. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×