#382. 工资计算系统(继承和派生)

2024-04-15 21:20

本文主要是介绍#382. 工资计算系统(继承和派生),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

水个文

代码如下:

#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;const double RATIO = 0.01;
const double SALARY_PER_YEAR = 35;
const double BASE_SALARY = 1000;//
class Employer{
public:int workAge, salary;Employer(){}
};
class Worker:public Employer{double salaryPerHour;int workHour;
public:Worker(int workAge = 0){this->workAge = workAge;}void setSalaryPerHour(double sPH){salaryPerHour = sPH;}void setWorkHour(int wH){workHour = wH;}double getPayPerMonth(void){return salaryPerHour * workHour + workAge * SALARY_PER_YEAR;}
};
class SalesPerson:public Employer{double salaryPerHour, salesAmount;int workHour;
public:SalesPerson(int workAge = 0){this->workAge = workAge;}void setSalaryPerHour(double sPH){salaryPerHour = sPH;}void setWorkHour(int wH){workHour = wH;}void setSalesAmount(double sSA){salesAmount = sSA;}double getPayPerMonth(void){return salaryPerHour * workHour + workAge * SALARY_PER_YEAR + salesAmount * RATIO;}
};
class Manager:public Employer{
public:Manager(int workAge = 0){this->workAge = workAge;}double getPayPerMonth(void){return BASE_SALARY + workAge * SALARY_PER_YEAR;}
};
//int main(){//Person* per = 0;int workAge1,workAge2,workAge3;double salaryPerHour1,salaryPerHour2;int workHour1,workHour2;double salesAmount;cin>>workAge1>>workAge2>>workAge3;cin>>salaryPerHour1>>salaryPerHour2;cin>>workHour1>>workHour2;cin>>salesAmount;Worker* p = new Worker(workAge1);p->setSalaryPerHour(salaryPerHour1);p->setWorkHour(workHour1);cout<<p->getPayPerMonth()<<endl;delete p;SalesPerson* sp = new SalesPerson(workAge2);sp->setSalaryPerHour(salaryPerHour2);sp->setWorkHour(workHour2);sp->setSalesAmount(salesAmount);cout<<sp->getPayPerMonth()<<endl;delete sp;Manager* mgr = new Manager(workAge3);cout<<mgr->getPayPerMonth()<<endl;delete mgr;return 0;
}

一些废话:

两个竞赛都搞完了(如果有进复赛的话,那还有),现在是要忙于转专业了

当然算法学习也是得学的,还得学学Python,C++也得往前超个进度了

我看了一下下一个题,是关于二叉树组成的枚举的,没做过这种,找个时间整整

这篇关于#382. 工资计算系统(继承和派生)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906955

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默