博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lesson_10 作业----计算工资
阅读量:4447 次
发布时间:2019-06-07

本文共 3511 字,大约阅读时间需要 11 分钟。

/** * 一家公司按星期支付员工的工资。 *     该公司有四种员工: *         拿薪水的 : 每个星期发给他固定的工资,而不计他们的工作小时数; *         钟  点 工: 按小时算,没有加班费; *         代  理 人: 按销售业绩按一定的比例抽取佣金. *         拿薪代理人: 报酬为基本工资 + 销售额的一定比例的佣金。 *                    本月公司决定为拿薪金的代理增加10%的基本工资。 *     公司希望写一个Java程序来动态的计算工资。 * @author CocoonFan * */public class CalcSalary {    public static void main(String[] args) {        CalculateSalary calculateSalary = new CalculateSalary();                BaseSalaryWorker baseSalaryWorker = new BaseSalaryWorker("拿薪水的", 5000);        calculateSalary.calcSalary(baseSalaryWorker);                HourWorker hourWorker = new HourWorker("钟点工", 0, 300, 15);        calculateSalary.calcSalary(hourWorker);                ResultsWorker resultsWorker = new ResultsWorker("代理人", 0, 35000, 0.2);        calculateSalary.calcSalary(resultsWorker);                AgentWorker agentWorker = new AgentWorker("拿薪代理人", 3000, 40000, 0.15);        calculateSalary.calcSalary(agentWorker);            }}class Worker{    private String workerName;//    private double baseSalary = 3000.0;//基本工资        public Worker(String workerName, double baseSalary) {        this.workerName = workerName;        this.baseSalary = baseSalary;    }        public String getWorkerName() {        return workerName;    }    public void setWorkerName(String workerName) {        this.workerName = workerName;    }    public double getBaseSalary() {        return baseSalary;    }    public void setBaseSalary(double baseSalary) {        this.baseSalary = baseSalary;    }        public void calcSalary(Worker worker){        System.out.println("计算工资");    }    }class BaseSalaryWorker extends Worker{    public BaseSalaryWorker(String workerName, double baseSalary) {        super(workerName, baseSalary);    }        public void calcSalary(Worker worker){        System.out.println(super.getWorkerName() + "本月工资为:" + super.getBaseSalary());    }}class HourWorker extends Worker{    private int workHour;    private double salaryPerHour;    public HourWorker(String workerName, double baseSalary, int workHour,double salaryPerHour) {        super(workerName, baseSalary);        this.workHour = workHour;        this.salaryPerHour = salaryPerHour;    }        @Override    public void calcSalary(Worker worker){        System.out.println(super.getWorkerName() + "本月工资为:" + workHour*salaryPerHour);    }}class ResultsWorker extends Worker{    private double results;//业绩    private double ratio;//比例        public ResultsWorker(String workerName, double baseSalary,double results,double ratio) {        super(workerName, baseSalary);        this.results = results;        this.ratio = ratio;    }        @Override    public void calcSalary(Worker worker){        System.out.println(super.getWorkerName() + "本月工资为:" + results*ratio);    }    }class AgentWorker extends Worker{    private double results;//业绩    private double ratio;//比例        public AgentWorker(String workerName, double baseSalary,double results,double ratio) {        super(workerName, baseSalary);        this.results = results;        this.ratio = ratio;    }        @Override    public void calcSalary(Worker worker){        System.out.println(super.getWorkerName() + "本月工资为:"                + (results*ratio + super.getBaseSalary()*1.1));    }}class CalculateSalary {        public void calcSalary(Worker worker){        System.out.println("正在计算工资...");        worker.calcSalary(worker);        System.out.println();    }}

运行结果

 

转载于:https://www.cnblogs.com/CocoonFan/archive/2013/01/22/2870662.html

你可能感兴趣的文章
九度oj题目1521:二叉树的镜像
查看>>
java运行时内存分类
查看>>
为什么说 Git 比 SVN 更好
查看>>
CSS的定位和浮动
查看>>
Storm启动流程分析
查看>>
C++11中lock_guard和unique_lock的区别
查看>>
解决find命令报错: paths must precede expression
查看>>
LVS 手册学习
查看>>
Lua's performance
查看>>
seajs快速了解
查看>>
Java Spring MVC项目搭建(二)——项目配置
查看>>
Async分析
查看>>
js 组件化
查看>>
图的应用:哈密尔顿路径
查看>>
js计算日期相减天数
查看>>
MATLAB实现Catmull-Clark细分(CC细分)
查看>>
jquery 判断元素是否隐藏
查看>>
第一百九十五天 how can I 坚持
查看>>
Swift 入门之简单语法(五)
查看>>
多视几何——三角化求解3D空间点坐标
查看>>