题目
商店销售某一商品,每天公布统一的折扣discount,同时允许销售人员在销售时灵活掌握售价price,在此基础上,一次购入10件以上这,还可享受9.8折优惠。现已知当天3个销货员销售情况为:
请编写程序,计算出当日此商品的总销售款sum以及每件商品的平均售价。要求使用静态数据成员和静态成员函数。
提示:将折扣discount,总销售款sum和商品销售总件数n声明为静态数据成员,再定义静态成员函数average求平均售价和display输出结果。
代码
#include<iostream>
using namespace std;
class Sale{
public:
Sale(int n, int q, double price): num(n), qua(q), price(price){};
static void saleSum(Sale* s);
static double average();
static void display();
private:
int num;
int qua;
double price;
static double discount;
static double sum;
static int cnt;
};
double Sale::discount = 0.98;
double Sale::sum = 0;
int Sale::cnt = 0;
double ave = 0;
void Sale::saleSum(Sale s[3]){
for (int i = 0; i < 3; i++) {
if (s[i].qua < 10) sum += s[i].price * s[i].qua;
else sum += discount * s[i].price * s[i].qua;
cnt += s[i].qua;
}
}
double Sale::average() {
ave = sum / cnt;
return ave;
}
void Sale::display() {
cout<<"总销售款为:"<<sum<<endl;
cout<<"平均售价为:"<<ave<<endl;
}
int main() {
Sale sale1(101, 5, 23.5);
Sale sale2(102, 12, 24.5);
Sale sale3(103, 100, 21.5);
Sale s[3] = {sale1, sale2, sale3};
Sale::saleSum(s);
Sale::average();
Sale::display();
return 0;
}