工学Java程序设计实验2_第1页
工学Java程序设计实验2_第2页
工学Java程序设计实验2_第3页
工学Java程序设计实验2_第4页
工学Java程序设计实验2_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生实验报告册(理工类)课程名称:Java程序设计专业班级:学生学号:学生姓名:所属院部:指导教师:2020学年 第学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名

2、词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按金陵科技学院课堂教学实施细则中作业批阅成绩评定要求执行。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:面向对象编程实验实验学时:6同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:实验1面向对象编程实验一、实验目的和要求(1)熟悉Java几种IDE(集成开发环境);重点是Ecli

3、pse(2)掌握接口的编写及使用(3)理解继承、多态(4)掌握包的编写以及如何使用包中的类二、实验仪器和设备奔腾以上个人计算机,装有JAVA语言工具软件 (Eclipse ),windows操作系统。三、实验内容与过程类的封装(1)声明复数类,成员变量包括实部和虚部,成员方法包括实现复数的加法、减法class ComplexNumbers int real; /实部int imag;/虚部void plus() /实数加void subs() /实数减(2)声明银行类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额,成员方法包括开户、存款、取款、查询、销户。class BankCo

4、untlong BCNo;/账号String Name;/储户姓名String InitTime;/开户时间long ID;/身份证号码double balance;/存款余额BankCount()/开户void Saving()/存款void Withdraw()/取款void Inquire()/查询void DeBankCount()/销户2类的继承与多态多态在工资系统中的应用下面给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、 CommissionWorker

5、(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导 并调用earnings()方法。在一个实际的工资系统中,各种Employ

6、ee对象的引用可以通过一个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 firstN

7、ame;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)

8、; 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 Commissio

9、nWorker(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

10、() 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

11、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();

12、 public String earnings() returnDouble.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); pub

13、lic void setWage (double w) wage=(w>0?w:0); public void setHours(double h) hours=(h>=0&&h<168?h:0); public String earnings() return "HourlyWorker"+super.toString(); class Text public static void main(String args ) /使用超类声明ref Employee ref; String out=""/分别定义各子类 Bo

14、ss b=new Boss("Hohn","Smith",800.00); CommissionWorker c=new CommissionWorker("Sue","Hones",400.00,3.0,150); PieceWorker p=new PieceWorker("Bob","Lewis",2.5,200); HourlyWorker h=new HourlyWorker("Karen","price",13.75,40)

15、;/使用子类分别实例化ref=b;out+=ref.toString()+"earned $"+ref.earnings()+"n"+b.toString()+"earned $"+b.earnings()+"n"System.out.print(out);ref=c;out+=ref.toString()+"earned $"+ref.earnings()+"n"+c.toString()+"earned $"+c.earnings()+"n&

16、quot;System.out.print(out);ref=p;out+=ref.toString()+"earned $"+ref.earnings()+"n"+p.toString()+"earned $"+p.earnings()+"n"System.out.print(out);ref=h;out+=ref.toString()+"earned $"+ref.earnings()+"n"+h.toString()+"earned $"+h.ear

