/*烟台大学计算机学院学生
*All right reserved.
*文件名称:用文件保存学生名单
*作者:孙玲倩
*完成日期:2014年6月7日
*版本号:v1.0
*对任务及求解方法的描述部分:用文件保存学生名单
*我的程序:*/
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
//定义学生类
class Student
{
public:
bool pass(double a);
int getstu_num();
double gettotal_sum();
double qiuhe();
friend ostream& operator <<(ostream& output,Student&t);
friend istream& operator >>(istream& output,Student&t);
//声明必要的成员函数
private:
string name;
double cpp;
double math;
double english;
double total;
static int stu_num; //学生人数,处理为类的静态成员合适
static double total_sum; //学生总分和
};
int Student::stu_num=0;
int Student::getstu_num()
{
return stu_num;
}
double Student::qiuhe()
{
return cpp+math+english;
}
bool Student::pass(double a)
{
if((cpp+math+english)>a&&cpp>=60&&math>=60&&english>=60)
return true;
else
return false;
}
istream& operator >>(istream& input,Student&t)
{
input>>t.name>>t.cpp>>t.math>>t.english;
Student::stu_num++;
return input;
}
ostream& operator <<(ostream& output,Student&t)
{
output<<t.name<<" "<<t.cpp<<" "<<t.math<<" "<<t.english<<" "<<t.cpp+t.math+t.english<<endl;
return output;
}
int main( )
{
Student stud[200],t; //stud[200]为保存数据的对象数组
double total_avg=0;
int i=0;
ifstream infile("score.txt",ios::in);
if(!infile)
{
cout<<"data error!!!";
exit(0);
}
while(infile>>stud[i])
{
i++;
}
infile.close();
for(int i=0;i<t.getstu_num();i++)
{
total_avg+=stud[i].qiuhe();
}
double ping;
ping=total_avg/t.getstu_num();
ofstream outfile("pass_score.txt",ios::out);
if(!outfile)
{
cerr<<"文件找不到!"<<endl;
exit(1);
}
for(int i=0;i<t.getstu_num();i++)
{
if(stud[i].pass(ping)==true)
{
outfile<<stud[i];
}
}
outfile.close();
return 0;
}
第十五周项目二用文件保存学生名单
最新推荐文章于 2015-06-10 09:16:53 发布