第14周项目2-用文件保存的学生名单
来源:互联网 发布:淘宝抓取同行客户软件 编辑:程序博客网 时间:2024/05/01 15:06
【项目2-用文件保存的学生名单】
文件score.dat中保存的是若干名学生的姓名和C++课、高数和英语成绩。
(1)定义学生类,其中包含姓名、C++课、高数和英语成绩及总分数据成员。
//定义学生类class Student{public: //声明必要的成员函数private: string name; double cpp; double math; double english; double total; static int stu_num; //学生人数,处理为类的静态成员合适 static double total_sum; //学生总分和};
(2)用对象数组进行存储学生的成绩,读入成绩并计算总分;将总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中。
int main( ){ Student stud[200],t; //stud[200]为保存数据的对象数组 string sname; double total_avg; int i=0; //从文件score.dat中读入数据,保存到对象数组中 //总分高于平均总分且没挂科的同学的信息保存到文件pass_score.dat中 return 0;}
代码:
#include <iostream>#include <fstream>#include <cstdlib>#include <string>using namespace std;class Student{public: 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;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.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.name<<'\t'<<s.cpp<<'\t'<<s.math<<'\t'<<s.english<<'\t'<<s.total<<endl; return out;}bool Student::pass(){ return cpp>=60&&math>=60&&english>=60;}int main( ){ Student stud[200],t; string sname; double total_avg; 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=t.get_total_sum()/t.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
- 第14周项目2用文件保存的学生名单
- 第14周项目2-用文件保存的学生名单
- 第14周 【项目2-用文件保存的学生名单】
- 第14周项目2-用文件保存的学生名单
- 第14周项目2-用文件保存的学生名单
- 第14周项目2-用文件保存的学生名单
- 第13周-项目2-用文件保存的学生名单
- 第14周-输入输出流,文本文件-项目2-用文件保存的学生名单
- 第14周上机实践项目2——用文件保存的学生名单
- 2015-第14周项目2-用文件保存的学生名单
- 第15周 项目二 用文件保存的学生名单
- 第14周 项目二-用文件保存学生名单
- 第15周 项目2 用文件保存学生名单
- 第16周-项目2-用文件保存学生名单
- 第16周项目2-用文件保存学生名单
- 项目2 - 用文件保存的学生名单
- C++第15周(春)项目2 - 用文件保存的学生名单
- 15周【项目2-用文件保存的学生名单】
- Git 的BUG小结
- MAC 快捷键
- Java命名规范
- JAVA问题集锦
- Spring Security实现权限管理
- 第14周项目2-用文件保存的学生名单
- shell学习十四天----使用cut选定字段
- poj3080 Blue Jeans
- first responder
- fibonacci数列矩阵快速幂
- linux内核的三种主要调度策略
- ROS学习 ——使用rosinstall下载源文件
- 第14周项目3-
- app被Rejected 的各种原因