Originally Posted by
Sebastiani
And your question is...?
>> i m stuck in da filing n sorting phase ..pls help me,,,
So post the code you have written so far.
my question is abt part C..
how will i connect the results in a file list...
i m talkin abt *fp thingy
Code:
#include<stdio.h>
#include<math.h>
main()
{
FILE *fp, *ff,*fs;
char name[20],pass,fail,student_file,grade;
int n,m,i,j,roll_number,marks,count,total_mark;
float average;
printf("This programme is able to calculate students-");
printf(" total mark,average & grade\n\n");
printf("\n");
printf(" Contents of this database will have a pass and a fail file\n\n\n");
fs=fopen("student_file","w");
printf("Enter total number of students and subjects\n");
scanf("%d%d",&n,&m);
printf("\n");
for(i=1;i<=n;i++)
{
count=0;
printf("Enter roll_number:");
scanf("%d",&roll_number);
putw(roll_number,fs);
printf("\n");
printf("Enter Student's Name:");
scanf("%s",&name);
putw(roll_number,fs);
printf("\n");
total_mark=0;
printf("\n Enter marks of %d subjects for Roll no%d \n",m,roll_number);
for(j=1;j<=m;j++)
{
scanf("%d",&marks);
if(marks<40)
{
count=count+1;
if (count>=2)
{
printf("\n$* Not to be promoted in the Next Level *$\n\n");
{
ff=fopen("fail", "w");
putw(roll_number,ff);
fclose(ff);
}
}
}
total_mark=total_mark+marks;
}
printf("TOTAL MARK:_ %d\n",total_mark);
average=total_mark/m;
printf("Average:_%f\n\n",average);
{
if (average>=70 & count<=1)
printf("RESULT:- GRADE A\n\n",grade);
if (average>=60 & average<70 & count<=1)
printf("RESULT:- GRADE B\n\n",grade);
if (average>=50 & average<60 & count<=1)
printf("RESULT:- GRADE C\n\n",grade);
if (average>=45 & average<50 & count<=1)
printf("RESULT:- GRADE D\n\n",grade);
if (average>=40 & average<45 & count<=1)
printf("RESULT:- GRADE E\n\n",grade);
}
fp=fopen("pass", "w");
putw(roll_number,fp);
fclose(fp);
if (average<40 & count<=1)
{
printf("RESULT:- **FAIL**\n\n",grade);
fp=fopen("fail", "w");
putw(roll_number,ff);
fclose(ff);
}
}
fclose(fs);
printf("\n\n ^^ students passed ^^\n\n");
{
fp=fopen("pass","r");
while((roll_number=getw(fp))!=EOF)
printf ("%4d",roll_number);
fclose(fp);
}
getch();
}