Java程序设计实验(1)

  • 格式:doc
  • 大小:161.00 KB
  • 文档页数:13

学 生 实 验 报 告 册 (理工类)

课程名称:Java程序设计 专业班级: 学生学号: 学生姓名: 所属院部: 指导教师:

20 ——20 学年 第 学期

金陵科技学院教务处制 实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。 实验报告书写说明

实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项

(1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明

实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。 实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。金陵科技学院实验报告 实验项目名称: 面向对象编程实验 实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 金陵科技学院实验报告 实验1 面向对象编程实验 一、实验目的和要求 (1)熟悉Java几种IDE(集成开发环境);重点是Eclipse (2)掌握接口的编写及使用 (3)理解继承、多态 (4)掌握包的编写以及如何使用包中的类 二、实验仪器和设备 奔腾以上个人计算机,装有JAVA语言工具软件 (Eclipse ),windows操作系统。 三、实验内容与过程 ⒈类的封装 (1)声明复数类,成员变量包括实部和虚部,成员方法包括实现复数的加法、减法 class ComplexNumbers { int real; //实部 int imag; //虚部 void plus(…){… } //实数加 void subs(…){… } //实数减 }

(2)声明银行类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额,成员方法包括开户、存款、取款、查询、销户。 class BankCount{ long BCNo; //账号 String Name; //储户姓名 String InitTime; //开户时间 long ID; //身份证号码 double balance; //存款余额 BankCount(…){…} //开户 void Saving(…){…} //存款 void Withdraw(…){…} //取款 void Inquire(…){…} //查询 void DeBankCount(…){…} //销户 }

2.类的继承与多态 多态在工资系统中的应用 下面给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、 CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。 对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导 并调用earnings()方法。在一个实际的工资系统中,各种Employee对金陵科技学院实验报告 象的引用可以通过一个Employee引用数组来实现。程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。 (1)编辑Test.java,设保存在D:\myjava目录下。 abstract class Employee { private String firstName; private String lastName; public Employee(String first,String last) { firstName=first; lastName=last; } public String getEmployeeName() { return firstName; } public String getLastName() { return lastName; } public String toString() { return firstName+lastName; } public abstract String earnings(); } //定义Boss类,为Employee的子类 final class Boss extends Employee { private double weeklySalary;

public Boss(String frist,String last,double s) { super(frist,last); setWeeklySalary(s); }

public void setWeeklySalary(double s) { weeklySalary=(s>0?s:0); } public String earnings() { return "Boss"+super.toString(); 金陵科技学院实验报告 } } //定义CommissiomWorker类,为Employee的子类 final class CommissionWorker extends Employee { private double salary; private double commission; private int quantity; public CommissionWorker(String first,String last,double s,double c,int q) { super(first,last); setSalary(s); setCommission(c); setQusntily(q); } /*public String earnings() {

}*/ public void setQusntily(double s) { salary=(s>0?s:0); } public double setCommission(double c) { return commission=(c>0?c:0); } public String earnings() { double i=salary+commission+quantity; return Double.valueOf(i).toString(); } public String toString() { return"CommissionWorker"+super.toString(); } public void setSalary(double s) { salary=s; } } //定义PieceWorker类,为Employee的子类 final class PieceWorker extends Employee { 金陵科技学院实验报告 private double wagePiece; private int quantity; public PieceWorker(String first,String last,double w,int q) { super(first,last); setWage(w); setQuantity(q); } public void setWage(double w) { wagePiece=(w>0?w:0); } public double setQuantity(int q) { return q+wagePiece; } public String toString() { return "PieceWoeker"+super.toString(); } public String earnings() { return Double.valueOf(wagePiece+quantity).toString(); } } //定义HourlyWorker类,为Employee的子类 class HourlyWorker extends Employee { private double wage; private double hours; public HourlyWorker(String first,String last ,double w,double h) { super(first,last); setWage(w); setHours(h); } public void setWage (double w) { wage=(w>0?w:0); } public void setHours(double h) { hours=(h>=0&&h<168?h:0); }