* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 工资.cpp
* 作 者:
* 完成日期: 2012 年 3 月 13 日
* 版 本 号:
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 工资.cpp
* 作 者:
* 完成日期: 2012 年 3 月 13 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
【任务4】阅读教材P255例8.4,注意到类中的数据成员可以是数组。
设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。
在main函数中调用你自己设计好的成员函数
完成下面的功能:
(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);
(2)给每个人涨100元工资;
(3)对涨后的工资进行排序;
(4)输出排序后的工资。
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream>
#include<fstream>
using namespace std;
class Salary
{
public:
void set_salary();
void add_salary();
void sort_salary();
void show_salary();
private:
int number;
double salary[1000];
};
int main()
{
Salary s1;
s1.set_salary();
s1.add_salary();
s1.sort_salary();
s1.show_salary();
return 0;
}
void Salary::set_salary()
{
ifstream infile("salary.txt",ios::in); //读取salary.txt文件,该文件需放在指定目录下。
if(!infile)
{
cerr << "open error" << endl;
exit(1);
}
for(int i = 0; i < 1000; ++i)
{
infile >> salary[i];
if(salary[i] == 0) //将salary.txt文件中添加最后一个数据 0 ,读到 0 就跳出。
{
number = i;
break;
}
}
infile.close();
}
void Salary::add_salary()
{
for(int i = 0; i < number; ++i)
{
salary[i] += 100;
}
return;
}
void Salary::sort_salary()
{
double t;
for(int j = 0; j < number -1; ++j)
{
for(int i = 0; i < number - 1 - j; ++i)
{
if(salary[i] < salary[i+1])
{
t = salary[i];
salary[i] = salary[i+1];
salary[i+1] = t;
}
}
}
return ;
}
void Salary::show_salary()
{
for(int i = 0; i < number; ++i)
{
cout << salary[i] << " ";
if((i+1) % 1 == 0)
{
cout << endl;
}
}
return;
}
运行结果:
上机感言:
在读入文件时遇到了问题,还好最后读出来了。(由于第一次没运行出结果,暂时发了博文,第二次成功后图片存u盘里,没有及时发上。)