Ir para conteúdo
Fórum Script Brasil
  • 0

arquivos


luis galdino

Pergunta

4 respostass a esta questão

Posts Recomendados

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



struct aluno {
char nome[40];
int idade;
int mat;
float nota1,nota2,nota3;
};

aluno a;
FILE*p;


void cadastro(aluno a)
{
int i;
p=fopen("c:\\temp\\aluno","w");

if(p==NULL){

printf("ERRO NA ABERTURA DO ARQUIVO");}
else
{
printf("NOME:\n");
fflush(stdin);
gets(a.nome);
system("cls");
printf("IDADE:\n");
fflush(stdin);
scanf("%d",&a.idade);
system("cls");
printf("MAT:\n");
fflush(stdin);
scanf("%d",&a.mat);
system("cls");

printf("NOTAS:\n");
scanf("%f%f%f\n",&a.nota1,&a.nota2,&a.nota3);
fwrite(&a,sizeof(a),1,p);
}
fclose(p);
system("pause");
system("cls");
} 
void listar(aluno 
{int i;
p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO NA ABERTURA DO ARQUIVO");
else
{
fread(&b,sizeof(,1,p); 

if(ferror(p))
printf("erro");
else
{

while(!feof(p))
{
printf("NOME:%s\n",b.nome);
printf("IDADE:%d\n",b.idade);
printf("MAT:%d\n",b.mat);
printf("NOTAS:%f%f%f\n",b.nota1,b.nota2,b.nota3);
fread(&b,sizeof(,1,p); 
}
}
}
fclose(p);
system("pause");
system("cls");
}

void listar_aprov(aluno 
{float med,soma=0;

int i;
p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO NA ABERTURA DO ARQUIVO");
else{
fread(&b,sizeof(p),1,p);



med=(b.nota1+b.nota2+b.nota3)/3;

if(med>7){

printf("NOME:%s\n",b.nome);
printf("IDADE:%d\n",b.idade);
printf("MAT:%d\n",b.mat);
printf("NOTAS:%f%f%f\n",b.nota1,b.nota2,b.nota3);
}
fread(&b,sizeof(,1,p); 
}

fclose(p);
system("pause");
system("cls");
}

Link para o comentário
Compartilhar em outros sites

  • 0

luis galdino, não implementei no seu código porém uma idéia seria voce abrir o arquivo em modo de leitura e ir lendo todas as notas dos alunos por exemplo com fscanf quando voce achar a nota que deseja ou chegar ao fim do arquivo saia do laço, algo +- assim while(!feof(arquiv) || variável != nota).... entendeu o que quis dizer?

Link para o comentário
Compartilhar em outros sites

  • 0

Como assim cara

usar um arquivo

não entendi muito bem

Cara eu já modifiquei mais alguma coisa

vou postar como ficou meu novo codigo;

porem ele ta dando erro ´para listar os reprovados !1

você pode olhar o erro pra mim

Obrigado!!

abraço

cara compila pra você v entender melhor valeu

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

struct aluno {

char nome[40];

int idade;

int mat;

float nota[3];

};

aluno a;

FILE*p,*q;

int xmat,i;

/*void cadastro();

void listar();

void listar_aprov();

void listar_reprov();

void listar_pendentes();

void alterar(aluno B);*/

void cadastro()

{

p=fopen("c:\\temp\\aluno","a");

if(p==NULL){

printf("ERRO NA ABERTURA DO ARQUIVO");}

else

{

system("cls");

printf("NOME:\n");

fflush(stdin);

gets(a.nome);

system("cls");

printf("IDADE:\n");

fflush(stdin);

scanf("%d",&a.idade);

system("cls");

printf("MAT:\n");

fflush(stdin);

scanf("%d",&a.mat);

system("cls");

for(i=0;i<3;i++){

printf("NOTAS[%d]:\n",i+1);

scanf("%f",&a.nota);

}

fwrite(&a,sizeof(a),1,p);

printf("cadastro realizado com sucesso");

system("cls");

system("pause");

fclose(p);

}

}

void listar()

{int i;

p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO NA ABERTURA DO ARQUIVO");

else

{

fread(&a,sizeof(a),1,p);

system("cls");

if(feof(p))

printf("não há dados Cadastrados:\n");

while(!feof(p))

{

printf("---Listando Nomes-----\n");

printf("------------------\n");

printf("NOME:%s\n",a.nome);

printf("------------------\n");

printf("IDADE:%d\n",a.idade);

printf("------------------\n");

printf("MAT:%d\n",a.mat);

printf("------------------\n");

for(i=0;i<3;i++)

printf("NOTAS:%f\n",a.nota);

printf("------------------\n");

printf("\n");

fread(&a,sizeof(a),1,p);

}

}

fclose(p);

}

void listar_aprov()

{float med,soma=0;

p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO NA ABERTURA DO ARQUIVO");

else{

fread(&a,sizeof(a),1,p);

if(feof(p))

printf("não há dados Cadastrados:\n");

while(!feof(p)){

for(i=0;i<3;i++)

{

soma+=a.nota;

}

med=soma/3;

if(med>=7){

printf("APROVADOS\n");

printf("-------------------------\n");

printf("NOME:%s\n",a.nome);

printf("-------------------------\n");

printf("IDADE:%d\n",a.idade);

printf("-------------------------\n");

printf("MAT:%d\n",a.mat);

printf("-------------------------\n");

printf("MEDIA:%5.2f\n",med);

printf("-------------------------\n");

printf("\n");

fread(&a,sizeof(a),1,p);

}

}

}

fclose(p);

}

void listar_reprov()

{

float med,soma=0;

p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO NA ABERTURA DO ARQUIVO");

else{

fread(&a,sizeof(a),1,p);

while(!feof(p)){

for(i=0;i<3;i++)

{

soma+=a.nota;

}

med=soma/3;

if(med<4){

printf("REPROVADOS");

printf("-------------------------\n");

printf("NOME:%s\n",a.nome);

printf("-------------------------\n");

printf("IDADE:%d\n",a.idade);

printf("-------------------------\n");

printf("MAT:%d\n",a.mat);

printf("-------------------------\n");

printf("MEDIA:%f\n",med);

printf("-------------------------\n");

}

fread(&a,sizeof(a),1,p);

getch();

}

}system("pause");

fclose(p);

}

void listar_pendentes()

{

float med,soma=0;

p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO NA ABERTURA DO ARQUIVO");

else{

fread(&a,sizeof(a),1,p);

while(!feof(p)){

for(i=0;i<3;i++)

{

soma+=a.nota;

}

med=soma/3;

if((med>=4)&&(med<7)){

printf("pendentes");

printf("-------------------------\n");

printf("NOME:%s\t",a.nome);

printf("-------------------------\n");

printf("IDADE:%d\t",a.idade);

printf("-------------------------\n");

printf("MAT:%d\t",a.mat);

printf("-------------------------\n");

printf("MEDIA:%f",med);

printf("-------------------------\n");

}

fread(&a,sizeof(a),1,p);

getch();

}

}system("pause");

fclose(p);

}

void alterar()

{

int xmat;

p=fopen("c:\\temp\\aluno","r");

q=fopen("c:\\temp\\altera","w");

if(p==NULL||q==NULL)

printf("erro");

else

{

printf("Digite a matricula para alteracao\n");

fflush(stdin);

scanf("%d",&xmat);

system("cls");

fread(&a,sizeof(a),1,p);

while(!feof(p))

{

if (xmat==a.mat){

printf("DIGITE A NOVA MATRICULA\n");

scanf("%d",&a.mat);

fwrite(&a,sizeof(a),1,q);

}

else

fwrite(&a,sizeof(a),1,q);

fread(&a,sizeof(a),1,p);

remove("c:\\temp\\altera");

rename("c:\\temp\\altera1","c:\\temp\\altera");

printf("Matricula Alterada com Exito:\n");

fclose(p);

fclose(q);

system("pause");

}

}

}

void remover()

{

int i,chave=0,xmat;

printf("Digite a Matricula a ser Removida:\n");

fflush(stdin);

scanf("%d",&a.mat);

p=fopen("c:\\temp\\aluno","r");

q=fopen("c:\\temp\\remover","w");

if(p==NULL||q==NULL)

printf("erro");

else

{

fread(&a,sizeof(a),1,p);

while(!feof(p))

{

if(chave==0)

{

if(xmat!=a.mat)

fwrite(&a,sizeof(a),1,q);

if(xmat==a.mat)

chave=1;

}

else

fwrite(&a,sizeof(a),1,q);

fread(&a,sizeof(a),1,p);

}

if(chave==0)

printf("O Nome não esta cadastrado:\n");

else

printf("O Nome foi Removido com Sucesso:\n");

}

fclose(p);

fclose(q);

remove("c:temp\\aluno");

rename("c:temp\\remover","c:\\temp\\aluno");

printf("Matricula Removida com Exito:\n");

system("pause");

system("cls");

}

void pesquisar()

{

char xnome[30];

int chave=0,i;

p=fopen("c:\\temp\\aluno","r");

if(p==NULL)

printf("ERRO:\n");

else

{

printf("Digite o Nome a Pesquisar:\n");

fflush(stdin);

gets(xnome);

fread(&a,sizeof(a),1,p);

while(!feof(p))

{

if(strcmp(xnome,a.nome)==0)

{

chave=1;

printf("NOME:%s\n",a.nome);

printf("------------------\n");

printf("IDADE:%d\n",a.idade);

printf("------------------\n");

printf("MAT:%d\n",a.mat);

printf("------------------\n");

for(i=0;i<3;i++)

printf("NOTAS:%f\n",a.nota);

printf("------------------\n");

printf("\n");

}

fread(&a,sizeof(a),1,p);

}

if(chave==0)

printf("O Nome não está cadastrado:\n");

}

}

main()

{ int i;

for ( ; ; ){

system("color 0E");

printf("--------------MENU()------------------------\n");

printf(" -------------------------------------------\n");

printf("(1)-Cadastro do Estudante:\n");

printf("--------------------------------------------\n");

printf("(2)-Listagem de todos os Estudantes:\n");

printf("--------------------------------------------\n");

printf("(3)-Listagem dos Alunos Aprovados:\n");

printf("--------------------------------------------\n");

printf("(4)-Listagem dos Alunos Reprovados:\n");

printf("--------------------------------------------\n");

printf("(5)-Listagem dos Alunos de Prova Final:\n");

printf("--------------------------------------------\n");

printf("(6)-Altera a Matricula do Aluno:\n");

printf("--------------------------------------------\n");

printf("(7)-Remover a Matricula do Aluno:\n");

printf("---------------------------------------------\n");

printf("(8)-Pesquisar O aluno pela Matricula\n");

printf("---------------------------------------------\n");

printf("(9)-SAIR\n");

printf("---------------------------------------------\n");

printf("OPCAO:\n");

scanf("%d",&i);

system("cls");

switch(i)

{ case 1: cadastro();

break;

case 2: listar();

break;

case 3: listar_aprov();

break;

case 4: listar_reprov();

break;

case 5: listar_pendentes();

break;

case 6: alterar();

break;

case 7: remover();

break;

case 8: pesquisar();

break;

case 9:exit(1);

}

getch();

}

}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...