博客
关于我
Java实验6 -- 公司支出的总薪水
阅读量:507 次
发布时间:2019-03-07

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

前言

  • 时间:2020.6.8
  • 备注:实验6是这学期最后一个实验,这个任务是老师刚布置就做完了,所以一直忘了传,回顾一下好像主要是拿来新学巩固基础的。兜兜最近忙起来就特别不想做反馈,最近都是杂事很少写java代码,再加上现在这些题第一反应不是百度而是自己琢磨了(看在这份上夸一夸),所以也是几万年没来博客记录了呢…看到涨粉了好激动,速度更!!然后这些都是自己整的,不保证是最好的思路,大家看到有问题的部分可以评论哦!!

题目

在这里插入图片描述

实现思路

  • 第一步,把各个类的框架实现起来。首先是测试类Main类;然后是主要的Company类(和基类关联);以及抽象基类Employee类;最后是三种子类WeekWorker、MonthWorker、YearWorker。
  • 第二步,理清各个类之间的关系。可以把公司Company类当作一个实现功能的地方,放置员工们Employee(建个数组)能做的事儿,而员工类Employee类作为抽象类,具体员工属性的实现放到不同的子类,周、月、年员工类WeekWorker、MonthWorker、YearWorker中实现。
  • 第三步,在主函数中做最后的测试,实现小员工们的上转型公司。
  • 关于计算总工资,可以当作是有3种拿工资的方法,有个人在该公司工作1年,每种工资都拿了一遍,最后所得的工资。

实现代码

1.	Main.javapackage exp_06.task01;import java.util.Scanner;/** * @Author Hyidol * @Data 2020-06-08 10:20 */public class Main {       public static void main(String[] args) {           Scanner scan = new Scanner(System.in);        System.out.print("请输入基本星期工资:");        double basicWeekEarnings = scan.nextDouble();        System.out.print("请输入基本月工资:");        double basicMonthEarnings = scan.nextDouble();        System.out.print("请输入基本年工资:");        double basicYearEarnings = scan.nextDouble();        Employee[] employee = new Employee[9];        for (int i = 0; i < 9; i++) {               if(i < 3) {                   employee[i] = new WeekWorker();                employee[i].basicWage = basicWeekEarnings;            }            else if(i < 6){                   employee[i] = new MonthWorker();                employee[i].basicWage = basicMonthEarnings;            }            else {                   employee[i] = new YearWorker();                employee[i].basicWage = basicYearEarnings;            }        }        Company company = new Company(employee);        System.out.println("公司薪水总额:" + company.salaryPlay());    }}
2.	Company.javapackage exp_06.task01;/** * @Author Hyidol * @Data 2020-06-08 10:26 */public class Company {       Employee[] employees = new Employee[9];    Company(Employee[] employee) {           for (int i = 0; i < 9; i++) {               this.employees[i] = employee[i];        }    }    double salaryPlay() {           double allEarning = 0;        for (int i = 0; i < 9; i++) {               allEarning += employees[i].earnings();        }        return allEarning;    }}
3.	Employee.javapackage exp_06.task01;/** * @Author Hyidol * @Data 2020-06-08 10:20 */public abstract class Employee {       double basicWage;    public abstract double earnings();}
4.	WeekWorker.javapackage exp_06.task01;/** * @Author Hyidol * @Data 2020-06-08 10:23 */public class WeekWorker extends Employee{       @Override    public double earnings() {           return basicWage * 52;    }}
5.	MonthWorker.javapackage exp_06.task01;/** * @Author Hyidol * @Data 2020-06-08 10:23 */public class MonthWorker extends Employee{       @Override    public double earnings() {           return basicWage * 12;    }}
6.	YearWorker.javapackage exp_06.task01;/** * @Author Hyidol * @Data 2020-06-08 10:22 */public class YearWorker extends Employee{       @Override    public double earnings() {           return basicWage;    }}

实现结果图

在这里插入图片描述

转载地址:http://fzljz.baihongyu.com/

你可能感兴趣的文章
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>
MySQL中DQL语言的执行顺序
查看>>
mysql中floor函数的作用是什么?
查看>>