-
问题描述:
商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3名销货员的销售情况为:
销货员号(num) 销货件数(quantity) 销货单价(price)
101 5 23.5
102 12 24.56
103 100 21.5
请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。要求用静态数据成员和静态成员函数。 -
问题分析
需要定义一个处理销售信息的类,将部分数据定义为静态数据,定义一些静态方法,实现问题解决。 -
实现代码
#include
using namespace std;
class Sale_Utils
{ private : int num;
int quantity;
double price;
static double DISCOUNT;
static double SUM;
static int N;//销售总件数
static double AVERAGE;
public : Sale_Utils(int n,int q,double p):num(n),quantity(q),price§ {}
static void average();
static void display();
void getSum();
};
double Sale_Utils::DISCOUNT=0.05;
double Sale_Utils::SUM=0;
int Sale_Utils::N=0;
double Sale_Utils::AVERAGE=0;
void Sale_Utils::getSum()
{ if(this->quantity>10)
{ SUM+=price*(1-DISCOUNT)quantity0.98; }
else
{ SUM+=price0.98quantity; }
N+=this->quantity;}
void Sale_Utils::average()
{ AVERAGE=SUM/N;}
void Sale_Utils::display()
{ cout<<“销售总额:”<<SUM<<endl; cout<<“平均售价:”<< AVERAGE<<endl;}
int main()
{ Sale_Utils sales[3]={ Sale_Utils(101,5,23.5), Sale_Utils(102,12,24.56), Sale_Utils(103,100,21.5) };
for(int i=0;i<3;i++)
{ sales[i].getSum(); }
Sale_Utils::average();
Sale_Utils::display();
return 0;}
4.运行结果截图
5.注意点
本实验练习了静态数据与静态方法,要注意静态方法只能调用静态数据不能调用普通数据。