第3周项目5-数组做数据成员(1)

来源:互联网 发布:c语言 注释 编辑:程序博客网 时间:2024/05/22 06:35

问题描述:

设计一个工资类(Salary)   要设计的成员函数有:

  • void set_salarys( ):输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中;
  • void add_salarys(int x):给每个人涨x元工资
  • void sort_salarys():对工资排序
  • void show_salarys( ):显示工资信息

(1)      main函数定义Salary类的对象,输入工资,再给每个人涨500元工资,排序后工资数据,然后输出结果。
2)用salary[50]有限制,实际人数少时,会浪费空间,人数多了,无法完成任务。在main()中先输入职工人数,作为参数传递给输入职工工资的成员函数,然后利用动态分配内存的机制,开辟一个大小正好的连续空间,完成上面的工作。
3)手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。
4)增加一个成员函数,将排序后结果保存到一个文件中。
5)用多文件的方式组织最后的程序。

 

代码:

1.main.cpp

<strong>#include <iostream>using namespace std;#include"Salary.h"int main(){    Salary s1;    s1.set_salary();    s1.show();    s1.add_salary(50);    s1.sort_salary();    s1.show();    return 0;}</strong>
<strong>2.Salary.h</strong>
<strong></strong><pre class="cpp" name="code">#ifndef SALARY_H_INCLUDED#define SALARY_H_INCLUDEDclass Salary{private:    double *salarysA;    int number;public:    void set_salary();    void add_salary(double);    void sort_salary();    void show();};#endif // SALARY_H_INCLUDED

3.Salary.cpp

 

#include <iostream>using namespace std;#include"Salary.h"void Salary::set_salary(){    int i=0;    cout<<"输入职工人数:";    cin>>number;    salarys=new double[number];    cout<<"输入职工工资:";    for(;i<number;i++)    {        cin>>salarys[i];    }}void Salary::add_salary(double n){    int i=0;    for(;i<number;i++)    {        salarys[i]+=n;    }}void Salary::sort_salary(){    int i,j;    double n;    for(i=0;i<number-1;i++)    {        for(j=0;j<number-i-1;j++)        {            if(salarys[j+1]>salarys[j])            {                n=salarys[j+1];                salarys[j+1]=salarys[j];                salarys[j]=n;            }        }    }}void Salary::show(){    int i=0;    for(;i<number;i++)        cout<<salarys[i]<<"   ";    cout<<endl;}


 

运行结果:

学习心得:

            冒泡排序+动态分配+多文件组织,有必要再复习一下。
0 0
原创粉丝点击