第八周项目一(2) 数组做数据成员(工资类 数组 文件)
2016-04-17 15:35
411 查看
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:舒文超 * 完成日期:2016年4月17日 * 版本号:vc++6.0 * * 问题描述: 手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt, 增加一个成员函数,用于从文件中读取数据,再增加一个成员函数,将排序后的结果保存到 一个文件中编写main函数,测试你的扩充功能。 */ #include <iostream> #include <fstream> #include <cstdlib> using namespace std; class Salary { public: void read_data( ); void write_data(); void add_salarys(int x); void sort_salarys(); void show_salarys( ); private: double salarys[500]; //工资, 用指针更好 int number; //人数 }; void Salary::read_data( ) { int i; ifstream infile("salary.txt",ios::in); //以输入的方式打开文件 if(!infile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); } i=0; while(infile>>salarys[i]) i++; number=i; infile.close(); } void Salary::write_data( ) { int i; ofstream outfile("salary_ordered.txt",ios::out); //以输入的方式打开文件 if(!outfile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(0); } for(i=0; i<number; ++i) { outfile<<salarys[i]<<endl; } outfile.close(); } void Salary::add_salarys(int x) { int i; for (i=0; i<number; i++) salarys[i]+=x; } void Salary::sort_salarys() { int i,j; double money; for (i=0; i<number-1; i++) for(j=0; j<number-i-1; j++) if (salarys[j]<salarys[j+1]) { money=salarys[j]; salarys[j]=salarys[j+1]; salarys[j+1]=money; } } void Salary::show_salarys( ) { int i; for (i=0; i<number; i++) cout<<salarys[i]<<"\t"; } int main( ) { Salary sa; sa.read_data( ); sa.add_salarys(500); sa.sort_salarys(); sa.write_data( ); sa.show_salarys( ); return 0; }
相关文章推荐
- Spark性能相关参数配置 之 压缩和序列化相关
- LeetCode——044
- 大学毕业4年-回顾和总结(7)-全局观
- 陶哲轩实分析 3.3 节习题试解
- RequireJS源码初探
- 线性规划问题
- PS怎么自定义图案?ps自定义图案介绍
- Fragment Menu and Navigate
- 有状态和无状态
- PHP--extract 从数组中将变量导入到当前的符号表
- CF 638 dfs
- 关于Java堆栈存储数据的问题
- Spark疑问2之spark 丢了executor会恢复吗?
- 读取命令行参数的getopt()函数
- nginx限制ip地址
- Java总结篇系列:Java泛型
- 基于物品的协同过滤_修正的余弦相似度
- java微信开发API解析(五)-用户管理
- 支持向量机
- java约瑟夫环 -n围成一个圈,报数逢三退出 最后一个人初始号码