版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、天津理工大学计算机科学与工程学院实验报告2016 至 2017 学年 第 一 学期课程名称Java语言程序设计学号学生姓名年级专业教学班号实验地点实验时间2017年11月20日 第5节 至 第6节主讲教师 董玉涛辅导教师 董玉涛实验(二)实验名称工资管理软件设计软件环境Windows 8.1,Java SE 9,JDK 8,Eclipse 硬件环境PC机实验目的1. 熟悉Java程序结构,学习掌握抽象类的概念和方法。2. 掌握接口的概念和实现方式,理解抽象类和接口的区别。3整理上机步骤,总结经验和体会。实验内容(应包括实验题目、实验要求、实验任务等)序号No.姓名name地 址address电
2、 话phone职 务title社会安全号socialSN基本工资payRate1Sam123 Main Line555-0469manager123-45-6789$2423.072Peter456 Off Line555-0101employee987-65-4321$1246.153Mary789Off Rocker555-0690employee010-20-3040$1169.234Cliff678 Fifth Ave.555-0000hourly958-47-3625$10.555Al987 Suds Ave.555-8374volunteer无$0.006Gus321 Off Li
3、ne555-7282volunteer无$0.00其中,Sam是经理,每月除得到基本工资外,还获得$500.00的红利;Peter和Mary是合同工,每月拿基本工资;Cliff是小时工,他的每月的工资额=基本工资工作小时数,他的工作小时数为每月40小时;而Al和Gus是义工,不拿工资。图1反应了上述情况。StaffMember是抽象类,有一个抽象方法pay。Manager类中的bonus代表红利;awardBonus方法用来增加红利。Hourly类中的hoursWorked代表一个月工作的小时数;addHours方法用来增加小时数。Staff类中的main方法用来驱动整个程序的运行;payDe
4、tail方法用来显示所有人的详细信息;构造方法用来初始化上述6个人,并将他们存储在staffMember类型的数组中。每个类都有toString方法,用来返回该类的详细信息。要求你按照此图的继承关系定义每一个类,并最终显示所有人的详细信息。显示结果如下:姓名:Sam地址:123 Main Line电话:555-0469社会安全号:123-45-6789工资:$2923.07-姓名:Peter地址:456 Off Line电话:555-0101社会安全号:987-65-4321工资:$1246.15-姓名:Mary地址:789 Off Rocker电话:555-0690社会安全号:010-20-
5、3040工资:$1169.23-姓名:Cliff地址:678 Fifth Ave.电话:555-0000社会安全号:958-47-3625工作小时数:40工资:$422.00-姓名:Al地址:987 Suds Ave.电话:555-8374多谢!-姓名:Gus地址:321 Off Line电话:555-7282多谢!-实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)一、 实验步骤与算法描述:根据实验需求,首先定义一个员工基类,描述姓名、地址、电话、职务、社会安全号、基本工资属性;定义一个工资计算方法。抽象类StaffMember定义过程如下,应包含以下的内容(具体方法的实现见
6、附录中的源代码):public abstract class StaffMember protected int No;/序号protected String name;/姓名protected String address;/地址protected String phone;/电话protected String title;/职务protected String socialSN;/社会安全号protected double payRate;/基本工资 public StaffMember(int No,String name,String address,String phone,Str
7、ing socialSN,double payRate)public int getNo()public void setNo(int no) public String getName() public void setName(String name) public String getAddress() public void setAddress(String address) public String getPhone() public void setPhone(String phone) public String getTitle() public void setTitle
8、(String title) public String getSocialSN() public void setSocialSN(String socialSN) public double getPayRate() public void setPayRate(double payRate) /支付金额public abstract double pay();/toString方法public String toString()然后分别让经理、合同工、小时工、义工继承员工基类,每个人重写自己的工资计算方法。最后按照要求输出即可,具体实例化过程见附录源代码。二、 实验结果:三、 实验分析总
9、结本次实验中,主要练习编译了跟抽象类有关的相关程序。其中主要包括已知抽象方法编写抽象类、抽象类抽象方法实现多态性、通过定义多个子类来实现对类的继承。通过本次实验,基本掌握了实现多态的方法,也练习了抽象类和抽象方法的定义和使用。以后也还需要多加练习,能更加熟悉。同时,编写程序中遇到问题再所难免,应耐心探究其中的原因,从出现问题的地方起,并联系前后程序,仔细推敲,逐个排查。直到最终搞清为止。附录(源程序清单)package ex2;public abstract class StaffMember protected int No; protected String name;protected
10、String address;protected String phone;protected String title;protected String socialSN;protected double payRate;public StaffMember(int No,String name,String address,String phone,String socialSN,double payRate)this.No=No;=name;this.address=address;this.phone=phone;this.socialSN=socialSN;this
11、.payRate=payRate;public int getNo() return No;public void setNo(int no) No = no;public String getName() return name;public void setName(String name) = name;public String getAddress() return address;public void setAddress(String address) this.address = address;public String getPhone() retur
12、n phone;public void setPhone(String phone) this.phone = phone;public String getTitle() return title;public void setTitle(String title) this.title = title;public String getSocialSN() return socialSN;public void setSocialSN(String socialSN) this.socialSN = socialSN;public double getPayRate() return pa
13、yRate;public void setPayRate(double payRate) this.payRate = payRate;public abstract double pay();public String toString()return this.No+ ++ +this.address+ +this.phone+ +this.socialSN+ $+this.pay(); public static void main(String args) Staff s=new Staff();s.payDetail();class Manager extends
14、StaffMember public Manager(int No, String name, String address, String phone, String socialSN, double payRate,double bonus) super(No, name, address, phone, socialSN, payRate);this.bonus=bonus;private double bonus; public double getBonus() return bonus;public void setBonus(double bonus) this.bonus =
15、bonus;Override public double pay() return this.getPayRate()+this.awardBonus();public double awardBonus()return this.bonus;class Employee extends StaffMember public Employee(int No, String name, String address, String phone, String socialSN, double payRate) super(No, name, address, phone, socialSN, p
16、ayRate);Overridepublic double pay() return this.getPayRate();class Hourly extends StaffMember public Hourly(int No, String name, String address, String phone,String socialSN, double payRate,int hoursWorked) super(No, name, address, phone, socialSN, payRate);this.hoursWorked=hoursWorked; private int
17、hoursWorked;public int getHoursWorked() return hoursWorked;public void setHoursWorked(int hoursWorked) this.hoursWorked = hoursWorked;Overridepublic double pay() return this.getPayRate()*this.getHoursWorked();public void addHours(int hours)this.setHoursWorked(this.getHoursWorked()+hours); public Str
18、ing toString()return this.No+ ++ +this.address+ +this.phone+ + +this.socialSN+ 工作时长:+this.hoursWorked+ 工资:$+this.pay(); class Volunteer extends StaffMember public Volunteer(int No, String name, String address, String phone,String socialSN, double payRate) super(No, name, address, phone, soc
19、ialSN, payRate); Overridepublic double pay() return 0.00;public String toString()return this.No+ ++ +this.address+ +this.phone+ +this.socialSN+this.payRate; class Staff private StaffMember members = new StaffMember6; public Staff() StaffMember manager = new Manager(1, 姓名:Sam, 地址:123 Main Line,电话:555-0469, 社会安全号:123-45-6789, 2923.07, 500.00);StaffMember employee1 = new Employee(2, 姓名:Peter, 地址:456 Off Line,电话:555-0101, 社会安全号:98
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年双鸭山市四方台区公务员人员招聘考试备考试题与答案详解
- 2026北京宣武医院神经外科招聘考试备考题库及答案解析
- 2026年合肥产投康养集团有限公司及子公司社会招聘12名(一线、专业技术岗位)笔试参考题库及答案解析
- 2026浙江省义乌市中心医院公开招聘48名编外工作人员(第二批)笔试模拟试题及答案解析
- 2026年安宁市林业和草原局招聘第二批编外聘用人员(防扑火大队队员)(22人)笔试备考题库及答案解析
- 2026集美区宁宝小学产假顶岗教师招聘1人考试备考题库及答案解析
- 2026年齐齐哈尔市富拉尔基区公务员人员招聘笔试参考题库与答案详解
- 2026年宜昌市西陵区公务员人员招聘笔试参考题库与答案详解
- 2026年北京市通州区公务员人员招聘笔试备考题库与答案详解
- 2027国家电网有限公司华东分部高校毕业生招聘(国调网调及北交提前批)考试模拟试题及答案解析
- 中医医院卒中中心脑出血救治流程
- 《股票价值评估用》课件
- 2027贵州航天电器秋季招聘284人考试备考题库及答案解析
- 地理信息数据分类分级工作指南试行全文
- 再生水回用处理工程设计
- 【新教材核心素养】教科版科学五年级上册3.3《用弹力驱动小车》教学课件
- 企业车间主任(班组长)岗位安全职责培训
- 小学五年级英语语法讲义
- 2026中铝物资面向中铝集团内部招聘9人备考题库及答案详解(全优)
- GB/T 21125-2026食用菌品种选育技术规范
- 基本公共卫生支出制度
评论
0/150
提交评论