C++第4周项目5 - 数组作数据成员(扩展2、3引入文件)
来源:互联网 发布:仿36氪网站源码 编辑:程序博客网 时间:2024/05/16 08:20
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8690895
【项目5 - 数组作数据成员】阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。在main函数中调用你自己设计好的成员函数完成下面的功能:
(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);
(2)给每个人涨100元工资;
(3)对涨后的工资进行排序;
(4)输出排序后的工资。
【项目5扩展2(选做)】手工输入工资?!太让人不能忍受了。现给出包含了500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。(salary.txt可以从BB平台下载)
【项目5扩展3(选做)】增加一个成员函数,将排序后结果保存到一个文件中。
参考解答:
#include <iostream>#include <fstream>using namespace std;const N=500;class Salary {public: void read_data( ); void write_data();void add_salarys(int x); void sort_salarys();void show_salarys( ); private:double salarys[N]; //工资 };void Salary::read_data( ) {int i; ifstream infile("salary.txt",ios::in); //以输入的方式打开文件 if(!infile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); }for(i=0;i<N;++i){infile>>salarys[i];}infile.close();}void Salary::write_data( ) {int i; ofstream outfile("salary_ordered.txt",ios::out); //以输入的方式打开文件 if(!outfile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); }for(i=0;i<N;++i){outfile<<salarys[i]<<endl;}outfile.close();}void Salary::add_salarys(int x) {int i;for (i=0;i<N;i++)salarys[i]+=x;}void Salary::sort_salarys() {int i,j;double t;for (i=0;i<N-1;i++)for(j=0;j<N-i-1;j++)if (salarys[j]<salarys[j+1]){t=salarys[j];salarys[j]=salarys[j+1];salarys[j+1]=t;}}void Salary::show_salarys( ) {int i;for (i=0;i<N;i++)cout<<salarys[i]<<"\t";}int main( ){Salary s; s.read_data( ); s.add_salarys(100); s.sort_salarys();s.write_data( ); s.show_salarys( ); system("PAUSE");return 0;}
- C++第4周项目5 - 数组作数据成员(扩展2、3引入文件)
- C++第4周项目5 - 数组作数据成员(扩展1动态开辟空间)
- 第2周-项目5-数组作数据成员-工资类(文件读取)
- C++第4周项目5 - 数组作数据成员
- 第3周项目5数组作数据成员
- 第3周项目5数组作数据成员
- 第3周项目5-数组作数据成员(4)
- 第3周项目5-数组作数据成员(2)
- 大一第二学期第3周【项目5 - 数组作数据成员】(2)
- 第2周-项目5-数组作数据成员-工资类(动态数组)
- 第3周项目5-数组作数据成员(5)
- 第3周项目5-数组作数据成员(3)
- 第3周项目5-数组作数据成员(1)
- 大一第二学期第3周【项目5 - 数组作数据成员】(1)
- 第2周-项目5-数组作数据成员-工资类(手动输入)
- 第2周-项目5-数组作数据成员-工资类(多文件组织)
- 第8周项目1-数组作数据成员(2)
- 第8周项目1 - 数组作数据成员 (2)
- 设计模式之创建型模式
- 事务特性
- 关于vs中debug和release的区别
- 调用qq给的接口,实现网页上显示在线与离线、发起会话
- 关于文件关联的问题
- C++第4周项目5 - 数组作数据成员(扩展2、3引入文件)
- 腾讯第二届马拉松22号第五题
- 错误36找不到编译动态表达式所需的一种或多种类型。是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?
- VC2010 实现真彩工具条关键代码
- 线段树
- 关于GeoTools的 Can't load a service for category "MathTransformFactory"解决方案
- Android 亲测源码分享
- 做网站需要艰苦奋斗而不是坐享其成
- Model View Controller(MVC)