java試驗報告-總結_第1頁
java試驗報告-總結_第2頁
java試驗報告-總結_第3頁
java試驗報告-總結_第4頁
java試驗報告-總結_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 實驗報告口實踐報告口 課程名稱:Java語言程序設計 實驗、實踐名稱: Java語言基礎、數(shù)組和字符串編程、 Java 面向?qū)ο蟪绦蛟O計、Java異常處 理 多線程編程、圖形用戶界面編程 實驗、實踐地點:致向樓301 專業(yè)班級: 軟件 1531 學號: 2015006446 學生姓名: 關玉芬 指導教師: 相潔 2017年1月8日 實驗一 Java語言基礎 一、實驗目的和要求 (1) 通過實驗,掌握Java語言程序設計的基本方法。 學會Java語言中標示符的命名、運算符和表達式的應用。 (3)熟練地掌握Java程序流程控制語句的應用。 二、實驗內(nèi)容 1編寫應用程序,計算100(含100)以內(nèi)

2、所有偶數(shù)的和。 2“水仙花數(shù)”是指一個 3位數(shù),其個位、十位、百位上的數(shù)字的立方和等于該數(shù)本身, 例如371=33+73+13,因此371是一個水仙花數(shù)。編寫程序,求所有的水仙花數(shù)。 3. 編寫一個程序,求1-100間的素數(shù)。 4. 有一函數(shù): x(x1) Y= 3x-2(1 x 10) 寫一程序,給定x值,輸出y值。 5. 使用for循環(huán)語句,編寫程序輸出以下圖案。 6. 編寫程序,輸出從公元1900年到2100年所有閏年的年號,每輸出5個年號換一行。判 斷年是否為閏年的條件是:若年號可以被4整除,而不能被100整除,則是閏年; 若年號可以被400整除,也是閏年。 三、主要儀器設備 使用的計

3、算機惠普:硬件配置Win7、軟件環(huán)境eclipse 四、實驗代碼 1. public class a1 public static void main( Stri ng args) int i,sum=0; for(i=0;i=100;i+) if(i%2=0) sum+=i; System.out.pri ntln( sum); 2. public class a2 public static void main( Stri ng args) int i,a,b,c; for(匸100;i=999;i+) a=i%10; b=(i-a)%100/10; c=(i-b*10-a)/100; i

4、f(i=a*a*a+b*b*b+c*c*c) System.out.pri ntl n(i); 3. public class a3 public static void main( Stri ng args) / TODO Auto-ge nerated method stub for(i nt i=2;i=100;i+) boolea n t = false; for(i nt j=2;ji;j+) if(i%j=0)t=false;break; else t=true; if(t)System.out.pri nt(i+ ); 4. public class a4 public stat

