Baixe o app para aproveitar ainda mais
Prévia do material em texto
#include <stdio.h> #include <string.h> void limpaBuffer(){ setbuf(stdin,NULL); } //definicao da struct typedef struct { int codigo; float nota1,nota2,nota3, mediaNotas; char mat[4]; char nome[30]; char status[15]; } turma; //programa principal main() { FILE *bancoPesquisa; turma aluno; int i=48; char sair='\0'; bancoPesquisa = fopen("alunos.dat","wb+"); //gravar os dados digitados while (sair!='n'){ aluno.codigo = i; printf("Qual sua Matricula ?\n"); limpaBuffer(); scanf("%s",&aluno.mat); strupr(aluno.mat); printf("Qual seu Nome ?\n"); limpaBuffer(); scanf("%s",&aluno.nome); strupr(aluno.nome); printf("Qual sua Nota_1 ?\n"); limpaBuffer(); scanf("%f",&aluno.nota1); printf("Qual sua Nota_2 ?\n"); limpaBuffer(); scanf("%f",&aluno.nota2); printf("Qual sua Nota_3 ?\n"); limpaBuffer(); scanf("%f",&aluno.nota3); aluno.mediaNotas = (aluno.nota1 + aluno.nota2 + aluno.nota3) / 3; if(aluno.mediaNotas >= 8.5){ strcpy(aluno.status , "Excelente"); } if( (aluno.mediaNotas >= 7.0) && ( aluno.mediaNotas <8.5) ){ strcpy(aluno.status , "Bom"); } if(aluno.mediaNotas < 7.0){ strcpy(aluno.status , "Preocupante"); } fwrite(&aluno, sizeof(turma), 1, bancoPesquisa); i++; printf("Digite n Para Encerrar Pesquisa...\n"); limpaBuffer(); scanf("%c", &sair); if(i>50){ printf("A Ficha dos Alunos ultrapassou de 50 Registros.\n"); sair='n'; } } fclose(bancoPesquisa); // Abrir para a leitura do que esta no arquivo bancoPesquisa = fopen("alunos.dat","rb+"); if (bancoPesquisa != NULL) { fread(&aluno, sizeof(turma), 1, bancoPesquisa); if (ferror(bancoPesquisa)) { printf("\nOcorreu um erro na leitura."); } while (!feof(bancoPesquisa)) { limpaBuffer(); printf("\n\nCodigo: %d|Matricula: %s|Nome: %s|Nota_1: %.2f|Nota_2: %.2f|Nota_3: %.2f|Media: %.2f|Status: %s|", aluno.codigo, aluno.mat, aluno.nome, aluno.nota1, aluno.nota2, aluno.nota3, aluno.mediaNotas, aluno.status); fread(&aluno, sizeof(turma), 1, bancoPesquisa); } } fclose(bancoPesquisa); }
Compartilhar