第三周 项目五-数组做数据成员(三)文件操作-数组
/*
* Copyright (c) 2015, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:冷基栋
* 完成日期:2015年 3 月 21 日
* 版 本 号:v1.0
*/
问题
(3)手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(下载),从文件中读数据,完成上面的工作。
(4)增加一个成员函数,将排序后结果保存到一个文件中。
代码
#include <iostream> #include <cstdlib> #include <fstream> using namespace std; const int N=500; class Salary { private: double salarys[N]; int number; public: void read_salarys(); void write_salarys(); void add_salarys(int); void sort_salarys(); void show_salarys(); }; void Salary::read_salarys() { int x=0,i=0; ifstream infile("salary.txt",ios::in); if(!infile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); } while (infile>>salarys[i]) { i++; } number=i; infile.close(); } void Salary::write_salarys() { int i; ofstream outfile("sort.txt",ios::out); if(!outfile) //测试是否成功打开 { cerr<<"open error!"<<endl; exit(1); } for(i=0; i<number; ++i) { outfile<<salarys[i]<<endl; } outfile.close(); } void Salary::add_salarys(int a) { for (int i=0; i<number; i++) { salarys[i]+=a; } } void Salary::sort_salarys() { int a; for (int i=0; i<number-1; i++) for (int j=0; j<number-1; j++) { if(salarys[j]>salarys[j+1]) { a=salarys[i]; salarys[i]=salarys[i+1]; salarys[i+1]=a; } } } void Salary::show_salarys() { for (int i=0; i<number; i++) cout<<salarys[i]<<endl; } int main() { Salary s; s.read_salarys(); s.add_salarys(666); s.sort_salarys(); s.write_salarys(); s.show_salarys(); }
运行结果:
知识点总结:
记事本默认的拓展名不用写。
学习心得:
好好学习 天天向上
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。