当前位置: 首页 > 工具软件 > Discount > 使用案例 >

习题9.9 (运行成功)商店销售某一商品,商店每天公布统一的折扣(discount),同时允许销售人员在销售时灵活掌握售价(price)。

易星宇
2023-12-01

在此基础上,对一次购买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;
}
 类似资料: