第13周项目6(1)-体验文件操作

来源:互联网 发布:正品代购软件 编辑:程序博客网 时间:2024/06/05 07:42
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:week13-project6-1.cpp *作者:高赞 *完成日期:2014年 11 月 22 日 *版本号:v1.0 * *问题描述:从文件english.dat中读入成绩数据,输出平均成绩、            优秀人数和不及格人数、最高成绩以及取得最高成绩学生的学号 */#include <fstream>   //操作文件必写#include <iostream>#include <iomanip>#include <cstdlib>   //调用exit(1)需要包含cstdlibusing namespace std;void maxscore(int x, int a);int main( ){    int a,i=0,j=0,n=0,max=0;    double sum=0,average;    ifstream infile("english.dat",ios::in);    //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出    if(!infile)    {        cerr<<"open error!"<<endl;        exit(1);    }//下面读取数据并完成处理,若数据需要多次使用,可以读入到数组中    while(infile>>a)  //当到达文件尾,则循环处理结束。类似cin>>a,只不过数据来源于打开的文件    {        sum+=a;        if (a>=90)            ++i;        if (a<=60)            ++j;        if (a>max)            max=a;        ++n;    }    infile.close();    average=sum/n;    cout << "平均成绩: " << setiosflags(ios::fixed) << setprecision(2) << average << endl         << "优秀人数有: " << i << "人,比例" << setiosflags(ios::fixed) << setprecision(2) << (i*100.0)/(n*1.0) << "%" << endl         << "不及格人数有: " << j << "人,比例" << setiosflags(ios::fixed) << setprecision(2) << (j*100.0)/(n*1.0) << "%" << endl         << "最高成绩是" << max << "分," << endl         << "取得最高成绩学生的学号: ";    maxscore(max,a);    cout << endl;    return 0;}void maxscore(int x, int a){    ifstream infile("english.dat",ios::in);    int i=0;    while (infile>>a)    {        if (x==a)            cout << i << " ";        ++i;    }    infile.close();}

0 0
原创粉丝点击