首页 > 代码库 > 保存学生信息
保存学生信息
/** Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作 者:马广明* 完成日期:2014 年 6 月 10 日* 版 本 号:v1.0* 输入描述: 无* 问题描述:学生信息*/#include <iostream>#include <fstream>#include <cstdlib>using namespace std;//定义学生类class Student{public: //声明必要的成员函数 friend istream &operator>>(istream &input,Student &t) { input>>t.name>>t.cpp>>t.math>>t.english; stu_num++; return input; } friend ostream &operator<<(ostream &output,Student &t) { output<<t.name<<" "<<t.cpp<<" "<<t.math<<" "<<t.english<<" "<<t.gettotal()<<endl; return output; } double getcpp() { return cpp; } double getmath() { return math; } double getenglish() { return english; } double gettotal() { return (cpp+math+english); } double gettotal_sum() { for(int j=0;j<stu_num;j++) { total_sum+=gettotal(); } return total_sum; } int getstu_num() { return stu_num; } int total_avg() { return gettotal_sum()/getstu_num(); }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;int main( ){ Student stud[200]; //stud[200]为保存数据的对象数组 string sname; int i=0; //从文件score.dat中读入数据,保存到对象数组中 ifstream infile("score.txt",ios::in); if(!infile) { cerr<<"open error!"<<endl; exit(1); } while(infile>>stud[i]) { i++; } infile.close(); //总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中 ofstream outfile("pass_score.txt",ios::out); if(!outfile) { cerr<<"no file!"<<endl; exit(1); } for(int j=0;j<i;j++) { if(stud[j].getcpp()>=60&&stud[j].getenglish()>=60&&stud[j].getmath()>=60&&(stud[j].gettotal_sum()>stud[j].total_avg())) { outfile<<stud[j]; } } outfile.close(); return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。