Ir ao conteúdo
  • Cadastre-se
Jederson Yago

C inserir em cadastro em arquivos

Posts recomendados



\\CADASTRO.H

#define FILMES_H_INCLUDED
#ifndef FILMES_H_INCLUDED


void menu();
void CadastrarAluno();
void ListarAlunos();
void RemoverAluno();
void PesquisarAluno();

#endif


\\CADASTRO.C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "FILMES.h"
#define MAX_ALUNOS 50

typedef struct aluno{
	char nome[50];
	float notas[4];
	int ativo;
}Aluno;

FILE* arq;
Aluno alunos[MAX_ALUNOS];

//Função menu para o gerenciamento
void menu(){
	
	int op;
do{
	system("cls");
	system("color 4F");
	puts("|-----------------------------------------------|");
	puts("|  Programador: JEDERSON YAGO / FRANCISCO RUAN  |");
	puts("|-----------------------------------------------|");
	puts("|         PROGRAMA DE CONTROLE DE LOCADORA      |");
	puts("|----------------------MENU---------------------|");
	puts("|                                               |");
	puts("|           1. Cadastrar Aluno                  |");
	puts("|           2. Remover Aluno                    |");
	puts("|           3. Alunos Reprovados                |");
	puts("|           4. Pesquisar Alunos                 |");
	puts("|           5. Listar Alunos                    |");
	puts("|           0. Sair                             |");
	puts("|                                               |");
	puts("|-----------------------------------------------|\n");
	scanf("%d", &op);
	getchar();
	switch(op)
	{
	case 1:
		CadastrarAluno();
		break;
	case 2:
		RemoverAluno();
		break;
	case 4:
		PerquisarAluno();
	case 5:
		ListarAlunos();
		break;
	default:
		break;
	}
	getchar();
}while(op!=0);

}

//Função para o cadastro de alunos e nota
void CadastrarAluno(){
	char nome[50];
	float notas[4];
	int op;
	int i;
	do{
		system("cls");
		printf("\nNome: ");
		fgets(nome,sizeof(nome),stdin);
		printf("\n1 - Bimestre: ");
		scanf("%f", &notas[0]);
		printf("\n2 - Bimestre: ");
		scanf("%f", &notas[1]);
		printf("\n3 - Bimestre: ");
		scanf("%f", &notas[2]);
		printf("\n4 - Bimestre: ");
		scanf("%f", &notas[3]);
		for(i = 0; i < MAX_ALUNOS; ++i){
			if(alunos[i].ativo == 0){
				alunos[i].notas[0] = notas[0];
				alunos[i].notas[1] = notas[1];
				alunos[i].notas[2] = notas[2];
				alunos[i].notas[3] = notas[3];
				strcpy(alunos[i].nome, nome);
				alunos[i].ativo = 1;
				break;
			}
		}
		printf("\n1 - Continuar\n0 - Sair\n");
		scanf("%d", &op);
	}while(op!=0);
}

void ListarAlunos(){
	int i;
	system("cls");
	printf("\n LISTA DE ALUNOS\n");
	for(i = 0; i < MAX_ALUNOS; ++i){
		if(alunos[i].ativo == 1){ 
		printf("Matricula: %d", i+1);	
		printf("\nNome:%s", alunos[i].nome);
		printf("\n1 - Bimestre: %0.2f", alunos[i].notas[0]);
		printf("\n2 - Bimestre: %0.2f", alunos[i].notas[1]);
		printf("\n3 - Bimestre: %0.2f", alunos[i].notas[2]);
		printf("\n4 - Bimestre: %0.2f", alunos[i].notas[3]);
		printf("\n---------\n");
		}

	}
}

void RemoverAluno(){
	int matricula;
	ListarAlunos();
	printf("\nDigite a matricula do aluno a ser removido: ");
	scanf("%d", &matricula);
	--matricula;
	alunos[matricula].ativo = 0;
	printf("\nAluno removido com sucesso");
	getchar();
	
}

