#include <stdio.h>
#include <stdlib.h>
#define M 50
#define N 3
struct student
{
char id[20];
char name[20];
float score[N];
float aver;
}s[M];
int main()
{
void get_data(struct student s[],int m);
void save_data(struct student s[]);
void print_data();
// STD s[M];
get_data(s,M);
save_data(s);
print_data();
return 0;
}
void print_data()
{
int i,j;
struct student x;
FILE *fp;
if((fp=fopen("d:\\student.dat","rb"))==NULL)
{
printf("Open Error\n");
return;
}
printf("School ID \t Name \t Average \t Score1 \t Score2 \t Score3\t\n");
for(i=0;i<M;i++)
{
if(fread(&x,sizeof(struct student),1,fp)!=1)
{
printf("Read Error\n");
}
printf("%s \t %s \t %4.2f\t",x.id,x.name,x.aver);
for(j=0;j<N;j++)
{
printf("\t %4.2f\t",x.score[j]);
}
putchar('\n');
}
fclose(fp);
}
void save_data(struct student s[])
{
int i;
FILE *fp;
if((fp=fopen("d:\\student.dat","wb"))==NULL)
{
printf("Open Error\n");
return;
}
for(i=0;i<M;i++)
{
if(fwrite(&s[i],sizeof(struct student),1,fp)!=1)
{
printf("Write Error\n");
}
}
fclose(fp);
}
void get_data(struct student s[],int m)
{
float calculate_aver(float score[],int n);
int i=0,j=0;
m=M;
for(i=0;i<m;i++)
{
scanf("%s",s[i].id);
scanf("%s",s[i].name);
for(j=0;j<N;j++)
{
scanf("%f",&s[i].score[j]);
}
s[i].aver=calculate_aver(s[i].score,N);
}
}
float calculate_aver(float score[],int n)
{
int i=0;
float sum=0.0,aver=0.0;
for(i=0;i<n;i++)
{
sum+=score[i];
}
aver=sum/N;
return aver;
}
12-6.2:学生成绩管理系统
最新推荐文章于 2022-11-18 13:51:02 发布