實(shí)驗(yàn)九 文件
目的與要求】
1.掌握文件和文件指針的概念以及文件的定義方法。
2.了解文件打開(kāi)和關(guān)閉的概念和方法。
3.掌握有關(guān)文件的函數(shù)。
【上機(jī)內(nèi)容】
【一般示例】
【例1】對(duì)data.dat文件寫(xiě)入100條記錄。
#include <stdio.h>
main()
{FILE *fp;
int i;
float x;
fp=fopen(“date.dat”,”w”);
for(i=1;i<=100;i++)
{scanf(“%f”,&x);
fprintf(fp,”%fn”,x);
}
fclose(fp);
}
【例2】設(shè)有一文件cj.dat存放了50個(gè)人的成績(jī)(英語(yǔ)、計(jì)算機(jī)、數(shù)學(xué)),存放格式為:每人一行,成績(jī)間由逗號(hào)分隔。計(jì)算三門(mén)課平均成績(jī),統(tǒng)計(jì)個(gè)人平均成績(jī)大于或等于90分的學(xué)生人數(shù)。
#include <stdio.h>
main()
{FILE *fp;
int num;
float x , y , z , s1 , s2 , s3 ;
fp=fopen (“cj.dat”,”r”);
{fscanf (fp,”%f,%f,%f”,&x,&y,&z);
s1=s1+x;
s2=s2+y;
s3=s3+z;
if((x+y+z)/3>=90)
num=num+1;
}
printf(“分?jǐn)?shù)高于90的人數(shù)為:%.2d”,num);
fclose(fp);
}
【例3】統(tǒng)計(jì)上題cj.dat文件中每個(gè)學(xué)生的總成績(jī),并將原有數(shù)據(jù)和計(jì)算出的總分?jǐn)?shù)存放在磁盤(pán)文件“stud”中。
#include “stdio.h”
main()
{
FILE *fp1,*fp2;
float x,y,z;
fp1=fopen(“cj.dat”,”r”);
fp2=fopen(“stud”,”w”);
while(!feof(fp1))
{
fscanf (fp1,”%f,%f,%f”,&x,&y,&z);
printf(“%f,%f,%f,%fn”,x,y,z,x+y+z);
fprintf(fp2,”%f,%f,%f,%fn”,x,y,z,x+y+z);
}
fclose(fp1);
fclose(fp2);
}
【作業(yè)】
1. 有 5個(gè)學(xué)生,每個(gè)學(xué)生有3門(mén)課的成績(jī),從鍵盤(pán)輸入以上數(shù)據(jù)(包括學(xué)生號(hào),姓名,三門(mén)課成績(jī)),計(jì)算出平均成績(jī),將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤(pán)文件“stud”中。
2. 將上題“stud”文件中的學(xué)生數(shù)據(jù),按平均分進(jìn)行排序處理,將已排序的學(xué)生數(shù)據(jù)存入一個(gè)新文件“stu_sort”中。