java語言程序設計實驗報告_第1頁
java語言程序設計實驗報告_第2頁
java語言程序設計實驗報告_第3頁
java語言程序設計實驗報告_第4頁
java語言程序設計實驗報告_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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 li

41、stener中未重載的方法public void componentshown(componentevent e) public void componentresized(componentevent e) public void componentmoved(componentevent e) public void componenthidden(componentevent e) /實現componentlistener中的方法 tf.settext(“按鈕”+(button)e.getcomponent().getlabel()+“獲得了注意的焦點”); public void fo

42、usgained(focusevent e) /處理focuslistener中的方法 germeg.settext(“對話框”+(dialog)e.getcomponent().gettitle()+“獲得了注意的焦點”); public void focuslost(focusevent e) class winadpt extends windowadapter public void windowclosing(windowevent e) /處理關閉窗口事件 (frame)e.getwindow().dispose();system.exit(0);編譯并運行查看結果4、根據上面參考

43、程序, 實現一個登陸系統(在數據庫中創建一個用戶表(編號,用戶名,密碼)1)創建登陸窗口,實現用戶名和密碼的數據庫連接、判斷;如果成功,轉動第二步;不成功,重新輸入用戶名和密碼。只能輸入三次,如果超過三次,則退出系統。2)如果成功,則進入一個新窗口,原來的登陸窗口關閉。五、注意事項認真填寫實驗報告遵守實驗室各項制度,服從實驗指導教師的安排按規定的時間完成實驗六、說明 建議學時數6學時實驗八、多線程實驗一、實驗目的 掌握多線程的實現方法學會利用多線程來顯示動畫二、預習內容 線程與進程的基礎知識三、實驗設備與環境 裝有java語言工具軟件 (eclipse )的微機若干四、實驗內容使用runnab

44、le接口的方法實現多線程編輯testrunnable.java,保存在d:myjava目錄下。import java.applet.*;import java.awt.*;public class testrunnable extends applet implements runnable label prompt1=new lable(“the first thread”); label prompt2=new lable(“the second thread”); textfield threadfirst=new textfield(14); textfield threadsecon

45、d=new textfield(14);thread thread1, thread2;int count1=0,count2=o0;public void inin() add(prompt1); add(threadfirst); add(prompt2); add(threadsecond); public void start() thread1=new thread(this, “firstthread”); thread2=new thread(this, “secondthread”); thread1.start(); thraed2.start(); public void

46、run() string currentrunning; while(true) try thread.sleep(int)(math.random()*10000); catch(exception e) currentrunning=thread.currebttheard().getname(); if(currentrunning.equals(“firsttheard”) count1+; threadfirst.settext(“the first thread”+count1+“use”); else if(currentrunning.equals(“secondthread”

47、) count2+; threadsecond.settext(“the second thread”+count2+“use”); (1) 編譯testrunnable.java。(2) 編輯testrunnable.htm,要求與testrunnable.class在同一目錄下。(3) 運行testrunnable.htm。 實現簡單動畫實現一個簡單動畫,效果為一個球由小到大,從屏幕左側滾動到右側。3. 新建一個主java文件,命名為sallticket java,使用runnable接口定義多線程類ticket.java,在ticket中定義成員變量ticket=100,用同步方式創建兩

48、個線程售票。五、注意事項認真填寫實驗報告遵守實驗室各項制度,服從實驗指導教師的安排按規定的時間完成實驗六、說明 建議學時數2學時實驗九、輸入輸出流實驗一、實驗目的 了解文件的概念和文件對象的創建方法了解fileinputstream和fileoutoutstream的基本概念學會創建文件輸入輸出流掌握使用文件輸入輸出流讀寫文件的方法二、預習內容 輸入輸出類的使用方法三、實驗設備與環境 裝有java語言工具軟件 (eclipse )的微機若干四、實驗內容 編寫程序讀取文本文件內容 讀取圖像文件編輯readpic.java。設保存在d:myjava目錄下。設該目錄下已經存在一個run.gif文件(可以在此目錄下放置一個本機已有的圖像文件名字為run.gif。)import java.io.*;import readpic /*此程序將當前目錄下的run.gif文件復制到copyrun.gif中 readpic() try file f=new file(“run.gif”); file f1=new file(“copyrun.gif”); fileinputstre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論