17、nings()+"n"System.out.print(out);3接口的编写(1) 编辑Interfaceclass.java。interface Interfaceclass int i=4; int k=5; void func1(); int func2(int x);(2) 编辑UseInterface.java。class UseInterface implements Interfaceclass int j;public void func1() /在使用接口的类中一定要实现接口中的所有抽象方法 System.out.println("func1=

18、"+1); public int func2(int i) System.out.println("func2="+1);return i; public static void main(String srgs ) /Interfaceclass.class x=new Interfaceclass.class();不能对接口进行实例化UseInterface x=new UseInterface();x.func1();x.func2(k);四、实验结果与分析(程序运行结果及其分析)五、实验体会(遇到问题及解决办法,编程后的心得体会)实验项目名称:异常处理 实

19、验学时: 4 同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:实验2 异常处理一、实验目的和要求异常的生产及捕获自定义异常及其使用二、实验仪器和设备奔腾以上个人计算机,装有JAVA语言工具软件 (Eclipse ),windows操作系统。三、实验内容与过程异常的捕获计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。编辑Ex1.java,保存在D:myjava目录下。import java.io.*;class Ex1public static void main(String args ) try BufferedReader stri

20、n=new BufferedReader( new InputStreamReader(System.in); System.out.print("请输入除数:"); String cl=strin.readLine(); int a=Integer .parseInt(cl); System .out .print("请输入被除数:"); cl=strin .readLine(); int b=Integer .parseInt(cl); int c=b/a; System .out .println("商为:"+c); /捕获与I

21、/O有关的异常 catch(IOException e)e .printStackTrace () ; /捕获数值转化时的异常,如不能将字符转化成数值 catch(NumberFormatException e) System.out.println("请输入整数!"); /e .printStackTrace(); /捕获除数为0的异常 catch(ArithmeticException e) System .out .println("除数不可以0!"); /e .printstackTrace(); 编译并运行,当输入除数为0时,将有异常出现,当输

22、入的不是整数时,如将30输成了3o,出现的是另一种异常。定义异常编写程序包含自定义异常,当输入数值为13和4时抛出该异常。编辑Ex2.java,设保存在D:myjava目录下。class Ex2 extends Exception Ex2(String msg) super(msg); class MyEx private int x; void setX(int x) this.x=x; void f1() throws Ex2 if(x=13) throw new Ex2("I don't like 13!"); else if(x=4) throw new E

23、x2("I don't like 4!"); else System .out.println(100/x);public static void main(String args ) MyEx a=new MyEx(); try a.setX(5); /a.setX(13);/a.setX(4);/a.setX(0);a.f1(); catch(Exception e) System.out.println("get message:"+e.getMessage(); 编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX(13)语

24、句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。四、实验结果与分析(程序运行结果及其分析)五、实验体会(遇到问题及解决办法,编程后的心得体会)实验项目名称:图形用户接口 实验学时: 6 同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:实验3 图形用户接口一、实验目的和要求掌握用MouseListener和MouseMotionListener接口处处理鼠标事件Mouse Event的方法。掌握制作菜单及处理菜单事件的方法掌握创建对话框及定位、显示、激活和关闭对话框的方法二、实验仪器和设备奔腾以上个人计算机,装有JAVA语言工具软件 (Eclipse ),win

25、dows操作系统。三、实验内容与过程制作一个简单的画板编辑Mou.java,设保存在D:myjava目录下。import java.applet.*;import java.awt.*;import java.awt.event.*;public class Mou extends Applet implements MouseMotionListener int x= -1,y= -1; public void init() setBackground(Color.cyan); addMouseMotionListener(this); public void paint(Graphics

26、g) if(x!= -1&&y!= -1) g.setColor(Color.red); g.drawLine(x,y,x,y); public void mouseDragged(MouseEvent e) x=(int)e.getX(); y=(int)e.getY(); public void mouseMoved(MouseEvent e) /由于使用的是Listener,需要将其他不重载的方/法,列举在这里 public void update(Graphics g) paint(g); public static void main(String args) Mou

27、 mou=new Mou(); mou.setVisible(true); mou.init(); mou.paint() 编译并运行查看结果.菜单的编写编辑TestMenu.java,设保存在D:myjava目录下。import java.awt.*;import java.awt.event.*;import java.awt.event.ItemEvent;class MyMenhFrame extends Frame implements ActionListener,ItemListener MenuBar m_MenuBar; Menu menuFile,menuEdit,m_Ed

28、it_Paste; MenuItem mi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy; MenuItem pi_New,pi_Del,pi_Pro,mi_Paste_All,mi_Paste_Part; CheckboxMenuItem mi_Edit_Cut; PopupMenu popM; TextArea ta; public void itemStateChanged(ItemEvent e) MyMenhFrame() super("拥有菜单的窗口"); /指定窗口标题 ta=new TextArea(&q

29、uot;no choice",5,20); ta.addMouseListener(new HandleMouse(this); /文本域响应鼠标事件 add("Center",ta); /创建弹出式菜单 popM=new PopupMenu(); pi_New=new MenuItem("新建"); pi_New.addActionListener(this); popM.add(pi_New); pi_Del=new MenuItem("删除"); pi_Del.addActionListener(this); popM

30、.add(pi_Del); pi_Pro=new MenuItem("属性"); pi_Pro.addActionListener(this); popM.add(pi_Pro); /将弹出式菜单加在文本域上 ta.add(popM); m_MenuBar=new MenuBar(); /创建菜单栏 menuFile=new Menu("文件"); /创建菜单项、菜单自项并指定快捷键 mi_File_Open=new MenuItem("打开",new MenuShortcut('o'); mi_File_Close=

31、new MenuItem("关闭"); mi_File_Exit=new MenuItem("退出"); mi_File_Exit.setShortcut(new MenuShortcut('x'); mi_File_Open.setActionCommand("打开"); mi_File_Close.setActionCommand("退出"); mi_File_Open.addActionListener(this); mi_File_Close.addActionListener(this);

32、 /自身作为监视器 mi_File_Exit.addActionListener(this); menuFile.add(mi_File_Open); menuFile.add(mi_File_Close); menuFile.addSeparator(); menuFile.add(mi_File_Exit); m_MenuBar.add(menuFile); menuEdit=new Menu("编辑"); mi_Edit_Copy=new MenuItem("复制"); mi_Edit_Cut=new CheckboxMenuItem("

33、剪切"); m_Edit_Paste=new Menu("粘贴"); mi_Paste_All=new MenuItem("全部粘贴"); mi_Paste_Part=new MenuItem("部分粘贴"); mi_Edit_Copy.addActionListener(this); mi_Edit_Cut.addItemListener(this); m_Edit_Paste.add(mi_Paste_Part);/ m_Edit_Paste.addItemListener(mi_Paste_All); mi_Paste

34、_Part .addActionListener(this); mi_Paste_All.addActionListener(this); menuEdit.add(mi_Edit_Copy); menuEdit.add(mi_Edit_Cut); menuEdit.addSeparator(); menuEdit.add(m_Edit_Paste); m_MenuBar.add(menuEdit); this.setMenuBar(m_MenuBar); /在窗口中添加菜单栏 public void actionPerformed(ActionEvent e) if(e.getActionC

35、ommand()="退出") dispose(); System.exit(0); elseta.setText(e.getActionCommand(); public void itenStateChanged(ItemEvent e) if(e.getSource()=mi_Edit_Cut)if(CheckboxMenuItem)e.getSource().getState() ta.setText("choose"+(CheckboxMenuItem)e.getSource().getLabel();/将时间小时在文/本框中显示else ta.

36、setText("no choose"+(CheckboxMenuItem)e.getSource().getLabel(); class HandleMouse extends MouseAdapter /处理鼠标事件类 MyMenhFrame m_Parent; HandleMouse(MyMenhFrame mf) m_Parent=mf; public void mouseReleased(MouseEvent e) /鼠标按键松开事件弹出菜单 if(e.isPopupTrigger()/检查鼠标事件是否是由弹出菜单引发的m_Parent.popM.show(Com

37、ponent)e.getSource(),e.getX(),e.getY();public static void main(String args)MyMenhFrame mmf=new MyMenhFrame();mmf.setSize(400,300);mmf.setVisible(true);编译并运行TestMenu.class查看结果。使用Dialog实验消息对话框和一般对话框编辑TestDialog.java,设保存在D:myjava目录下。import java.awt.*;import java.awt.event.*;public class TestDialog publ

38、ic static void main(String args ) MyDialogFrame df=new MyDialogFrame(); class MyDialogFrame extends Frameimplements ActionListener,ComponentListener Dialog MegDlg,InOutDlg; Button btn1,btn2,btnY,btnN,btnR; TextField tf=new TextField("no imformation",45); TextField getMeg=new TextField(&quo

39、t;inout imformation",10); MyDialogFrame() super("use dialog"); btn1=new Button("隐藏"); btn2=new Button("询问"); btnY=new Button("是"); btnN=new Button("否"); btnR=new Button("返回"); setLayout(new FlowLayout(); add(tf); add(btn1); add(btn2);

40、btn1.addComponentListener(this); this.addWindowListener(new WinAdpt();/Frame响应窗口关闭事件 btn1.addActionListener(this); btn2.addActionListener(this); btnY.addActionListener(this); btnN.addActionListener(this); btnR.addActionListener(this); setSize(350,150); show(); public void actionPerformed(ActionEvent e) /实现Action Listener中的方法 if(e.getActionCommand()="隐藏") MegDlg=new Dialog(this, "true?",true); Panel p1=new Panel(); p1.add(new Label("continue?"); MegDlg.add("Center",p1); Panel p2=new Panel(); p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论