【C语言】利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件。编写程序将数据文件读入,且求出每个学生的平均成绩。
题目:1.利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件。
2.编写程序将数据文件读入,且求出每个学生的平均成绩。
过程:
文本编辑软件就是记事本等等,我用的是notepad++,在此推荐大家可以装一个notepad++写代码是真的方便快捷。
建立如下数据文件,文件名students.dat
*此处也可以建立成txt后缀的文件
下面是C语言代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 #define N 5 4 struct student{ 5 int num; 6 char name[10]; 7 float eng; 8 float mat; 9 float com; 10 }stu[N]; 11 int main(){ 12 FILE *fp; 13 int i; 14 float ave=0; 15 if((fp=fopen("C:\\Users\\root\\Desktop\\students.dat","r"))==NULL) 16 { 17 printf("Open file error!"); 18 exit(0); 19 } 20 for(i=0;i<N;i++) 21 { fscanf(fp,"%d",&stu[i].num); 22 fscanf(fp,"%s",&stu[i].name); 23 fscanf(fp,"%f",&stu[i].eng); 24 fscanf(fp,"%f",&stu[i].mat); 25 fscanf(fp,"%f",&stu[i].com); 26 //fread(&stu[i],sizeof(struct student),1,fp); 27 ave = (stu[i].eng + stu[i].mat + stu[i].com)/3; 28 printf("学号\t姓名\t平均成绩\n"); 29 printf("%d\t%s\t%.2f\n",stu[i].num,stu[i].name,ave); 30 } 31 fclose (fp); 32 return 0; 33 }
程序运行结果: