商店销售某一商品,每天公布统一的折扣(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(输出结果)。
时间: 2024-02-12 17:10:03 浏览: 103
数据库系统期末项目基于Spring boot+Vue.js的图书销售系统源码+sql数据库+项目部署说明.zip
5星 · 资源好评率100%
下面是一个可能的程序实现:
```
#include <iostream>
using namespace std;
class Sales {
public:
Sales(int n, int q, double p) : num(n), quantity(q), price(p) {}
static void setDiscount(double d) { discount = d; }
static void addSale(int q, double p) {
n += q;
sum += q * p * discount;
}
static double average() { return sum / n; }
static void display() {
cout << "Total sales: " << sum << endl;
cout << "Average price: " << average() << endl;
}
private:
int num;
int quantity;
double price;
static double discount;
static double sum;
static int n;
};
double Sales::discount = 1.0;
double Sales::sum = 0.0;
int Sales::n = 0;
int main() {
Sales::setDiscount(0.98);
Sales s1(101, 5, 23.5);
Sales::addSale(s1.quantity, s1.price);
Sales s2(102, 12, 24.56);
Sales::addSale(s2.quantity, s2.price);
Sales s3(103, 100, 21.5);
Sales::addSale(s3.quantity, s3.price);
Sales::display();
return 0;
}
```
在这个程序中,我们定义了一个 `Sales` 类,它表示一次销售的信息,包含销货员号、销货件数和销货单价。为了实现求平均售价和输出结果的功能,我们将折扣、总销售款和商品销售总件数声明为了静态数据成员,将求平均售价和输出结果的功能实现为了静态成员函数。在 `main` 函数中,我们创建了三个 `Sales` 对象,并通过静态成员函数 `addSale` 将它们的销售信息加入到统计数据中。最后调用静态成员函数 `display` 输出结果。
需要注意的是,我们在 `main` 函数开头通过静态成员函数 `setDiscount` 设置了当天的折扣率。这个折扣率对所有销售信息都有效,因此我们将它实现为了一个静态数据成员。在 `addSale` 函数中,我们通过累加销售数量和销售金额来更新静态数据成员 `n` 和 `sum` 的值。在 `average` 函数中,我们用 `sum` 除以 `n` 来计算平均售价。在 `display` 函数中,我们直接输出静态数据成员 `sum` 和调用 `average` 函数来输出平均售价。
阅读全文