商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3名销货员的销售情况为:
销货号(num) 销货件数(quantity) 销货单价(price)
101 5 23.5
102 12 24.56
103 100 21.5
请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。要求用静态数据成员和静态成员函数。
(提示:将折扣discount、总销售款sum和商品销售总件数n声明为静态数据成员,
再定义静态成员函数average(求平均售价)和display(输出结果)。)
代码如下:
#include<iostream>
using namespace std;
class Seller
{
private:
static double discount;//折扣
static double sum;//总销售款
static int n;//总销售件数
int number;//销货员号
int quantity;//销货件数
double price;//销售单价
public:
Seller(int n,double q,double p):number(n),quantity(q),price(p){};//构造函数,在声明对象时对数据成员赋初值
static double average(Seller* s1,int N);//求平均售价
static void display(Seller *s2,int N);//输出结果,用来显示商品的总销售款和平均售价
};
double Seller::discount=0.98;//初始化
double Seller::sum=0;//初始化
int Seller::n=0;//初始化
double Seller::average(Seller *s1,int N)
{
Seller *p;
for(p=s1;p<s1+N;p++)
{
if(p->quantity>10)
{
p->price *=p->discount;
}
sum+=(p->price)*(p->quantity);
n+=p->quantity;
}
return (sum/n);
}
void Seller::display(Seller *s2,int N)
{
cout<<"总销售款为"<<sum<<","<<"每件商品的平均售价为"<<average(s2,N)<<endl;
}
int main()
{
Seller sel[3]=//对象数组
{
Seller(101,5,23.5),
Seller(102,12,24.56),
Seller(103,100,21.5)
};
Seller::average(sel,3);//sel表示一个对象数组,相当于指针,将其作为参数传入average函数
Seller::display(sel,3);
return 0;
}
代码运行结果如下:

9942

被折叠的 条评论
为什么被折叠?



