您的位置:首页 > 其它

第十三周项目6-体验文件操作(实战3-读入文件、并输出文件salary)

2014-11-24 16:25 190 查看
/*
*Copyright(c)2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:满星辰
*完成日期:2014年 11月 24日
*版本号:v1.0
*
*问题描述:从文件中读入salary,输出salary增加20%并排序后的结果
*程序输入:
*程序输出:
*/
#include <fstream>   //操作文件必写
#include<iostream>
#include<cstdlib>   //调用exit(1)需要包含cstdlib
void work(double a[],int n);
using namespace std;
int main( )
{
double Salary[10000];
int i=0; //要求最大值,先默认其为一个很小的数
double a;
//以输入的方式(ios::in)打开文件,注意f1.dat必须在文件夹中存在
ifstream infile("salary.dat",ios::in);
ofstream outfile("ordered_salary.txt",ios::out);
//测试是否成功打开,打开失败时(如要读的数据文件不存在)退出
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
if(!outfile)    				//测试文件打开操作是否成功
{
cerr<<"open error!"<<endl;
exit(1);				//打开不成功,则提示后退出。
}
//下面读取数据并完成处理,若数据需要多次使用,可以读入到数组中
while(infile>>a)  //当到达文件尾,则循环处理结束。类似cin>>a,只不过数据来源于打开的文件
{
Salary[i]=a*1.2;
i++;
}
work(Salary,i);
for(int j=0; j<i; ++j)
{
outfile<<Salary[j]<<endl;
}
infile.close(); 		 //读入完毕要关闭文件
cout<<"处理完毕,请打开文件查看结果!"<<endl;
//下面对数据的操作和文件就没有关系了,本例输出求得的最大值
return 0;
}
void work(double a[],int n)
{
int t;
for(int j=1; j<n; ++j)
{
for(int k=0; k<n-1; ++k)
{
if(a[k]>a[k+1])
{
t=a[k];
a[k]=a[k+1];
a[k+1]=t;

}
}
}
return;
}
/*
*Copyright(c)2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:满星辰
*完成日期:2014年 11月 24日
*版本号:v1.0
*
*问题描述:从文件中读入salary,输出salary增加20%并排序后的结果
*程序输入:
*程序输出:
*/
#include <fstream>   //操作文件必写
#include<iostream>
#include<cstdlib>   //调用exit(1)需要包含cstdlib
void work(double a[],int n);
using namespace std;
int main( )
{
double Salary[10000];
int i=0; //要求最大值,先默认其为一个很小的数
double a;
//以输入的方式(ios::in)打开文件,注意f1.dat必须在文件夹中存在
ifstream infile("salary.dat",ios::in);
ofstream outfile("ordered_salary.txt",ios::out);
//测试是否成功打开,打开失败时(如要读的数据文件不存在)退出
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
if(!outfile)    				//测试文件打开操作是否成功
{
cerr<<"open error!"<<endl;
exit(1);				//打开不成功,则提示后退出。
}
//下面读取数据并完成处理,若数据需要多次使用,可以读入到数组中
while(infile>>a)  //当到达文件尾,则循环处理结束。类似cin>>a,只不过数据来源于打开的文件
{
Salary[i]=a*1.2;
i++;
}
work(Salary,i);
for(int j=0; j<i; ++j)
{
outfile<<Salary[j]<<endl;
}
infile.close(); 		 //读入完毕要关闭文件
cout<<"处理完毕,请打开文件查看结果!"<<endl;
//下面对数据的操作和文件就没有关系了,本例输出求得的最大值
return 0;
}
void work(double a[],int n)
{
int t;
for(int j=1; j<n; ++j)
{
for(int k=0; k<n-1; ++k)
{
if(a[k]>a[k+1])
{
t=a[k];
a[k]=a[k+1];
a[k+1]=t;

}
}
}
return;
}
运行结果:学习心得:仔细想想还是蛮简单的。。。infile-->cinoutfile-->cout再加上头文件之类的,其实和原来没什么区别的

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: