第三章数程序设计初步--控制结构综合项目4-1文件操作初体验练习1从文件读取数据

上机内容:从english.dat文件中读出学生的成绩,输出最高、最低,以及平均成绩(平均成绩为小数)。
                   文件中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)程序的其他部分与不用文件时完全一样

本例中用到的english.dat文件内容如下:
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值