void PerquisarAluno(){
	
	int i;
	char nome[50];
	int op;
	do{
	system("cls");
	printf("Digite o nome do aluno para pesquisar: ");
	fgets(nome,sizeof(nome),stdin);
	for(i = 0; i < MAX_ALUNOS; ++i){
		if(strstr(alunos[i].nome,nome)!=NULL){
			printf("Matricula: %d", i+1);	
			printf("\nNome:%s", alunos[i].nome);
			printf("\n1 - Bimestre: %0.2f", alunos[i].notas[0]);
			printf("\n2 - Bimestre: %0.2f", alunos[i].notas[1]);
			printf("\n3 - Bimestre: %0.2f", alunos[i].notas[2]);
			printf("\n4 - Bimestre: %0.2f", alunos[i].notas[3]);
			printf("\n---------\n");
		}
	}
	printf("Digite 0 para sair ou 1 para nova perquisa: ");
	scanf("%d", &op);
	getchar();
}while(op!=0);
}   
                              

\\MAIN.C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "FILMES.h"


int main(){
	
	menu();

	return 0;
}                              

Boa Tarde, estou com um problema e queria saber se podiam me ajudar, fiz esse codigo de cadastro simpre de alunos e notas e queria coloca-lo para ser inseridos em arquivos, poderiam me ajudar e explicar como farei isso? 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jederson Yago     para gravar em arquivo voce usa o comando fopen , para abrir o arquivo , sendo que o arquivo binario eh melhor para usar com struct , mas tambem mais difícil de usar do que o arquivo txt , entao no seu menu coloque a opcao de salvar no arquivo , e para salvar no binario use o comando fwrite , e no txt use o comando fprintf .

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Não entendi muito bem, pode dar um exemplo? de algum codigo qualquer pf?

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jederson Yago    seu código é bem avançado , não entendi como ele funciona ,   o include <FILME.H>  não foi reconhecido ,   mas a parte de gravar no arquivo poderia ser assim  :

#include <stdio.h>
#include <string.h>
struct foo{
    char nome[30];
    float altura;
    int idade;
}bar[10];
int j,cont;
int main(){
    FILE *arq;
    char x,variavel[80];
    arq=fopen("nome_arquivo27.txt","r");
    if(arq==NULL)
        arq=fopen("nome_arquivo27.txt","w");
/*    pega tudo no arquivo e coloca na struct    */
    while(fscanf(arq,"%s", bar[cont].nome  ) != EOF &&/* nome limitado à apenas uma palavra */
          fscanf(arq,"%f",&bar[cont].altura) != EOF &&
          fscanf(arq,"%d",&bar[cont].idade ) != EOF ){
        printf("nome ===> %s\n"   ,bar[cont].nome   );
        printf("altura => %.2f\n" ,bar[cont].altura );
        printf("idade ==> %d\n\n",bar[cont].idade   );
        cont++;
    }
    fclose(arq);
/*       cadastrar quantos quiser         */
    do{
        printf("nome ");
        fflush(stdin);
        scanf("%s",bar[cont].nome);

        printf("altura ");
        fflush(stdin);
        scanf("%f",&bar[cont].altura);

        printf("idade ");
        fflush(stdin);
        scanf("%d",&bar[cont].idade);

        cont++;

        printf("Quer inserir outro  S/N ");
        fflush(stdin);
        scanf("%c",&x);
    }while(x !='n');
/*      salvar tudo no arquivo         */
    arq=fopen("nome_arquivo27.txt","w");/* cria o arquivo , e zera ele para gravar do começo */
    for(j=0;j<cont;j++){
        fprintf(arq, "%s\n"  ,bar[j].nome  );
        fprintf(arq, "%.2f\n",bar[j].altura);
        fprintf(arq, "%d\n"  ,bar[j].idade );
    }
    fclose(arq);
    return 0;

}

 

  • Curtir 1

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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!