/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 晁阳
* 完成日期: 2012 年 03 月 16 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。在main函数中调用你自己设计好的成员函数完成下面的功能:(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);(2)给每个人涨100元工资;(3)对涨后的工资进行排序;(4)输出排序后的工资。
* 程序输出:
* 程序头部的注释结束
*/
我哩个擦!这次又是随即数捣乱,看样子我要和随机数干上啦,其实只要细心就不会产生随即数啦!
#include <iostream>
using namespace std;
class Salary
{
private:
int salary[50];//
int number;//
public:
void set_salary();
void set_number(int x);
void salary_up();
void salarylist();
void show_salarylist();
};
int main ()
{
Salary s1;
cout<< "请输入工资:";
s1.set_number(6);
s1.set_salary();
cout << endl;
s1.salarylist();
cout<< "所输入工资数排序为:"<< endl;
s1.show_salarylist();
cout << endl;
s1.salary_up();
s1.salarylist();
cout << "升工资后的排序为:"<<endl;
s1.show_salarylist();
cout << endl;
system("PAUSE");
return 0;
}
void Salary::set_salary()
{
int i;
for ( i = 0; i < number; i++)
{
cin >> salary[i];
}
}
void Salary::set_number(int x)
{
number = x;
}
void Salary::salary_up()
{
int i;
for ( i = 0; i < number; i++)
{
salary[i] = salary[i] + 100;
}
}
void Salary::salarylist()
{
int j,i,t;
for ( j = 0; j < number; j++)
for( i = 0; i < number - j -1; i++)//终于找到了问题所在,在没有对number-j在-1是总是在前面有个随机数,上次作业也是这样看样子我要和随机数干上啦!
if(salary[i] > salary[i+1])
{
t = salary[i];
salary[i] = salary[i+1];
salary[i+1] = t;
}
}
void Salary::show_salarylist()
{
int i;
for( i = 0; i <number; i++)
{
{cout << salary[i] <<" ";}
}
}