C++找对象的季节——数组做数据成员(工资为例,多文件组织+动态数组+文件读取)
2015-03-29 14:24
405 查看
把这些关键词组织在一起是不是看上去很高大上呢???真希望来看我的人会多一点,废话不多说,马上开始。
首先是我们的class_Salary.h:
然后就是我们的Salary.cpp:
而最后在main函数中:
测试结果:
五次测试,得到以上结果。最后感谢一下贺老,提供了salary.txt以及标准答案,才让我能在短时间内将这些东西汇总并加以利用写出动态数组与多文件组织两种特色的代码。
首先是我们的class_Salary.h:
#ifndef CLASS_SALARY_H_INCLUDED #define CLASS_SALARY_H_INCLUDED const int N=500; class Salary { public: void set_salarys(); void read_data( ); void write_data(); void add_salarys(int x); void sort_salarys(); void show_salarys( ); private: double salarys ; //工资 int number; //人数 }; #endif // CLASS_SALARY_H_INCLUDED
然后就是我们的Salary.cpp:
#include <iostream> #include <fstream> #include <cstdlib> #include "class_Salary.h" using namespace std; void Salary::read_data( ) { int i=0; ifstream infile("salary.txt",ios::in); if(!infile) { cerr<<"open error!"<<endl; exit(1); } while(infile>>salarys[i]) i++; infile.close(); } void Salary::write_data( ) { int i; ofstream outfile("salary_ordered.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::set_salarys( ) { cout<<"请输入职工人数: "; cin>>number; double *salarys=new double[number]; //分配大小正好合适的空间存放数据 read_data(); delete[] salarys; } void Salary::add_salarys(int x) { int i; for (i=0; i<number; i++) salarys[i]+=x; } void Salary::sort_salarys() { int i,j; double t; for (i=0; i<number-1; i++) for(j=0; j<number-i-1; j++) if (salarys[j]<salarys[j+1]) { t=salarys[j]; salarys[j]=salarys[j+1]; salarys[j+1]=t; } } void Salary::show_salarys( ) { int i; for (i=0; i<number; i++) { if(i%5==0&&i!=0) cout<<endl; cout<<salarys[i]<<"\t"; } cout<<endl; }在set_data()函数中就是我们的动态数组分配命名空间了。
而最后在main函数中:
#include <iostream> #include<cstdlib> #include "class_Salary.h" using namespace std; int main( ) { Salary s; for(int i=0;i<5;i++) { s.set_salarys(); s.read_data( ); s.add_salarys(500); s.sort_salarys(); s.write_data( ); s.show_salarys( ); } return 0; }为了测试方便,加了一个for语句,但是在最开始的时候用的是while(1)的循环语句,等我觉得测试够了之后按下了CTRL+z,但是这之后程序就进入了死循环,窗口不停的输出最后的一组测试数据,这是为什么呢?后来试了一些办法包括用system("pause")命令也无法解决,不知哪位大神能给我解决这个问题,百般无奈之下只得使用了这个for语句。
测试结果:
五次测试,得到以上结果。最后感谢一下贺老,提供了salary.txt以及标准答案,才让我能在短时间内将这些东西汇总并加以利用写出动态数组与多文件组织两种特色的代码。
相关文章推荐
- C++找对象的季节——三角形类第三弹(对象做数据成员+多文件组织)
- C++走向远洋——36(数组做数据成员,工资)
- 第八周项目1—数组做数据成员(工资类 数组 文件)
- C++第4周项目5 - 数组作数据成员(扩展2、3引入文件)
- 2013级C++第4周(春)项目——再和对象找感觉【项目4 - 数组作数据成员】
- 第八周项目一(2) 数组做数据成员(工资类 数组 文件)
- 第八周项目1—数组做数据成员(工资类 数组 文件)
- 第八周项目一(2) 数组做数据成员(工资类 文件 指针)
- 第2周-项目5-数组作数据成员-工资类(多文件组织)
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- c++简单读写文本,统计文件的行数,读取文件数据到数组
- C++中 没有数据成员的类的对象所占的内存空间大小问题
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组 (转)
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++第七周任务【任务1】含有静态数据成员和成员函数的Time类:类中所有的对象共有的数据
- c/c++中怎样将结构体成员数据存储到文件中,并读出来
- C++ 读写文本文件、统计文件的行数、读取文件数据到数组
- C++入门 (六) 类对象数组和静态成员
- c/c++对象模型大总结:第5-8章、数据成员的存取与布局