/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fun.cpp
* 作 者:王飞
* 完成日期:2013 年6月 14日
* 版本号: v1.0
* 对任务及求解方法的描述部分:类与职工工资
* 输入描述:略
* 问题描述:略
* 程序输出:如下
*/
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int number=0;
class Salary{
public:
void read_in();
void add();
void sort();
void print();
void Save();
private:
double salary[600];
};
void Salary::read_in() //读取数据
{
ifstream infile("salary.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while(!infile.eof())
{
infile>>salary[number];
number++;
}
infile.close();
}
void Salary::print()
{
for(int i=0;i<number;i++)
{ //定义输出
cout<<salary[i]<<endl;
}
}
void Salary::add()
{
for(int i=0;i<number;i++)
{
salary[i]*=2; //工资翻倍
}
}
void Salary::sort()
{ //冒泡排序
double t;
for(int i=0;i<number-1;i++)
{
for(int j=0;j<number-i-1;j++)
{
if(salary[j]>salary[j+1])
{
t=salary[j+1];
salary[j+1]=salary[j];
salary[j]=t;
}
}
}
}
void Salary::Save()
{
ofstream outfile ("ordered_salary.txt",ios::out); //依次写入文件
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<number;i++)
{
outfile<<salary[i]<<endl;
}
outfile.close();
}
int main()
{
Salary n;
n.read_in();
cout<<"每个员工涨工资之后:"<<endl;
n.add();
cout<<"涨后工资排序后:"<<endl;
n.sort();
n.print();
n.Save();
system("PAUSE");
}
心得体会:
在过程中,由于是:
导致文件读取出错,应该是先读取再 number++ 。错误不可怕,可怕的是面对错误失去信心!