C++面向对象实验4:类和对象二——第二题:商店销售

商店销售某一商品,商店每天公布统一的折扣(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 store{
    
    
	public :
	//使用参数初始化表定义构造函数
		store(int n,int q,float p):num(n),quantity(q),price(p){
    
    };
		void total();
		//静态成员函数求平均,以及显示结果
		static float average();
		static void display();
	private:
		int num;
		int quantity;
		float price;
		//定义静态成员变量
		static float discount;
		static float sum;
		static int n; 
}; 
//类外初始化静态成员变量
float store::discount=0.98;
float store::sum=0;
int store::n=0;
//类外定义成员函数
void store::total(){
    
    
	if(quantity>10)
		sum+=quantity*price*discount;
	else
		sum+=quantity*price;
	//sum+=quantity>10?quantity*price*discount:quantity*price;
	n+=quantity;
}
float store::average(){
    
    
	return sum/n;
}
void store::display(){
    
    
	//调用了average函数
	cout<<"总销售款数为:"<<sum<<"平均售价为:"<<store::average()<<endl;
}
main(){
    
    
//定义store对象数组
	store s[3]={
    
    
		store(101,5,23.5),
		store(102,12,24.56),
		store(103,100,21.5)
	};
	//使用for循环进行求和
	for(int i=0;i<3;i++)
		s[i].total();
	//显示总金额和平均售价
	store::display();
	return 0;
}

测试结果

在这里插入图片描述

总结

这道题中说超过10件享受9.8折优惠,但题目中只有销售员的销售件数,没有顾客的购买件数,这里还是有点矛盾的,我这里是直接按照销售件数来决定的。
其次就是销售员自己可以对销售价格进行更改,我这里是没有浮动的,改不改问题不大。
这道题目主要就是对类和对象的基础使用方法,如何定义、调用类里面的成员变量,成员函数等

猜你喜欢

转载自blog.csdn.net/qq_54388490/article/details/121357096