问题及代码
main.cpp
/*
* Copyright (c) 2015, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2015 年 3 月 22 日
* 版 本 号:v1.0
*
* 问题描述:设计一个工资类(Salary)。
* 输入描述:工资。
* 程序输出:工资信息。
*/
#include<iostream>
#include"salary.h"
using namespace std;
int main()
{
Salary s;
s.set_salarys();
s.add_salarys(500);
s.sort_salarys();
s.show_salarys();
s.save_salarys();
return 0;
}
salary.h
#ifndef SALARY_H_INCLUDED
#define SALARY_H_INCLUDED
class Salary
{
private:
double Salarys[500];
int number;
public:
void set_salarys();
void add_salarys(int x);
void sort_salarys();
void show_salarys();
void save_salarys();
};
#endif // SALARY_H_INCLUDED
salary.cpp
#include<iostream>
#include"salary.h"
#include<fstream>
#include<cstdlib>
using namespace std;
void Salary::set_salarys()
{
int n=0;
ifstream infile("salary.txt",ios::in); //以输入的方式打开文件
if(!infile) //测试是否成功打开
{
cerr<<"open error!"<<endl;
exit(1);
}
while(infile>>Salarys[n])
n++;
number=n;
infile.close();
}
void Salary::add_salarys(int x)
{
int i;
for(i=0; i<number; i++)
Salarys[i]+=x;
}
void Salary::sort_salarys()
{
int i=0,j;
double t;
for(i=0; i<number-1; i++)
for(j=0; j<number-1-i;j++)
if(Salarys[j]<Salarys[j+1])
{
t=Salarys[j+1];
Salarys[j+1]=Salarys[j];
Salarys[j]=t;
}
for(i=0;i<number;i++)
cout<<Salarys[i]<<endl;
}
void Salary::show_salarys()
{
int i;
for(i=0;i<number;i++)
cout<<Salarys[i]<<endl;
}
void Salary::save_salarys()
{
int n=0;
ofstream outfile("salary_aftersort.txt",ios::out); //以输入的方式打开文件
if(!outfile) //测试是否成功打开
{
cerr<<"open error!"<<endl;
exit(1);
}
for(n=0;n<number;n++)
outfile<<Salarys[n]<<endl;
outfile.close();
}
学习感悟:一开始老是出现一大堆错误,直到看到把ofstream写成了ifstream。。。。