第十六周 任务一

来源:互联网 发布:阿里算法大赛 编辑:程序博客网 时间:2024/06/11 04:36
/*实验目的:学会ASCII文件的操作  实验内容:从文件中读入数据,排序并输出到另外一个文件中    * 程序头部注释开始  * 程序的版权和版本声明部分  * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved.  * 文件名称:工资                               * 作    者:薛广晨                              * 完成日期:2011  年 6 月  01 日  * 版 本号:x1.0             * 对任务及求解方法的描述部分  * 输入描述:文件salary.txt  * 问题描述:从文件salary.txt 中读入500 名工人的工资,全部增加100 元后进行排序,将排序后的结果在屏幕上输出,            并保存到文件ordered_salary.txt 中。* 程序输出:ordered_salary.txt  * 程序头部的注释结束  */  #include <fstream>  #include <iomanip>#include <iostream>   using namespace std;  void ouput_salary(double a[],int num);//输出工资;   void cin_salary(double a[],int num);//从文件得到工资;   void cout_salary(double a[],int num);//储存工资;   void bubble_sort(double a[], int num);//排序;   void add_salary(double a[],int num,double money);//加工资;   int main( )  {   double a[500];   int num=500;   cin_salary(a,num);//从文件读入工资;    cout<<"加工资排序前员工工资:"<<endl;   ouput_salary(a,num);//输出工人工资;    add_salary(a,500,100.0);//加工资;    bubble_sort(a, num);//排序;    cout<<"加工资排序后员工工资:"<<endl;   ouput_salary(a,num);//输出工资;    cout_salary(a,num);//保存到文件;  system("pause"); return 0;  }  void cin_salary(double a[],int num)  {      int i;      ifstream infile("salary.txt",ios::in);      if(!infile)  {  cerr<<"open error!"<<endl;  exit(1);   }      for(i=0;i<num;i++)  {  infile >> a[i];       }      infile.close();      cout<<endl;  }  void cout_salary(double a[],int num)    {      ofstream outfile("ordered_salary.txt",ios::out);      if(!outfile)  {  cerr<<"open error!"<<endl;         exit(1);  }      for(int i=0;i<num;i++)  outfile<<a[i]<<endl;         outfile.close();  }  void bubble_sort(double a[], int num)  {  int i,j,k;  double t;      for(i=0;i<num-1;i++)  {  k=i;         for(j=i+1;j<num;j++)  if(a[j]<a[k]) k=j;  t=a[k];  a[k]=a[i];  a[i]=t;  }  }  void ouput_salary(double a[],int num)  {  int i;        for(i=0;i<=num-1;i++)  {  cout << setiosflags(ios::left) << setw(10)<< a[i];        if((i+1) % 8 == 0)cout<<endl;  }     cout<<endl;  }  void add_salary(double a[],int num,double money)  {  int i;  for(i=0;i<num-1;i++)  {  a[i]=a[i]+money;  }  }  


运行前:


运行后:


涨工资前:


涨工资后:


上机感言:对文件的操作非常的方便,这对数据量很大的操作更是省事

原创粉丝点击