码迷,mamicode.com
首页 > 编程语言 > 详细

第三周 项目五-数组做数据成员(二)

时间:2015-03-19 14:51:04      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:c++   大一练习      

/*
 * Copyright (c) 2015, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:冷基栋
 * 完成日期:2015年 3 月 19 日
 * 版 本 号:v1.0
*/

问题

(2)用salary[50]有限制,实际人数少时,会浪费空间,人数多了,无法完成任务。在main()中先输入职工人数,作为参数传递给输入职工工资的成员函数,然后利用动态分配内存的机制,开辟一个大小正好的连续空间,完成上面的工作。

代码

#include <iostream>
using namespace std;
class Salary
{
private:
    int *salarys;
    int number;
public:
    void set_salarys();
    void add_salarys(int);
    void sort_salarys();
    void show_salarys();
};
void Salary::set_salarys()
{
    int x=0,i=0;
    cout<<"请输入职工人数:";
    cin>>number;
    salarys=new int[number];
    cout<<"请输入职工工资:";
    while (i<number)
    {
        cin>>x;
        salarys[i]=x;
        i++;
    }
    number=i;
}
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.set_salarys();
    s.add_salarys(666);
    s.sort_salarys();
    s.show_salarys();
}

运行结果:
技术分享

知识点总结:

int *salarys;

cin>>number;
    salarys=new int[number];

int x=0,i=0;

while (i<number)
    {
        cin>>x;
        salarys[i]=x;
        i++;
    }

学习心得:

好好学习 天天向上

第三周 项目五-数组做数据成员(二)

标签:c++   大一练习      

原文地址:http://blog.csdn.net/ljd939952281/article/details/44457073

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!