Read and write files in the format

// calculate each student's programming course grade average, students of all subjects and the average score in the output to a file score.txt

#include<stdio.h>
#include<stdlib.h>
#define N 30
typedef struct  date
{
	int year;
	int month;
	int day;
}DATE;
typedef struct  student
{
	long studentID;
	char studentName[10];
	char studentSex;
	DATE birthday;
	int score[4];
	float aver;
}STUDENT;
void InputScore(STUDENT stu[],int n,int m);
void AverScore(STUDENT stu[],int n,int m);
void WritetoFile(STUDENT stu[],int n,int m);
int main()
{
	STUDENT stu[N];
	int n;
	printf("how many students:");
	scanf("%d",&n);
	InputScore(stu,n,4);
	AverScore(stu,n,4);
	WritetoFile(stu,n,4); 
	return 0;
}
//键盘输入n个学生的信息。。。。。于结构体数组stu中 
void InputScore(STUDENT stu[],int n,int m)
{
	int i,j;
	for(i=0;i<n;i++)
	{
		printf("input  record %d:\n",i+1);
		scanf("%ld",&stu[i].studentID);
		scanf("%s",&stu[i].studentName);
		scanf(" %c",&stu[i].studentSex);
		scanf("%d",&stu[i].birthday.year);
		scanf("%d",&stu[i].birthday.month);
		scanf("%d",&stu[i].birthday.day);
		//scanf("%d",&stu[i],studentID);
		for(j=0;j<m;j++)
		{
			scanf("%d",&stu[i].score[j]);
		}
	}
}
//计算n个学生的m门课程的平均分,存入数组aver中; 
void AverScore(STUDENT stu[],int n,int m)
{
	int i,j,sum;
	for(i=0;i<n;i++)
	{
		sum=0;
		for(j=0;j<m;j++)
		{
			sum+=.score;
		}
		stu.aver=(float)sum/m;
	}
}
//信息存入文件score.txt中 
void WritetoFile(STUDENT stu[],int n,int m)
{
	FILE *fp;
	int i,j;
	if((fp=fopen("score.txt","w"))=NULL)
	{
		printf("Failure to open score.txt!\n");
		exit(0);
	}
	fprintf(fp,"%d\t%d\n",n,m);
	for(i=0;i<n;i++)
	{
		fprintf(fp,"%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
		                                   stu[i].studentName,
		                                   stu[i].studentSex,
		                                   stu[i].birthday.year,
		                                  stu[i].birthday.month,
	                                   stu[i].birthday.day);
	for(j=0;j<m;j++)
	{
		fprintf(fp,"%4d",stu[i].score[j]);
	}
	    fprintf(fp,"%6.lf\n",stu[i].aver);
	} 
	fclose(fp);
}

Guess you like

Origin blog.csdn.net/CSDN447447LJH/article/details/91489869