第15周报告3
实验目的:学会ASCII文件的操作
实验内容:从文件中读入数据,排序并输出到另外一个文件中
/*
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: salary
* 作 者: 姜雅明
* 完成日期: 2011 年 12 月 04 日
* 版 本号: 1.0
* 对任务及求解方法的描述部分
* 输入描述:文件salary.txt
* 问题描述:从文件salary.txt中读入500名工人的工资,全部增加100元后进行排序(好事,涨工资了),将排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中
* 程序输出:ordered_salary.txt
* /
//下面是程序
#include <fstream>
#include<iostream>
void input_salaty();
void add_money();
void bubble_sort();
void output_salary();
void orderder_salary();
double sal[500];
using namespace std;
int main()
{
input_salaty();
add_money();
bubble_sort();
output_salary();
orderder_salary();
return 0;
}
void input_salaty()
{
int i;
ifstream infile("salary.txt",ios::in);
if(!infile)
{
cout << "open error!\n";
exit(1);
}
for(i = 0; i < 500; i++)
{
infile >> sal[i];
}
infile.close();
return;
}
void add_money()
{
int i;
for(i = 0; i < 500; i++)
{
sal[i] = sal[i] + 100;
}
return;
}
void bubble_sort()
{
int i,j,t,num = 500;
for(j = 0; j < num - 1; j ++)
{
for(i = 0; i < num - 1 - j; i ++)
{
if(sal[i] > sal[i + 1])
{
t = sal[i], sal[i] = sal[i + 1], sal[i + 1] = t;
}
}
}
return;
}
void output_salary()
{
int i;
for(i = 0; i < 500; i++)
{
cout << sal[i] << '\t';
}
return;
}
void orderder_salary()
{
int i;
ofstream outfile("ordered_salary.txt",ios::out);
for(i = 0; i < 500; i++)
{
outfile << sal[i] <<endl;
}
outfile.close();
return;
}
运行结果:
经验积累:
1. 文件的操作要加#include<fstream>
2. 文件传入ifstream infile(""ios::in),结束要加 .close()。对应传出
3. 冒泡排序···
上机感言:
对于这个真的没什么想法,看过别人的才知道应该怎么写···冒泡排序···