




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java程序設(shè)計實驗教學大綱實驗學時:32實驗個數(shù):11實驗學分:1課程性質(zhì):專業(yè)限限課適用專業(yè):計算機機科學與與技術(shù)、軟件工程、網(wǎng)絡(luò)工程、電子商務(wù)教材及參考考書:1. JJavaa語言程程序設(shè)計計,鄭鄭莉等主主編,北北京:清清華大學學出版社社,200062.面向向?qū)ο蟪坛绦蛟O(shè)計計與Jaava語語言,周周曉聰?shù)鹊戎?北京:機械工工業(yè)出版版社,220044大綱執(zhí)筆人人:郭濤濤大綱審定人人:李曉曉寧一、實驗課的性質(zhì)與任務(wù)Java語語言是新新興起的的面向?qū)ο蟪绦蛐蛟O(shè)計語語言,用用于應(yīng)用用程序設(shè)設(shè)計,尤尤其是應(yīng)應(yīng)用在網(wǎng)網(wǎng)絡(luò)、因因特網(wǎng)和移移動設(shè)備備上。為為培養(yǎng)學學生網(wǎng)絡(luò)絡(luò)應(yīng)用程程序的編編程能力力,在
2、學學生具有有一定的的計算機機和網(wǎng)絡(luò)絡(luò)知識的的基礎(chǔ)上上開設(shè)JJavaa程序設(shè)設(shè)計課程程,使學學生能夠夠運用JJavaa語言作作為完成成應(yīng)用程程序設(shè)計計的基本本工具。本課程將從面向?qū)ο蟮幕靖拍钊胧?,結(jié)合課程設(shè)計,較為系統(tǒng)地介紹Java語言的主要特征和編程方法,包括:類型與轉(zhuǎn)換、類的聲明與對象產(chǎn)生、繼承與多態(tài)性、包與接口、數(shù)組與字符串、多線程編程以及異常處理、JDBC等內(nèi)容。通過相關(guān)的實驗設(shè)計,使學生具有一定的網(wǎng)絡(luò)編程能力。二、實驗課課程目的的與要求求1實驗目目的:開設(shè)該課程程設(shè)計,目目的是讓讓學生在在掌握了了Javva程序序設(shè)計的的基本知知識、基基本理論論方面后后,能熟熟悉Jaava編編程的思思
3、想和編編程技巧巧,培養(yǎng)養(yǎng)學生分分析問題題和解決決問題的的能力及及技巧。實驗設(shè)計覆蓋Java程序設(shè)計中主要的方法。該課程以講授、演示和實驗法相結(jié)合。按照重視基礎(chǔ),突出重點的原則進行。通過程序設(shè)計培養(yǎng)學生的程序設(shè)計能力、解決和分析問題的能力,使學生對所學的內(nèi)容有更深入的理解,逐步掌握Java編程方面的技巧。實驗要求:實驗安排在在上機時時間進行行,如在在上機時時間不能能完成可可課后完完成,到到期交經(jīng)經(jīng)過編譯譯并能正正常運行行的軟件件。實驗以前,學學生應(yīng)對對實驗設(shè)設(shè)計的相相關(guān)知識識點和相相關(guān)設(shè)計計技術(shù)有有所了解解。每個實驗都都要求寫寫出實驗驗報告(實實驗報告告包括:實驗內(nèi)內(nèi)容、目目的、實實現(xiàn)方法法、調(diào)
4、試試結(jié)果)。三、實驗項項目及內(nèi)內(nèi)容提要要Javaa程序設(shè)設(shè)計實實驗課程程 序號實驗項目編編號實驗名稱學時必做選做學分數(shù)實驗類型內(nèi)容提要 基本操作作驗證綜合設(shè)計1一Java基基礎(chǔ)實驗驗3熟悉Javva基本本語句和和程序控控制結(jié)構(gòu)構(gòu) 2二Java應(yīng)應(yīng)用程序序和小應(yīng)應(yīng)用程序序3學會Javva aappllicaatioon和aappllet,以以及Ecclippse的的使用3三類與對象4使用類來封封裝對象象的屬性性和功能能;學會會構(gòu)造函函數(shù)的使使用和初初始化4四類的靜態(tài)成成員與實實例成員員2掌握靜態(tài)成成員與實實例成員員的區(qū)別別學會使用類類的靜態(tài)態(tài)成員5五Java異異常處理理2學會聲明用用戶自己己的異
5、常常類。掌握異常的的拋出和和捕獲的的應(yīng)用6六接口的實現(xiàn)現(xiàn)2掌握接口的的實現(xiàn)方方式使用實現(xiàn)了了接口的的類理解接口與與抽象類類的區(qū)別別7七構(gòu)造函數(shù)的的使用4學會構(gòu)造函函數(shù)重載載8八子類的派生生與方法法覆蓋4理解子類派派生的概概念學習創(chuàng)建子子類對象象掌握方法覆覆蓋的使使用9九上轉(zhuǎn)型對象象及多態(tài)態(tài)4掌握上轉(zhuǎn)型型對象的的使用學習創(chuàng)建子子類對象象和繼承承了解多態(tài)的的應(yīng)用10十圖形及事件件處理4掌握GUII設(shè)計及及事件處處理11十一學期綜合實實驗從所給題目目中任選選一題,并并按要求求完成實驗1 Javva基礎(chǔ)礎(chǔ)實驗實驗目的: 掌握Javva aappllicaatioon、aappllet、DDiallog
6、BBox的的區(qū)別。學會在Ecclippse下下編譯、調(diào)調(diào)試和運運行程序序。掌握Javva中控控制語句句、循環(huán)環(huán)語句、數(shù)數(shù)組的使使用。實驗內(nèi)容:1、用Jaava appplett和apppliicattionn分別編編寫一個個程序進進行100年存款款的本息息計算。要求:存款總金額額本金金 *(11利率率)存款款年限amounnt = prrinccipaal * Maath.poww( 11.0 + rratee, yyearr );分別使用AAppllicaatioon, appplett, 和和DiaaloggBoxx完成。 appllicaatioonimporrt jjavaa.utti
7、l.*;publiic claass tesst1 sstattic intt yeaar=110;longg priinciipall;stattic douublee amoountt;publlic staaticc voiid mmainn(Sttrinng aargss)SScannnerr inn=neew SScannnerr(Syysteem.iin); SSysttem.outt.prrinttln(plleasse iinpuut aa nnumbber:);llongg prrinccipaal=iin.nnexttLonng(); SSysttem.outt.prrin
8、ttln(plleasse iinpuut aa nnumbber(011):); ffloaat rratee=inn.neextFFloaat(); aamouunt=priinciipall*Maath.poww(1+ratte, yeaar);SSysttem.outt.prrinttln(存款總總金額為為 :+amoountt);appleetimporrt jjavaa.apppleet.AAppllet;imporrt jjavaa.awwt.GGrapphiccs;imporrt jjavaa.uttil.Scaanneer;publiic claass tesst1 extt
9、endds AAppllet ddoubble amoountt; ddoubble ratte; iint yeaar=00,m,priinciipall;publiic voiid iinitt() SScannnerr innputt=neew SScannnerr(Syysteem.iin); SSysttem.outt.prrinttln(Plleasse eenteer pprinncippal:); pprinncippal = iinpuut.nnexttIntt(); SSysttem.outt.prrinttln(Plleasse eenteer yyearrs yyou
10、wannt:); mm = inpput.nexxtInnt(); SSysttem.outt.prrinttln(Plleasse eenteer rratee:); rratee = inpput.nexxtDooublle(); publiic voiid ppainnt(GGrapphiccs gg) intt yPPos =555; g.ddrawwStrringg(yyearrs, 255, yyPoss);/縱坐坐標為yyposs,橫坐坐標為225 g.ddrawwStrringg(aamouunt, 1100, yPPos); forr(yeaar=00;yeear=m;yea
11、ar+) yPPos +=115;/縱坐坐標每次次循環(huán)到到就+115 ammounnt=priinciipall * Matth.ppow( 1.0 + raate, yeear );/公式式 g.draawSttrinng(SStriing.vallueOOf(yeaar), 255, yyPoss);/輸出出年數(shù), g.drawString(String.valueOf(amount), 100, yPos); /輸出本息和 2、已知兩兩個二維維數(shù)組aa,b,其其初值如如下:int aa=nnew intt23; int bb= 11,5,2,88,5,99,100,-33,2,77,-5
12、5,-118 ; 求這兩個二二維數(shù)組組的乘積積。運行結(jié)果如如下:imporrt jjavaa.uttil.Scaanneer;publiic claass tesst2 ppubllic staaticc voiid maain(Strringg arggs) intt a = neww intt23; intt b = 1,55,2,8,5,9,110,-3,2,7,-5,-18 ; intt c = neww intt24; Sccannner inpput = nnew Scaanneer(SSysttem.in); Sysstemm.ouut.pprinntlnn(ppleaase e
13、ntter arrray a:); forr(intt i=0;iia.lenngthh;i+) forr(intt j=0;jjai.lenngthh;j+) aij = iinpuut.nnexttIntt(); Sysstemm.ouut.pprinntlnn();/換換行操作作 Sysstemm.ouut.pprinntlnn(*MMatrrix A*); forr(intt i=0;iia.lenngthh;i+) forr(intt j=0;jjai.lenngthh;j+) Syysteem.oout.priint(aiijj+ ); Sysstemm.out.pprinntln
14、n(); Sysstemm.ouut.pprinntlnn(*MMatrrix B*); forr(intt i=0;ii=22;i+) forr(intt j=0;jj=33;j+) Syysteem.oout.priint(biijj+ ); Sysstemm.ouut.pprinntlnn(); Sysstemm.ouut.pprinntlnn(*MMatrrix C*); forr(intt i=0;ii=11;i+) forr(intt j=0;jj=33;j+) cij=aii00*bb0j+ai1*b11jj+aai2*b2j; Syysteem.oout.priint(ciij
15、j+ ); Sysstemm.ouut.pprinntlnn(); 3采用aappllet編編寫一個個小應(yīng)用用程序。該該程序通通過讓用用戶輸入入133數(shù)值中中的一個個,實現(xiàn)現(xiàn)線、方方形、圓圓型繪制制。要求求用戶提提示采用用DiaaloggBoxx。程序運行結(jié)結(jié)果如下下:提示:輸入入框使用用:JOOptiionPPanee.shhowIInpuutDiialoog()通過查幫助助文檔,掌掌握drrawLLinee(),draawReect(), draawOvval()方法法的使用用?;究蚣苋缛缦拢篿mporrt jjavaa.awwt.GGrapphiccs;imporrt jjavaax.
16、sswinng.*;publiic cclasss ddrawwlinne eexteendss JAAppllet . puubliic vvoidd innit() innputt = JOpptioonPaane.shoowInnputtDiaalogg( Ennterr 1 to draaw llineesnn + Ennterr 2 to draaw rrecttangglessn + Ennterr 3 to draaw oovallsnn );. puubliic vvoidd paaintt( GGrapphiccs gg ) 代碼:imporrt jjavaa.appplee
17、t.AAppllet;imporrt jjavaa.awwt.GGrapphiccs;imporrt jjavaa.awwt.CColoor;imporrt jjavaax.sswinng.JJOpttionnPanne;imporrt javvax.swiing.*;publiic claass tesst3 exttendds AAppllet ppubllic Strringg innputt; iint nummberr; ppubllic voiid iinitt() iinpuut = JOOptiionPPanee.shhowIInpuutDiialoog( Entter 1 t
18、to ddraww liinessn + Entter 2 tto ddraww reectaangllesn + Entter 3 tto ddraww ovvalssn ); puubliic voiid ppainnt( Graaphiics g ) innt nnumbber=Inttegeer.pparsseInnt(inpput); swwitcch (nummberr) casse 11 : g.ssetCColoor(CColoor.RRED);/使用紅紅色 forr (innt ii = 0; i 8 ;i+) g.draawLiine(5, 5, 5 * i + 2200,
19、 5 * ii + 10);/畫一條條線,起起點位置置是在點點 (55,5) 和 (2000,110) 之間畫畫一條線線。 breeak; casse 22: g.ssetCColoor(CColoor.BBLUEE); forr (innt ii = 0; i 8 ;i+) g.draawReect( i*10+5, i*110+55, 665+ii*177, 665+ii*177);/畫一一個矩形形,起始始(5.5)位位置,長長度655,寬度度65 breeak; casse 33: g.ssetCColoor(CColoor.GGREEEN); forr (innt ii = 0; i
20、=990, A; 8980,BB;799700,C;6960,DD;660, F。程序中要求求使用iinpuutSccoree()和和juddegGGradde()兩兩個方法法,分別別執(zhí)行成成績的輸輸入和成成績等級級的判斷斷。實驗結(jié)果如如下圖:程序模版:imporrt jjavaa.uttil.Scaanneer;publiic cclasss SScorre Scannnerr sccannner;publlic Scoore() scaanneer = neew SScannnerr(Syysteem.iin); inpputSScorre();publlic voiid iinpuutS
21、ccoree()【代碼碼1】從從鍵盤讀讀入十個個成績(intt s=scaanneer.nnexttIntt();) Sttrinng ggradde = juudgeeGraade(s); Syysteem.oout.priintlln(Graade + s +iss+ graade); publlic Strringg juudgeeGraade(intt sccoree)【代碼碼2】對對輸入成成績進行行判斷publlic staaticc vooid maiin(SStriing aargss) neew SScorre(); Sysstemm.exxit(0);代碼:imporrt j
22、javaa.uttil.Scaanneer;publiic claass graade_rannk publlic staaticc voiid mmainn(Sttrinng aargss)graade_rannk gg = neww grradee_raank();g.iinpuutSccoree();Sysstemm.gcc();Sysstemm.exxit(0);publlic voiid iinpuutSccoree()Scaanneer iin = neew SScannnerr(Syysteem.iin);Sysstemm.ouut.pprinntlnn(請請輸入十十個學生生的成
23、績績);forr(intt i = 00;i 110;ii+)innt nn = in.nexxtInnt();Sttrinng rrankk = juddgeGGradde(nn);iff(raank = )ii -= 1;cconttinuue;Syysteem.oout.priint(Grradee +n+ iss +raank);Sysstemm.ouut.pprinntlnn();Sysstemm.ouut.pprinntlnn(你你已經(jīng)輸輸入十個個學生的的成績);publlic Strringg juudgeeGraade(intt n)intt m = nn/100;Strrin
24、gg raank = ;swiitchh(m)casse 99:raank = A;brreakk;casse 88:raank = B;brreakk;casse 77:raank = C;brreakk;casse 66:raank = D;brreakk;casse 55:caase 4:caase 3:ccasee 2:casse 11:caase 0:raank = F; brreakk;deffaullt:iff(n = 1000)rrankk = A;ellseSyysteem.oout.priint(你輸輸入的成成績錯誤誤!(00=ggradde=1000)請重重新輸入入);b
25、rreakk;retturnn(raank);實驗二、定義一個JJavaa類Sttudeent,實實現(xiàn)學生生選課、退退課和成成績管理理。要求求自定義義學生的的狀態(tài)信信息和課課程行為為。編寫一個測測試類SStuddenttTesst用于于測試學學生類的的實現(xiàn)情情況,并并輸出相相關(guān)信息息。(至至少創(chuàng)建建三個對對象)/stuudennt類publiic claass stuudennt publlic Strringg snno; publlic Strringg snnamee; publlic Strringg cooursse; publlic flooat sgrradee;publlic
26、stuudennt()publlic flooat graade = neew flooat3; ppubllic stuudennt(SStriing snoo,Sttrinng ssnamme,SStriing couursee,flloatt sggradde) thiis.ssno = ssno; thiis.ssnamme = snnamee; thiis.ccourrse = ccourrse; thiis.ssgraade = ssgraade; publlic voiid ccourrse_sell(Sttrinng ccs)Sysstemm.ouut.pprinntlnn(c
27、ss+ :Cooursse sseleect succcesssfuul!);publlic voiid ccourrse_droo(Sttrinng ccd)Syysteem.oout.priintlln(ccd+:Yoou ccan nott drrop thiis ccourrse!);publlic voiid ggradde_mman()Strringg naame = neew SStriing3;namme00 = GGuo Taoo;namme11 = WWangg Biing;namme22 = LLi YYangg;Sysstemm.ouut.pprinntlnn(已已經(jīng)自
28、定定義了學學生的信信息和課課程行為為);forr(intt i = 00;i cc) booo=truue; elsse booo=fallse; /求周長長 dooublle ggetLLenggth() doubble tl; ttl=ssideeA+siddeB+siddeC; rretuurn tl; / 求面積積 puubliic douublee ggetAAreaa() iff(booo) ddoubble p=(siddeA+siddeB+siddeC)/2.0; aareaa=Maath.sqrrt(pp*(pp-siideAA)*(p-ssideeB)*(p-siddeC)
29、 ; rretuurn areea; ellse SSysttem.outt.prrinttln(不是一一個三角角形,不能計計算面積積); rretuurn 0; /修改三三條邊 puubliic voiid ssetAABC(douublee a,douublee b,douublee c) ssideeA=aa; ssideeB=bb; ssideeC=cc; if(a+bbc) /a,bb,c構(gòu)構(gòu)成三角角形的條條件表達達式 bboo=truue; /給booo賦值。 eelsee booo=fallse; /給booo賦值。 ddoubble gettA() rretuurn sidde
30、A; ddoubble gettB() retturnn siddeB; ddoubble gettC() retturnn siddeC; /Ladder類類classs Laaderr ddoubble aboove,botttomm,heiightt,areea; LLadeer() LLadeer(ddoubble a,ddoubble b,ddoubble h) abbovee=a; boottoom=bb; heiightt=h; /方法體體,將參參數(shù)a,b,cc分別賦賦值給aabovve,bbotttom,heiightt ddoubble gettAreea() dooubll
31、e ss; s=(aabovve+botttomm)*heeighht)/2.00; rretuurn s;/方法法體,,要求計計算出aareaa返回 /cirrclee 類classs Ciirclle ddoubble raddiuss,areea; ddoubble paii=3.14; CCirccle() CCirccle(douublee r) raadiuus=rr; /方法法體 ddoubble gettAreea() douublee css; cs=raddiuss*raddiuss*paii; retturnn css; /方法法體,要要求計算算出arrea返返回 ddo
32、ubble gettLenngthh() douublee cll; cl=2.00*raadiuus*paii; retturnn cll; /geetArrea方方法體的的代碼,要求計計算出llenggth返返回 vvoidd seetRaadiuus(ddoubble newwRaddiuss) rradiius=newwRaddiuss; ddoubble gettRaddiuss() retturnn raddiuss; publiic claass AreeaAnndLeengtth ppubllic staaticc voiid mmainn(Sttrinng aargss) d
33、doubble lenngthh,arrea; CCirccle cirrclee=nulll; TTrannglee trranggle; LLadeer lladeer; /創(chuàng)建建對象ccirccle CCirccle yuaan; yyuann=neew CCirccle(); /創(chuàng)建建對象ttrannglee。 TTrannglee saan=nnew Traanglle(); /創(chuàng)建建對象lladeer LLadeer ttixiing=neww Ladder(); / ccirccle調(diào)調(diào)用方法法返回周周長并賦賦值給llenggth llenggth=yuaan.ggetLLeng
34、gth(); Sysstemm.ouut.pprinntlnn(圓的周周長:+leengtth); / ccirccle調(diào)調(diào)用方法法返回面面積并賦賦值給aareaa areea=yyuann.geetArrea(); Sysstemm.ouut.pprinntlnn(圓的面面積:+arrea); / traanglle調(diào)用用方法返返回周長長并賦值值給leengtth lenngthh=saan.ggetLLenggth(); Sysstemm.ouut.pprinntlnn(三角形形的周長長:+llenggth); / traanglle調(diào)用用方法返返回面積積并賦值值給arrea areea=
35、ssan.gettAreea(); Sysstemm.ouut.pprinntlnn(三角形形的面積積:+aareaa); / lladeer調(diào)用用方法返返回面積積并賦值值給arrea areea=ttixiing.gettAreea(); Sysstemm.ouut.pprinntlnn(梯形的的面積:+aareaa); / traanglle調(diào)用用方法設(shè)設(shè)置三個個邊,要要求將三三個邊修修改為112,334,11。 sann.seetABBC(112, 34, 1); Sysstemm.ouut.pprinntlnn(三角形形修改后后的邊長長為:+saan.ggetAA(); Sysstem
36、m.ouut.pprinntlnn(三角形形修改后后的邊長長為:+saan.ggetBB(); Sysstemm.ouut.pprinntlnn(三角形形修改后后的邊長長為:+saan.ggetCC(); / trranggle調(diào)調(diào)用方法法返回面面積并賦賦值給aareaa areea=ssan.gettAreea(); Sysstemm.ouut.pprinntlnn(三角形形的面積積:+aareaa); / traanglle調(diào)用用方法返返回周長長并賦值值給leengtth lenngthh=saan.ggetLLenggth(); Sysstemm.ouut.pprinntlnn(三角形形
37、的周長長:+llenggth); 實驗二:了了解和熟熟悉SttrinngTookennnizze類的的使用。Writee twwo pproggramms tto cclasssiffy tthe nettworrk bbaseed oon IIP aaddrresss prroviidedd. UUsinng SStriingTTokeenizzer. Alll IIP aaddrressses shoouldd bee gootteen ffromm coommaand linne.A: 11266B: 12271191C: 19922223代碼:imporrt jjavaa.neet.I
38、InettAdddresss;imporrt jjavaa.neet.UUnknnownnHosstExxcepptioon;publiic claass ip_sorrt pubblicc ipp_soort() suuperr(); /調(diào)用父父類的構(gòu)構(gòu)造函數(shù)數(shù)pubblicc voiid iisipp(Sttrinng ss)trryIInettAdddresss aa = IneetAdddreess.gettByNNamee(s);wwhattsorrt(ss);caatchh(UnnknoownHHosttExccepttionn e)SSysttem.outt.prrinttln(
39、您輸輸入的字字符串+s+不是是IP地地址);pubblicc intt gettip(Strringg s)Sttrinng sttrinngseeg = s.spllit(., 4);innt llenggth = sstriingsseg.lenngthh;innt nuumseeg = neew inttleengtth;foor(intt i = 00;i 0 & numm = 1288 & nuum = 1922 & nuum 00)douublee grradee = nnew douubleenuum; Syysteem.oout.priintlln(開始錄錄入這+nuum+個學
40、生生的成績績,當輸輸入-11時,表表示錄入入結(jié)束);forr(intt i = 00;i = 00 & grradeei = 1000)summ += grradeei; elsseif(ggraddeii = -1)Sysstemm.ouut.pprinntlnn(你你輸入了了-1,錄錄入成績績結(jié)束。);Sysstemm.exxit(0);elsseSysstemm.ouut.pprinntlnn(你你輸入的的成績錯錯誤,請請重新輸輸入!);i-;cattch(InpputMMismmatcchExxcepptioon ee)Sysstemm.ouut.pprinntlnn(輸輸入的數(shù)數(shù)據(jù)類
41、型型不匹配配,請重重新輸入入!);i-; avee = summ/nuum;Sysstemm.ouut.pprinntlnn(nuum+個學生生的平均均成績:aveeragge = +avee);Sysstemm.gcc();elsseSysstemm.ouut.pprinntlnn(學學生個數(shù)數(shù)只能為為正整數(shù)數(shù)!);Sysstemm.exxit(00);vallid = ttruee;ccatcch(IInpuutMiismaatchhExccepttionn e)Sysstemm.ouut.pprinntlnn(學學生個數(shù)數(shù)為整數(shù)數(shù),你輸輸入的數(shù)數(shù)據(jù)類型型不匹配配,請重重新輸入入!); 運
42、行結(jié)果:實驗2要求求:聲明一個異異常類,即即當除數(shù)數(shù)為零時時拋出的的異常類類DivvideeByZZerooExccepttionn,并在在下列代代碼需要要的地方方進行異異常拋出出和異常常捕獲,以以便用戶戶輸入出出現(xiàn)錯誤誤時,程程序具有有容錯功功能。本本題異常常包括除除數(shù)為零零,以及及輸入數(shù)數(shù)據(jù)格式式錯誤,如如數(shù)據(jù)中中包含字字母。/ DiividdeByyZerroTeest.javva/ A simmplee exxcepptioon hhanddlinng eexammplee./ Chheckkingg foor aa diividde-bby-zzeroo-errrorr.imporr
43、t jjavaa.teext.DeccimaalFoormaat;imporrt jjavaax.sswinng.*;imporrt jjavaa.awwt.*;imporrt jjavaa.awwt.eevennt.*;publiic cclasss DDiviideBByZeeroTTestt exxtennds JFrramee impplemmentts AActiionLListteneer prrivaate JTeextFFielld iinpuut1, innputt2, outtputt; prrivaate intt nuumbeer1, nuumbeer2; prriva
44、ate douublee reesullt; / Innitiialiizattionn puubliic DDiviideBByZeeroTTestt() suuperr( Demmonsstraatinng EExceeptiionss ); Coontaaineer cc = gettConntenntPaane(); c.settLayyoutt( nnew GriidLaayouut( 3, 2 ) ); c.addd( nnew JLaabell( Entter nummeraatorr , SwiingCConsstannts.RIGGHT ) ); innputt1 = nee
45、w JJTexxtFiieldd( 110 ); c.addd( iinpuut1 ); c.addd( neew JJLabbel( EEnteer ddenoominnatoor aand preess Entter , SwiingCConsstannts.RIGGHT ) ); innputt2 = neew JJTexxtFiieldd( 110 ); c.addd( iinpuut2 ); innputt2.aaddAActiionLListteneer( thiis ); c.addd( nnew JLaabell( RESSULTT , SwwinggConnstaantss.
46、RIIGHTT ) ); ouutpuut = neew JJTexxtFiieldd(); c.addd( ooutpput ); seetSiize( 4225, 1000 ); shhow(); / Prroceess GUII evventts /Thrrowiing an exccepttionn whhen datta fformmat is wroong or atttempptedd too diviide by zeroo puubliic vvoidd acctioonPeerfoormeed( ActtionnEveent e ) DeecimmalFFormmat pr
47、eecissionn3 = neew DDeciimallForrmatt( 0.0000 ); ouutpuut.ssetTTextt( ); nuumbeer1 = IInteegerr.paarseeIntt( iinpuut1.gettTexxt() ); nuumbeer2 = IInteegerr.paarseeIntt( iinpuut2.gettTexxt() ); reesullt = quuotiientt( nnumbber11, nnumbber22 ); ouutpuut.ssetTTextt( ppreccisiion33.foormaat( ressultt )
48、); / Deefinnitiion of metthodd quuotiientt. UUsedd too deemonnstrratee / thhrowwingg ann exxcepptioon wwhenn a divvidee-byy-zeero errror / iss enncouunteeredd. puubliic ddoubble quootieent( innt nnumeerattor, innt ddenoominnatoor ) reeturrn ( dooublle ) nuumerratoor / deenomminaatorr; puubliic sstat
49、tic voiid mmainn( SStriing arggs ) DiividdeByyZerroTeest appp = neww DiividdeByyZerroTeest(); appp.aaddWWinddowLListteneer( neew WWinddowAAdappterr() puubliic vvoidd wiindoowCllosiing( WiindoowEvventt e ) e.gettWinndoww().dissposse(); Syysteem.eexitt( 00 ); ); 運行結(jié)果:實驗6 接口的的實現(xiàn)實驗目的:學習如何定定義接口口掌握接口的的實現(xiàn)方
50、方式使用實現(xiàn)了了接口的的類理解接口與與抽象類類的區(qū)別別實驗任務(wù): 本實驗驗的任務(wù)務(wù)是設(shè)計計和實現(xiàn)現(xiàn)一個SSounndabble接接口,該該接口具具有發(fā)聲聲功能,同同時還能能調(diào)節(jié)聲聲音大小小。Soounddablle接口口的這些些功能將將會由33種聲音音設(shè)備來來實現(xiàn),它它們分別別是:RRadiio,WWalkkmann和Moobillephhonee。最后后還需設(shè)設(shè)計一個個應(yīng)用程程序類來來使用這這些實現(xiàn)現(xiàn)了Soounddablle接口口的聲音音設(shè)備。程程序運行行時,先先詢問用用戶想聽聽哪知設(shè)設(shè)備,然然后程序序按照該該設(shè)備的的工作方方式來輸輸出發(fā)音音。程序序運行效效果如下下:代碼模版:interr
51、facce SSounndabble 代碼碼1: 定義iincrreasseVoolumme( ) deccreaaseVVoluume( ) stoopSooundd( ) plaaySooundd( )四個方方法,但但不需要要實現(xiàn)。classs Raadioo immpleemennts Souundaablee 代代碼2:分別實實現(xiàn)innterrfacce中的的四個方方法(以以字符串串方式輸輸入所實實現(xiàn)的功功能)classs Waalkmman impplemmentts SSounndabble 代代碼3:分別實實現(xiàn)innterrfacce中的的四個方方法(以以字符串串方式輸輸入所實實
52、現(xiàn)的功功能)classs Moobillephhonee immpleemennts Souundaablee 代代碼4:分別實實現(xiàn)innterrfacce中的的四個方方法(以以字符串串方式輸輸入所實實現(xiàn)的功功能)classs Peeoplle prrivaate Strringg naame; prrivaate intt agge; 代碼55:定義義lisstenn()方方法,以以Souundaablee接口作作為該方方法的參參數(shù), liisteen()方法中中使用接接口參數(shù)數(shù)調(diào)用PPlayySouund() publiic cclasss IInteerfaaceTTestt puubl
53、iic sstattic voiid mmainn(Sttrinng arrgs) iint i; PPeopple spoortssmann = neww Peeoplle( ); SScannnerr sccannner = nnew Scaanneer(SSysttem.in); SSounndabble ssounndDeevicce = neew SSounndabble3; /往聲聲音設(shè)備備數(shù)組中中放入能能發(fā)聲的的設(shè)備 ssounndDeevicce00 = neew RRadiio( ); ssounndDeevicce11 = neew WWalkkmann( ); 代代碼6:
54、 創(chuàng)建建手機對對象并賦賦值給ssounndDeevicce22 SSysttem.outt.prrinttln(你想想聽什么么? 請請輸入選選擇:00-收音音機 11-隨聲聲聽 22-手機機); i = sccannner.nexxtInnt( ); /開始始聽聲音音 ssporrtsmman.lisstenn(soounddDevviceei); ssounndDeevicceii.iincrreasseVoolumme( ); 代代碼7: 調(diào)用用stoopSooundd( )方法 代碼:imporrt jjavaa.uttil.Scaanneer;imporrt jjavaa.uttil.
55、*;inteerfaace Souundaableevoiid iincrreasseVoolumme();voiid ddecrreseeVollumee();voiid sstoppSouund();voiid pplayySouund(); claass Raddio impplemmentts SSounndabblepuubliic vvoidd pllaySSounnd()SSysttem.outt.prrinttln(收音音機播放放廣播:中央人人民廣播播電臺);puubliic vvoidd sttopSSounnd()SSysttem.outt.prrinttln(關(guān)閉閉收音機
56、機);puubliic vvoidd inncreeaseeVollumee()SSysttem.outt.prrinttln(增大大收音機機音量);puubliic vvoidd deecreeseVVoluume()SSysttem.outt.prrinttln(減小小收音機機音量);classs WWalkkmann immpleemennts Souundaableepubblicc vooid plaaySooundd()Syysteem.oout.priintlln(隨聲聽聽發(fā)出音音樂:1123445677);pubblicc vooid stoopSooundd()Syystee
57、m.oout.priintlln(關(guān)閉隨隨聲聽);pubblicc vooid inccreaaseVVoluume()Syysteem.oout.priintlln(增大隨隨聲聽音音量);pubblicc vooid deccresseVoolumme()Syysteem.oout.priintlln(減小隨隨聲聽音音量); cclasss MMobiilepphonne iimpllemeentss Soounddablle pubblicc vooid plaaySooundd()Syysteem.oout.priintlln(手機發(fā)發(fā)出電鈴鈴聲:叮叮當,叮叮當);pubblicc vo
58、oid stoopSooundd()Syysteem.oout.priintlln(關(guān)閉手手機);pubblicc vooid inccreaaseVVoluume()Syysteem.oout.priintlln(增大手手機音量量);pubblicc vooid deccresseVoolumme()Syysteem.oout.priintlln(減小手手機音量量); cclasss PPeopple priivatte SStriing namme; pubblicc Peeoplle(SStriing n) tthiss.naame = nn; pubblicc Sttrinng gge
59、t_namme() retturnn thhis.namme; pubblicc vooid lisstenn(Soounddablle ss) s.pplayySouund(); cclasss OOptiionEExceeptiion exttendds RRunttimeeExccepttionn pubblicc OpptioonExxcepptioon() publlic claass reaalizze_pportt pubblicc sttatiic vvoidd maain(Strringg arggs) intt inn; boooleaan vvaliid = trrue;
60、 Peooplee spporttsmaan = neew PPeopple(Jhhon); Soounddablle soounddDevvicee = neww Soounddablle33; soounddDevvicee0 = neww Raadioo( ); souundDDeviice1 = nnew Wallkmaan( ); souundDDeviice2 = nnew Mobbileephoone( ); whiile(vallid) trry ttry forr(innt ii = 0; i = 8800 & d = 110000 & d = 115000)Syysteem
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 8 數(shù)學廣角-數(shù)與形 第一課時(教學設(shè)計)-2024-2025學年六年級上冊數(shù)學人教版
- 12 低碳生活每一天 第二課時 教學設(shè)計-2023-2024學年道德與法治四年級上冊統(tǒng)編版
- Module 4單元整體(教學設(shè)計)-2024-2025學年外研版(三起)英語四年級上冊
- 聘用人員 合同范本
- 英文合同范本甲方全稱
- 門店住宅改造合同范本
- Module 6 Unit 1 You can play football well(教學設(shè)計)-2024-2025學年外研版(三起)英語五年級上冊
- 12 家鄉(xiāng)的喜與憂2023-2024學年四年級下冊道德與法治同步教學設(shè)計(統(tǒng)編版)
- 2024年九年級數(shù)學中考專題-相似系列之一線三等角 教學設(shè)計
- 4 選舉產(chǎn)生班委會 教學設(shè)計-2023-2024學年道德與法治五年級上冊統(tǒng)編版
- 馬工程教材《公共財政概論》PPT-第十四章 國際財政
- 獅子王1中英文臺詞
- 《大學俄語》教學大綱
- 清淤工程施工記錄表
- TCITSA 24-2022 基于ETC的高速公路自由流收費技術(shù)規(guī)范
- 2022年涉農(nóng)領(lǐng)域涉嫌非法集資風險專項排查工作總結(jié)
- 起重裝卸機械操作工國家職業(yè)技能標準(2018年版)
- 叉車裝卸區(qū)域安全風險告知牌
- 五年級下冊美術(shù)課件-第2課 新街古韻丨贛美版
- 秦荻輝科技英語寫作教程練習答案(共42頁)
- GB∕T 41168-2021 食品包裝用塑料與鋁箔蒸煮復合膜、袋
評論
0/150
提交評論