luis galdino Postado Dezembro 1, 2010 Denunciar Share Postado Dezembro 1, 2010 Boa Noite Galera!!Gostaria que alguém me ajudassetou com um trabalho de faculdadepra fazer um cadastro em aquivos porem Gostaria que alguém me dissese como removercomo alterar e pesquisar um arquivosfico grato por respostas!!abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cauepor Postado Dezembro 1, 2010 Denunciar Share Postado Dezembro 1, 2010 luis galdino, seja mais específico, pois tem várias maneiras de se realizar estas operações, você já tem uma parte do código feita? poste para podermos debugar =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 luis galdino Postado Dezembro 3, 2010 Autor Denunciar Share Postado Dezembro 3, 2010 #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"); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cauepor Postado Dezembro 3, 2010 Denunciar Share Postado Dezembro 3, 2010 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 luis galdino Postado Dezembro 3, 2010 Autor Denunciar Share Postado Dezembro 3, 2010 Como assim carausar um arquivonão entendi muito bemCara eu já modifiquei mais alguma coisa vou postar como ficou meu novo codigo;porem ele ta dando erro ´para listar os reprovados !1você pode olhar o erro pra mimObrigado!!abraçocara 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(); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
luis galdino
Boa Noite Galera!!
Gostaria que alguém me ajudasse
tou com um trabalho de faculdade
pra fazer um cadastro em aquivos
porem
Gostaria que alguém me dissese como removercomo alterar e pesquisar um arquivos
fico grato por respostas!!
abraços
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.