




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
姓名:王镱澍 Java大作业 一、 题目 白浪公司的雇员根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 雇员分为以下若干类: SalariedEmployee:拿固定工资的员工。 HourlyEmployee:按小时拿工资的员工。 SalesEmployee:销售人员,工资由月销售额和提成率决定。 BasePlusSalesEmployee:有固定底薪的销售人员,工资由底薪加上销售提成。公司会给SalaryEmployee每月另外发放2000元加班费,给 BasePlusSalesEmployee发放1000元加班费。编一个java程序创建上述若干类,并实现确定月份以及该月不同员工的工作情况后打印出该公司该月各员工工资,公司总的工资支出情况。二、 程序功能说明 编一个java程序创建上述若干类,并实现确定该月不同员工的工作情况以及输入月份后打印出该公司该月各员工工资,公司总的工资支出情况。 三、 类、属性、方法说明 程序中已给出详细解释在此只作简要说明:Employee:这是所有员工总的父类。属性:员工的姓名和生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪。方法:每月工作超出160小时的部分按照1.5倍工资发放。HourlyEmployee:Employee的子类,按小时拿工资的员工。 属性:每小时的工资、每月工作的小时数。SalesEmployee:Employee的子类,销售人员。 属性:月销售额、提成率。 方法:工资由月销售额和提成率决定。BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员。 属性:底薪。 方法:工资由底薪加上销售提成部分。四、 程序代码import java.util.*;class MyException extends Exception MyException() /创建自己的异常定义 public class EmployeeTest /月份输入函数。 static int scanf() throws MyException Scanner in=new Scanner(System.in); int s=in.nextInt(); if(s12) throw new MyException(); /月份不正确时抛出定义的异常。 else return s; /主函数入口。 public static void main(String args) Employee ep = new Employee4; ep0 = new SalariedEmployee(魏威,2,5000); ep1 = new HourlyEmployee(段利峰,8,80,242); ep2 = new SalesEmployee(林龙,11,300000,0.1); ep3 = new BasedPlusSalesEmployee(华溪,1,100000,0.15,1500); System.out.println(请输入月份:); int month=1; int data=1; while(data=1) try month=scanf();data=0; catch(MyException e) System.out.println(月份是1-12月请输入正确月份); System.out.println(白浪集团+month+月工资表:); for(int i=0;iep.length;i+) System.out.println(epi.getName()+: +epi.getSalary(month); /统计加班费 int result = 0; for(int i=0;iep.length;i+) result += epi.getAddtionalSalary(); System.out.println(加班费: +result); /统计本月给出员工的总工资 int salary=0; for(int i=0;iep.length;i+) salary +=epi.getSalary(month)+epi.getAddtionalSalary(); System.out.println(本月给出员工的总工资: +salary); /定义加班费接口 interface AddtionalSalary int getAddtionalSalary(); /* *这是所有员工总的父类。 *属性:员工的姓名和生日月份。 *方法:getSalary(),getName(),getAddtionalSalary() */ class Employee implements AddtionalSalary private String name;/员工姓名 private int birth;/员工生日月份 public Employee(String name,int birth) = name;this.birth = birth;/* *方法说明:根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖 *励100元。 */ public int getSalary(int month) int result = 0; if(month=birth)result = 100; return result; public String getName() return name; /方法说明:获取员工姓名。/* *方法说明: 公司会给SalaryEmployee每月另外发放2000元加班费,给 *BasePlusSalesEmployee发放1000元加班费 */ public int getAddtionalSalary() return 0;/* *Employee的子类,拿固定工资的SalariedEmployee员工。 *属性:月薪 *方法:getSalary(),getAddtionalSalary(). */class SalariedEmployee extends Employee private int salaryPerMonth; public SalariedEmployee(String name,int birth,int salaryPerMonth) super(name,birth); this.salaryPerMonth = salaryPerMonth; /按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放. public int getSalary(int month) return this.salaryPerMonth + super.getSalary(month)+ this.getAddtionalSalary(); 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); this.salaryPerHour = salaryPerHour; this.hoursPerMonth = hoursPerMonth; public int getSalary(int month) int result = 0; if(this.hoursPerMonth=160) result = hoursPerMonth*salaryPerHour; else result = 160*salaryPerHour + (int)(hoursPerMonth-160)*1.5*salaryPerHour); return result+super.getSalary(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); this.sales = sales; this.rate = rate; /方法说明:工资由月销售额和提成率决定. public int getSalary(int month) return (int)(sales*rate)+super.getSalary(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); this.basedSalary = basedSalary; public int getSalary(int month)/ 工资由底薪加上销售提成部分 return this.basedSalary+super.getSalary(month) + this.getAddtionalSalary(); public int getAddtionalSalary() return 1000; 五、运行结果在C:Program FilesJavatext目录下产生的类文件:六、结果说明 当输入正确的1-12月月份后程序就根据开始定义的员工生日情况给本月过生的员工增加100工资例如输入月份为2时魏威工资7000+100=7100,同理分析列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区地下管网及设施更新改造工程施工方案
- 碳捕集利用项目资金管理与调度方案
- 2025年艺术管理学考试题及答案
- 摩托车制动器新建项目节能评估报告
- 污水处理厂建设工程节能评估报告
- 广德市2024-2025学年第一学期三年级数学期末学业展示考题及答案
- 广东省农村土地承包经营权流转合同(示.本)
- 2025年特种作业人员考试题库及答案
- 重点学校周边住宅租赁合同包含子女入学条款
- 互联网科研成果知识产权共享与保护协议
- 《面诊与面诊图谱》课件
- 公共设施不锈钢墙面施工方案与技术措施
- 借款抵押合同协议书
- 2025年“铸牢中华民族共同体意识”应知应会知识竞赛题库试卷及答案
- 2025至2030中国汽车前大灯及后装市场经营策略及投融资趋势研究报告
- 2025-2030全球及中国高级无线路由器行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 中建八局《建筑工程质量管理口袋书~基础、主体结构、装饰分册》
- 退役军人创业教训课件
- 银行外包服务管理应急预案
- 2025新修订《代表法》五大亮点解读
- 通信有限公司FY02绩效考核办法
评论
0/150
提交评论