用JAVA语言写一个计算员工月工资的程序

2023-10-26

一.任务需求

某公司分为多个部门,每个部门有一个经理和多个员工,每个员工根据职称发基本工资。员工的工资由基本工资,日加班工资,日缺勤工资等组成。具体需求如下所示:

员工的基本信息,包括部门,职务,职称以及工资记录等信息。

能记录员工的每一个职称信息,并授予相应的职称,系统在计算员工工资的时候职称对应的最高职称津贴。

二.问题域中涉及多个类,包括职员类Staff,经理类Manger,测试类TestEmployee.

Staff类:通过此类封装定义计算职员基本工资方法

Manger类:通过此类封装定义计算经理基本工资方法。

TestManger :调用方法并实现结果输出

三.代码展示

Emploee类

package com.daiinfo.seniorjava.ken1.implment;

public class Employee {
	String ID;
    String name;

    int workdays;//工作天数
    int overtimedays;//加班天数
    int absentdays;//缺勤天数
    int salary;//月工资

    /**
     * 构造函数
     */
     public Employee(String ID){
         this.ID =ID;
     }


     /**
      * 构造函数
      */
     public Employee (String ID,String name){
         this.ID=ID;
         this.name=name;
     }


     /**
      * 计算员工工资
      * workdays 工作天数
      * overtimedays 加班天数
      * absentdays 缺勤天数
      * return 返回月总工资
      */
     double calculateCount(int workdays,int overtimedays,int absentdays){
       double count;
       count =80.0*workdays+80*overtimedays-30*absentdays;  
       return count;
     }


     /**
      * 转换字符串
      */
     public String toString(){
         return name +"\t"+salary;
     }
}

Staff类

package com.daiinfo.seniorjava.ken1.implment;

public class Staff extends Employee {
	double bassewages = 2000;
    double dailywages = 50;// 日工资
    String department;
    String technicaltitle;

    /**
     * 构造函数
     */
    public Staff(String ID, String name, String department, String technicaltitle) {
        super(ID, name);
        this.department = department;
        this.technicaltitle = technicaltitle;
    }

    /**
     * 计算员工的工资 wordays 工作天数 overtimedays 加班天数 absencedays 缺勤天数
     * 
     * @return 返回月工资
     */
    double calculateCount(int workdays, int overtimedays, int absencedays) {
        double count = 0.0;
        count = bassewages + dailywages * overtimedays - dailywages * absencedays;
        return count;
    }

    /**
     * 转换字符串输出信息
     */
    public String toString(){
        return name +"\t"+salary;
    }
}

Manager类

package com.daiinfo.seniorjava.ken1.implment;

public class Manager extends Employee{
	double basewages = 3000;
    String department;// 所在部门
    String positions;

    /**
     * 构造函数 ID name department
     */
    public Manager(String ID, String name, String department, String positions) {
        // TODO Auto-generated constructor stub
        super(ID, name);
        this.department = department;
        this.positions = positions;
    }

    /**
     * 计算经理工资 workdays 工作天数 overtimedays 加班天数 absentdaysn 缺勤天数 返回月工资
     */
    double calculateCount(int workdays, int overtimedays, int absencedays) {
        double count = 0.0;
        count = basewages + 20 * overtimedays - 30 * absencedays;
        return count;
    }
}

TestEmployee类

package com.daiinfo.seniorjava.ken1.implment;

