《java语言程序设计实验报告.doc》由会员分享,可在线阅读,更多相关《java语言程序设计实验报告.doc(28页珍藏版)》请在三一办公上搜索。
1、实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的 熟悉JAVA的运行环境及学习简单的编程。二、预习内容安装工具软件的基本方法。三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 安装Eclipse及JAVA的核心编译程序J2SDK。1、打开Eclipse的安装盘安装Eclipse。2、在
2、相同目录下安装J2SDK。3、打开Eclipse软件对J2SDK文件进行配置。4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。 Pulic class Hello public static void main(String args) /在屏幕上显示“HELLO WORLD”和爱心标志5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。实验结果五、注意事项 认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、说明 本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、 实验目的 熟悉Java的基本语法
3、编写应用程序接收命令行参数编写应用程序接收用户从键盘的输入掌握字符串与数组的基本方法二、预习内容 java编程的基本结构 三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。(1)编辑Average.java。 class Average public static void main(String args ) double n,sun=0; for (int l=0;largs.legth;l+) sum
4、=sum+Double.valueOf(argl.doubleValue();) n=sum/args.length; System.out.println(“average=”+n);命令行参数: 12.34 34.45 21212121注意:1) 参数的个数可以利用args.length来取得。2) 参数“12.34”“34.45”“21212121”分别赋给了main方法的参数arges0、arges1 和arges2。3) 由于arges0、arges1和arges2是String类型的,所以要利用Double.valueOf(String s)方法将String类型转化成Double
5、类型,再用double Value()方法求出double类型的值。编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。方法一:利用System.in.read()方法可以接受从键盘输入的unicode码,编写一个循环取键值,循环出口为当输入回车时,即判断键值是否为13,若是,则退出循环。(1) 编辑Accept.java,设保存在D:myjava目录下。import java.io.*;import java.io.*;class Accpe public static void main(String args) int c=0; String s=“”; Sy
6、stem.out.println(“输入摄氏度:(0数值100)”); tyr while (c!=13) /当输入的不是回车 /将int型转化成char型,再连接成字符串 catch (Exception e)int celsius=Intgeer.parseInt(s.trim();double fahre=1.8*celsius+32;System.out.println(“转化成华氏度为:”+fahre);注意:1)in是System类的一个属性,System.in的返回类型是InputStream类型。输入字节流的父类,InputStream类中的read()方法可以读取一个用户从键
7、盘上输入的键值。System.im.read()的返回值是整型,因此需要先转化成字符型后再连接成字符串。2) System.im.read()需要用try/catch机制来捕获异常。3)将字符串转化成响应的整型数值后再利用公式计算出华氏温度。方法二:由于InputStream类中的read()方法只能读取一个键值,所以需要利用循环才能读出用户从键盘输入的一串字符,有没有读取一行字符的命令呢?我们可以利用Java中类的嵌套来实现。由于BuffereReaser类有读取一行字符串的方法,所以可以这样去定义对象:BuffereReaser br=new BuffereReaser(new Input
8、StreamReader(System.in);(1) 编辑Accpe1.java,设保存在D:myjava目录下。Class Accpt1 publib static void main(String args ) String s=“”; System.out.println(“输入摄氏度:(0数值100)”); BuffereReaser br=new BuffereReaser(new InputStreamReader(System.in);try /读取一行,返回字符串cath(Exception e)int cel=Integer.parseInt(s.trim();double
9、 f=cel*1.8+32;System.out.println(s+“摄氏度转化成华氏度为:”+f);编写应用程序,按升序顺序输出一维数组中的元素。排序的方法有很多,常用的有选择发和冒泡法,在此使用选择法。(1) 编辑Sort.java,设保存在D:myjava目录下。class Sort public static void main(String args )。五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、说明 建议学时数2学时实验三、面向对象编程实验一、 实验目的 掌握接口的编写及使用理解继承、多态掌握包的编写以及如何使用包中的类二、预习
10、内容 java的基本语法知识三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 接口的编写(1) 编辑Interfaceclass.java,设保存在D:myjava目录下。interface Interfaceclass int i=4; int k=5; /填写2个方法声明(2) 编辑UseInterface.java,设保存在D:myjava目录下。 class UseInterface implements Interfaceclass int j;public void func1() /在使用接口的类中一定要实现接口中的所有抽象方法 Syste
11、m.out.println(“func1=”+1); public int func2(int i) System.out.println(“func2=+1);ieturn i; public static void main(String srgs ) UseInterface x=new Interfaceclass ();x.func1();x.func2(k);多态在工资系统中的应用设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、 CommissionWor
12、ker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导 并调用earnings()方法。在一个实际的工资系统中,各种Emp
13、loyee对象的引用可以通过一个Employee引用数组来实现。程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。 包的建立与使用(1) 编辑Calculate.java,设保存在D:myjava目录下。package mypackage;public class Calculate private int a; public Calculate(int a) this.a=a;System.out.printl(“from constrartion”+this.a); public double volume(double height,double
14、width,doule depth) /计算 int add(int x, int y) return x+y; protected void a() System .out.println(“from constration”+a); 编译,查看D:myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。 (2) 编辑Interfaceclass.java,设保存在D:myjava目录下。 import mypackage.Calculate;class PackageDemo public static void main(string
15、ags ) Calculate c=new Calculate(10); double s=c.volume(5,6,7); System.out.println(s); /int b=c.add(5,6); /c.a(); 五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验实验四、异常处理实验一、实验目的 异常的生产及捕获自定义异常及其使用二、预习内容 面向对象的基本知识三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 异常的捕获计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误
16、异常。 编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。定义异常编写程序包含自定义异常,当输入数值为13和4时抛出该异常。编辑Ex2.java,设保存在D:myjava目录下。 class Ex2 extends Exception Ex2(String msg) class MyEx private int x; void setX(int x) void f1() throws Ex2 if(x=13) throw new Ex2(“I dont like 13!”); else if(x=4) else system .out.pr
17、intln(100/x);public static void main(Sstring args ) MyEx a=new MyEx(); try a.steX(5); /a.setX(13);/a.setX(4);/a.setX(0);a.f1(); catch(Ex e) Sytem .out.println(“get message:”+e.getMessage(); 编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的
18、时间完成实验六、说明 建议学时数2学时实验五、小应用程序实验一、实验目的 掌握小应用程序的结构及生命周期掌握带参数小应用程序的编写二、预习内容 网页制作的相关知识三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 小应用程序生命周期小应用程序有init()、start()、stop()和detroy()方法,当小应用程序初次加载时,先执行init(),再执行stop()方法。当小应用程序的窗口从后台恢复到前台时,如当小应用程序的窗口被最小化时,会执行stop()方法,窗口还原时会执行start()方法,这时不执行init()和detroy()方法。当小应用
19、程序被关闭时,再执行detroy()方法。编辑AppLife.java,设保存在D:myjava目录下。Import java .applet .*;import java .awt .*;Public class AppLife extends Applet static int a,b,c,d; int xl=150,yl=50,x2=300,y2=50; putlic void paint (Graphics g) g.drawLine(x1,y1,x1,y2);g.drawLine(x1,y1,x1,y1+a);g.drawString (“init”,x1,y1);g.drawLin
20、e(x1+50,y1,x1+50,y1+b);g.drawString(“start”,x1+50,y1);g.drawLine(x1+100,y1,x1+100,y1+c);g.drawString(“stop”,x1+100,y1);g.drawLine(x1+150,y1,x1+150,y1+d);g.drawString(“destory”,x2,y2); public void init() a+=50; repaint(); public void start() b+=50; repaint(); public viod stop() c+=50; repaint(); publ
21、ic viod destroy() d+=50; repaint(); 注意问题:(1) 编译AppLife.java。(2) 编辑AppLife.htm,要求存放在与AppLife.class相同的目录下。(3) 运行AppLife.htm。带参数的小应用程序编写一个小应用程序,由htm文件向其传递参数。编写App.java,设保存在D:myjava目录下。import java.applet.*;import java.awt.*;public class App extends Applet String name; public void init() name=getParamete
22、r(“name”); public void paint(Graphics g) g.drawString(“Welcome”+name,120,50); 执行步骤:(1) 编译App.java。(2) 编辑App.htm,要求与App.class在同一目录下。执行App.htm。 五、注意事项 认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、说明 建议学时数2学时实验六、图形图像实验一、实验目的 了解Java.awt包中提供的Font类、Color类、Graphics类和Image类掌握设置控制GUI组件字体和颜色的一般方法掌握使用Graphics绘制线条、
23、矩形、圆角矩形、椭圆、弧等基本图形掌握使用Graphics绘制图象二、预习内容 绘制图形的基本方法三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 绘制图形编辑Gra.java,保存在D:myjava目录下。import java.applet.*;import class paint(Graphicds g) Font f1=new Font(“Helvetica”,Font.PLAIN,28); public void paint(Graphicds g) g.setFont(f1); g.setCorol(Corcol,blue); /在(120,
24、50)处输出字符串“我是美丽的大气球!” g.setCorol(Corol.green); g.drawOval(100,20,200,100); g.setCorol(Corol.black);g.fillOval(180,60,10,10);g.fillOval(180,60,10,10);g.setCorol(Cotol.red);g.drawArc(130,50,50,180,180);g.setColor(Color.yellow); /画直线,两点为(150,120)(150,250);(1) 编译Gra.java。(2) 编辑Gra.java,要求与Gra.class在同一目录下
25、。(3) 运行Gra.htm。五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、说明 建议学时数2学时实验七、GUI(图形用户接口)实验一、实验目的 掌握用MouseListener和MouseMotionListener接口处处理鼠标事件Mouse Event的方法。掌握制作菜单及处理菜单事件的方法掌握创建对话框及定位、显示、激活和关闭对话框的方法二、预习内容 图形用户接口编程所需的基本类及使用方法三、实验设备与环境 装有JAVA语言工具软件 (Eclipse )的微机若干四、实验内容 制作一个简单的画板编辑Mou.java,设保存在D:myjav
26、a目录下。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 g) 程序省略 public void mouseDragged(MouseEvent e) 程序
27、省略 public void mouseMoved(MouseEvent e) /由于使用的是Listener,需要将其他不重载的方/法,列举在这里 public void update(Graphics g) paint(g); 编译并运行查看结果.菜单的编写编辑TestMenu.java,设保存在D:myjava目录下。import java.applet.*;import java.awt.*;import java.awt.event.*;public class TestMenu /定义主类 public static void main(String args ) MyMenhFr
28、ame mf=new MyMenhFrame(); mf.setSize(new Dimension(300,200); /指定窗口初始大小 mf.setVisible(ture); /使窗口可见,默认为不可见 /定义窗口class MyMenhFrame extends Frame implements ActionListener,ItemListener MenuBar m_MenuBar; Menu menuFile,menuEdit,m_Edit_Pasete; MenuItem mi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy
29、; MenuItem pi_New,pi_Del,pi_Pro,mi_Paste_All,mi_Paste_Part; CheckboxMenuItem mi_Edit_cut; PopupMenu popM; TextAre ta; MyMenuFrame() super(“拥有菜单的窗口”); /指定窗口标题 ta=new TextArea(“no choice”,5,20); ta.addMouseListener(new HandleMouse(this); /文本域响应鼠标事件 add(“Center”,ta); /创建弹出式菜单 popM=new PopuoMenu(); pi_N
30、ew=new MenuItem(“新建”); pi_new.addActionListener(this); popM.add(pi_New); pi_Del=new MenuItem(“删除”); pi_Del.addActiomListener(this); opoM.add(pi_Del); pi_Por=new MenuItem(“属性”); pi_Por.addActionListener(this); popM.add(pi_pro); /将弹出式菜单加在文本域上 ta.add.(popM); m_MenuBar=new MenuBar(); /创建菜单栏 menuFile=new
31、 Menu(“文件”); /创建菜单项、菜单自项并指定快捷键 mi_File_Open=new MenuItem(“打开”,new MenuShortcut(o); mi_File_Close=new MenuItem(“关闭”); mi_File_Exit=new MenuItem(“退出”); mi_File_Exit,setShortcut(new MenuShrotcut(x); mi_File_Open.setActionCommand(“打开”); mi_File_Close.setActionCommand(“退出”); mi_File_Open.addActiomListene
32、r(this); mi_File_Close.addActiomListener(this); /自身作为监视器 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);/实现以下菜单,并添加监听 (“编辑”); (“复制”); (“剪切”); (“粘贴”); (“全部粘贴”); (“部分粘贴”); this.s
33、etMenuBar(m_MenuBar); /在窗口中添加菜单栏 public void actionPerformed(ActionEvent e) if(e.getActionCommand()=“退出”) dispose(); System.exit(0); elseta.setText(e.getActionCommand(); public void itenStateChanged(ItemEvent e) if(e.getSource()=mi_Edit_Cut)if(ChenckboxMenuItem)e.getSource().getState() ta.setText(“c
34、hoose”+(CheckcoxMenuItem)e.getSource().getLabel();/将时间小时在文/本框中显示else ta.setText(“no choose”+(CheckboxMenuItem)e.getSource().getLabel(); class HandleMouse extends MouseAdpter /处理鼠标事件类 MyMenuFrame m_Parent; HandleMouse(MyMenuFrame mf) m_oarent=mf; public void mouseReleased(MouseEvent e) /鼠标按键松开事件弹出菜单
35、if(e.isPopuoTrigger()/检查鼠标事件是否是由弹出菜单引发的m_Parent.popM.show(Component)e.getSource(),e.getX(),e.getY();编译并运行TestMenu.class查看结果。使用Dialog实验消息对话框和一般对话框编辑TestDialog.java,设保存在D:myjava目录下。 import java.awt.*;import java.awt.event.*;public clsaa TestDialog public static void main(String args ) MyDialogFrame df
36、=new MyDialogFrame(); class MyDialogFrame extends Frameimplements ActionListener,ComponetListener Dialog MegDlg,InOutDlg; Button btn1,btn2,bnY,btnN,btnR; TextFile tf=new TextField(“no imformation”,45); TextFile gerMeg=new TextField(“inout imformation”,10); MyDialogFrame() super(“use dialog”); btn1=n
37、ew Button(“隐藏”); btn2=new Button(“询问”); btnY=new Button(“是”); btnN=new Button(“否”); btnR=new Button(“返回”); setLayout(new FlowLayout(); add(tf); add(btn1); add(btn2); btn1.addComponentListener(this); this.addWindowsListener(new WinAdpt();/Frame响应窗口关闭事件 btn1.addActionListener(this); btn2.addActionList
38、ener(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 Labe
39、l(“continue?”); MegDlg.add(“Center”.pl); Panel p2=new Panel(); p2.add(btnY); p2.add(btnN); MegDlg.add(“Douth”,p2); MegDlg.setSize(200,100); MegDlg,show();else if(e.getActionCommand()=“响应”) InOutDlg=new Dialog(this, “input the imformation”); InOutDlg.add(“Center”,getMeg); InOutDlg.add(“South”,btmR);
40、InOutDlgsetSize(200,100); InOutDlg.addFocusListener(this); InOutDlg.show(); else if(e.getActionCommand()=“是”) MegDlg.dispose(); btn1.setVisible(false); else if(e.ge “否”) MegDlg.dispose(); else if(e.get tActionCommand()=“返回”) tf.setText(getMeg.getText()+“是对话框的输入”); ImOutDlg.dispose(); /列举Component Listener中未重载的方法public void componentShown(componentEvent e) public void componentResized(componentEvent e) pu