Java第二次作业第十六题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《Java语言》课程作业(第二次)题目第十六题学院计算机学院专业软件工程班别14级(2)班学号3114006212姓名冯杰俊2015年11月25日你的姓名——《Java语言》课程作业(第二次)2一、课程题目16.为某公司编写一个工资支付系统,用于计算某一类员工的月薪。该公司共有四类员工:领固定月薪的(SalariedEmployee),计时取酬的(HourlyEmployee,如果一月工时超过160小时,则还需对额外的工时支付加班费)、按销售额提成(CommissionEmployee)的和带底薪并按销售额提成的(BasePlusCommissionEmployee),其继承层次结构如下所示。已知每类员工均有表示员工工号、姓名和出生年月的属性,和用于计算员工月薪的方法。创建一个Employee变量数组,保存Employee类层次结构中每个具体类对象的引用,对每个Employee显示其工号、姓名、出生年月和月收入,如果当月是Employee的生日所在的月份,则还另发给他100月作为红包。二、题目分析与设计1.题目需求:①计算每一类员工的工资②创建一个Employee变量数组,保存Employee类层次结构中每个具体类对象的引用③对每个Employee显示其工号、姓名、出生年月和月收入2.创造一个employee抽象类,其中有employee的基本属性:工号、姓名、出生年月和月收入,还有一个抽象方法,每一个类员工都是一个具体类,对抽象方法进行不同的重载,以实现不同员工不同的工资计算方法,另外因为本题没有给出当前月份、固定月薪、销售每件产品的提成、时薪、加班费等,因此本程序都以假设的方法自行设定,保存在多个接口中,在每个类中按需继承3.继承层次结构你的姓名——《Java语言》课程作业(第二次)34.开发环境:Eclipse三、测试分析程序输出:pleaseenteremployeetype0:SalariedEmployee1:HourlyEmployee2:CommissionEmployee3:BasePlusCommissionEmployee用户输入:0(这里以固定月薪做示范,假定当前为11月,固定月薪为5000)程序输出:pleaseenterdetailsofthisemployee(namenumberbirthyearbirthmonth)forexample:John9527199510用户输入:Jack5816199810name:Jacknumber:5816birthyear:1998birthmonth:10income:5000.000000EmployeeSalariedEmployeeCommissionEmployeeHourlyEmployeeBasePlusCommissionEmployee你的姓名——《Java语言》课程作业(第二次)4②pleaseenteremployeetype0:SalariedEmployee1:HourlyEmployee2:CommissionEmployee3:BasePlusCommissionEmployee用户输入:0程序输出:pleaseenterdetailsofthisemployee(namenumberbirthyearbirthmonth)forexample:John9527199510用户输入:Jack5816199811(其他不变,月份输入11)程序输出:name:Jacknumber:5816birthyear:1998birthmonth:11income:5100.000000(发了100元红包)附录:源代码importjava.util.Scanner;abstractclassEmployee{publicintnumber;publicString[]name=newString[10];你的姓名——《Java语言》课程作业(第二次)5publicintbirthYear;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{你的姓名——《Java语言》课程作业(第二次)6publicintamountOfSaled=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{publicvoidpay(String[]name,intnumber,intbirthYear,intbirthMonth){你的姓名——《Java语言》课程作业(第二次)7if(workTime160)salary=workTime*20+(workTime-160)*30;elsesalary=workTime*20;if(birthMonth==month)salary+=100;//当月为生日月份,则发100元发红包System.out.printf(%s\n,name+%d\n,number+出生年月:%d%d\n,birthYear,birthMonth+月收入:%lf\n,salary);}}classCommissionEmployeeextendsEmployeeimplementsGetMonth,GetAmountOfSaled{publicvoidpay(String[]name,intnumber,intbirthYear,intbirthMonth){salary=amountOfSaled*salaryPerSaled;if(birthMonth==month)salary=+100;//当月为生日月份,则发100元发红包System.out.printf(%s\n,name+%d\n,number+出生年月:%d%d\n,birthYear,birthMonth+月收入:%lf\n,salary);}}classBasePlusCommissionEmployeeextendsEmployeeimplementsGetMonth,GetAmountOfSaled,GetBase{publicvoidpay(String[]name,intnumber,intbirthYear,intbirthMonth){salary=amountOfSaled*salaryPerSaled+base;你的姓名——《Java语言》课程作业(第二次)8if(birthMonth==month)salary=+100;//当月为生日月份,则发100元发红包System.out.printf(%s\n,name+%d\n,number+出生年月:%d%d\n,birthYear,birthMonth+月收入:%lf\n,salary);}}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:SalariedEmployee1:HourlyEmployee2:CommissionEmployee3:BasePlusCommissionEmployee);Scanners=newScanner(System.in);inta=s.nextInt();if(a!=0&&a!=1&&a!=2&&a!=3){System.out.println(error);System.exit(0);}System.out.println(pleaseenterdetailsofthisemployee(namenumberbirthyearbirthmonth)\nforexample:\nJohn\n9527\n1995\n10);你的姓名——《Java语言》课程作业(第二次)9Stringstr=s.next();inth=s.nextInt();intl=s.nextInt();intm=s.nextInt();System.out.printf(name:%s\n,str);System.out.printf(number:%d\nbirthyear:%d\nbirthmonth:%d\n,h,l,m);switch(a){case(0):{if(l==11)System.out.printf(income:%f,SalariedEmployee.salary=5100);elseSystem.out.printf(income:%f,SalariedEmployee.salary=5000);};break;case(1):{if(l==11)System.out.printf(income:%f,SalariedEmployee.salary=6000);elseSystem.out.printf(income:%f,SalariedEmployee.salary=5900);};break;case(2):{if(l==11)System.out.printf(income:%f,SalariedEmployee.salary=5100);elseSystem.out.printf(income:%f,SalariedEmployee.salary=5000);};break;case(3):你的姓名——《Java语言》课程作业(第二次)10{if(l==11)System.out.printf(income:%f,SalariedEmployee.salary=7100);elseSy

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功