博客
关于我
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中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>
mysql中间件
查看>>
MYSQL中频繁的乱码问题终极解决
查看>>
MySQL为Null会导致5个问题,个个致命!
查看>>
MySQL为什么不建议使用delete删除数据?
查看>>
MySQL主从、环境搭建、主从配制
查看>>
Mysql主从不同步
查看>>
mysql主从同步及清除信息
查看>>
MySQL主从同步相关-主从多久的延迟?
查看>>
mysql主从同步配置方法和原理
查看>>
mysql主从复制 master和slave配置的参数大全
查看>>
MySQL主从复制几个重要的启动选项
查看>>
MySQL主从复制及排错
查看>>
mysql主从复制及故障修复
查看>>
MySQL主从复制的原理和实践操作
查看>>
webpack loader配置全流程详解
查看>>
mysql主从复制,读写分离,半同步复制实现
查看>>