第15周 项目2 用文件保存学生名单

来源:互联网 发布:织梦html5自适应模板 编辑:程序博客网 时间:2024/05/01 20:02
/*烟台大学计算机学院学生*All right reserved.*文件名称:*作者:赵焱*完成日期:2014年6月6日*版本号: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();  //总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中    return 0;}

0 0
原创粉丝点击