谭浩强C++课后习题33——面向对象之商品销售

谭浩强C++课后习题33——面向对象之商品销售

题目描述:商店销售某一商品,每天公布同一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,一次购10件以上者,还可以享受9.8折优惠。现已知当天3个销货员的销售情况为
销货员号(num) 销货件数(quantity) 销货单价(price)
101 5 23.5
102 12 24.56
103 100 21.5
请编写程序,计算出当日此商品的总销售款sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数。

解题思路:将售出商品总数,同一折扣和销售总额设为静态成员;用total函数对静态成员进行操作。令一个静态成员函数average用于计算总平均售价,令一个静态成员函数display输出总销售款和总平均售价。

#include<iostream>
using namespace std;
class product {
private:
	int num;
	int quantity;
	double price;
	static double sum;
	static int n;
	static double discount;
public:
	product(int n, int q, double p) :num(n), quantity(q), price(p) {}
	void total();
	static double average();
	static void dislay();
};
double product::sum = 0;
int product::n = 0;
double product::discount = 0.95;
void product::total() {
	n = n + quantity;
	double sale = quantity * price * discount;
	if (quantity > 10)sale = sale * 0.98;
	sum = sum + sale;
}
double product::average() {
	return sum / n;
}
void product::dislay() {
	cout << "总销售款:" << sum << endl;
	cout << "平均售价:" << average() << endl;
}
int main() {
	product pro[3] = {
		product(101,5,23.5),product(102,12,24.56),product(103,100,21.5)
	};
	for (int i = 0;i < 3;i++) {
		pro[i].total();
	}
	product::dislay();
	return 0;
}

运行测试结果:
在这里插入图片描述

发布了35 篇原创文章 · 获赞 35 · 访问量 566

猜你喜欢

转载自blog.csdn.net/weixin_45295612/article/details/105310588
今日推荐