第4周-任务4-设计工资类(Salary)

简介: 【题目】阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。在main函数中调用你自己设计好的成员函数完成下面的功能:(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志

【题目】阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。在main函数中调用你自己设计好的成员函数完成下面的功能:(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);(2)给每个人涨100元工资;(3)对涨后的工资进行排序;(4)输出排序后的工资。

【题目说明】本题体会类的数据成员可以是数组,实际上,我们很快要实践到,用类类型作类的数据成员。本题没有给出现成的程序段,包括类的设计等工作均需要独立完成。记住,沉下心来,领会你所看过的程序,通过模仿,这个工作还是容易完成的。完成一个项目,尤其是有一定规模的项目时,设计类结构是一个非常关键的环节,今后几年的专业学习中,将逐步涉及到。

【参考解答】

#include <iostream>
using namespace std;
class Salary   
{
public:         
	void set_salarys( );    
	void add_salarys(int x);    
	void sort_salarys();
	void show_salarys( );      
private:
	double salarys[50]; //工资  
	int number;			//实际人数   
};

void Salary::set_salarys( )    
{
	int x,i=0;
	cin>>x;   //注意这儿输入工资使用的技巧
	while(x>0)
	{
		salarys[i]=x;
		++i;
		cin>>x;
	}
	number=i;
}

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 t;
	for (i=0;i<number-1;i++)
		for(j=0;j<number-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<number;i++)
		cout<<salarys[i]<<" ";
}

int main( )
{
	Salary s;  
	s.set_salarys( );    //输入值
	s.add_salarys(100);  //涨工资
	s.sort_salarys();	 //排序
	s.show_salarys( );   //输出结果
	system("PAUSE");
	return 0;
}

试一下解决下面的拓展吧:

【拓展1】使用salary[50]有限制,实际人数少浪费空间,人数多时无法完成任务。程序执行中先输入职工人数,然后利用教材P217所讲的动态分配内存的运算符new,开辟一个大小正好的连续空间,完成上面的工作(排序需要采用指针完成)。



【拓展2】手工输入工资?!太让人不能忍受了。现给出包含了500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。此任务可参照上一学期第15周任务3完成。还可以将排序后结果保存到一个文件中。(salary.txt可以从BB平台下载)
目录
相关文章
|
1月前
7-66 计算工资 (15 分)
7-66 计算工资 (15 分)
31 0
|
算法 C++
201612-2 工资计算
201612-2 工资计算
76 0
201612-2 工资计算
【每日SQL打卡】DAY 1丨部门工资最高的员工【难度中等】
【每日SQL打卡】DAY 1丨部门工资最高的员工【难度中等】
【评论】为什么我的工资最低!
导读:原文作者Eric Spiegel在itmanagement.earthweb.com上发标一篇《That Developer's Salary is Bigger than Mine!》,译文由外刊IT评论整理编译《为什么我的工资最低!》。
787 0
|
存储 C++ 机器学习/深度学习
C++实践参考——人数不定的工资类
返回:贺老师课程教学链接 【项目-人数不定的工资类】设计一个工资类(Salary),其中的数据成员包括职工人数(number,人数不定)和number个职工的工资salary,要求输入职工工资并逐个输出。提示:用固定大小的数组存储number个职工的工资,可能造成空间的浪费,也可能会由于空间不够而不能处理职工人数过多的应用。将salary声明为指针类型的成员,通过动态分配空间,分配正好大小
791 0
|
Oracle 关系型数据库
2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工
 ROWNUM的知识点 A ROWNUM按照oracle的默认机制生成。 B rownum只能使用&lt;=  &lt;号,不能使用&gt;  &gt;= rownum的实现机制 rownum表示,返回的结果集的行号(是一个属性,固化到一行之中,不会因为你排序,而发生变化)。没有第一行,就没有第二行;没有第二行就没有第三行。
1421 0
|
C++ iOS开发
C++第15周(春)项目1 - 工资数据的输入
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 【项目1-工资数据的输入】(本程序中需要的相关文件,请到http://pan.baidu.com/s/1qW59HTi下载。)   (1)输入若干职工的工资(1000-10000的数字),将这些数字按降序排序后输出。 输入样例:3736.9
1059 0
|
存储 C++ 机器学习/深度学习
C++第7周(春)项目6 人数不定的工资类
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 【项目6-人数不定的工资类】  设计一个工资类(Salary),其中的数据成员包括职工人数(number,人数不定)和number个职工的工资salary,要求输入职工工资并逐个输出。  提示:用固定大小的数组存储number个职工的工资
838 0
|
C++
C++第8周项目3小贺的工资
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目3:加班费,要不要?】小贺刚上班,按计时制领工资,每小时rate元RMB。每周工作时间40小时,如果要加班,超出部分按正常工资的1.5倍计(老板还算不错喔!)。这周小贺上班的时间为hour小时,请编程序,输入rate和hour,输出小贺本周的薪水。 参考解答:
876 0

热门文章

最新文章