商店销售某一商品,商店每天公布统一的折扣(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折优惠,但题目中只有销售员的销售件数,没有顾客的购买件数,这里还是有点矛盾的,我这里是直接按照销售件数来决定的。
其次就是销售员自己可以对销售价格进行更改,我这里是没有浮动的,改不改问题不大。
这道题目主要就是对类和对象的基础使用方法,如何定义、调用类里面的成员变量,成员函数等