博客
关于我
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 replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>
mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
查看>>
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>
mysql 不区分大小写
查看>>
mysql 两列互转
查看>>
MySQL 中开启二进制日志(Binlog)
查看>>
MySQL 中文问题
查看>>
MySQL 中日志的面试题总结
查看>>
MySQL 中随机抽样:order by rand limit 的替代方案
查看>>
MySQL 为什么需要两阶段提交?
查看>>
mysql 为某个字段的值加前缀、去掉前缀
查看>>
mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
查看>>
mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
查看>>
mysql 主键重复则覆盖_数据库主键不能重复
查看>>
Mysql 优化 or
查看>>