工资类
来源:互联网 发布:tensorflow feeddict 编辑:程序博客网 时间:2024/04/28 16:56
请设计成员函数实现下面的功能:
(1)输入职工工资,工资保存到salary数组中,实际人数保存到number[]中(输入-1标志着工资输入结束);
(2)给每个人涨500元工资(add_salarys是有参函数,在调用时,500当实参);
(3)对涨后的工资进行排序;
(4)输出排序后的工资。
(5)在main函数定义Salary类的对象,调用你自己设计好的成员函数,完成相关的工作。
【项目4扩展1(选做)】
(1)输入职工工资,工资保存到salary数组中,实际人数保存到number[]中(输入-1标志着工资输入结束);
(2)给每个人涨500元工资(add_salarys是有参函数,在调用时,500当实参);
(3)对涨后的工资进行排序;
(4)输出排序后的工资。
(5)在main函数定义Salary类的对象,调用你自己设计好的成员函数,完成相关的工作。
【项目4扩展1(选做)】
使用salary[50]有限制,实际人数少时,会浪费空间,人数多了,无法完成任务。在main()中先输入职工人数,作为参数传递给输入职工工资的成员函数,然后利用教材P217所讲的动态分配内存的运算符new,开辟一个大小正好的连续空间,完成上面的工作。
【项目4扩展2(选做)】 下载salary.txt文件
手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。
【项目4扩展3(选做)】
增加一个成员函数,将排序后结果保存到一个文件中。
#include<iostream>#include<fstream>using namespace std;class Salarys{public:void Get_n(int x);//获取工资个数void Creat_a(int n);//动态分配内存空间void SCIN();//从文件中读取工资void Print();//输出工资void Sort();//使用快速排序对工资进行排序void Delete();//释放内存void Sove();//将排序之后的工资存入新文件void Add(double n);//增加工资private: int number; double *salarys;//动态数组指针};void Salarys::Get_n(int x){ number=x;}void Salarys::Creat_a(int n){ salarys=new double [n];//动态分配n个数据的数组}void Salarys::SCIN(){ifstream file("salary.txt",ios::in);if(!file){ cout<<"read file error! "<<endl; exit(1);}for(int i=0;i<number;i++)file>>salarys[i];file.close();}void Salarys::Print(){ for(int j=0;j<number;j++) cout<<salarys[j]<<'\t'; cout<<endl;}void Salarys::Sort()//quick sort:{int k;double t;for(int i=0;i<number-1;i++){k=i; for(int j=i+1;j<number;j++) if(salarys[k]>salarys[j])k=j; if(k!=i) { t=salarys[k]; salarys[k]=salarys[i]; salarys[i]=t; }}}void Salarys::Delete(){ delete salarys;}void Salarys::Sove(){ofstream file_sorted("sorted.dat",ios::out);if(!file_sorted){ cout<<"open the file is error! "<<endl; exit(1);}for(int i=0;i<number;i++)file_sorted<<salarys[i]<<'\t';cout<<endl;file_sorted.close();}void Salarys::Add(double n){ for(int i=0;i<number;i++) salarys[i]+=n;}int main(){ Salarys S; int n; cout<<"input the number: "<<endl; cin>>n;S.Get_n(n);S.Creat_a(n);S.SCIN();cout<<"show the salarys: "<<endl;S.Print();S.Add(500);cout<<"show the sorted salarys: "<<endl;S.Sort();S.Sove();S.Print();S.Delete();return 0;}
0 0
- 工资类
- 工资类
- 工资类
- 工资类
- 工资类
- 工资类
- 工资类
- 工资类
- 工资类
- 设计一个工资类
- 6.6 工资类
- 项目六--工资类
- 6_6工资类
- 工资类的优化
- 项目4--工资类
- 不定的工资类
- 文件 工资类
- 工资类(改)
- 开源C/C++网络库比较
- JavaScript继承详解(三)
- Android开发中AsyncTask实现异步处理任务的方法
- Linux/Unix shell 自动发送AWR report
- Boost.Asio和ACE之间关于Socket编程的比较
- 工资类
- windows server 2003 桌面图标有蓝底如何解决
- BNU 4062 0123456789
- adb常用命令
- dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络爬虫
- JavaScript继承详解(四)
- 矩阵鞍点算法
- 4种方法把数据绑定到Dropdownlist
- JavaScript继承详解(五)