/* * 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++;
}
学习心得:
好好学习 天天向上
原文地址:http://blog.csdn.net/ljd939952281/article/details/44457073