第十六周项目2-文件保存学生名单
2016-06-20 17:05
302 查看
问题及代码:
运行结果:
知识点总结:
静态常量的定义不能在类内,必须在类外。
int Student::stu_num = 0;
double Student::total_sum = 0;
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:2016年6月20日 *版 本 号:v1.0 * *问题描述:用文件保存学生信息 *输入描述: *程序输出: */ #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); 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; 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.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"; 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.txt",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; }
运行结果:
知识点总结:
静态常量的定义不能在类内,必须在类外。
int Student::stu_num = 0;
double Student::total_sum = 0;
相关文章推荐
- hive json serde
- Sql Server 树形查询
- 上班第一天,Myeclipse 2014上SVN部署以及maven 配置
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
- Linux下进程间通信
- SVN修改密码,用户
- 人工智能革命:人类将永生或者灭绝
- maven+spring boot搭建简单微服务
- 学习方法思路记录
- 阿里云虚拟主机执行curl_exec()报500错误,且没有详细信息
- form表单提交返回数据
- android-R.anim
- 安全算法(一)数字摘要
- tcpdump
- linux常用命令
- SSH
- sunburstR
- centos 查看端口
- 架構之路 之TDDL
- 依赖注入setter,constructor