在此基础上,对一次购买10件以上者,还可以享受98折优惠。现已知当天3个销货员销售情况为:
销货员号 (num) 销货件数(quantity) 销货单价(price)
101 5 23.5
102 12 24.56
103 100 21.5
请计算当日此商品的总销售额sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数。
“销货单价”是不加任何折扣的价格,实际价格需要 *discount,并且如果顾客购买10件以上,还要 *0.98。
但是,有一个奇怪的地方是,我们只知道销货件数,根本不知道有没有一次购买10件商品的顾客。比如1003号销货员共卖出100件商品,那么这100件中有几个一次购买10件的人?
但是我不知道怎么体现这个问题.。。。 希望有大神解释一下
以下代码中就直接用quantity充当判断是否大于10的标准了。。
#include<iostream>
using namespace std;
class Sale{
public:
Sale(int n, int q, float p):num(n),quantity(q),price(p){}
void total();
void display();
static float average();
private:
int num; //销货员号
int quantity; //销货件数
float price; //销货单价
static float discount; //统一折扣
static float sum; //总销售款
static int n; //总件数
};
void Sale::total(){
if(quantity>=10)
price *= 0.98*discount;
else
price *= discount;
sum+=price*quantity;
n+=quantity;
}
float Sale::average(){
return sum/n;
}
void Sale::display(){
cout<<"Today, sum is "<<sum<<", average is "<<average()<<endl;
float Sale::discount=0.95; //自己随意赋值
float Sale::sum=0;
float Sale::n=0;
int main(){
Sale s[3]={
{101, 5, 23.5},
{102, 12, 24.56},
{103, 100, 21.5}
};
int i;
for(i=0; i<3; i++)
s[i].total();
s[2].display();
return 0;
}