public class TestEmployee {
	public static void main(String[] args) {
        Manager manager = new Manager("001", "张三", "开发部", "经理");
        double countsalary = manager.calculateCount(22, 3, 0);
        System.out.println(countsalary);

        Staff staff = new Staff("2001", "王好", "财务部", "会计师");
        double salary = staff.calculateCount(20, 5, 1);
        System.out.println(salary);
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用JAVA语言写一个计算员工月工资的程序 的相关文章

  • Android Studio 中的任务 :app:compileDebugJavaWithJavac 执行失败

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我正在 Android Studio 中开发 Android 应用程序 不太确定出了什么
  • 计算 3D 中两点之间的距离

    我的任务是创建主类 在其中将任意点的值初始化为 0 0 0 并且能够单独访问和改变所有三个值 x y z 为此 我使用了 getter 和 setter 我的下一个任务是在我的主类中创建一个方法 我将其称为 distanceTo 来计算两点
  • 递归函数:检查 Java 中的回文数

    我有一个类检查字符串是否是回文 我有两个问题 1 这是检查回文的最有效方法吗 2 这可以递归实现吗 public class Words public static boolean isPalindrome String word Stri
  • 如何将 ChromeDriver 包含在 JAR 中?

    我正在编写一个网络自动化程序 到目前为止 它使用 Selenium 的 FirefoxDriver 运行良好 但是 如果未安装 Firefox 我想让它使用 Chrome 我下载了 ChromeDriver 将其放入 Eclipse 项目的
  • Spring属性解密

    我们混合了一些尚未迁移到 spring boot 或 spring cloud 的遗留 Spring 应用程序以及 Spring Boot 应用程序 我正在创建一个 Spring 组件 如果属性值已加密且具有前缀 则该组件将在加载环境时自动
  • 停放正在使用的线程

    我正在尝试线程停放并决定构建某种服务 它是这样的 public class TestService private static final Logger logger LoggerFactory getLogger TestService
  • Google Webmasters API for Java 返回空网站列表

    我编写了一个简单的站点列表查询代码 它使用 Oauth 与服务帐户基于谷歌的文档 https developers google com identity protocols OAuth2ServiceAccount 所使用的身份验证密钥文
  • 有没有办法使用 Java 截取屏幕截图并将其保存为某种图像?

    正如标题所示 很简单 可以只使用 Java 命令来截屏并保存吗 或者 我是否需要使用操作系统特定的程序来截取屏幕截图 然后将其从剪贴板上抓取 不管你信不信 你实际上可以使用java awt Robot http java sun com j
  • 带有可运行对象和结果的 FutureTask

    我用谷歌搜索了这个 但仍然无法得到充分的理解 我找不到任何使用的特定示例FutureTask Runnable runnable V result 构造函数 Java 文档说 未来提交 可运行任务 T结果 提交一个 Runnable 任务来
  • 对 Java 操作应用超时控制

    我正在使用第三方 Java 库与 REST API 进行交互 REST API 有时可能需要很长时间才能响应 最终导致java net ConnectException被抛出 我想缩短超时时间 但无法修改第三方库 我想在 Java 方法的调
  • LinkedHashMap 的 ConcurrentModificationException

    不确定是什么触发了java util ConcurrentModificationException当我迭代时LinkedHashMap下面代码中的结构 使用Map Entry方法效果很好 从之前的帖子中没有得到关于触发此问题的良好解释 任
  • Java中如何处理未知的protobuf字段?

    我有一个 Java 应用程序 它从另一台计算机读取一些 protobuf 数据 然后修改一些值并将其写回 用户很可能使用过时的 proto 文件读取数据 因此在这种情况下会有一些字段无法理解 我最终希望在写回所做的更改时保留未知的数据 但是
  • java.library.path 中没有 opencv_java300 [重复]

    这个问题在这里已经有答案了 提前致谢 我有一个项目使用opencv 300 jar作为外部库 我在 eclipse 中尝试过这个网豆 当我从 IDE 本身运行我的项目时 这两种方法都可以成功运行 我希望我的项目将其导出为可运行 或可执行 j
  • 着色器/矩阵问题 - 看不到对象

    我试图在屏幕上放置一个立方体并点亮它 我想要在立方体上添加 phong 阴影 当我运行代码时 我可以看到背景图像 但看不到立方体 我相当确定立方体本身是正确的 因为我已经设法用纯色着色器显示它 我已经设法编译着色器程序 但我根本看不到立方体
  • 使用 java.awt.image.BufferedImage 创建 BIFF8 BITMAP 记录需要很多时间 - 有没有更好的方法?

    所以我正在创建一个HSSFSheet使用设置背景位图apache poi并拥有自己的低级代码 这https www openoffice org sc excelfileformat pdf https www openoffice org
  • 使用 Jackson 序列化类型化集合时出错

    我正在尝试使用混合序列化集合 但杰克逊不会保存类型信息 这是一个基本测试 说明会发生什么 public class CollectionSerializationTest interface Common extends Serializa
  • Java keytool / 使用 java 生成密钥的安全性(一般)

    我们使用与 java 安装捆绑在一起的 keytool 来生成密钥以进行非对称 RSA 加密 鉴于近期events https www schneier com blog archives 2013 09 the nsa is brea h
  • 将照片上传到 Google Photos API 不返回上传令牌

    我正在使用 2018 版 Google Photos API 来上传图像和媒体 如下所述 上传字节 https developers google com photos library guides upload media uploadi
  • 无法启动 OSGiModuleImpl:: Bundle = [org.glassfish.main.admingui.glassfish-osgi-console-plugin [302]],状态 = [新]

    com sun enterprise module ResolveError Failed to start OSGiModuleImpl Bundle org glassfish main admingui glassfish osgi
  • Java 中的内存管理

    如何在Java中手动删除对象 有没有类似的方法obj delete or obj kill 没有真正的办法 Java有一个特殊的垃圾收集器这会为你做到这一点 一旦您的对象没有任何对它的引用 它就会在某个时候被垃圾收集器拾取并销毁 From

随机推荐

  • STM8 学习笔记13:PWM

    PWM Gitee 空间跳转 https gitee com galoc stm8 git 1 概述 PWM也叫脉冲宽度调制 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 频率 周期 占空比 1 1 PWM 频率 是指在
  • Java常用类System类、Math、BigInteger 和 BigDecimal

    1 System类 public void test1 String javaVersion System getProperty java version System out println java的version javaVersi
  • Windows磁盘管理中的压缩卷操作

    基本磁盘 主分区在压缩卷操作后为黑色的未分配 逻辑分区在压缩卷操作后为绿色的可用空间 动态磁盘 简单卷在压缩卷操作后为黑色的未分配
  • Figma怎么汉化?这个Figma 汉化插件早知道就好了!

    Figma官方目前没有中文版 可能与早期的封禁大疆事件和面向非洲地区扩张策略有关 但是可以使用第三方汉化插件来获得中文版本的Figma Figma cool是一个提供汉化插件的网站 支持多个平台 另外 还有一款名为即时设计的中文设计工具 提
  • java.lang.IllegalArgumentException 异常报错完美解决

    目录 修改JDK使用版本 修改开发工具idea配置 eclipse的直接跳过这个看下面 修改开发工具eclipse配置 学习spring依赖注入的时候碰到这个坑 折腾了许久 记录一下以防其他小伙伴入坑 该异常主要原因是因为JDK与Sprin
  • Lisp-Stat 翻译 —— 第四章 其它Lisp特性

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 第四章 其它Lisp特性 上一章介绍了Lisp编程的基础 在那章里重点展示了对编写Lisp函数有用的编程技术 为了最高效地使用这些技术 知道Lisp和Lisp Stat提供
  • 智能指针之shared_ptr初始化,引用计数,常用操作和自定义删除器等等03

    一 share ptr 1 share ptr基础 1 共享所有权 不是被一个shared ptr拥有 而是被多个shared ptr之间相互协作 shared有额外开销 2 工作原理 利用引用计数的方法管理一片内存 每增加一个shared
  • C++ 一些知识点

    https www nowcoder com profile 7838045 myFollowings detail 3445247 链接 https www nowcoder com questionTerminal 087006d1e4
  • Red Hat Linux 7.5的安装及修改密码【详细】

    一 如何安装Red Hat Linux 7 5 详细 1 打开安装好的VMware 点击主页上的 创建新的虚拟机 选择 自定义 后 点击 下一步 2 选择虚拟机硬盘兼容性 我们选择Wordstation 14 x 3 选择稍后安装操作系统
  • -bash: ./mysqld: 没有那个文件或目录解决方法

    MySQL问题 bash mysqld 没有那个文件或目录 mysql安装路径 usr local mysql bin vi etc profile 添加环境变量 export PATH PATH usr local mysql bin 重
  • 营销活动:提升小程序的用户活跃度的关键

    在现今竞争激烈的商业环境中 小程序已成为企业私域营销的重要工具之一 然而 拥有一个小程序并不足以保证用户的活跃度 营销活动作为推动用户参与的有效方式 对于提升小程序的用户活跃度起着至关重要的作用 本文将深入探讨营销活动在提升小程序用户活跃度
  • Swagger的用法

    Swagger的用法 1 yml配置文件中引入依赖
  • C++ 内存管理

    C 内存管理 关于析构函数 1 when the desconstructor will be called 具体地说如果出现以下几种情况 程序就会执行析构函数 如果在一个函数中定义了一个对象 它是自动局部对象 当这个函数被调用结束时 对象
  • 静态代码块

    在Java类中 使用static关键字修饰的代码块称为静态代码块 当类被加载的时候 静态代码块就会被执行 由于类只会加载一次 所以静态代码块只会执行一次 在程序当中 使用静态代码块对类的成员变量进行初始化 package qmfx2 pub
  • FastAPI 使用 WebSocket创建实时应用程序

    超文本传输协议 或 HTTP 是当今互联网上最常用的协议之一 它允许客户端获取资源 例如 HTML 页面和图像 客户端 通常是浏览器 向服务器请求资源 图像 CSS 文件等 服务器响应请求的数据 它是一个严格的单向协议 服务器只会在客户端请
  • conda install 和 pip install 在ubuntu上的区别

    conda install 和 pip install 在ubuntu上的区别 pip和conda 看了很多博主的解释 已经说的很清楚了 pip pip installs packages 和conda都是包管理系统 pip最常用于安装在p
  • Merkle树

    白皮书引入 Merkel树是一种数据结构 图1 1 比特币白皮书插图 生成一个Merkel树 图1 2 来自维基百科插图 分析 自下而上 我们有四个文件 比特币系统的话就是交易 这个数据结构可以用在各种方面 L1 L2 L3 L4 四个文件
  • QT学习-数据类型转换

    文章目录 前言 一 num转QString 二 数据输出格式 三 QString拆分到QStringList 1 去除空格拆分 2 按固定长度拆分 四 QStringList转QByteArray HEX 五 uint8 t与QByteAr
  • java关键字const_java 关键字详解

    一 关键字总览 访问控制 private protected public 类 方法和变量修饰符 abstract class extends final implements interface native new static str
  • 用JAVA语言写一个计算员工月工资的程序

    一 任务需求 某公司分为多个部门 每个部门有一个经理和多个员工 每个员工根据职称发基本工资 员工的工资由基本工资 日加班工资 日缺勤工资等组成 具体需求如下所示 员工的基本信息 包括部门 职务 职称以及工资记录等信息 能记录员工的每一个职称