用文件保存的学生名单】若干名学生的学号 姓名和C++课、高数和英

运行代码:

/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:d.cpp*作 者:张旺华*完成日期:2015年6月3日*版 本 号:v1.0*//**【项目2-用文件保存的学生名单】 * 文件score.dat中保存的是若干名学生的学号 姓名和C++课、高数和英语成绩。 */#include <fstream>#include<iostream>#include<string>#include<cstdlib>using namespace std;//定义学生类class Student{public:Student() {};~Student();double get_total();static int get_stu_num();static double get_total_sum();friend istream& operator>>(istream &in, Student &s); //可以定义input函数替代friend ostream& operator<<(ostream &out, Student &s); //可以定义display函数替代bool pass();private:string num,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;Student::~Student(){total_sum-=total;stu_num–;}double Student::get_total(){return total;}int Student::get_stu_num(){return stu_num;}double Student::get_total_sum(){return total_sum;}istream& operator>>(istream &in, Student &s){in>>s.num>>s.name>>s.cpp>>s.math>>s.english;s.total=s.cpp+s.math+s.english;Student::stu_num++; //在读入数据过程中,用静态成员记录下来具体的学生人数和总分和Student::total_sum+=s.total;return in;}ostream &operator<<(ostream &out, Student &s){out<<s.num<<"\t";out<<s.name<<"\t";out<<s.cpp<<"\t";out<<s.math<<"\t";out<<s.english<<"\t";out<<s.total;return out;}//返回是否所有课程全过了bool Student::pass(){return cpp>=60 && math>=60 && english>=60;}int main( ){Student stud[200],t; //stud[200]为保存数据的对象数组string sname;double total_avg;int i=0;//将文件中的数据读入到对象数组中ifstream infile("score.txt",ios::in); //以输入的方式打开文件if(!infile)//测试是否成功打开{cerr<<"open error!"<<endl;exit(1);}while(!infile.eof()){infile>>stud[i++]; //读数据中,人数等信息自动地记录到静态成员中,,见运算符重载的实现}infile.close();//求总分平均并输出if(Student::get_stu_num()>0){total_avg = Student::get_total_sum()/ Student::get_stu_num();ofstream outfile("pass_score.dat",ios::out);if(!outfile){cerr<<"open error!"<<endl;exit(1);}for(i=0; i<Student::get_stu_num(); i++){if(stud[i].get_total()>total_avg&&stud[i].pass()){outfile<<stud[i]<<endl;}}outfile.close();cout<<"请到文件pass_score.dat中查看名单:"<<endl;}return 0;}测试数据:

201152501104 田程 65 69 68 201152501114 杨金龙 94 89 63 201152501115 周琳霄 92 84 60 201152501138 张强 67 62 84 201152501140 郑好 80 60 86 201152501145 曹为尚 88 56 67 201152501201 倪婷 80 92 71 201152501202 李奥 59 80 55 201152501203 张佳怡 62 62 95 201152501204 邓臣冬 100 65 91 201152501205 汪美娟 73 90 94 201152501206 赵格君 96 80 58 201152501207 张文韬 91 63 91 201152501208 车宜霖 88 84 79 201152501209 刘正 61 79 99 201152501210 李东航 62 58 66 201152501211 李华 96 96 83 201152501212 李晓鹏 73 88 93 201152501213 姜君孝 69 64 62 201152501214 董越 74 59 69 201152501215 赵浚源 63 58 96 201152501216 宫凡奇 89 82 60 201152501217 张咏晖 94 89 77 201152501218 丁梦瑶 78 93 58 201152501219 金婷 75 87 84 201152501220 张娟 90 65 62 201152501221 姜莉 76 78 81 201152501222 孙亚雯 90 87 73 201152501223 郭重 88 68 63 201152501224 王潇哲 85 94 97 201152501225 宋心洁 99 69 82 201152501226 杜婧霏 91 80 98 201152501227 于晓霞 69 72 99 201152501228 王莉莉 84 95 94 201152501229 万雅璐 98 95 64 201152501230 曲淑霞 67 100 83 201152501231 高晶 98 81 67 201152501232 于泽莹 67 64 77 201152501233 李婧怡 84 72 90 201152501234 姚宇 92 78 95 201152501235 于超 87 82 86 201152501236 李剑 78 86 95 201152501237 孟雨薇 66 64 58 201152501238 孙华泽 98 98 74 201152501239 朱绮梦 73 83 96 201152501240 周易 56 69 84 201152501241 蔡庆 60 78 71 201152501242 姜懿宸 86 94 59 201152501243 孙雪梅 64 92 66 201152501244 李芊潭 97 100 55 201152501245 周祥 100 86 74 201152501246 吐鲁洪江 73 94 75 201153503240 王婷婷 68 73 69 201153503242 宗雪燕 60 82 61 201153503243 于小涵 79 60 78 201153503245 钟艺 82 91 97 201153503246 耿清敏 67 77 60 201153503248 耿梦启 79 100 57 201153503249 刘轩辰 59 86 90 201153503251 贺巧霞 56 87 88 201153503254 张丽芳 57 81 87 201154503207 刘蕊 57 89 69 201158501330 李涛 96 89 73 201158501332 张新明 68 59 64 201158501334 曹文战 82 89 73 201160602108 孔令涛 63 86 80 201160602124 刘大伟 96 69 98 201163501101 孟站 58 100 70 201163501102 王超奇 75 63 89 201163501104 周涛 68 95 84 201163501105 贾治国 86 84 100 201163501106 杨磊 92 66 88 201163501107 万建新 71 56 83 201163501108 李宁 70 95 73 201163501110 赵江彦 58 63 79 201163501111 杜俊一 61 75 70 201163501113 邢士峰 56 70 66 201163501114 李传良 95 90 86

积极思考造成积极人生,消极思考造成消极人生。

用文件保存的学生名单】若干名学生的学号 姓名和C++课、高数和英

相关文章:

你感兴趣的文章:

标签云: