#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
#define N 3
void fileread(char(*fnumber)[13],char(*fname)[13],int(*fscore)[4]) //读文件
{
FILE* fp;
fopen_s(&fp,"stuscore_in.txt","r");
char t[5];
if(fp==NULL)
{
printf("打开文件失败!!");
}
for(int i=0;i<N;i++)
{
fscanf(fp,"%s",fnumber[i]);
fscanf(fp,"%s",fname[i]);
for(int j=0;j<4;j++)
{
fscanf(fp,"%s",t);
fscore[i][j]=atoi(t);
}
}
fclose(fp);
}
void filewrite(char(*fnumber)[13],char(*fname)[13],int(*fscore)[4],double* average) //写文件
{
char tit[][10]={"学号","姓名","数学","物理","英语","计算机","平均"};
FILE* fp;
fopen_s(&fp,"stuscore_out.txt","w");
if(fp==NULL)
{
printf("打开文件失败!!");
}
fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s\t%s\t",tit[0],tit[1],tit[2],tit[3],tit[4],tit[5],tit[6]);
fprintf(fp,"\n__________________________________________\n");
for(int i=0;i<N;i++)
{
fprintf(fp,"%12s\t",fnumber[i]);
fprintf(fp,"%12s\t",fname[i]);
for(int j=0;j<4;j++)
fprintf(fp,"%d\t",fscore[i][j]);
fprintf(fp,"%5.1f\t",average[i]);
fprintf(fp,"\n");
}
for(int k=0;k<N;k++)
{
printf("\n%12s%12s%8d%8d%8d%8d%7.1f",fnumber[k],fname[k],fscore[k][0],fscore[k][1],fscore[k][2],fscore[k][3], average[k]);
printf("\n");
fclose(fp);
}
}
void paverage(int(*fscore)[4],double*average) //计算平均成绩
{
for(int i=0;i<N;i++)
{
average[i]=(fscore[i][0]+fscore[i][1]+fscore[i][2]+fscore[i][3])/4.0;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char number[N][13],name[N][13];
int score[N][4];
double average[N];
fileread(number,name,score);
paverage(score,average);
filewrite(number,name,score,average);
return 0;
}