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

来源:互联网 发布:开源b2c商城系统源码 编辑:程序博客网 时间:2024/05/01 20:01

/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:王鲁峰*完成日期:2014 年 6 月 3 日*版本号:v1.0*对任务及求解方法的描述部分:*问题描述:*输入描述:*程序输出:*问题分析:*算法设计:*/#include <iostream>#include <fstream>#include <string>#include <cstdlib>using namespace std;//定义学生类class Student{public:    //声明必要的成员函数    Student() {}    bool pass();    double gettotal();    static int getstu_num();    static double gettotal_sum();    friend istream& operator>>(istream &in, Student &s);    friend ostream& operator<<(ostream &out, Student &s);private:    string name;    double cpp;    double math;    double english;    double total;    static int stu_num;  //学生人数,处理为类的静态成员合适    static double total_sum; //学生总分和};int Student::stu_num=0;double Student::total_sum=0;bool Student::pass(){    if(cpp>=60&&math>=60&&english>=60)    return true;    return false;}double Student::gettotal(){    return total;}int Student::getstu_num(){    return stu_num;}double Student::gettotal_sum(){    return total_sum;}istream& operator>>(istream &in, Student &s){    in>>s.name>>s.cpp>>s.english>>s.math;    Student::stu_num++;    s.total=s.cpp+s.english+s.math;    Student::total_sum+=s.total;    return in;}ostream& operator<<(ostream &out, Student &s){    out<<s.name<<" "<<s.cpp<<" "<<s.english<<" "<<s.math<<" "<<s.total<<endl;    return out;}int main( ){    Student stud[200]; //stud[200]为保存数据的对象数组    string sname;    double total_avg;    int i=0;    //从文件score.dat中读入数据,保存到对象数组中    ifstream infile("score.txt",ios::in);    if(!infile)    {        cerr<<"open error!"<<endl;        exit(1);    }    while(!infile.eof())      infile>>stud[i++];      infile.close();    //总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中     total_avg=Student::gettotal_sum()/Student::getstu_num();     ofstream outfile("pass_score.txt",ios::out);     if(!outfile)     {         cerr<<"open error!"<<endl;         exit(1);     }     for( i=0;i<Student::getstu_num();i++)     {         if((stud[i].gettotal()>total_avg)&&stud[i].pass())         {             outfile<<stud[i]<<endl;         }     }     outfile.close();    return 0;}


运行结果:


心得体会:

  这个项目为老师统计学生信息提供了方便。

0 0
原创粉丝点击