/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fun.cpp
* 作 者:王飞
* 完成日期:2013 年6月 14日
* 版本号: v1.0
* 对任务及求解方法的描述部分:成绩处理
* 输入描述:略
* 问题描述:略
* 程序输出:如下
*/
#include <iostream>
#include <string>
#include <stdlib.h>
#include <fstream>
using namespace std;
int number=0; //记录数据的个数
class score
{
public :
void read_in(); //读取文件到数组
void save(); //保存文档
private :
string name[810];
double cpp[810];
double math[810];
double english[810];
double total[810];
double stotal;
double ave_total;
};
void score::read_in()
{
ifstream infile("score.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while(!infile.eof())
{
infile>>name[number]>>cpp[number]>>math[number]>>english[number];
total[number]=cpp[number]+math[number]+english[number];
stotal+=total[number];
number++;
}
infile.close();
}
void score::save() //保存文档
{
ave_total=stotal/number;
ofstream outfile("score.txt",ios::out);
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<number;i++)
{
if(total[i]>ave_total)
{
if(cpp[i]>=60&&math[i]>=60&&english[i]>=60)
{
outfile<<name[i]<<'\t'<<cpp[i]<<'\t'<<math[i]<<'\t'<<english[i]<<endl;
}
}
}
outfile.close();
}
int main()
{
score n;
n.read_in();
n.save();
cout<<"文件处理完毕!"<<endl;
return 0;
}
输出结果:
新的体会:
解决问题的方法可能不是很精炼,但是有自己的思维,终究是对的!