5、ic void main( Stri ng args) int i,j; for(i=1;i=4;i+) for(j=1;j=(-1)*i+4);j+) System.out.pri nt(); for(j=1;j=1;i-) for(j=1;j=(-1)*i+4);j+) System.out.pri nt(); for(j=1;j=(2*i-1);j+) System.out.pri ntf); System.out.pri ntl n(); 5. import java.util.*; public class a5 public static void main( Stri ng ar

6、gs) Scanner x二new Sca nn er(System.i n); System.out.pri ntln(請輸入一個大于1的整數(shù)); int i=x .n extI nt(); System.out.println(你剛才輸入的數(shù)為+i); if(i=1 else System.out.print(輸出結果為+i*4); x.close(); 6. package shiya n; public class a6 public static void main( Stri ng args) int i,j=0; for(i=1900;i a1 | 2550 2. a2 Java

7、 Application 153 370 371 407 3. 枷制刪用涮M刪刪WM科刪 3 5 Hl U1HJ B3 3131H fl 53 Hl HI 4. 噪杳 fr 5. ;terminated a5 Java Application D:jdkbinjavaw.exe (2017 請輸入二個大于1的整數(shù) 6 你剛才輸入的數(shù)為6 輸出結果為16 6. 1* Problems 曲 Javadoc 葩 Decoration D Console 3 terminated 乂 a6 Jaws Application D:jdkXbinjavaw.exe (2017年1 月 IT曰 下 1904

8、 1908 1912 1916 1920 1924 1928 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 1972 1976 1980 1984 1988 1992 1996 2000 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076 2080 2034 2088 2092 2096 六、討論、心得 初步掌握了 Eclipse集成開發(fā)環(huán)境。 掌握Java基本數(shù)據(jù)類型、運算符與表達式、數(shù)組的使用方法,語

9、法結構,掌握順 序結構、選擇結構和循環(huán)結構語法的程序設計方法。、對JAVA程序設計有初步的 了解 實驗二數(shù)組和字符串編程 一、實驗目的和要求 (1) 通過實驗,掌握Java語言中數(shù)組、字符串程序設計的基本方法。 (2) 較熟練地掌握Java程序數(shù)組的應用、字符串處理操作的方法應用 二、實驗內(nèi)容 (1) 編寫一個程序,在控制臺輸入10個數(shù),按大小順序輸出。 (2) 求一個3*3矩陣對角元素之和。 (3) 輸入一段字符串,統(tǒng)計其中有多少個單詞。(單詞用空格隔開) 三、主要儀器設備 使用的計算機惠普:硬件配置Win7、軟件環(huán)境eclipse 四、實驗代碼 1、package a1; import j

10、ava.io.*; import java.util.Sca nner; public class a1 public static void main(String args) throws IOException int coun t=10,k; double data=new doubleco un t; Sca nner sr = new Sca nn er(System.i n); System.out.pri nt(請輸入十個數(shù)字:n); for(k=0;kcou nt;k+) datak=sr. nextDouble(); sr.close(); System.out.pri n

11、tl n(”你輸入的十個數(shù)字是:); for(k=0;kco un t;k+) System.out.pri nt( +datak); double dataCopy=new doubleco un t+1; double temp=0; System.arraycopy(data,0,dataCopy,1,data.le ngth); for(k=1;kdataCopyj+1) temp=dataCopyj; dataCopyj=dataCopyj+1; dataCopyi+1=temp; System.out.pri ntl n(); System.out.pri ntl n(”從小到大排

12、序后的序列是:); for(i nt j=1;jdataCop y.len gth;j+) System.out.pri nt( +dataCopyj); 2、 package a1; import java.io.*; import java.util.Sca nner; public class a2 public static void main(String args) throws IOException double a; int sum=0; a=new double33; Scanner sr = new Scann er(System.i n); System.out.pri

13、ntln(”請按行優(yōu)先輸入一個3*3的矩陣:); for(int i=0;i3;i+) for(i nt j=0;j3;j+) aij=sr. nextDouble(); sr.close(); System.out.print(”你輸入的 3*3 的矩陣是:); for(int i=0;i3;i+) System.out.pri ntl n(); for(i nt j=0;j Um Application LHWkti呵科占應贈2腫7年1月3 日 丫松2ft羽) 請輸入十個數(shù)字; 34 54 656 45 343 45 34 343 56 33 你輸入的十個數(shù)字是: 34.0 54,0 65

14、6,0 45.0 343.0 45.0 34.0 343.056.0 33.0 從小到大排序后的序列是: 33.0 34.0 34.0 45.6 45-0 54*0 56.0 343*0 343*0 656.0 I 2. iermirsated a2 (1) (Java App IFc2tFon| public class Complex float RealPart; float Imag in aryRart; public Complex() public Complex(float R,float l) RealPart=R; Imagi naryRart=l; public stat

15、ic Complex add(Complex a,Complex b) Complex c=new ComplexO; c.RealPart=a .R ealPart+b.RealPart; c.lmagin aryRart=a .Imagin aryRart+b .Im agi naryRart; return c; public Complex mi nu s(Complex a,Complex b) Complex c=new Complex(); c.RealPart=a .R ealPart-b.RealPart; c.Im agi naryRart二a .Im agi naryRa

16、rt-b .Im agi naryRart; return c; public Complex multiply(Complex a,Complex b) Complex c=new Complex(); c.RealPart=a.RealPart*b.RealPart-a .Imagin aryRart*b .Im agi naryRart; c.lmagin aryRart=a.RealPart*b .Im agi naryRart+amagin aryRart*b.RealPart; return c; public void prin t() System.out.pri ntln (

17、+this.RealPart+,+this.lmagi naryRart+); public static void main( Stri ng args) Complex a = new Complex(1f,3f); Complex b = new Complex(3f,4f); Complex c = new Complex(); c = add(a,b); c.pri nt(); 2. package shiya n; import java.util.*; class Acco unt private double bala nee; Accou nt() bala nce=5000

18、; public void deposit(double n) bala nee二bala nce+n; System.out.pri ntln (” 存款成功!); public void withdraw(double n) bala nee二bala nce-n; System.out.pri ntln (取款成功!); public void getbala nce() System.out.println(當前賬戶余額為+balanee); public static void main( Stri ng args) Acco unt c二new Acco un t(); c.get

19、bala nce(); System.out.pri ntln(請輸入存款金額:); Scanner sc二new Scann er(System.i n); double i=sc. nextDouble(); c.deposit(i); c.getbala nce(); System.out.pri ntln (請輸入取款金額:); double x=sc. nextDouble(); c.withdraw(x);c.getbala nce(); sc.close(); 3. package mymaths; public in terface Myin terface int max(i

20、 nt a,i nt b,i nt c); int min (i nt a,i nt b,i nt c); class Zzr impleme nts Myin terface public int max(i nt a,i nt b,i nt c) int temp; if(ac) return temp; else retur n c; public int min (i nt a,i nt b,i nt c) int temp; if(ac) return c; else return temp; package mymaths; public class in terfaceTest

21、public static void main( Stri ng args) int x,y; Zzr c=new Zzr(); x = c.mi n(3,5,8); y 二 c.max(6,8,9); System.out.println(最小值為+x+,最大值為+y); 4. package a1; class Base public static Goods All = new Goods2;? public String n ame; public double price; public String producer; public int id, num; public void

22、 showMe() this .num+二num; System.out.pri ntln*” +n ame+ H*“ ); System.out.pri ntln (” 商品名稱:+n ame); System.out.pri ntln (” 商品編號:+id); System.out.pri ntl n(” 商品價格:+price); System.out.println(生產(chǎn)地+producer); System.out.pri ntln (” 數(shù)量+nu m); System.out.pri ntln*” +end+ * * ); public void showNum() Syste

23、m.out.pri ntln(”*showNum*); System.out.println(”商品名稱:+name); System.out.println(”商品 id+id); System.out.println(”數(shù)量:+num); class Goods exte nds Base public void sale(i nt n, double pay) throws Exc if(n this .nu m) throw new Exc(); 亠 System.out.println(”商品名稱+name); System.out.println(”商品價格:+n+*+price+

24、=+n*price); System.out.println(”您繳費+pay); double money = pay-n *price; if(mon ey0) System.out.println(”余額不足,您還需要繳費+(-money); else System.out.println(購買成功); System.out.pri ntln (” 找您+mo ney); this .nu m-=n; public void add(Stri ng n ame,i nt id,double price,Stri ng producer,i nt nu m) this. name = n

25、ame; this.price = price; ducer = producer; this.id = id; System.out.pri ntln (”商品上架成功,以下為該商品的基本信息:); this.showMe(); Allid = this; public class Supermarket exte nds Base public void query(i nt id) AIIid.showMe();/why? public void query(Stri ng n ame) for(Goods g:All) if(g.n ame=二n ame) g.show

26、Me(); public void cheak() for(Goods g:All) g.showNum(); public static void main( Stri ng args) / TODO Auto-ge nerated method stub Goods sofa = new Goods(); sofa.add(sofa, 0, 1000,太原, 20); Goods phone = new Goods(); phone.add(phone, 1, 16,太原理工, 30); try sofa.sale(100,3000); catch(Exc e) System.out.pr

27、i ntl n(e.getMessage(); System.out.println(請稍等,商品正在入庫); Supermarket s = new Supermarket(); s.cheak(); s.query(1); s.query(0); sofa.add(sofa, 0, 1000,太原,1); s.query(ph on e); class Exc exte nds Excepti on Exc() super(商品庫存不足!); 五、實驗結果 1. S Proble-ms 扈 Javadoc 酪 Dedar鼻曲n 8 Como* Complex Java Applicatio

28、n D:jdkbinja (4.07.0) 2. 3 J j*vjbrirlor:nwHlj*rj*,lnirf-k nCuCh nntryM L-r*rrn3riTM-diiriiT J! we 小門尸1十亠會I caV =* 當曲貝奩廣1茨客頁. public class void main( Stri ng args) public staic void mai n( Stri ng args) for(int i=0;i4;i+) int k; try switch(i) case 0: /divided by zero int zero=0; k=911 /zero break; c

29、ase 1:/ null poin ter int b=null; k=b0; break; case 2; /array in dex out of bound int c=new in t2; k=c9; break; case 3: /stri ng in dex out of bound char ch=abc.charAt(99); break; catch(Excepti on e) System.out.pri ntln (nTestcase#+i+n); System.out.pri ntl n( e); 3在實驗三中的超市、商品類中創(chuàng)建一個自定義異常類。 要求:在定義商品類時

30、,若銷售商品數(shù)量大于余額則作為異常處理 (InsufficientFundsException )。 提示: 產(chǎn)生異常條件是某類商品銷售數(shù)量大于庫存額,因此是否拋出異常要先判 斷該條件。 確定產(chǎn)生異常的方法,應該在sale方法中產(chǎn)生異常Insufficient Funds Excepti on。 處理異常安排在調(diào)用sale的時候,因此sale方法要聲明異常,由上級方法 捕獲并處理。 要定義好自己的異常。 三、主要儀器設備 使用的計算機惠普:硬件配置Win7、軟件環(huán)境eclipse 四、實驗代碼 .1.(1)錯誤與異常的區(qū)別: 錯誤:指在程序編譯時如果程序進入死循環(huán),或遞歸無法結束,或內(nèi)存溢出。

31、錯誤只 能在編程階段解決,只能依靠其他程序干預,否則會一直處于非正常狀態(tài)。 異常:指運算時除數(shù)為0,或操作數(shù)超過范圍,或打開一個文件時發(fā)現(xiàn)文件并不存在, 或欲裝入的類文件丟失,或網(wǎng)絡連接中斷等。 (2) java提供了一種利用簡單易行的方法檢查和處理運行時產(chǎn)生的錯誤的異常處理機制, 它是通過面向?qū)ο蟮姆椒▉硖幚懋惓5?。在java程序的執(zhí)行過程中,如果出現(xiàn)了異常 事件,就會生成一個異常對象。生成的異常對象將傳遞給java運行時系統(tǒng),這一異常 的產(chǎn)生和提交過程成為拋棄異常。當java運行時系統(tǒng)得到一個異常對象時,它將會沿 著方法的調(diào)用棧逐層回溯,尋找處理這一異常的代碼。找到能夠處理這類異常的方法

32、后,運行時系統(tǒng)把當前異常對象交給這個方法進行處理,這一過程稱為捕獲異常。 (3) 根據(jù)程序?qū)﹀e誤與異常的處理方式,可以將java中的異常分為Error類, RuntimeException類和Exception類。其中Error類包括的是一些嚴重的程序不能處理 的系統(tǒng)錯誤類,如內(nèi)存溢出,虛擬機錯誤,棧溢出等。這類錯誤一般主要與硬件有關, 與程序本身無關,通常由系統(tǒng)進行處理,程序本身無需去捕獲和處理。程序運行過程 中,可能出現(xiàn) RuntimeException類的異常數(shù)量相當大,對于運行時的異常類,如數(shù)組 越界,算術異常等,應通過程序盡量避免而不是去捕獲它。 (4) 為了避免程序運行時可能出現(xiàn)的

33、錯誤,將程序代碼放在try程序塊中,緊跟在try語句 后面包括一個catch語句,用來指定需要捕獲的異常類型。 在程序中發(fā)生異常時,程序員可以拋出(throw) 個自定義異常類的實例,將其放到異 常隊列中去,并激活java的異常處理機制。 當拋出一個異常時,程序的執(zhí)行就不再是線性的,這樣就有可能導致方法的執(zhí)行中斷。 在java語言中,使用fin ally語句來解決此類問題。Fin ally語句創(chuàng)建一個代碼塊,在 try/catch語句執(zhí)行后執(zhí)行,不管是否拋出一個異常,系統(tǒng)都將執(zhí)行fin ally語句的程序 代碼。 3. package shiyan; public class a1 publi

34、c static void main( Stri ng args) try Shop sh = new Shop(100); sh.sale(200); System.out.println(”銷售成功!); catch (In sufficie ntFun dsExcepti on e) System.out.pri ntln( e.toStri ng(); class Shop int num; Shop(i nt num) this .num = num; public void deposite(i nt dAm ount) num += dAm ount; public void s

35、ale(i nt dAm ount) throws In sufficie ntFun dsExcepti on if (num MIm Application哪融恤刪間呻,押翊創(chuàng)恫 sh恤 InsufficiEntFundsExc即tion;鯛籠取 1 才于棘則 六、討論、心得 通過本次實驗,熟悉掌握了 Java的異常機制,trycatch()finallyf的執(zhí)行 過程。通過new個數(shù)組,從而通過數(shù)組的下標取出內(nèi)容,當下標不合法時就會 出現(xiàn)數(shù)組下標越界異常。通過catch捕獲異常,并對異常作出處理。再通過將一 個字符串的大寫字母轉換成小寫字母,練習Stri ng的常用方法。同時了解了字 符

36、串的使用。 這僅僅是簡單異常的處理,必須更進一步對異常熟悉。還有對字符串的其他方法 進行練習并熟悉掌握。還需要在課下多多練習,熟悉它們。 實驗五多線程編程 一、實驗目的和要求 (1)現(xiàn)成的概念、線程的生命周期。 多線程的編程:擴展Thread類與使用Runnable接口 (3) 使用多線程機制實現(xiàn)動畫 二、實驗內(nèi)容 1. 運行下面的程序,理解用創(chuàng)建 Thread子類的方法實現(xiàn)多線程。 /S09_01_Thread.Java Import java.util.*; class S09_01_Thread exte nds Thread int pauseTime; Stri ng n ame;

37、public S09_01_Thread(i nt x,Stri ng n) pauseTime=x; n ame=n; public void run() while(true) try system.out.pri ntl n(n ame+:+new Date(System.curre ntTimeMillis(); Tread.sleep(pauseTime); catch(Exception e)System.out.println(e); static public void main( Stri ng srgs) S09_01_Thread tp 仁new S09_01_Threa

38、d(1000,Fast); tp1.start(); S09_01_Thread tp2=new S09_01_Thread(3000,Slow); tp2.start(); 2. 運行下面的程序,理解用實現(xiàn) Runn able接口的方法實現(xiàn)多線程。 /S09_02_Thread.Java Import java.util.*; class S09_02_Thread impleme nts Runn able int pauseTime; Stri ng n ame; public S09_02_Thread(i nt x,Stri ng n) pauseTime=x; n ame 二n;

39、public void run() while(true) try system.out.pri ntl n(n ame+:+new Date(System.curre ntTimeMillis(); Tread.sleep(pauseTime); catch(Exception e)System.out.println(e); static public void main( Stri ng srgs) Thread t1= new Thread( new S09_02_Thread(1000,Fast); t1.start(); Thread t2=n ew Thread( new S09

40、_02_Thread(3000,Slow); t2.start(); 3.創(chuàng)建簡單的程序ThreeThread.java該程序?qū)?chuàng)建三個線程,每個線程應當顯示 它所運行的時間(可以考慮使用 Date類或Calendar類)。 三、主要儀器設備 使用的計算機惠普:硬件配置Win7、軟件環(huán)境eclipse 四、實驗代碼 3. package mymaths; import java.sql.Date; public class Xianchengextends Thread public static Xian che ng t1 .start(); Xian che ng t2 .start()

41、; Xian che ng args ) void main( Stri ng t1 =new Xian che ng(); t2 =new Xian che ng(); t3 =new Xian che ng(); t3 .start(); II II +new public void run() System. out .println( + this .getName()+ Date(System. curre ntTimeMillis (); 五、實驗結果 1. Vi c-1 m-?r fij J h i v u A Eu lla u Li c? r r O:j tJ iXi fc-J

42、 v tJ w.-u. .i r C-O 1 7i8!- 1 Z3 13l|- * I -4=3: 1 七w七七七vv-tz-t七七 sosssossss mnlmmml.m 曰曰 m RSFFFSFFFF hmm ZJ m n o w LL ;TriLJ a o 05 XG F a St : :Thu an 05 F日呂七: :T h li ZJ m c OS 3 _ o w : :Thu 3 a n OS IS F a s tz : :Th li ZJ曰n OS n_石 F a s t : :Th M ZJ曰m 05 XL曰 F a; :TKilj a o OS S1 o w : :Thu

43、 an 05 HE F日0七: :T h ci ZJ m c OS F a s tz : :THu 二 m n OS IS V” uHm口 ILJ-a-vs A p pl i o-ati-onJ O;j d kzb-i n j avaw.ocu NNNNfNNNNNNNNN uuuuuuuuuuuuu glD7COHNNrM rllrllrlrlrlNtNNNNN ZTTTTTTI-TTT 蕓 unuuuu IDKorlN3fM ”H44C N 曰_ 7 NOO.7 N 7 N 7 之 NOH 7 NO1L7 2 7 n o n_ 7 N0:L7 NOLL 7 N0J.7 201 NQ2L7

44、之:17 NO:_7 N O _ 7 N0XL 7 N03.7 NQ2L7 之017 Non 7 3. 左 L.onsoie g Xiancheng Java Application D:jdkbin Thread-0 2017-01-05 Thread-1 2017-01-05 Thread-2 2017-01-05 六、討論、心得 線程是提高cpu運行效率的方法,內(nèi)容很重要,需要認真學習和 理解。 實驗六圖形用戶界面編程 一、實驗目的和要求 掌握文本組件、按鈕和單、復選按鈕組件的使用;掌握列表的使用,鼠標、鍵盤 事件的處理;掌握布局控制的方法。 二、實驗內(nèi)容 1. 編寫一個程序響應鼠標事件

45、,當鼠標事件發(fā)生時,在狀態(tài)條顯示相應的時間信 息。提示:使用showStatus(字符串)方法。 2. 試設計一窗口,內(nèi)含一個按鈕。開始運行時,按鈕顯示“Click Me字樣,當 按鈕按下時,按鈕顯示為“Click MeAgain”字樣,再按一次,則按鈕顯示“Click MG字樣,依次循環(huán)。 三、主要儀器設備 使用的計算機惠普:硬件配置 Win7、軟件環(huán)境eclipse 四、實驗代碼 1. package mymaths; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.*; public class Click public static void main(String| args) JFrame frm=new JFrame(); frm.setLayout(null); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); J

溫馨提示

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

評論

0/150

提交評論