问题:
商店销售某一商品,每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,一次购10件以上者,还可以享受9.8折优惠。现已知当天m个销货员销售情况为
代码语言:javascript复制 销货员号(num) 销货件数(quantity) 销货单价(price)
101 5 23.5
102 12 24.56
103 100 21.5
请编写程序,计算出当日此商品的总销售款sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数。 (提示: 将折扣discount,总销售款sum和商品销售总件数n声明为静态数据成员,再定义静态成员函数average(求平均售价)和display(输出结果)。
实例:
代码语言:javascript复制#include<iostream>
using namespace std;
class shop
{
public:
static void average();
void Personal();
static void dispaly();
shop(){num=0;n1=0;price=0;}
shop(int hao,int nn,float pp)
{
num=hao;
n1=nn;
price=pp;
}
private:
static float discount;//折扣
static float sum;//总销售额
static int n;//总销售个数
static float aver;//平均单价
float price;//售货单价
float s;//个人销售额
int n1;//个人销售个数
int num;//个人号码
};
float shop::discount=1;
float shop::sum=0;
float shop::aver=0;
int shop::n=0;
void shop::Personal()
{
s=n1*price*discount;
if(n1>10)
s=s*0.98;
sum =s;
n =n1;
cout<<num<<"销售"<<s<<endl;
}
void shop::average()
{
aver=sum/n;
}
void shop::dispaly()
{
cout<<"单价为"<<aver<<"总销售额为"<<sum<<endl;
}
int main()
{
shop a[3]=
{
shop(101,5,23.5),
shop(102,12,24.56),
shop(103,100,21.5)
};
a[0].Personal();
a[1].Personal();
a[2].Personal();
shop::average();
shop::dispaly();
}
运行结果:
代码语言:javascript复制101销售117.5
102销售288.826
103销售2107
单价为21.4814总销售额为2513.33
备注:
静态函数是类的一部分不是对象的一部分。
静态成员没有this指针。
静态成员必须进行初始化 初始化方式在类外进行 例如:int shop::n=0;
静态函数引用可以通过shop::dispaly();
形式,也可以通过a[0].dispaly();
,但是只是借用了a[0]
的类,而不是属于该对象。