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

来源:互联网 发布:人工智能概念股及代码 编辑:程序博客网 时间:2024/06/11 18:25
上机内容:从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.datif(!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

原创粉丝点击