当前位置: 首页 > news >正文

面向对象的程序设计:对象数组,对象指针书后习题——第九章(P295)第九题

原题见谭浩强C++课本第九章(P295)第九题

题目:商店销售某一商品,每天公布统一的折扣。同时允许销售人员在销售是灵活掌握售价,在此基础上,一次购时间以上者,享受98折优惠,现已知当天3个销售员销售情况为:

销售员号(num)销货件数(quantity)销货单价(price)
1015

23.5

1021224.56
10310021.5

请编写程序,计算当日此产品的总销售款sum以及每件商品的平均单价,要求用静态成员和静态成员函数。

#include<iostream>
using namespace std;
class Sale {
private:int num;//工号int quantity;//每个人销售的件数double price;//销售单价static double sum;//总销售款static double discount;static int n;//总销售件数
public:Sale(int n, int q, double p) {num = n;quantity = q;price = p;}static double average();friend void inputdiscount();static void print(Sale s[]);void cal() {if (quantity <= 10) {sum += quantity * discount * price;}else {sum += quantity * discount * price * 0.98;}n += quantity;}};
double Sale::sum = 0;
int Sale::n = 0;
double Sale::discount = 1;
void inputdiscount() {cin >> Sale::discount;
}double Sale::average() {return sum / n;
}
void Sale::print(Sale s[]) {for (int i = 0; i < 3; i++) {cout << "number: " << s[i].num << " quantity: " << s[i].quantity << " price: " << s[i].price << endl;}cout << "sum: " << sum << " sum of quantity: " << n << " average: " << average() << endl;
}
int main() {Sale s[3]{Sale(101,5,23.5),Sale(102,12,23.56),Sale(103,100,21.5),};inputdiscount();for (int i = 0; i < 3; i++)s[i].cal();s[0].print(s);
}

输出结果:

相关文章:

  • SpringBoot配置第三方专业缓存框架j2cache
  • 游戏心理学Day18
  • Ps:脚本与动作
  • miniconda安装教程以及pip换源【Windows版本】
  • 删除名为 `XXXX` 的 conda 环境的命令
  • LLM 理论知识
  • Linux中的进程控制
  • 农业领域科技查新点提炼方法附案例!
  • uniapp原生插件开发实战——Android打开文件到自己的app
  • 数据库设计规范总结
  • windows 下 docker 入门
  • JWT详解、JWTUtil工具类的构建方法
  • 贪心算法学习四
  • 推荐常用的三款源代码防泄密软件
  • Cocos2d-x 4.0 工程首次建立与编译(Mac m1)
  • Android 架构优化~MVP 架构改造
  • Angular Elements 及其运作原理
  • co模块的前端实现
  • Invalidate和postInvalidate的区别
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java2019面试题北京
  • JavaWeb(学习笔记二)
  • js 实现textarea输入字数提示
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • use Google search engine
  • Vue全家桶实现一个Web App
  • 安卓应用性能调试和优化经验分享
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 前端相关框架总和
  • 使用 Xcode 的 Target 区分开发和生产环境
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (三)c52学习之旅-点亮LED灯
  • (三)elasticsearch 源码之启动流程分析
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • . NET自动找可写目录
  • .NET Core 项目指定SDK版本
  • .NET 反射 Reflect
  • .NET 直连SAP HANA数据库
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • @AutoConfigurationPackage的使用
  • @JoinTable会自动删除关联表的数据
  • @JsonFormat 和 @DateTimeFormat 的区别
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [CERC2017]Cumulative Code
  • [Flex][问题笔记]TextArea滚动条问题
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [idea]关于idea开发乱码的配置
  • [java][gps]GPS坐标系转换
  • [JavaWeb玩耍日记]Maven的安装与使用
  • [LeeCode]—Wildcard Matching 通配符匹配问题