第十五周项目2-用文件保存的学生名单
来源:互联网 发布:南京银行怎么样 知乎 编辑:程序博客网 时间:2024/05/21 17:51
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: .cpp * 作 者:王英华 * 完成日期:2014年6月8日 * 版本号: v1.0 * 输入描述:略 * 问题描述:略 */ #include<iostream>#include<fstream>#include<stdio.h>#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); friend ostream& operator<<(ostream &out, Student &s); bool pass();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;istream& operator>>(istream &in, Student &s){ in>>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;}Student::~Student(){}double Student::get_total(){ return total;}int Student:: get_stu_num(){ return stu_num;}double Student::get_total_sum(){ return total_sum;}ostream &operator<<(ostream &out, Student &s){ 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=0; int i=0; //将文件中的数据读入到对象数组中 ifstream infile("score.dat",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;}运行结果:
0 0
- 第十五周项目2-用文件保存的学生名单
- 第十五周 项目2-用文件保存的学生名单
- 第十五周 【项目2-用文件保存的学生名单】
- 第十五周项目二用文件保存学生名单
- 第十五周上机实践项目——用文件保存的学生名单
- 项目2 - 用文件保存的学生名单
- 第十五周 项目2 用文件保存及格并且总分高于平均分学生名单
- 15周【项目2-用文件保存的学生名单】
- 第14周项目2用文件保存的学生名单
- 第13周-项目2-用文件保存的学生名单
- 第14周项目2-用文件保存的学生名单
- 第14周 【项目2-用文件保存的学生名单】
- 第14周项目2-用文件保存的学生名单
- 第14周项目2-用文件保存的学生名单
- 第14周项目2-用文件保存的学生名单
- 第十五周——用文件保存学生名单
- 项目47-用文件保存的学生名单
- 项目-用文件保存的学生名单
- fedora 20 KDE版本设置中文
- kmp
- 15-1-(2)-工资数据的输入(文件)
- 数据结构:树的BFS,树的层次遍历! 按先序遍历创建一棵树,然后以层次遍历输出。
- 让MFC程序隐藏运行界面
- 第十五周项目2-用文件保存的学生名单
- ScrollView同时嵌套ListView和GridView怎么解决?(参考我上一片博文!!!!)
- 一些编译错误
- 求大神把这个橡皮筋技术代码用类封装!!!!
- memcache和memcached区别
- Hive metastore三种配置方式
- 杭电1872 稳定排序
- MiniFilter 学习
- poj 3680 Intervals 费用流