太原理工大學(xué)軟件java實驗報告_第1頁
太原理工大學(xué)軟件java實驗報告_第2頁
太原理工大學(xué)軟件java實驗報告_第3頁
太原理工大學(xué)軟件java實驗報告_第4頁
太原理工大學(xué)軟件java實驗報告_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ANUNIVERSITYOPTECHNOLOGY本科實驗報告課程名稱:Java課程名稱:Java語言程序設(shè)計實驗項目:Java實驗項目:Java實驗實驗地點:致遠樓實驗地點:致遠樓401專業(yè)班級:軟件專業(yè)班級:軟件1學(xué)號:20110學(xué)生姓名:指導(dǎo)教師:2013年11月實驗1Java語言基礎(chǔ)實驗?zāi)康?1)通過實驗,掌握Java語言程序設(shè)計的基本方法。學(xué)會Java語言中標(biāo)示符的命名、運算符和表達式的應(yīng)用。熟練地掌握Java程序流程控制語句的應(yīng)用。2.實驗內(nèi)容(1)編寫應(yīng)用程序,計算100(含100)(1)通過實驗,掌握Java語言程序設(shè)計的基本方法。學(xué)會Java語言中標(biāo)示符的命名、運算符和表達式的應(yīng)用。熟練地掌握Java程序流程控制語句的應(yīng)用。2.實驗內(nèi)容(1)編寫應(yīng)用程序,計算100(含100)以內(nèi)所有偶數(shù)的和。Packagecom.zhangqian.exercise1;public classSumEvenNumber{publicintintstaticvoidmain(String[]args){sum=0;n=100;for(inti=0;i<=n;i++){if(i%2==0){sum+=i;}}System.out.println( "1--100內(nèi)偶數(shù)和為:"+sum);}}_Problem?_?Javsdoc_曉*(2) “水仙花數(shù)”是指一個3位數(shù),其個位、十位、百位上的數(shù)字的立方和等于該數(shù)本身,例如371=33+73+13,因此371是一個水仙花數(shù)。編寫程序,求所有的水仙花數(shù)。Packagecom.zhangqian.exercise1;Public classFlower{public staticvoidmain(String[]args){}}}//int//intTODOAuto-generatedmethodstubn=1000;intm;for(inti=100;i<n;i++){m=(i/100)*(i/100)*(i/100)+((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%100%10)*(i%100%10)*(i%100%10);if(m==i){System.out.println(“水仙花數(shù)為:"+i);}}}}Problems趣Javadc畔turmiriiatudRFlower[玄秋碇":琬⑶編寫一個程序,求1-100間的素數(shù)。Packagecom.zhangqian.exercise1;public classSushu{publicintstaticvoidmain(String[]args){n=100;for(int

