/*
* 作 者: 霍雨佳
* 完成日期:2014 年6月3日
* 版 本 号:v1.0
* 问题描述:工资数据的输入
* 样例输入:
* 样例输出:
* 问题分析:
* (1)输入若干职工的工资(1000-10000的数字),将这些数字按降序排序后输出。请在下面程序基础上开展工作。
* (2)在软件开发过程中,为了调试程序,常常需要多次运行程序。多次运行的输入常相同,不免感到麻烦,尤其当数据量还偏多之时。人在做着毫无技术含量的事情!
* 可以用的简便方法是,用输入重定向避免这种重复:请自建一个文件a.txt,包含上面输入样例中的数据,在(1)的程序中,while之前加句freopen("a.txt","r",stdin);,return 0;
* 之前加一句fclose(stdin);,然后运行程序……。
* (3)在实际的应用中,数据并不是从键盘输入。输入重定向的方式也并非“正当”的渠道。工程中的做法是将数据放入专门的文件等待处理。
下载文件salary.txt,其中有不超过500名职工的工资。编程序读入这些职工的工资,将按降序排序后显示并保存到文件ordered_salary.txt中。
*/
#include <iostream>
#include<cstdio> //支持freopen的头文件
#include<cstdlib>
#include<fstream>
using namespace std;
int main( )
{
double salarys[500],t;
int n=0;
freopen("a.txt","r",stdin); //以输入的方式打开文件 r=read
freopen("b.txt","w",stdout); //输出结果 w=write
while(cin>>salarys[n])
{
n++; //从cin流读取数据
}
//将n名职工的工资排序后输出
for(int i=0;i<n+1;i++)
{
for(int j=0;j<n-i;j++)
{
if(salarys[j]<salarys[j+1])
{
t=salarys[j];
salarys[j]=salarys[j+1];
salarys[j+1]=t;
}
}
}
for(int y=0; y<n; y++)
{
cout<<salarys[y]<<endl;
}
fclose(stdin);
fclose(stdout);//关闭文件。用完了必须关闭,
return 0;
}
运行结果:
15-1 工资数据的输入(从一个文件中读出读入另一个文件中)
最新推荐文章于 2022-03-21 22:54:37 发布