/*Copyright (c)2016,烟台大学计算机与控制工程学院
02.02.*All rights reserved.
03.03.*文件名称:main.cpp
04.04.*作 者:李钊
05.05.*完成日期:2016年4月17日
06.06.*版 本 号:v1.0
07.07.*
08.08.*问题描述: 工资增加与排序
09.09. 输入描述: 工资和增加的工资数(从文件中输入到文件中去)
10.10.*输出描述: 排序后的工资
11.*/
#include <iostream>
#include <fstream>
using namespace std;
class Salary
{
public:
void set_salarys();
void add_salarys(double x);
void sort_salarys();
void save_salarys();
void show_salarys();
private:
double salary[500];
int number;
};
void Salary::set_salarys()
{
int i;
ifstream fin("D://a.txt",ios::in);
if(!fin)
{
cout<<"open error"<<endl;
}
else
{
for(i=0;i<500;i++)
{
fin>>salary[i];
if(salary[i]==-1)
{
break;
}
}
}
fin.close();
}
void Salary::add_salarys(double x)
{
int i,a;
for(i=0;i<50;i++)
{
if(salary[i]==-1)
{
a=i;
}
}
for(i=0;i<a;i++)
{
if(salary[i]==-1)
{
break;
}
salary[i]=salary[i]+x;
}
}
void Salary::sort_salarys()
{
int i,j,a;
double t;
for(i=0;i<500;i++)
{
if(salary[i]==-1)
{
a=i;
}
}
for(i=0;i<a-1;i++)
{
for(j=0;j<a-i-1;j++)
{
if(salary[j]>salary[j+1])
{
t=salary[j];
salary[j]=salary[j+1];
salary[j+1]=t;
}
}
}
}
void Salary::save_salarys()
{
int i,a;
ofstream out( "D:\\b.txt",ios::out);
if(!out)
{
cout<<"out error"<<endl;
}
for(i=0;i<500;i++)
{
if(salary[i]==-1)
{
a=i;
}
}
for(i=0;i<a;i++)
{
out<<salary[i]<<endl;
}
out.close();
}
void Salary::show_salarys()
{
int i,a;
for(i=0;i<500;i++)
{
if(salary[i]==-1)
{
a=i;
}
}
for(i=0;i<a;i++)
{
cout<<salary[i]<<" ";
}
}
int main()
{
Salary s;
double x;
cout<<"请输入工资:(以-1结束输入)"<<endl;
s.set_salarys();
cout<<"请输入要增加的工资数:"<<endl;
cin>>x;
s.add_salarys(x);
s.sort_salarys();
cout<<"排序后的工资已保存到D盘b.txt"<<endl;
cout<<"排序后的工资为:"<<endl;
s.show_salarys();
return 0;
}
运行结果:
学习心得:
文件的取用
知识点总结:
文件与类