if(i=2;i<=n;i++){ss(i)){System.out.println("素數(shù)為"+i);booleanss(intn){true;for(inti=2;i<=n/2;i++){publicbooleanresult=staticif(n%i==0){result=falsebreak;}}returnresult;1^2,ProbiF-nnc J;wtTEinjfdwSue*pej*r2SfS涼ME丙13if*:養(yǎng)rlP錄scrrJi*c:rs-37崙jfr檸4耳i亞丁747Mft為53殺St士S&icrs-ei玉jp倉72曲Jfr旳73Sft士歿3*?為97⑷有一函數(shù):(x<1)Y=3x-2(1Y=3x-2(1<x<10)4x(x4x(x>10)寫一程序,給定X寫一程序,給定X值,輸出y值。packagecom.zhangqian.exercise1;importjava.io.*;public class Hanshu{publicstaticvoidmain(String[]args)throwsIOException{publicstaticvoidmain(String[]args)throwsIOException{//TODOAuto-generatedmethodstubdoublex=0.0;doubley=0.0;System.out.println("請輸入x:");BufferedReaderbr=doublex=0.0;doubley=0.0;System.out.println("請輸入x:");BufferedReaderbr=newBufferedReader(newin));InputStreamReader(System.in));x=Double.parseDouble(br.readLine());if(x<1)y=x;elseif(x>=1&&x<10)y=3*x-2;elseif(x>=10)y=4*x;System.out.println("y="+y);}}rmInatEd^Hansly=10j0|(5)使用for循環(huán)語句,編寫程序輸出以下圖案?!睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢睢頿ackagecom.zhangqian.exerciserpublic classStar{public//forstaticvoidmain(String[]args){TODOAuto-generatedmethodstub(inti=1;i<=4;i++){(intk=0;k<=4-i;k++){

System.out.print("");for}for(intj=1;j<=2*i-1;j++){System.out.print("☆");}System.out.println();}for(inti=3;i>0;i--){for(intk=0;k<=4-i;k++){System.out.print("");}for(intj=1;j<=2*i-1;j++){System.out.print("☆");System.out.println();}飛"丄Probilemi袒JsvatliwtEimninated:*Etar[J可(6)編寫程序,輸出從公元1900年到2100年所有閏年的年號,每輸出5個年號換一行。判斷年是否為閏年的條件是:①若年號可以被4整除,而不能被100整除,則是閏年;②若年號可以被400整除,也是閏年。Packagecom.zhangqian.exercise1;public classYear{public//public//TODOAuto-generatedmethodstubintn=2100;intk=0;for(Iongy=1900;y<n;y++){if((y%4==0&&y%100!=0)||y%400==0){"是閏年“+""intn=2100;intk=0;for(Iongy=1900;y<n;y++){if((y%4==0&&y%100!=0)||y%400==0){"是閏年“+"");System.out.pnnt(y+k+=1;if(k%5==0)System.out.println("");屮Problems?Javadoc直Declaraticrn貝CcnsoleE3w憶riYiimated、[JavaApplicatiam]CAPrcgrainFil?\Java*1S20^^^ig£0建氓ig初建連亞M06是g至2的0是魚生36405^^2曲陰基匡皐Mse^s華15曲毛言迄1舲4老瓦迄1兇』是J運19E4是呈?1984是醫(yī)工2024^^^2044^^^29曲盂汪290傀盧ai90-S^r^32昭辰迄194^&是童k2&&&^=楚2025怎M韋2與S屋壬年296S5<£ZOBS^X^19X2^^^1旳2品壬運1972<JiE四92卷醫(yī)主Ml壊寶車2涉32j^至早曲52連反年2&72^Sie2&92菱詈華ITU它辰早1陽彊匡*雞?石建國虹199E曇KM3036$辰早205歷屋反t2&2096-5^4.3.實驗預(yù)習(xí)復(fù)習(xí)本章所學(xué)內(nèi)容。寫出實驗內(nèi)容中第(2)、(3)題兩個程序的源代碼,作為預(yù)習(xí)報告。4.實驗結(jié)論實驗過程中,注意記錄以下內(nèi)容:(1)遇到的問題及解決辦法。在編寫星星程序時,不會它的算法,通過百度,然后自己試運行,得出了最后的結(jié)果。另外,在程序中遇到問題,積極的問了同學(xué),解決了我的問題。實驗體會。我覺得在編寫程序時,要細心并且要有耐心,認真的寫每一個程序,就一定會有收獲。實驗2數(shù)組和字符串編程實驗?zāi)康耐ㄟ^實驗,掌握Java語言中數(shù)組、字符串程序設(shè)計的基本方法。較熟練地掌握Java程序數(shù)組的應(yīng)用、字符串處理操作的方法應(yīng)用。實驗內(nèi)容(1)編寫一個程序,在控制臺輸入10個數(shù),按大小順序輸出。packagecom.zhangqian.exercise1;importjava.io.*;publicclassOrder{throwsIOException{publicstaticvoidmain(String[]args)//throwsIOException{System.out.println( "請輸入10個數(shù)");doublenum[]=newdouble[10];BufferedReaderbr= newBufferedReader(newin));InputStreamReader(System.Stringstr;for(inti=0;i<10;i++){str=br.readLine();num[i]=Double.parseDouble(str);}for(intj=1;j<10;j++){for//冒泡排序(inti=0;i<10-j;i++)if(num[i]>num[i+1]){t=num[i];num[i]=num[i+1];num[i+1]=t;}}System.(intk=0;k<10;k++){out.println(“順序為:");forSystem.out.print(num[k]+ ");}}噩.Problems<terminatgdAOrder[」予蕾入10亠氐?4Javadoc冏Declaration§C&nsok器曲曰Applietion]t:\PrQgrainFiles\Java\Jdkl,7.&_2lVbrn\jav£356F5Jt2.0 4& 7.0 23一0 32.0 S3.0 55.dSS.ftSS.055氛0(2)求一個3*3矩陣對角元素之和。Packagecom.zhangqian.exercisel;importjava.io.*;;public classJuzhen{public staticvoidmain(String[]args)//TODOAuto-generatedmethodstubinta[][]=newint[3][3];System.out.println(BufferedReaderbr=throwslOException{"請輸入3*3矩陣:");newBufferedReader(in));newInputStreamReader(System.Stringstr;for(inti=0;i<3;i++)for(intj=0;jv3;j++){str=br.readLine();a[i][j]=Integer. parseInt (str);}ints=a[0][0]+a[1][1]+a[2][2];System.out.println( "矩陣對角元素之和為:"+s);■^terminaited>Juzhen[Java3

斗5仁(3)輸入一段字符串,統(tǒng)計其中有多少個單詞。(單詞用空格隔開)Packagecom.zhangqian.exercise1;importjava.io.*;public classDanci{public staticvoidmain(String[]args)//TODOAuto-generatedmethodstubSystem.out.println( "請輸入字符串:");Stringstr;BufferedReaderbr=throwsIOException{newBufferedReader(newInputStreamReader(System.in));str=br.readLine();while(str!= null){"“);"“);"單詞個數(shù)為:"+a.length);}}I—02Probknns?JavadotDec!?ratioterminatedDanci[JavaApplication]■,]2nZTttT丄亡左:卻實驗預(yù)習(xí)(1)將本章所學(xué)內(nèi)容要點進行整理,并認真體會例題中的編程要領(lǐng)。⑵寫出實驗內(nèi)容中第⑵、(3)題兩個程序的源代碼,作為預(yù)習(xí)報告。實驗結(jié)論實驗過程中,注意記錄以下內(nèi)容:(1)遇到的問題及解決辦法。在編寫排序算法時,采用了冒泡排序,對于冒泡排序,產(chǎn)生了一些錯誤,通過查閱書籍進行改正,最后得到了正確結(jié)果。(2)實驗體會在編寫程序時要認真細心,并且要認真了解它的過程,明白它的算法。實驗3Java面向?qū)ο蟪绦蛟O(shè)計實驗?zāi)康恼莆認ava面向?qū)ο蟪绦蛟O(shè)計中類、繼承、包和接口的概念與應(yīng)用,能熟練應(yīng)用方法、類、成員變量等元素。

實驗內(nèi)容⑴創(chuàng)建一個復(fù)數(shù)類complex,以附屬進行數(shù)學(xué)運算、復(fù)數(shù)具有如下格式:RealPart+ImaginaryRart*I,其中,I為-1的平方根。要求如下:利用浮點變量表示此類的私有數(shù)據(jù)。提供兩個構(gòu)造方法,一個用于此類聲明的對象的初始化;一個為默認的無參構(gòu)造方法。提供兩復(fù)數(shù)加、減、乘的運算方法。按格式(a,b)打印復(fù)數(shù)。其中a為實部,b為虛部。publicprivateprivateclassComplex{doubledoublea;

b;publicpublicprivateprivateclassComplex{doubledoublea;

b;publicvoidmain(String[]args){//TODOAuto-generatedmethodstubComplexx=Complexy=Complexc=x.Add(x,y);x.Multiply(x,y);x.Subtraction(x,y);c.Add(c,y);staticnewComplex(2,3);newComplex(1,4);newComplex();}Complex(){a=0.0;b=0.0;}doublea,doubleb){.a=a;doublea,doubleb){.a=a;this.b=b;}publicvoidAdd(Complexx,Complexy){doubledoublea=x.a+y.a;b=x.b+y.b;out.println("相加為:("+a+","+b+")");System.}publicvoidSubtraction(Complexx,Complexy){doublea=x.a-y.a;doubleb=x.a-y.b;System.out.println("相減為:("+a+","+b+")");}publicvoidMultiply(Complexx,Complexy){doubledoubleSystem.a=x.a*y.a-x.b*y.b;b=x.a*y.b+x.b*y.a;out.println("相乘為:("+a+","+b+")");}}(2)創(chuàng)建銀行賬號Account類,實現(xiàn)存款(balanee)的存(deposit)、取(withdraw)和查詢(getbalance)等功能。importjava.io.*;publicclassAccount{doublefund=1000;publicstaticvoidmain(String[]args)throwsIOException{TODOAuto-generatedmethodstubAccounta=newAccount();System.out.println(BufferedReaderbr=//InputStreamReader(Sn=Integer.if(n==1)a.deposit();if(n==2)

a.withdraw();if(n==3)

a.getbalance();"存款選擇1取款選擇newBufferedReader(in));parseInt(br.readLine());查詢選擇3");newelseelseelseSystem.out.println( "輸出不正確!");}publicAccount(){System.}out.println("請選擇服務(wù):");deposit()

out.println(publicvoidSystem.BufferedReaderbr=InputStreamReader(System.doubles=Double.throwsIOException{"請輸入存款金額:");newBufferedReader(in));newSystem.out.println(parseDouble(br.readLine());"存款成功" +"余額為:"+(s+fund));}public voidwithdraw()System.out.println(BufferedReaderbr=InputStreamReader(System.doubles=Double.

throwsIOException{"請輸入取款金額:");newBufferedReader(newin));parseDouble(br.readLine());if(s>1000)"余額不足"余額不足,余額為:"+fund);elseSystem.out.println("取款成功.11+"余額為:"+(fund-s));余額為余額為:"+fund);}public voidSystem.}}苜]Prcblems辺

getbalance(){out.println( "Javadoc曉,Decfa吐亡廣minat悸JAActonntPaYaApph壬:iS實務(wù):5交更1或r土抵2訐記藝編程定義一個接口,實現(xiàn)三個數(shù)中求最小值和最大值的方法,并將程序存放在mymaths包中。Packagemymaths;public classJiekou{public staticvoidmain(String[]args){//TODOAuto-generatedmethodstubMAXma=newMAX(1,8,10);ma.max();ma.minO;}}interfacepublicpublic}}interfacepublicpublic}classMAXTsort{voidmax();voidmin();〕implements Tsort{a,b,c;publicMAX(inta,intb,intc){this.a=a;intthis.b=b;this.c=c;}publicintvoidmax(){}publicintvoidmax(){max=0;max=a>b?a:b;max=max>c?max:c;System.out.println( "MAX="+max);}public voidmin(){intmin=0;min=a<b?a:b;min=min< c?min:c;System.out.println("MIN="+min);}粗Problems@Jsvsdc百Urnoin日ted?*丿iekouLMm丄(4)編程實現(xiàn)以下簡單超市管理,具體要求如下:實現(xiàn)描述超市的類SuperMacket類,具有貨架屬性,記錄系統(tǒng)中現(xiàn)有商品,定義盤點商品的函數(shù)check(盤點各類商品的數(shù)量,并輸出盤點結(jié)果),查詢商品的函數(shù)query,并顯示查詢結(jié)果;Packagesssu;importjava.util.ArrayList;importjava.util.List;/**、實現(xiàn)描述超市的的類Suppermacket類,記錄系統(tǒng)中現(xiàn)有商品(Goods類),定義增加商品的函數(shù)Append,刪除商品的函數(shù)Delete,查詢商品的函數(shù)Query,并顯示查詢結(jié)果;*/public classSuperMarket{

newArrayListvGoods>0;private List<Goods>goodsListnewArrayListvGoods>0;/**增加商品的@paramgoods@return*/publicStringappend(Goodsgoods){goodsList.add(goods);return "添加成功";}/*** 刪除商品*/publicStringdelete(Stringname){Stringflag= null(name== null"刪除商品["ifflag=}else){+name+"]不存在";{for(inti=0;i<goodsList.size();i++){Goodsgoods=goodsList.get(i);if(goods.getName().equals(name)){goodsList.remove(i);flag= "刪除商品["+name+"]成功";break;}}}returnflag;|}/**銷售@paramgoods@return*/public Stringsale(Goodsgoods){"銷售商品"銷售商品["+goods.getName()+"]失敗";if(goods!=null){goodsList.size();i++)for(inti=0;i<{goodsList.size();i++)Goodsgoods_2= goodsList.get(i);if(goods_2.getName().equals(goods.getName())){if(goods.getNumber()>goods_2.getNumber()){flag+=}else"原因:庫存不足";if((goods_2.getPrice()*goods.getNumber())>goods.getPrice()){flag+=}else"原因:余額不足";{goods_2.setNumber(goods_2.getNumber()-goods.getNumber());flag="銷售商品["+goods.getName()+"]成功";}break;}}}returnflag;}/***查詢商品@return*/public{returnList<Goods>getGoodsList()goodsListvoidsetGoodsList(List<Goods>goodsList)public{this.goodsList=goodsList;}定義商品類Goods具有商品名稱Name商品價格Price,商品產(chǎn)地Producer等屬性,操作Sale(銷售商品,余額不足時給予提示)、Add(商品上架操作)和ShowM(e顯示商品信息)。packagesssu;/**具有商品名稱Name,商品價格Price,商品數(shù)量number等屬性,操作Sale(銷售商品,余額不足時給予提示)、Add(商品上架操作)*和ShowMe(顯示商品信息)。*/public{public{classGoodsprivateprivateprivateprivateStringname;floatprice;intnumber;StringProducer;publicStringgetName()returnname;publicvoidsetName(Stringname)=name;publicfloatgetPrice()returnprice;publicvoidsetPrice(floatprice)this.price=price;publicintgetNumber()returnnumber;publicvoidsetNumber(intnumber)this.number=number;{}{}{}{}{}{

}public{thisvoidProducer(Stnngi).Producer=i;}

public//StringProducer(){'TODOAuto-generatedmethodstubreturn Producer;main函數(shù),測試以上所要求的各種功能,即可以根據(jù)菜單命令增加、刪除、查詢商品、盤點商品,以及商品銷售和商品上架的操作提示:}public{thisvoidProducer(Stnngi).Producer=i;}

public//StringProducer(){'TODOAuto-generatedmethodstubreturn Producer;main函數(shù),測試以上所要求的各種功能,即可以根據(jù)菜單命令增加、刪除、查詢商品、盤點商品,以及商品銷售和商品上架的操作提示:①超市貨架可以使用商品數(shù)組,數(shù)組大小100表明存放100個商品。②注意實現(xiàn)商品查詢的多態(tài)性,要求可以根據(jù)商品的名稱或產(chǎn)地或價格查詢商品的數(shù)量。Packagesssu;importimportimport/**java.io.BufferedReader;java.io.lOException;java.io.InputStreamReader;*1品的函數(shù)Append,*刪除商品的函數(shù)Delete2、定義商品類Goods,實現(xiàn)描述超市的的類Suppermacket類,記錄系統(tǒng)中現(xiàn)有商品(Goods類),定義增加商,查詢商品的函數(shù)Query,并顯示查詢結(jié)果;具有商品名稱Name,商品價格Price,商品數(shù)量number等屬性,操Add(商品上架操作)和ShowMe(顯示商品信息)。作Sale(銷售商品,余額不足時給予提示)、3、編寫包含main方法的測試類,測試以上所要求的各種功能,即可以根據(jù)菜單命令增加、刪除和查詢商品,以及商品銷售和商品上架的操作。*/public classTest{main(String[]args)newSuperMarket();("unused")main(String[]args)newSuperMarket();("unused")"商品名稱“,“商品價格","商品數(shù)量"};{SuperMarketmarket=@SuppressWarningsString[]label={inttype=-1;doSystem.out.println(IISystem.out.println("請選擇操作類型");System.out.println("1添加商品");System.out.println("2刪除商品");System.out.println("3查詢商品“);{");System.out.println(System.out.println(System.out.println(inti=0;do{try"4銷售商品");"0退出系統(tǒng)");H ");{type=Integer.i=0;}catch(Exceptione){i=1;System.err.println( "輸入有誤");}}while(i!=0);parseInt(readString());switch(type){case1:Goodsgoods= newGoods();System.out.println("請輸入商品名稱");goods.setName( readString());do{try{System.out.println(goods.setPrice(Integer.i=0;"請輸入商品價格");parseInt(readString()));}catch(Exceptione){i=1;System.}}whileSystem.}}whileerr.println("輸入有誤");(i!=0);dotry{"請輸入商品數(shù)量");"請輸入商品數(shù)量");parseInt(readString()));}(Exceptione)catch(Exceptione){i=1;System.}}err.println("輸入有誤");while(i!=0);dotry{System.goods.Producer(i=0;}catchout.println("請輸入商品產(chǎn)地");readString());(Exceptione){i=1;System.}}whileSystem.err.println("輸入有誤");(i!=0);out.println(market.append(goods));break;case2:System.Stringname=System.break;case3:out.println("請輸入要刪除商品的名稱");readString();out.println(market.delete(name));System.out.println("商品名稱\t商品價格\t商品數(shù)量");for(intj=0;j<market.getGoodsList().size();j++){Goodsg=market.getGoodsList().get(j);System.out.println(g.getName()++g.getNumber());}break;"\t"+g.getPrice()+"\t"case4:Goodsgoods_sals=Goodsgoods_sals=System.out.println(goods_sals.setName(newGoods();"請輸入銷售商品名稱");readString());dodo{try{System.out.println(goods_sals.setPrice(Integer.i=0;{try{System.out.println(goods_sals.setPrice(Integer.i=0;}catch"請輸入銷售商品價格parseInt");(readString()));(Exceptione){i=1;System.{i=1;System.}}err.println("輸入有誤");while(i!=0);dotry{System.goods_sals.setNumber(Integer.i=0;}catchwhile(i!=0);dotry{System.goods_sals.setNumber(Integer.i=0;}catchout.println("請輸入銷售商品數(shù)量parseInt");(readString()));(Exceptione){i=1;System.}}whileerr.println(System.}}whileSystem.break;System.break;defaultout.println(market.sale(goods_sals));System.out.println("退出");break;}}while(type!=0);

/**@paramprompt@return*/privatestaticStringreadStringO{BufferedReaderbr=InputStreamReader(System.privatestaticStringreadStringO{BufferedReaderbr=InputStreamReader(System.Stringstr= nulltry{str=br.readLine();}catch(lOExceptione){e.printStackTraceO;}returnstr;newBufferedReader(newin));1喬t:唱云1遠扛罰辰2三Efpi2亍爭貢in3琶記P)云4rera*4*善住玄& 空1一請醸;kirssT洼玳;■、吃品若時y<再*A同a忖s灣lip,專ft誹雷2愛*A匸誘氐*.7T1希二立=i5=2S社flSn靑e*ft0決出想**1呂階*eg2*0503.01凹瑪■IS麼叱賓i1竝*胡臭2靈銀勺<3蘭孟電N4e運比烹敦

錯iff*比賓古希MhSm銀世見3査哎上晶4芒哲丸喬e:爲(wèi)蔗網(wǎng)基£*=莊品陸朮是盂i3.a10?1s蘭它aM**益6圭二宗鐵實驗預(yù)習(xí)要求復(fù)習(xí)本章所學(xué)內(nèi)容,思考以下問題:什么是對象?什么是類?面向?qū)ο缶幊痰奶匦杂心娜齻€?它們各自有哪些特性?Java語言在面向?qū)ο缶幊谭矫嬗心男┆毺氐奶攸c?抽象類與接口有何異同?實驗結(jié)論(1)遇到的問題及解決辦法。在實驗中超市類和接口編寫遇到了問題,通過上網(wǎng)查閱和詢問同學(xué)最后得到了結(jié)果。(2)實驗體會。在編寫程序時要有耐心去認真改正錯誤,并且進行不斷的完善。

實驗4Java異常處理實驗?zāi)康恼莆债惓5母拍?,以及如何定義、拋出和捕獲處理異常。實驗內(nèi)容(1)做實驗之前要求思考以下問題,作為預(yù)習(xí)內(nèi)容;(1)做實驗之前要求思考以下問題,作為預(yù)習(xí)內(nèi)容;錯誤和異常有何區(qū)別?查看Java異常類的關(guān)系圖。異常是如何拋出、捕獲和處理的?Java捕獲和處理異常的結(jié)構(gòu)式怎樣的?Try語句如何嵌套?Trow語句有何作用?Finally程序快的作用是什么?(2)運行下面的程序,理解異常的拋出、捕獲與處理。(2)運行下面的程序,理解異常的拋出、捕獲與處理。Importjava.io.*;publicclassvoidmain(Stringargs[]){publicstaicvoidmain(Stringargs[]){for(inti=0;i<4;i++){intk;try{switch(i){case0://dividedbyzerointzero=0;k=911//zerobreak;case1://nullpointerintb[]=null;k=b[0];break;case2;//arrayindexoutofboundintc[]=newint[2];k=c[9];break;case3://stringindexoutofboundcharch="abc".charAt(99);break;}catch(Exceptione){System.out.println("\nTestcase#"+i+"\n");System.out.println(e);}噩Probfems@Javadoc囲>Dedaration回Console卻<teminated>T&slException(1][JavaApplication]C\ProgramFiles\Java\jdkl,7H{)_21\bin\iavaiTestcase#!申-lanR"NullP&irrterEKception13M3.lana.Arraylndg曲utOfBoundsExc電ptioii:5Test(zase4fHj彳燈0*larig?5tririjtLiiclexQLrtOfBQyridsEx£eption;Stringindexoutofrange:99(3)在實驗三中的超市、商品類中創(chuàng)建一個自定義異常類。要求:在定義商品類時,若銷售商品數(shù)量大于余額則作為異常處理)。(InsufficientFundsException)。提示:①產(chǎn)生異常條件是某類商品銷售數(shù)量大于庫存額,因此是否拋出異常要先判斷該條件。②確定產(chǎn)生異常的方法,應(yīng)該在sale方法中產(chǎn)生異常InsufficientFundsException。處理異常安排在調(diào)用sale的時候,因此sale方法要聲明異常,由上級方法捕獲并處理。要定義好自己的異常。程序同實驗3。實驗5多線程編程實驗?zāi)康?1)現(xiàn)成的概念、線程的生命周期。(2)多線程的編程:擴展Thread類與使用Runnable接口。使用多線程機制實現(xiàn)動畫實驗內(nèi)容(1)運行下面的程序,理解用創(chuàng)建Thread子類的方法實現(xiàn)多線程。//S09_01_Thread.JavaImportjava.util.*;classS09_01_ThreadextendsThread{intpauseTime;Stringname;publicS09_01_Thread(intx,Stringn){pauseTime=x;name=n;publicvoidrun(){while(true){try{system.out.println(name+":"+newDate(System.currentTimeMillis()));Tread.sleep(pauseTime);}catch(Exceptione){System.out.println(e);}staticpublicvoidmain(Stringsrgs[]){S09_01_Threadtp仁newS09_01_Thread(1000,"Fast");tp1.start();S09_01_Threadtp2=newS09_01_Thread(3000,"Slow");tp2.start();兀Prohlems?Jsvaidoc鮭Decbrstion貝wterminatedATewtDuowancheng(Java/Fast:ThuDec0522:53:31CST2613Slow:ThuDec0弓22:59:31CST2?13Fast:ThuOec05.22:59:32CST2013Fast:ThuDec&5匚ST2613Fast:ThuDec0522:59:34CST261351<?w;ThiiOec05£?:53;34CSrFast:ThuDec05CSTFast:Thu葉w05£2;5&r36CST2如Fast:ThuOec0522:59r37CST201351-ow:ThuOec&5CST^613Fast:ThuDec05CST2613⑵運行下面的程序,理解用實現(xiàn)Runnable接口的方法實現(xiàn)多線程。//S09_02_Thread.JavaImportjava.util*;classS09_02_ThreadimplementsRunnable{intpauseTime;Stringname;publicS09_02_Thread(intx,Stringn){pauseTime=x;name=n;publicvoidrun(){while(true){try{system.out.println(name+":"+newDate(System.currentTimeMillis()));Tread.sleep(pauseTime);}catch(Exceptione){System.out.println(e);}staticpublicvoidmain(Stringsrgs[]){Threadt1=newThread(newS09_02_Thread(1000,"Fast"));t1.start();Threadt2=newThread(newS09_02_Thread(3000,"Slow"));t2.start();FastThuDec0522:SS:22esr2略13Sl<?wThuDec0522:5S;22csr2613|FastThuDec9522:58123CST2613FastThuDm0522fSS124CST2613Sl-owThuOec鮎,23:58l25CST2613FastThuDec0523:58:35csr2613FastThuDec0522:50:26csr2613FastThuDec0522:5S:27csr2613FastThuDec0522:5S;2ecsr261351OHThuDue藥CSTm2FastThu[>?c0522:SSr29CST2C13FastThu&5^3:53:3?CST萌13SlowThuQ523:S3r31CST2613FastThuDec0522:58:31csr2613FastThuDec05csr2613FastThuDecQ,522:5S133匚ST2613SlowThuDec0522:58:34匚5T2613囂ProbleiTiI(?Javada您Dechratien目Cor<terminated>TestRunnable[lavaApplicabon]((1)創(chuàng)建簡單的程序ThreeThread.java,該程序?qū)?chuàng)建三個線程,每個線程應(yīng)當(dāng)顯示它所運行的時間(可以考慮使用Date類或Calendar類)。importjava.util.Date;public classThreeThread extendsThread{public staticvoidmain(String[]args){//TODOAuto-generatedmethodstubThreeThreadt1=newThreeThreadO;t1.start();ThreeThreadt2=newThreeThreadO;t2.start();ThreeThreadt3=newThreeThread();t3.start();}publicvoidrun(){System.out.println(+newDate(System."當(dāng)前運行的線程“+this.getNameO+ ""currentTimeMillis()));Q2ProblemsJavadoc匡Declaration0Console芨uteimina'tednThreelbread[JavaApplicationlC:\PrcgramFile^VJavaX豈畫耳耳?>燒虧Thread弋ThuDec6522:57:23匚&T2^13當(dāng)檔i呼野城亙ThuDec6522:57:28匚ST2^13Thread-2ThuDec6522:57:23匚ST2?133.實驗預(yù)習(xí)(1)將本章所學(xué)內(nèi)容要點進行整理,熟練掌握線程的編程要領(lǐng)。⑵寫出實驗內(nèi)容中第⑶題程序的源代碼,作為預(yù)習(xí)報告。4.實驗結(jié)論實驗體會。線程是提高cpu運行效率的方法,內(nèi)容很重要,需要認真學(xué)習(xí)和理解。實驗6圖形用戶界面編程1.實驗?zāi)康恼莆瘴谋窘M件、按鈕和單、復(fù)選按鈕組件的使用;掌握列表的使用,鼠標(biāo)、鍵盤事件的處理;掌握布局控制的方法。實驗內(nèi)容(1)編寫一個Applet程序響應(yīng)鼠標(biāo)事件,當(dāng)鼠標(biāo)事件發(fā)生時,在狀態(tài)條顯示相應(yīng)的時間信息。提示:使用showStatus(字符串)方法。importjava.awt.*;importjava.awt.event.*;importjava.util.Date;importjavax.swing.*;publicclassTestMouse{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFramefrm=newJFrame();frm.setLayout(newBorderLayout());JButtonbtn=newJButton(" 請點擊");frm.getContentPane().add(btn);ButtonHandlerbtnHandler=newButtonHandler();btn.addActionListener(btnHandler);frm.setBounds(400,200,400,200);frm.setVisible(true);classButtonHandlerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubSystem.out.println("當(dāng)前時間為:"+newDate(System.currentTimeMillis()));

請直擊(■'rrbfiEn-?肯1礦—工「8「 <=>r=r['ra^icj~貝C請直擊^avaApplication]C:\ProgramFik自才廿三為:ThuDec05自Dec05(2)完成圖6-1所示的GUI布局管理,不需要實現(xiàn)功能。圖6-1要實現(xiàn)的GUI布局管理importjava.awt.*;importjavax.swing.*;publicclassGUI{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFramefrm=newJFrame("FlieChooseDemo");frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPaneltopPane=newJPanel();frm.getContentPane().add(topPane,BorderLayout.CENTER);JPanelbottomPane=newJPanel();frm.getContentPane().add(bottomPane,BorderLayout.SOUTH);GridLayoutgridLayout=newGridLayout(1,4);topPane.setLayout(gridLayout);/*第一個框*//*第一個框*/btnGroup2.add(jrbbtnGroup2.add(jrb);JRadioButtonjrbb=newJRadioButton("JustSelectDirectories");JRadioButtonjrbc=newJRadioButton("SelectFilesandDirectories");JRadioButtonjrbd=newJRadioButton("SingleSelection");JRadioButtonjrbe=newJRadioButton("MulitiSelection");btnGroup3.add(jrba);btnGroup3.add(jrbb);btnGroup3.add(jrbc);btnGroup3.add(jrbd);btnGroup3.add(jrbe);b4.add(jrba);b4.add(jrbb);b4.add(jrbc);b4.add(jrbd);b4.add(jrbe);jrbd.setSelected(true);/*下半部分的設(shè)計*/FlowLayoutflowLayout=newFlowLayout();bottomPane.setLayout(flowLayout);bottomPane.setBorder(BorderFactory.createTitledBorder(""));ButtonGroupbtnGroup=newButtonGroup();JRadioButtonjrb1=newJRadioButton("Metal");jrb1.setSelected(true);JRadioButtonjrb2=newJRadioButton("Motif");JRadioButtonjrb3=newJRadioButton("Windows");JButtonbtn=newJButton("ShowFileChooser");btnGroup.add(jrb1);btnGroup.add(jrb2);bottomPane.add(jrb1);bottomPane.add(jrb2);bottomPane.add(jrb3);bottomPane.add(btn);frm.setBounds(450,300,800,300);frm.setVisible(true);}FleChooie二emor=13iMGMFiwrCciatrolDI$p(ayO0TionFa?aridDiriKEOryOpliOfi?>[openhemtweftiUiiesFilTFr1' {_J^hcnvHiddenFileOdualSelectFileJSSVtAdO'All Ihiwr>1ShMEKlon料uiisLJUGLsmtictDiiectonefi創(chuàng)ShawhIeView:.HiesendDirectonpFi■jCuslofniWflefauHFlHpiring歹1創(chuàng)iDwPfwvi曲v?SmqtSelaclbnLia0^1CMd'GIrand'JPG*IFliterno<1ShowConenpiiFtiitlnn-KiMiimSj*hicJin*(1)試設(shè)計一窗口,內(nèi)含一個按鈕。開始運行時,按鈕顯示“ ClickMe”字樣,當(dāng)按鈕按下時,按鈕顯示為“ClickMeAgain”字樣,再按一次,則按鈕顯示“ClickMe字樣,依次循環(huán)。importjavax.swing.*;importjava.awt.event*;publicclassClickme{JButtonbtn;publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFramefrm=newJFrame();frm.setLayout(null);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButtonbtn=newJButton("ClickMe");btn.setBounds(45,65,200,30);frm.getContentPane().add(btn);ButtonHandlebtnHandler=newButtonHandle(btn);btn.addActionListener(btnHandler);frm.setBounds(400,200,400,200);frm.setVisible(true);classButtonHandleimplementsActionListener{JButtonbtn;publicButtonHandle(JButtonbtn){this.btn=btn;publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(btn.getText().equals("ClickMe")){btn.setText("ClickMeAgain");}elsebtn.setText("ClickMe");ClickMe}btch Agai'PiJ

仿照Windows2000/XP系統(tǒng)提供掃雷游戲編寫一個類似功能和界面的掃雷程序。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassSaoLei{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFramefrm= newJFrame("掃雷");frm.setLayout(newBorderLayout());frm.setDefaultCloseOperation(JFrame.JPaneltopPane=newJPanel();frm.getContentPane().add(topPane,BorderLayout.JPanelcenterPane=newJPanel();frm.getContentPane().add(centerPane,BorderLayout./* 菜單欄 */JMenuBarmeb=newJMenuBar();meb.setBounds(5,5,160,80);topPane.setLayout(newBorderLayout());EXIT_ON_CLOSE);NORTH);CENTER);topPane.add(meb);JMenumenu1=newJMenu("游戲");JMenumenu2=newJMenu("幫助");meb.add(menu1);meb.add(menu2);menu1.add(newJMenuItem("新游戲"));menu1.add(newJMenuItem("統(tǒng)計信息"menu1.add(newJMenuItem("選項"));menu1.add(newJMenuItem("更改外觀"menu1.add(newJMenuItem("退出"));/* 添加按鈕-- */));));centerPane.setLayout(newBorderLayout());JPanelpan1= newJPanel();(""));pan1.setLayout(newGridLayout(16,16));pan1.setBorder(BorderFactory.createTitledBordercenterPane.add(pan1);(""));JButton[]btn=newJButton[256];for(inti=0;i<btn.length;i++){btn[i]= newJButton();pan1.add(btn[i]);ButtonHanbtnh= newButtonHan(btn[i]);btn[i].addActionListener(btnh);}frm.setBounds(330,300,400,400);frm.setVisible(true);}}classButtonHan implements ActionListener{JButton btn;public ButtonHan(JButtonbtn){this.btn=btn;}@Overridepublic//btn}voidactionPerformed(ActionEvente){TODOAuto-generatedmethodstub.setText( );1->uih11111I1 11ILJ1n11!111I :11111r11:1111■1I 111A111JpP11144F4111pX■■*■}(5)編寫一個簡易文本編輯器,參考界面如圖6-2所示。壘 TeztEditorHieiBMCutCopyPasteSelectAl__.----_亠Odsgfadd圖6-2簡易文本編輯器運行效果圖要求:包含基本的打開、保存、新建等功能。包含菜單,能夠?qū)ξ谋镜淖煮w類型和顏色進行設(shè)置,力求界面美觀。importimportpublicjavax.swing.*;java.awt.*;classTextfield{public staticvoidmain(String[]args){//TODOAuto-generatedmethodstubJFramefrm=newJFrame("SimpleTextEditor"frm.setLayout(newBorderLayout());frm.setDefaultCloseOperation(JFrame.JPaneltopPane=newJPanel();frm.getContentPane().add(topPane,BorderLayout.JPanelcenterPane=newJPanel();frm.getContentPane().add(centerPane,BorderLayout./* 菜單欄 */JMenuBarmeb=newJMenuBar();meb.setBounds(5,5,160,80);topPane.setLayout( newBorderLayout());topPane.add(meb);JMenumenu1=);EXIT_ON_CLOSE);NORTH;CENTER;JMenumenu2=JMenumenu3=newJMenu("File");newJMenu("Edit");newJMenu("RecentCuts" );meb.add(menu1);meb.add(menu2);menu2.add(menu2.add(menu2.add(newJMenultem(newJMenultem(newJMenultem("Cut"));"Copy"));"Paste"));menu2.addSeparator();"SelectAll"));"gdsgfa"));"SelectAll"));"gdsgfa"));"dd")); */menu2.add(newJMenultem(menu2.addSeparator();menu2.add(menu3);menu3.add(newJMenultem(menu3.add(newJMenultem(/* 文本編輯框centerPane.setLayout(JTextAreainput=centerPane.add(input);input.setEditable(newBorderLayout());newJTextArea("");true);frm.setBounds(330,300,400,200);frm.setVisible(true);}mSimpleTextEditormSimpleTextEditor[口丨回jgidnFileEditCutCopyPasteSelectAllRecentC毗FileEditCutCopyPasteSelectAllRecentC毗卜gdsgfa實驗預(yù)習(xí)復(fù)習(xí)本章所學(xué)內(nèi)容,思考以下問題:(1)Java語言是跨平臺的編程語言,那么圖形用戶界面如何做到跨平臺?(1)AWT有哪些組件和容器?它們各自的使用方法是什么?AWT勺事件處理模型是什么?原理又如何?什么是Swing?它和AWTt匕有什么優(yōu)點?使用上有什么區(qū)別?實驗結(jié)論(1)遇到的問題及解決辦法。在編寫時,有些方法記不住,就會翻閱書籍,把那些組件內(nèi)容都給添加上。(2)實驗體會。

GUI是java中一個很有意思的編程,實現(xiàn)了可視化的界面,做完之后很有成就感。也學(xué)到了很多內(nèi)容。實驗7輸入與輸出1.實驗?zāi)康?1)掌握(1)掌握Java兩種基本輸入/輸出流類的使用。掌握Java文件類型的使用。掌握文件的輸入、輸出方法。2.實驗內(nèi)容(1)編寫程序,實現(xiàn)從鍵盤輸入字符串并在屏幕上輸出。importjava.io.*;public classNum1{throwslOException{public staticvoidmain(String[]args)throwslOException{"請輸入內(nèi)容"請輸入內(nèi)容:");newBufferedReader(newin));InputStreamReader(System.Stringstr=br.readLine();System.out.println( "輸入的內(nèi)容為:"+str);}-I--I-.yi■「二廠dT「?二■<tprminated>NumL⑴[J"曰,潔第A時S:…javafefe(2)利用J

溫馨提示

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

最新文檔

評論

0/150

提交評論