java大作业编一个程序打印出公司月各员工工资
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:王镱澍
Java大作业
一、题目
白浪公司的雇员根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
雇员分为以下若干类:
SalariedEmployee:拿固定工资的员工。
HourlyEmployee:按小时拿工资的员工。
SalesEmployee:销售人员,工资由月销售额和提成率决定。
BasePlusSalesEmployee:有固定底薪的销售人员,工资由底薪加上销售提成。
公司会给SalaryEmployee每月另外发放2000元加班费,给 BasePlusSalesEmployee发放1000元加班费。编一个java程序创建上述若干类,并实现确定月份以及该月不同员工的工作情况后打印出该公司该月各员工工资,公司总的工资支出情况。
二、程序功能说明
编一个java程序创建上述若干类,并实现确定该月不同员工的工作情况以及输入月份后打印出该公司该月各员工工资,公司总的工资支出情况。
三、类、属性、方法说明
程序中已给出详细解释在此只作简要说明:
Employee:这是所有员工总的父类。
属性:员工的姓名和生日月份。
方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
SalariedEmployee:Employee的子类,拿固定工资的员工。
属性:月薪。
方法:每月工作超出160小时的部分按照倍工资发放。
HourlyEmployee:Employee的子类,按小时拿工资的员工。
属性:每小时的工资、每月工作的小时数。
SalesEmployee:Employee的子类,销售人员。
属性:月销售额、提成率。
方法:工资由月销售额和提成率决定。
BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员。
属性:底薪。
方法:工资由底薪加上销售提成部分。
四、程序代码
import .*;
class MyException extends Exception
{
MyException(){} etAddtionalSalary();}
etSalary(month)+ep[i].getAddtionalSalary();}
}
}
*/
class SalariedEmployee extends Employee
{
private int salaryPerMonth;
public SalariedEmployee(String name,int birth,int salaryPerMonth)
{
super(name,birth);
= salaryPerMonth;
}
public int getSalary(int month)
{
return + (month)+
();
}
public int getAddtionalSalary() {return 2000;}
}
/**
*Employee的子类,按小时拿工资的员工。
*属性:每小时的工资、每月工作的小时数。
*方法:getSalary()
*/
class HourlyEmployee extends Employee
{
private int salaryPerHour;
private int hoursPerMonth;
public HourlyEmployee(String name,int birth,int salaryPerHour,int hoursPerMonth) {
super(name,birth);
= salaryPerHour;
= hoursPerMonth;
}
public int getSalary(int month)
{
int result = 0;
if<=160)
{result = hoursPerMonth*salaryPerHour;}
else
{
result = 160*salaryPerHour +
(int)((hoursPerMonth-160)**salaryPerHour);
}
return result+(month);
}
}
/**
*Employee的子类,销售人员.
*属性: 月销售额、提成率.
*方法: getSalary().
*/
class SalesEmployee extends Employee
{
private int sales;
private double rate;
public SalesEmployee(String name,int birth,int sales,double rate)
{
super(name,birth);
= sales;
= rate;
}
public int getSalary(int month)
{return (int)(sales*rate)+(month);}
}
/**
*SalesEmployee的子类,有固定底薪的销售人员.
*属性: 底薪.
*方法: getSalary(),getAddtionalSalary().
*/
class BasedPlusSalesEmployee extends SalesEmployee
{
private int basedSalary;
public BasedPlusSalesEmployee(String name,int birth,int sales,double rate,int basedSalary)
{
super(name,birth,sales,rate);
= basedSalary;
}
public int getSalary(int month)// 工资由底薪加上销售提成部分
{
return +(month) +
();
}
public int getAddtionalSalary()
{return 1000;}
}