第三周上机实践项目5-工资类(3、4从文件中读入数据并把结果保存在另一个文件中)
2015-03-27 19:37
465 查看
/* *Copyright(c)2014,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:满星辰 *完成日期:2015年 3月 27日 *版本号:v1.0 *问题描述:设计一个工资类(Salary),其中类的数据成员如下: *输入描述: *程序输出: */
class Salary { private: double salarys[50]; //多人的工资 int number; //实际人数 };(3)手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(下载),从文件中读数据,完成上面的工作。
(4)增加一个成员函数,将排序后结果保存到一个文件中。
#include <fstream> //操作文件必写 #include<iostream> #include<cstdlib> //调用exit(1)需要包含cstdlib using namespace std; class Salary { private: double salarys[500]; //多人的工资 int number; //实际人数 public: void set_salarys( );//输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中; void add_salarys(int x);//给每个人涨x元工资 void sort_salarys();//对工资排序 void show_salarys( );//显示工资信息 void save_salarys();//在另一个文件中保存数据 }; int main() { Salary s1; s1.set_salarys(); s1.add_salarys(500); s1.sort_salarys(); s1.show_salarys(); s1.save_salarys(); return 0; } void Salary::set_salarys( ) { int i=0; double a; //以输入的方式(ios::in)打开文件,注意f1.dat必须在文件夹中存在 ifstream infile("salary - C++语言基础.txt",ios::in); //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出 if(!infile) { cerr<<"open error!"<<endl; exit(1); } while(infile>>a) //当到达文件尾,则循环处理结束。类似cin>>a,只不过数据来源于打开的文件 { salarys[i]=a; i++; } infile.close(); //读入完毕要关闭文件 number=i; } void Salary::add_salarys(int x)//给每个人涨x元工资 { for(int i=0; i<number; i++) { salarys[i]+=x; } } void Salary::sort_salarys()//对工资排序 { double t; for(int i=0; i<number; ++i) for(int j=0; j<number-1; ++j) if(salarys[j]>salarys[j+1]) { t=salarys[j]; salarys[j]=salarys[j+1]; salarys[j+1]=t; } } void Salary::show_salarys( )//显示工资信息 { for(int i=0; i<number; ++i) { cout<<salarys[i]<<endl; } } void Salary::save_salarys() { ofstream outfile("ordered_salary.txt",ios::out); if(!outfile) //测试文件打开操作是否成功 { cerr<<"open error!"<<endl; exit(1); //打开不成功,则提示后退出。 } for(int i=0; i<number; ++i) { outfile<<salarys[i]<<endl; } outfile.close(); //读入完毕要关闭文件 cout<<"处理完毕,请打开文件查看结果!"<<endl; }心得:
从文件中输入数据还行,虽然不记得具体语句但查阅一下还是明白的。。。
输出数据到文件就不太会了,输入时关闭文件用的是infile.close() 我输出时也直接复制下来了,结果报错!
思考若干秒之后果断改成outfile.close()就通过了。。。机智的我!!!
图片:
相关文章推荐
- 第十五周上机实践项目——工资数据的输入(从文件中读取数据)
- 第三周上机实践项目5-工资类(5、多文件组织)
- 第三周项目五(3):数组做数据成员(从文件中读数据并将结果保存到文件中)
- 第十五周上机体验项目——将一个文件读入另一个文件
- 第三周 项目5-4 工资类——数据输出到文件
- 第四十三讲项目3.2——将统计结果保存到数据文件
- 第三周上机实践项目3-多文件组织(实现项目二)
- 【项目1-工资数据的输入】 文件读入工资
- 第14周上机实践项目2——用文件保存的学生名单
- 第三周上机实践项目3——程序的多文件组织
- 第十三周项目六 体验文件操作(读入文件,将工资全部增加20%,输出到另一个文件)
- 数据结构上机实践第三周项目1
- 第三周上机实践项目5-工资类(2.动态扩容无浪费)
- 第3周项目5-读入文件,保存数据
- 第四周上机--任务四--设计一个工资类(Salary)--完成各个功能--文件中读入数据--学会ASCII文件的操作
- 第十五周上机实践项目——用文件保存的学生名单
- 第十五周上机实践项目——工资数据的输入
- 15-1 工资数据的输入(从一个文件中读出读入另一个文件中)
- 第三周项目五 数组作数据成员(含指针、读入、读出文件)
- 第十六周上机实践——项目2-用文件保存的学生名单