课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/9078413
【项目1】旧题再做涨工资
从文件salary.txt中读入500名工人的工资,共享改革开放成果工资全翻番,将由低到高排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中。
#include <fstream> #include<iostream> #include<cstdlib> using namespace std; int main( ) { double a[500],t; int i,j; ifstream infile("salary.txt",ios::in); //以输入的方式打开文件 if(!infile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); } for(i=0; i<500; i++) infile>>a[i]; //从文件中读取数据 infile.close(); for(i=0; i<10; i++) a[i]*=2; //涨工资了 for(j=0; j<500-2; j++) //排序,用冒泡法,其他法类似 for(i=0; i<500-j-1; i++) if (a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } //输出结果 ofstream outfile("ordered_salary.txt",ios::out); if(!outfile) //测试文件打开操作是否成功,不成功则提示后退出。 { cerr<<"open error!"<<endl; exit(1); } for(i=0; i<500; i++) { outfile<<a[i]<<endl; if(i%5==0) cout<<endl; cout<<a[i]<<"\t"; } outfile.close(); //关闭文件。用完了必须关闭,否则会丢失数据 return 0; }
附:部分数据
1648.4
619.54
1763.34
2772.59
858.74
723.49
2391.0
876.95
2551.5
613.30
2711.12
850.4
909.68
1213.95
1099.51
1115.36
962.57
2325.6
804.20
1900.77
2940.78
2085.27
1119.57
1784.22
1348.9
949.99
1579.13
1346.39
1822.32
678.67
1984.87
817.20
850.81
2121.39
985.94
2386.22
1112.86
1604.15
1013.89
2968.97
622.48