谭浩强 C++面向对象程序设计 118页第9题 9.商店销售某一商品,商店每天公布统一的折扣(discout)。同时允许销售人员在销售时灵活掌握售价(Price),在此基础上,对一次购10件以上者,还

谭浩强 C++面向对象程序设计 118页第9题
9.商店销售某一商品,商店每天公布统一的折扣(discout)。同时允许销售人员在销售时灵活掌握售价(Price),在此基础上,对一次购10件以上者,还可以掌受9.8拆优惠。现已知当天3名销货员的销售情况为:

销货员号(num)销货件数(quantity)销货单价(price)
101523.5
1021224.56
10310021.5

请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。要求用静态数据成员和静态成员函数。
(提示:将折扣discount、总销售款sum和商品销售总件数n声明为静态数据成员,
再定义静态成员函数average(求平均售价)和display(输出结果)。)

#include <iostream>
using namespace std;
//sale类
class sale
{
//公有
public:
	//有参构造函数
	sale(int n, int c, double p);
	//静态成员函数,求平均
	static double average();
	//静态成员函数,显示总销售额和平均售价
	static void display();
//私有
private:

	//折扣
	static double discout;
	//总销售款
	static double sum;
	//商品销售总件数
	static int n;

	//销货员号
	int num;
	//销货员的销货件数
	int quantity;
	//销货员的销货单价
	double price;
};


sale::sale(int no, int q, double p)
{
	//销货员号
	num = no;
	//销货员的销货件数
	quantity = q;
	//销货员的销货单价
	price = p;
	//商品销售总件数,每创建一个sale对象就把销售总量加上该对象的销售数量
	n += q;
	//销货员的销货单价,每创建一个sale对象就把该对象的销售数量乘销售单价乘折扣
	//如果销货员的销货件数q>10则执行:前面的,打9.8折
	//这里题目有bug,题目说对一次购l0件以上者,打9.8折,但是只给了销货件数,姑且按这样处理
	sum += q >= 10 ? p * q * discout * 0.98 : p * q * discout;

}
double sale::average()
{
	return sum / n;
}
void sale::display()
{
	cout << "总销售款:" << sum << endl;
	cout << "平均售价:" << average() << endl;
}
//折扣95折
double sale::discout = 0.95;
//总销售款初始为0
double sale::sum = 0;
//商品销售总件数初始为0
int sale::n = 0;
//主函数
int main()
{
	//定义sale对象数组
	sale S[3] =
	{
	sale(101, 5, 23.5),
	sale(102, 12, 24.56),
	sale(103, 100, 21.5)

	};
	//显示总销售额和平均售价
	sale::display();
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜的抠jio?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值