报告:4-4
实验内容:
阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中的数据成员有:
double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工
人数。在main函数中调用你自己设计好的成员函数完成下面的功能:(1)输入职工工资,工资保存到
salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);(2)给每个人涨100元工资;
(3)对涨后的工资进行排序;(4)输出排序后的工资。
/*
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 张传新
* 完成日期:2012年 3月 15 日
* 版 本 号: 1
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:……
* 算法设计:……
*/
#include<iostream>
using namespace std;
class Salary
{
public:
void set_salarys();
void show_salarys();
void add_salarys(int);
void s_salarys();
private:
int number;
double salarys[50];
};
int main()
{
Salary sal;
sal.set_salarys();
sal.add_salarys(100);
sal.s_salarys();
sal.show_salarys();
system("PAUSE");
return 0;
}
void Salary::set_salarys()
{
int s;
cout<<"请输入工资:"<<endl;
cin>>s;
for(int i=0;s>0;i++)//当输入值小于1时跳出程序
{
salarys[i]=s;
cout<<"请输入工资:";
cin>>s;
}
number=i;
}
void Salary::add_salarys(int s)
{
for(int i=0;i<number;i++)
{
salarys[i]+=s;
}
}
void Salary::s_salarys()//冒泡法排序
{
double a;
for(int i=0;i<number-1;i++)
{
for(int j=0;j<number-1-i;j++)
{
if (salarys[j]<salarys[j+1])
{
a=salarys[j];
salarys[j]=salarys[j+1];
salarys[j+1]=a;
}
}
}
}
void Salary::show_salarys()
{
for(int i=0;i<number;i++)
{
cout<<salarys[i]<<endl;
}
}
运行结果:
上机感言:工资最高那个是我的....嘎嘎。