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

来源:互联网 发布:ubuntu 关闭休眠 编辑:程序博客网 时间:2024/05/16 11:01
/* * 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++;
    }

学习心得:

好好学习 天天向上

0 0
原创粉丝点击