您的位置:首页 > 其它

《第十六周实验报告任务1——涨工资并排序 》

2012-06-05 19:05 204 查看
/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称: 涨工资并排序

* 作 者: 刘江波

* 完成日期: 2012 年 6 月 5 日

* 版 本 号: v.03

* 对任务及求解方法的描述部分

* 问题描述:

【任务1】涨工资

从文件salary.txt 中读入500 名工人的工资,全部增加100 元后进行排序,将排序后的结果在屏幕上

输出,并保存到文件ordered_salary.txt 中。(salary.txt 可以从BB 平台下载)

* 程序头部的注释结束

*/

#include<iostream>
#include<fstream>
#include <iomanip>
using namespace std;

int main()
{
	double a[500],t;
	ifstream infile("salary.txt",ios::in);
	//定义输入文件流对象,以输入方式打开磁盘文件
	if (! infile)
	{
		cerr<<"open error!"<<endl;
		exit(1);
	}
	for(int i=0;i<500;i++)
	{
		infile>>a[i];//从磁盘文件读入数据,顺序存放在a数组中
		a[i]=a[i]+100;//加工资
	}
	infile.close();//关闭文件salary.txt

	//对读入的数据进行排序
	for(int j=0;j<499;j++)
		for(int b=0;b<499-j;b++)
			if(a[b]>a[b+1])
			{
				t=a[b];
				a[b]=a[b+1];
				a[b+1]=t;
			}
			ofstream outfile("ordered_salary.txt",ios::out);
			//定义输出文件流,以输出方式打开文件
			if (! outfile)
			{
				cerr<<"open error!"<<endl;
				exit(1);
			}
			cout << "加工资后并排序的结果如下:" << endl;
			for(int i=0;i<500;i++)
			{
				outfile<<a[i]<<" ";//将数据存入磁盘文件
				cout.setf(ios::left);//运用流对象成员函数,使数据左对齐
				cout << setw(10) << a[i] << setw(10);//同时送显示器显示
				if(((i + 1) % 5) == 0)
				{
					cout << endl;
				}
			}
    outfile.close();  //关闭文件ordered_salary.txt       
    system("PAUSE");		
    return 0;
}






总结:

理解掌握了打开磁盘文件的方式,以及其原理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: