销售经理(多继承/虚基类)

根据下图类之间的继承关系,以及main和输出定义,定义Staff类、Saleman类、Manager类和SaleManager类。

0012.png

Staff类包含的数据成员有编号(num),姓名(name),基本工资(basicSale)。Saleman类包含的数据成员个人有销售额(personAmount),在Manager类中包含的数据成员有销售总额(totalAmount)。在SaleManager中不包含其他数据成员。

函数接口定义:

int main()

裁判测试程序样例:

#include <iostream>
using namespace std;
/* 请在这里填写答案 */
int main()
{int num;string name;int basicSale,personAmount,totalAmount;cin>>num>>name>>basicSale>>personAmount>>totalAmount;int n;//根据n值不同测试不同的类;cin>>n;switch(n){case 1:{Staff s(num,name,basicSale); s.shows();                           break;   }         //2.测试Salemancase 2:{Saleman sman(num,name,basicSale,personAmount); sman.show();cout<<"-------------------"<<endl;sman.Staff::shows();break;}//3.测试Managercase 3:{Manager m(num,name,basicSale,totalAmount); m.show();cout<<"-------------------"<<endl;m.Staff::shows();break;}//4.测试SaleManager case 4:{SaleManager sm(num,name,basicSale,personAmount,totalAmount); // 参数含义依次为编号,姓名,基本工资,个人有销售额,销售总额sm.show(); cout<<"-------------------"<<endl;sm.Saleman::show();cout<<"-------------------"<<endl;sm.Manager::show();cout<<"-------------------"<<endl;sm.shows(); break;}}    return 0;
}

输入样例1:

1234 王兰 2000 8000 20000
1

输出样例1:

num:1234
name:王兰
BasicSale:2000

输入样例2:

1234 王兰 2000 8000 20000
2

输出样例2:

slaeman 王兰:8000
-------------------
num:1234
name:王兰
BasicSale:2000

输入样例3:

1234 王兰 2000 8000 20000
3

输出样例3:

manager 王兰:20000
-------------------
num:1234
name:王兰
BasicSale:2000

输入样例4:

1234 王兰 2000 8000 20000
4

输出样例4:

num:1234
name:王兰
BasicSale:2000
personAmount:8000
totalAmount:20000
-------------------
slaeman 王兰:8000
-------------------
manager 王兰:20000
-------------------
num:1234
name:王兰
BasicSale:2000

 注意show()和shows()


// 员工类,表示员工信息
class Staff {
protected:int num;            // 员工编号string name;        // 员工姓名int basicSale;      // 基本工资public:// 构造函数,初始化员工信息Staff(int n, const string& nm, int bs) : num(n), name(nm), basicSale(bs) {}// 显示员工信息void shows() {cout << "num:" << num << endl;cout << "name:" << name << endl;cout << "BasicSale:" << basicSale << endl;}
};// 销售员工类,继承自员工类,表示销售员工信息
class Saleman : virtual public Staff {
public:int personAmount;   // 个人销售额// 构造函数,初始化销售员工信息Saleman(int n, const string& nm, int bs, int pa) : Staff(n, nm, bs), personAmount(pa) {}// 显示销售员工信息void show() {cout << "slaeman " << name << ":" << personAmount << endl;}
};// 经理类,继承自员工类,表示经理信息
class Manager : virtual public Staff {
public:int totalAmount;    // 销售总额// 构造函数,初始化经理信息Manager(int n, const string& nm, int bs, int ta) : Staff(n, nm, bs), totalAmount(ta) {}// 显示经理信息void show() {cout << "manager " << name << ":" << totalAmount << endl;}
};// 销售经理类,同时继承自销售员工类和经理类,表示销售经理信息
class SaleManager : public Saleman, public Manager {
public:// 构造函数,初始化销售经理信息SaleManager(int n, const string& nm, int bs, int pa, int ta) : Staff(n, nm, bs), Saleman(n, nm, bs, pa), Manager(n, nm, bs, ta) {}// 显示销售经理信息void show() {// 先显示基本信息Staff::shows();// 再显示个人销售额和销售总额cout << "personAmount:" << personAmount << endl;cout << "totalAmount:" << totalAmount << endl;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch中模型训练的学习率动态调整

pytorch动态调整学习率 背景手动设置自动衰减的学习率pytorch中的torch.optim.lr_schedulertorch.optim.lr_scheduler.ExponentialLRtorch.optim.lr_scheduler.StepLRtorch.optim.lr_scheduler.MultiStepLRtorch.optim.lr_scheduler.ReduceLROnPlateau 背景 在神经网络模型的训…

项目实践:贪吃蛇

引言 贪吃蛇作为一项经典的游戏&#xff0c;想必大家应该玩过。贪吃蛇所涉及的知识也不是很难&#xff0c;涉及到一些C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32 API等。这里我会介绍贪吃蛇的一些思路。以及源代码也会给大家放到文章末尾。 我们最终的…

优雅的最大公约数函数

记录一个极其优雅的最大公约数方法 // 递归形式 int gcd(int a, int b) {return b 0 ? a : gcd(b, a % b); }这里求最大公约数的方法使用了辗转相除法&#xff0c;只是比循环求最大公约数的方法更加优雅与简洁&#xff1a; // 迭代形式 int gcd(int a, int b) {while(b ! 0…

电大搜题微信公众号:福建开放大学学子的学习新篇章

在当今信息化时代&#xff0c;学习已经成为每个人不可或缺的一部分。福建开放大学&#xff0c;作为广播电视大学的重要一员&#xff0c;始终致力于为学生提供优质、灵活的教育资源。而电大搜题微信公众号的推出&#xff0c;更是为福建开放大学的学子们带来了全新的学习体验&…

【数学】常用等价无穷小及其注意事项示例

常用极限 lim ⁡ x → 0 sin ⁡ x x 1 \lim_{x \to 0} {\frac{\sin x}{x}}1 limx→0​xsinx​1 lim ⁡ x → 0 ( x 1 ) 1 x e \lim_{x \to 0} {(x1)^\frac{1}{x}}e limx→0​(x1)x1​e lim ⁡ n → ∞ a n 1 \lim_{n \to \infty} {\sqrt[n]{a}}1 limn→∞​na ​1 lim ⁡ n…

数组中两个字符串的最短距离---一题多解(贪心/二分)

点击跳转到题目 方法&#xff1a;贪心 / 二分 目录 贪心&#xff1a; 二分&#xff1a; 贪心&#xff1a; 要找出字符串数组中指定两个字符串的最小距离&#xff0c;即找出指定字符串对应下标之差的最小值 思考&#xff1a;如果是直接暴力求解&#xff0c;需要两层for循环…

VLOOKUP函数使用,为什么会报错“引用有问题”?

VLOOKUP函数的使用非常广泛&#xff0c;在excel2007版之后的软件中&#xff0c;使用VLOOKUP函数也许会遇到这样的场景&#xff0c;明明公式是没有问题的&#xff0c;公式还会报错“引用有问题”。 一、报错场景 输入公式后&#xff0c;回车确认&#xff0c;显示如下报错&…

xilinx cpri ip 开发记录

CPRI是无线通信里的一个标准协议&#xff0c;连接REC和RE的通信。 Xilinx有提供CPRI IP核。 区别于其它通信协议&#xff0c;如以太网等&#xff0c;CPRI是一个同步系统。 这就意味着两端的Master和Slave应当是同源时钟的&#xff0c;两边不存在频差&#xff0c;并且内部延时…

mysql 行锁,间隙锁,临键锁,锁范围和死锁实际例子实战

文章目录 背景锁介绍表默认数据测试唯一键记录存在事务1事务2结论 唯一键记录不存在事务1事务2结论 范围查询事务1事务2结论 普通索引存在事务1事务2总结 普通索引不存在事务A事务B结论 死锁例子 背景 想了解下RR事务如何防止幻读的&#xff0c;以及一个实际的死锁例子 锁介绍…

【计算机网络】面经

1.TCP&UDP 1.1TCP与UDP的区别 TCP传输数据稳定可靠&#xff0c;适用于对网络通信质量要求较高的场景。 面向连接。 每一条TCP有且只有两个端点&#xff0c;为一对一关系。 提供可靠交付。 全双工通信&#xff0c;全双工为即可传输又可接收。 面向字节流。 UDP的优点是速…

客户端动态降级系统

本文字数&#xff1a;4576字 预计阅读时间&#xff1a;20分钟 01 背景 无论是iOS还是Android系统的设备&#xff0c;在线上运行时受硬件、网络环境、代码质量等多方面因素影响&#xff0c;可能会导致性能问题&#xff0c;这一类问题有些在开发阶段是发现不了的。如何在线上始终…

微服务架构中的业务完整性验证设计

目录 1.概要设计 1.1 功能完整性与正确性验证 1.2 性能与响应速度验证 1.3 安全性验证 1.4 容错性与恢复能力验证 1.5 监控与日志记录验证 2.技术实现 2.1 测试策略与工具选择 2.2 身份验证与授权 2.3 数据一致性与事务管理 2.4 监控与日志 2.5 容错与恢复 2.6 数…

【linux kernel】 一文总结linux内核中的kobject、kset和ktype

文章目录 一、kobject、kset、ktype&#xff08;1-1&#xff09;kobject&#xff08;1-2&#xff09;ktype&#xff08;1-3&#xff09;kset 二、kobject操作API&#xff08;2-1&#xff09;kobject_init()&#xff08;2-2&#xff09;kobject_add()&#xff08;2-3&#xff09…

【命名空间详解】c++入门

目录 命名空间的定义 1.命名空间的正常定义 2.命名空间还可以嵌套 3. 命名空间可以合并 命名空间的使用 1.加命名空间名称及作用域限定符 2.使用using将命名空间中某个成员引入 3.使用using namespace 命名空间名称 引入 输入&#xff0c;输出 输出 命名空间的定义 …

linux命令ar使用说明

ar 建立或修改备存文件&#xff0c;或是从备存文件中抽取文件 补充说明 ar命令 是一个建立或修改备存文件&#xff0c;或是从备存文件中抽取文件的工具&#xff0c;ar可让您集合许多文件&#xff0c;成为单一的备存文件。在备存文件中&#xff0c;所有成员文件皆保有原来的属…

Java技术学习|Git

学习材料声明 尚硅谷Git入门到精通全套教程&#xff08;涵盖GitHub\Gitee码云\GitLab&#xff09; GIt Git 是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。Git 易于学习&#xff0c;占地面积小&#xff0c;性能极快。 它具有…

ARM_day8:基于iic总线的通信

一、IIC总线的基本概念&#xff1a; iic总线是一种带应答的同步的、串行、半双工的通信方式&#xff0c;支持一个主机对应多个从机。它有一根SCL&#xff08;时钟线&#xff09;和一根SDA&#xff08;数据线&#xff09;组成&#xff0c;由于只有一根数据线&#xff0c;所以它是…

英伟达大跳水!一夜暴跌10%,市值蒸发2000亿

相信大家已经在各大社交平台上看到了&#xff0c;英伟达一夜蒸发了2000亿美元&#xff01; GPT-3.5研究测试&#xff1a; https://hujiaoai.cn GPT-4研究测试&#xff1a; https://higpt4.cn Claude-3研究测试&#xff08;全面吊打GPT-4&#xff09;&#xff1a; https://hic…

大语言模型隐私防泄漏:差分隐私、参数高效化

大语言模型隐私防泄漏&#xff1a;差分隐私、参数高效化 写在最前面题目6&#xff1a;大语言模型隐私防泄漏Differentially Private Fine-tuning of Language Models其他初步和之前的基线微调模型1微调模型2通过低秩自适应进行微调&#xff08; 实例化元框架1&#xff09; 在隐…

Vue2 —— 学习(九)

目录 一、全局事件总线 &#xff08;一&#xff09;全局总线介绍 关系图 对图中的中间商 x 的要求 1.所有组件都能看到 2.有 $on $off $emit &#xff08;二&#xff09;案例 发送方 student 接收方 二、消息订阅和发布 &#xff08;一&#xff09;介绍 &#xff08…