Java第二次作业第十六题Word文档下载推荐.docx

上传人:b****5 文档编号:19703571 上传时间:2023-01-09 格式:DOCX 页数:8 大小:34.81KB
下载 相关 举报
Java第二次作业第十六题Word文档下载推荐.docx_第1页
第1页 / 共8页
Java第二次作业第十六题Word文档下载推荐.docx_第2页
第2页 / 共8页
Java第二次作业第十六题Word文档下载推荐.docx_第3页
第3页 / 共8页
Java第二次作业第十六题Word文档下载推荐.docx_第4页
第4页 / 共8页
Java第二次作业第十六题Word文档下载推荐.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

Java第二次作业第十六题Word文档下载推荐.docx

《Java第二次作业第十六题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java第二次作业第十六题Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。

Java第二次作业第十六题Word文档下载推荐.docx

已知每类员工均有表示员工工号、姓名和出生年月的属性,和用于计算员工月薪的方法。

创建一个Employee变量数组,保存Employee类层次结构中每个具体类对象的引用,对每个Employee显示其工号、姓名、出生年月和月收入,如果当月是Employee的生日所在的月份,则还另发给他100月作为红包。

二、题目分析与设计

1.题目需求:

①计算每一类员工的工资

②创建一个Employee变量数组,保存Employee类层次结构中每个具体类对象的引用

③对每个Employee显示其工号、姓名、出生年月和月收入

2.创造一个employee抽象类,其中有employee的基本属性:

工号、姓名、出生年月和月收入,还有一个抽象方法,每一个类员工都是一个具体类,对抽象方法进行不同的重载,以实现不同员工不同的工资计算方法,另外因为本题没有给出当前月份、固定月薪、销售每件产品的提成、时薪、加班费等,因此本程序都以假设的方法自行设定,保存在多个接口中,在每个类中按需继承

3.继承层次结构

4.开发环境:

Eclipse

三、测试分析

程序输出:

pleaseenteremployeetype

0:

SalariedEmployee1:

HourlyEmployee2:

CommissionEmployee3:

BasePlusCommissionEmployee

用户输入:

0(这里以固定月薪做示范,假定当前为11月,固定月薪为5000)

pleaseenterdetailsofthisemployee(namenumberbirthyearbirthmonth)

forexample:

John

9527

1995

10

Jack

5816

1998

name:

number:

birthyear:

birthmonth:

income:

5000.000000

②pleaseenteremployeetype

11(其他不变,月份输入11)

11

5100.000000(发了100元红包)

附录:

源代码

importjava.util.Scanner;

abstractclassEmployee

{

publicintnumber;

publicString[]name=newString[10];

publicintbirthYear;

publicintbirthMonth;

publicstaticdoublesalary;

publicabstractvoidpay(String[]name,intnumber,intbirthYear,intbirthMonth);

}

interfaceGetMonth

publicintmonth=11;

//假设现在是11月份

interfaceGetSalaryPerMonth

publicdoublesalaryPerMonth=5000;

//假设月薪5000元

interfaceGetWorkTime

publicdoubleworkTime=250;

//假设每个月工作时间200小时

publicdoublesalaryPerHour=20;

//时薪20元

publicdoubleoverTimePay=30;

//加班费30元每小时

interfaceGetAmountOfSaled

publicintamountOfSaled=500;

//假设一个月销量500件

publicdoublesalaryPerSaled=10;

//假设卖一件10元

interfaceGetBase

publicdoublebase=2000;

//假设底薪2000元

classSalariedEmployeeextendsEmployeeimplementsGetMonth,GetSalaryPerMonth

publicvoidpay(String[]name,intnumber,intbirthYear,intbirthMonth)

{

if(birthMonth==month)salary=salaryPerMonth+100;

//当月为生日月份,则发100元发红包

elsesalary=salaryPerMonth;

System.out.printf("

%s\n"

name+"

%d\n"

number+"

出生年月:

%d%d\n"

birthYear,birthMonth+"

月收入:

%lf\n"

salary);

}

classHourlyEmployeeextendsEmployeeimplementsGetMonth,GetWorkTime

if(workTime>

160)salary=workTime*20+(workTime-160)*30;

elsesalary=workTime*20;

if(birthMonth==month)salary+=100;

classCommissionEmployeeextendsEmployeeimplementsGetMonth,GetAmountOfSaled

salary=amountOfSaled*salaryPerSaled;

if(birthMonth==month)salary=+100;

classBasePlusCommissionEmployeeextendsEmployeeimplementsGetMonth,GetAmountOfSaled,GetBase

salary=amountOfSaled*salaryPerSaled+base;

publicclassPaysystemimplementsGetMonth

publicstaticvoidmain(Stringargs[])

Employee[]Data=newEmployee[4];

Data[0]=newSalariedEmployee();

Data[1]=newHourlyEmployee();

Data[2]=newCommissionEmployee();

Data[3]=newBasePlusCommissionEmployee();

//创建一个Employee变量数组,保存Employee类层次结构中每个具体类对象的引用,

System.out.println("

pleaseenteremployeetype\n0:

BasePlusCommissionEmployee"

);

Scanners=newScanner(System.in);

inta=s.nextInt();

if(a!

=0&

&

a!

=1&

=2&

=3)

System.out.println("

error"

System.exit(0);

pleaseenterdetailsofthisemployee(namenumberbirthyearbirthmonth)\nforexample:

\nJohn\n9527\n1995\n10"

Stringstr=s.next();

inth=s.nextInt();

intl=s.nextInt();

intm=s.nextInt();

System.out.printf("

str);

%d\nbirthyear:

%d\nbirthmonth:

h,l,m);

switch(a)

case(0):

if(l==11)System.out.printf("

%f"

SalariedEmployee.salary=5100);

elseSystem.out.printf("

SalariedEmployee.salary=5000);

};

break;

case

(1):

SalariedEmployee.salary=6000);

SalariedEmployee.salary=5900);

case

(2):

case(3):

SalariedEmployee.salary=7100);

SalariedEmployee.salary=7000);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1