博客
关于我
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中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>