zoukankan      html  css  js  c++  java
  • Lesson_10 作业计算工资

    /**
     * 一家公司按星期支付员工的工资。
     *     该公司有四种员工:
     *         拿薪水的 : 每个星期发给他固定的工资,而不计他们的工作小时数;
     *         钟  点 工: 按小时算,没有加班费;
     *         代  理 人: 按销售业绩按一定的比例抽取佣金.
     *         拿薪代理人: 报酬为基本工资 + 销售额的一定比例的佣金。
     *                    本月公司决定为拿薪金的代理增加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();
        }
    }

    运行结果

     

  • 相关阅读:
    o1-check-power-of-2 && search-a-2d-matrix
    Remove Linked List Elements &&remove-duplicates-from-sorted-list
    fibonacci && climbing-stairs
    2016 Multi-University Training Contest 1 Abandoned country
    中断调用与子程序设计实验
    POJ 3764
    CSU 1566 The Maze Makers
    poj2524 Ubiquitous Religions
    poj2377
    汇编语言程序设计的上机基础知识预备
  • 原文地址:https://www.cnblogs.com/CocoonFan/p/2870662.html
Copyright © 2011-2022 走看看