第15周报告3: ASCII文件的操作

任务3:从文件salary.txt中读入500名工人的工资,全部增加100元后进行排序(好事,涨工资了),将排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中。

(salary.txt可以从BB平台下载)

实验目的:学会ASCII文件的操作
实验内容:从文件中读入数据,排序并输出到另外一个文件中

/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:  file.cpp
* 作    者:     贺利坚
* 完成日期:  2011  年   12  月   4 日
* 版 本 号:    v1.0
* 对任务及求解方法的描述部分
* 输入描述:文件salary.txt
* 问题描述:从文件salary.txt中读入500名工人的工资,全部增加100元后进行排序(好事,涨工资了),将排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中
* 程序输出:ordered_salary.txt
* 程序头部的注释结束
*/
//下面是程序
#include <fstream>
#include<iostream>
using namespace std;
int main( )
{
 float 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]+=100; //涨工资了
 //排序,用冒泡法,其他法类似
 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;
}

总结:此任务分为几大块:读数据、涨工资、排序、输出,都是以前练过的功夫。其中包括了对文件的读写,是最过瘾的。要处理的数据从键盘输入,这种情况很少发生。先不要管为什么,我们最终要知道所以然的,但很多时候,可以先知其然,这是学习工程技术的一个途径。如果有时间和一点点的勇气,自己看13章,能看懂多少算多少,否则可以等着下学期我们讲到那里。这种方式可以用到课外学习中去,我们总是能给自己创造条件,构造出具有特色的自主学习条件和环境。

时间: 2024-07-31 22:32:49

第15周报告3: ASCII文件的操作的相关文章

第15周报告1: 冒泡排序

任务1:(数组的排序)编函数,完成冒泡排序.要求不能改变下面的main函数. 重点体会:(1)排序算法:(2)数组名作形式参数,将能改变作为实际参数的数组的值,实际参数传递给形式参数的是数组的地址值,也是传值:(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递. 实验目的:学会冒泡排序算法 实验内容:实现冒泡排序算法,并将之定义为一个函数 /* 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All right

第15周报告2: 操作字符数组

任务2(字符数组和字符串):给出一个字符数组char str[],在程序中赋初值为一个句子,例如char str[]="he threw threefree throws",自编函数完成下面的功能: (1)求出字符数组中字符的个数(从第一个字符读起,直到读到'\0'结束计数)(对于例句,输出为26): (2)计算句子中各字符出现的频数 算法提示: (a) i=0 (b)取字符串中的第i个符号c (c)如果在c未在i之前出现过,在i位置上是第一次出现,频数f=1,从i+1位置到字符串结束

股票基金撤资62亿15周新高

[本报讯](记者 涂若奔)虽然全球经济有回暖迹象,但不少投资者已成为「惊弓之鸟」,稍有风吹草动立刻将资金撤出套现.美国投资公司协会最新公布截至6月24日数据显示,上周投资者总共从股票共同基金中撤出8.02亿美元(约62.55亿港元),数额之多创最近15周之最.此外,瑞银报告指当前除日本外亚洲股市偏贵,吸引力已较低.有分析指,投资者信心仍未恢复,全球股市不排除会再次走跌. 投资者成「惊弓之鸟」 据美国投资公司协会公布,8.02亿美元资金主要从美国国内股票基金中撤出,数额达到6.66亿美元,其余则为

serv u-serv-u 15中如何设置对文件中的某个文件夹单独的完全访问权限

问题描述 serv-u 15中如何设置对文件中的某个文件夹单独的完全访问权限 比如建立一个test用户可以E盘下面的123文件夹完全访问,而对E盘其他文件夹只具有可读,这个怎么设置,我在目录访问中设置按照顺序为如下: E:123 RWADN-LCRNI E: R---L---I 但是我删除123文件夹中的文件还是提示没有权限

二进制文件和ASCII文件有何区别

二进制文件和ASCII文件(即文本文件)的区别,对于和计算机亲近时间尚短的同学是个难题.本文用简单的例子,试图展示其中的道道,希望能对菜鸟们有些帮助. 1.一个例子:两种100000 有程序: #include<iostream> using namespace std; int main( ) { char c[8]="100000"; int n=100000; cout<<"c="<<c<<endl; cout&

C++第2周(春)项目3 文件+结构体实现实用系统

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-文件+结构体实现实用系统]score.txt(本文后提供了一部分数据,自行copy建文本文件)中是一些同学的学号.姓名.C++.高数.英语成绩,利用前两个项目中定义的结构体数组,读取文件中的数据,完成下面的应用: (1)从文件中读出数据,存放到结构体数组中: 博文"C++文件操作初体验"http://blog.csdn.ne

vc++实现avi文件的操作

为了对avi进行读写,微软提供了一套API,总共50个函数,他们的用途主要有两类,一个是avi文件的操作,一类是数据流streams的操作. 1.打开和关闭文件 AVIFileOpen ,AVIFileAddRef, AVIFileRelease 2.从文件中读取文件信息 通过AVIFileInfo可以获取avi文件的一些信息,这个函数返回一个AVIFILEINFO结构,通过AVIFileReadData可以用来获取AVIFileInfo函数得不到的信息.这些信息也许不包含在文件的头部,比如拥有

《Abaqus GUI程序开发指南(Python语言)》——2.12 文件的操作

2.12 文件的操作 文件读写是复杂程序不可缺少的一部分,本节将简单介绍一下Python语言中对文件的交互使用方法. 2.12.1 文件的创建及打开方式 创建文件需要用到file()函数,该函数的简单声明方式如下. file(filename,mode) 其中filename为文件名(可包含路径),mode为文件的打开方式,以下为创建文件的几个实例. >>>f=file('num.py','w') >>>f=file("C:\data.py",&qu

Python 文件读写操作实例详解_python

一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:os.remove()4.删除多个目录:os.removedirs(r"c:\python")5.检验给出的路径是否是一个文件:os.path.isfile()6.检验给出的路径是否是一个目录:os.path.isdir()7.判断是