上机内容:从english.dat文件中读出学生的成绩,输出最高、最低,以及平均成绩(平均成绩为小数)。
文件中english.dat中给出的是100名新生入学英语分级考试全校同学的成绩
上机目的:文件操作初体验练习
我的程序:
运行结果:
心得体会:
操作文件中的几个要点:
(1)操作文件需引入头文件#include<fstream>
(2)使用文件时要打开文件,要指定使用的方式(输出用ios::out,输入用ios::in),引号部分是所有操作的文件名,如本例ifstream infile("english.dat",ios::in)
(3)输出/写入到文件类似往显示器输出(cout),从文件输入/读入数据类似从键盘录入(cin)
(4)文件使用完后,及时关闭(方式是“文件对象.close()”),如本例infile.close();
66
77
97
65
69
79
79
77
69
74
90
73
64
69
69
69
74
71
83
96
87
88
62
76
65
51
66
73
77
78
73
52
78
75
73
60
69
56
76
68
76
77
87
56
61
62
69
64
73
68
62
62
79
88
79
77
71
57
88
69
71
78
74
67
86
55
86
78
81
52
66
67
68
85
72
74
84
64
61
76
71
64
91
72
82
60
70
64
84
75
67
67
85
70
59
72
87
65
55
77
文件中english.dat中给出的是100名新生入学英语分级考试全校同学的成绩
上机目的:文件操作初体验练习
我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 青岛农业大学理信学院
* All rights reserved.
* 文件名称:文件操作初体验练习1.cpp
* 作 者:幻影行者
* 完成日期:2013 年 8 月 1 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:从english.dat文件输入
* 问题描述:从english.dat文件中读出学生的成绩,输出最高、最低,以及平均成绩(平均成绩为小数)。
* 文件中english.dat中给出的是100名新生入学英语分级考试全校同学的成绩
* 程序输出:输出最高、最低,以及平均成绩
* 问题分析:略
* 算法设计:略
*/
#include<fstream> //操作文件时需引入的头文件
#include<iostream>
using namespace std;
int main()
{
int a,i,max=-9999,min=10000,sum=0; //将max初值设置为一个很小的数,min设置为一个很大的数,便于下面的比较
float ave;
ifstream infile("english.dat",ios::in); //以输入的方式(ios::in)打开文件,引号部分需写入需要操作的文件如english.dat
if(!infile) //测试文件打开是否成功,打开失败时(如要读的数据文件不存在)退出
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<100;++i)
{
infile>>a; //从文件中读取数据,类似cin>>a,只不过来源是打开的文件
if(a>max)
max=a; //在读入过程中,max将保存最大值
}
for(i=0;i<100;++i)
{
infile>>a;
if(a<min)
min=a;
}
for(i=0;i<100;++i)
{
infile>>a;
sum+=a;
}
ave=(float)sum/100;
infile.close(); //读入完毕要关闭文件,以下操作与文件操作已无关联
cout<<"最高成绩为:"<<max<<endl;
cout<<"最低成绩为:"<<min<<endl;
cout<<"平均成绩为:"<<ave<<endl;
return 0;
}
运行结果:
心得体会:
操作文件中的几个要点:
(1)操作文件需引入头文件#include<fstream>
(2)使用文件时要打开文件,要指定使用的方式(输出用ios::out,输入用ios::in),引号部分是所有操作的文件名,如本例ifstream infile("english.dat",ios::in)
(3)输出/写入到文件类似往显示器输出(cout),从文件输入/读入数据类似从键盘录入(cin)
(4)文件使用完后,及时关闭(方式是“文件对象.close()”),如本例infile.close();
(5)程序的其他部分与不用文件时完全一样
66
77
97
65
69
79
79
77
69
74
90
73
64
69
69
69
74
71
83
96
87
88
62
76
65
51
66
73
77
78
73
52
78
75
73
60
69
56
76
68
76
77
87
56
61
62
69
64
73
68
62
62
79
88
79
77
71
57
88
69
71
78
74
67
86
55
86
78
81
52
66
67
68
85
72
74
84
64
61
76
71
64
91
72
82
60
70
64
84
75
67
67
85
70
59
72
87
65
55
77