文件数据读写(成绩管理)

文件数据读写(成绩管理),第1张

文件数据读写(成绩管理)

1)有5个学生,每个学生有3门课成绩,输入学生数据(学号,姓名,3门课程成绩)。计算出平均成绩,并按平均成绩排序,排序后的数据(包括平均成绩)存入文件student.dat中。然后从文件中读取数据并输出。

要求:分别用fprintf/fscanf及fwrite/fread函数实现文件数据读写。

 fprintf/fscanf

#include
#define N 3
struct student
{
    char sNo[12];
    char sName[20];
    float scores[3];
    double average;
};

int main()
{
	int i,j,idx;
	struct student stu[N],stu2[N];
	struct student temp;
	printf("Please enter No,Name,3 scores:");
	//输入并计算平均值 
	for(i=0;istu[idx].average)idx=j;
		}
		temp=stu[idx];
		stu[idx]=stu[i];
		stu[i]=temp;
	} 
	//打开文件 
	FILE *fp; 
	if(NULL==(fp=fopen("student.txt","w+")))
	{
		printf("Error open!");
		exit(0);
	}
	//存入数据 
	for(i=0;i 

 fwrite/fread

#include
#define N 3
struct student
{
    char sNo[12];
    char sName[20];
    float scores[3];
    double average;
}stu[N];

int main()
{
	struct student stu[N],stu2[N];
	struct student temp;
	struct student *pa=stu,*pb=stu2,*max;
	printf("Please enter No,Name,3 scores:");
	//输入并计算平均值 
	for(;pasNo,pa->sName,&pa->scores[0],&pa->scores[1],&pa->scores[2]);
		pa->average=(pa->scores[0]+pa->scores[1]+pa->scores[2])/3.0;
	}
	//排序
	for(pa=stu;paaverage>max->average)max=pb;
		}
		temp=*max;
		*max=*pa;
		*pa=temp;
	} 
	//打开文件 
	FILE *fp; 
	if(NULL==(fp=fopen("student.txt","w+")))
	{
		printf("Error open!");
		exit(0);
	}
	//存入数据 
	pa=stu;
	fwrite(pa,sizeof(struct student),N,fp);
	//读取数据 
	rewind(fp);
	pb=stu2;
	fread(pb,sizeof(struct student),N,fp);
	//输出数据
	for(pb=stu2;pbsNo,pb->sName,pb->scores[0],pb->scores[1],pb->scores[2],pb->average);
	} 
	return 0;
}

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5657461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存