第八周项目一(2) 数组做数据成员(工资类 文件 指针)
2016-04-17 15:31
501 查看
/*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 add_salarys(int x); //给每个人涨x元工资 void sort_salarys(); //对工资由大到小排序 void show_salarys(); //显示工资信息 void read_data( ); //读入数据 void write_data(); //写入数据 private: double salarys[500]; //多人的工资 int number; //实际人数 }; void Salary::read_data( ) { int i; double *p; p=salarys; ifstream infile("salary.txt",ios::in); //以输入的方式打开文件 if(!infile) //测试是否成功打开 { cerr<<"File can not open!"<<endl; exit(0); } i=0; while(infile>>*(p+i)) i++; number=i; infile.close(); } void Salary::write_data( ) { int i; double *p; p=salarys; ofstream outfile("salary_ordered.txt",ios::out); //以输入的方式打开文件 if(!outfile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); } for(i=0; i<number; ++i) { outfile<<*(p+i)<<endl; } outfile.close(); } void Salary::add_salarys(int x) { int i; double *p; p=salarys; for(i=0;i<number;i++) *(p+i)+=x; } void Salary::sort_salarys() { int i,j; double money; double *p; p=salarys; for(i=0;i<number-1;i++) { for(j=0;j<number-i-1;j++) { if(*(p+j)>*(p+j+1)) { money=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=money; } } } } void Salary::show_salarys() { int i; double *p; p=salarys; for(i=0;i<number;i++) cout<<*(p+i)<<endl; } int main() { Salary sa; sa.read_data(); sa.add_salarys(500); sa.sort_salarys(); sa.write_data(); sa.show_salarys(); return 0; return 0; }
相关文章推荐
- 第八周项目1 数组做类的数据成员(3)(多文件)
- Yii2.0 后台列表整理(关联查询)
- Java内存溢出示例
- “国产”Ubuntu Kylin(优麒麟)系统试用
- 百度地图之添加覆盖物
- Spark疑问1之如何查看sparkContext没有关闭的sc
- mySQL数据库Sql语句执行效率检查--Explain命令
- JAD java反编译工具(class反射工具)
- libc.so.6被误删除后的急救
- NYOJ-48小明的调查作业
- ENode 2.8 最新架构图简介
- 那些年我们一起学过的“排序算法”
- View6.2替换VCS和Composer服务器证书
- ROWNUM用法--SELECT * FROM T WHERE ROWNUM=1
- 二,细说 HTML5 之 HTML5 基础讲解 2
- PostgreSQL ./configure问题
- webstorm 按照文件名查找文件 快捷键
- linux下C实现对键盘事件的监听(按下键盘的时候程序立刻读取)
- [leetcode] 241. Different Ways to Add Parentheses
- 【NYOJ】[266]字符串逆序输出