Ir ao conteúdo

Posts recomendados

Postado


\\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
Postado

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

Postado

@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;

}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...