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

该博客介绍了一个C++程序,用于计算商店商品的总销售款和平均售价。程序考虑了销售人员对销售价格的调整,并在销售量大于10件时提供9.8折优惠。通过静态数据成员和静态成员函数实现对全类数据的共享和计算,包括总销售金额(sum)、商品销售总件数(n)和折扣(discount)。博客中提供了程序代码并展示了运行结果,强调了类和对象的使用以及静态成员的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3名销货员的销售情况为:

销货员号(num)销货件数(quantity)销货单价(price)
101523.5
1021224.56
10310021.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;
}
int 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折优惠,但题目中只有销售员的销售件数,没有顾客的购买件数,这里还是有点矛盾的,我这里是直接按照销售件数来决定的。
其次就是销售员自己可以对销售价格进行更改,我这里是没有浮动的,改不改问题不大。
这道题目主要就是对类和对象的基础使用方法,如何定义、调用类里面的成员变量,成员函数等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

82年苏打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值