Enviado em 08/09/2012 - 18:04h
Pessoal estou com uns problemas no meu código que não estou conseguindo entender...
/*aqui o arquivo é criado ou aberto,recebendo os parametros da função que a chamou*/
if((arqNotas=fopen(caminho,"a+b"))==NULL){
printf("\nErro ao tentar abrir o arquivo %s",caminho);
system("pause");
exit(1);
}
/*aqui faço a captura das informações*/
printf("\nEstrutura de Dados I\n");
printf("\nDigite o nome do aluno ou 'ENTER' para encerrar: ");
fflush(stdin);//limpa buffer do teclado
gets(aluno.nome);
while(strlen(aluno.nome)!=0){
printf("\nDigite o numero da matricula: ");
scanf("%d",&aluno.matricula);
for(int i=0;i<3;i++){
printf("\tInforme a nota da prova %d: ",i+1);
scanf("%f",&aluno.notProvaEstrutura[i]);
}
puts(" ");
for(int i=0;i<8;i++){
printf("\tInforme a nota do trabalho %d: ",i+1);
scanf("%f",&aluno.notTrabEstrutura[i]);
}
aluno.disciplina=1;//significa que está matriculado em estrutura de dados
aluno.excluido=0;//está ativo para consulta
system("cls");
if(fwrite(&aluno,sizeof(cadastro),1,arqNotas)!=1){
printf("\nErro ao tentar gravar dados no arquivo!\n");
system("pause");
}
fflush(stdin);
printf("\nDigite o nome do aluno ou 'ENTER' para encerrar: ");
gets(aluno.nome);
}
fecharArquivo(arqNotas);//fecho o arquivo
/*aqui minha função de pesquisa*/
if((arqNotas=fopen(caminho,"rb"))==NULL){
printf("\nErro ao tentar abrir o arquivo %s",caminho);
system("pause");
exit(1);
}
printf("\n\nEntre com o nome do aluno ou pressione 'Enter' para sair: ");
fflush(stdin);
gets(nome);
while(strlen(nome)!=0){
voltarComeco(arqNotas);/*antes de cada leitura o cursor é posicionado no início do arquivo*/
while(!feof(arqNotas)){
while(fread(&aluno,sizeof(cadastro),1,arqNotas)==1){
if(strcmpi(aluno.nome,nome)==0){
if(aluno.excluido==0){
printf("\nNome: %s",aluno.nome);
printf("\nMatricula: %d",aluno.matricula);
if(aluno.disciplina==1){
printf("\nCursa Disciplina de: Estrutura de Dados I\n");
for(int i=0;i<3;i++){
printf("\n\tNota prova %d: %.2f",i+1,aluno.notProvaEstrutura[i]);
}
for(int i=0;i<8;i++){
printf("\n\tNota trabalho %d: %.2f",i+1,aluno.notTrabEstrutura[i]);
}
}
else if(aluno.disciplina==2){
printf("\nCursa Disciplina de: Banco de Dados I\n");
for(int i=0;i<3;i++){
printf("\n\tNota prova %d: %.2f",i+1,aluno.notProvaBD[i]);
}
printf("\n\tNota Trabalho Pratico: %.2f",aluno.notTrabPraticoBD);
printf("\n\tNota Seminario: %.2f",aluno.notSeminarioBD);
printf("\n\tNota da Lista de Exercicios: %.2f\n\n",aluno.notListaExercBD);
}
else{
printf("\nCursa Disciplina(s) de: Estrutura de Dados I e Banco de Dados I\n");
printf("\nEstrutura de Dados\n");
for(int i=0;i<3;i++)
printf("\n\tNota prova %d: %.2f",i+1,aluno.notProvaEstrutura[i]);
for(int i=0;i<8;i++)
printf("\n\tNota trabalho %d: %.2f",i+1,aluno.notTrabEstrutura[i]);
for(int i=0;i<3;i++)
printf("\n\tNota prova %d: %.2f",i+1,aluno.notProvaBD[i]);
puts(" ");
printf("\nBanco de Dados\n");
for(int i=0;i<3;i++)
printf("\n\tNota prova %d: %.2f",i+1,aluno.notProvaBD[i]);
printf("\n\tNota Trabalho Pratico: %.2f",aluno.notTrabPraticoBD);
puts(" ");
printf("\n\tNota Seminario: %.2f",aluno.notSeminarioBD);
puts(" ");
printf("\n\tNota da Lista de Exercicios: %.2f\n\n",aluno.notListaExercBD);
}
encontrou=true;
}
}
}