




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java 2實用教程(第三版)實驗指導(dǎo)與習(xí)題解答清華大學(xué)出版社(編著 耿祥義 張躍平)實驗?zāi)0娲a及答案建議使用文檔結(jié)構(gòu)圖(選擇Word菜單視圖文檔結(jié)構(gòu)圖)上機實踐1 初識JAVA3實驗1 一個簡單的應(yīng)用程序3實驗2 一個簡單的Java Applet程序3實驗3 聯(lián)合編譯4上機實踐2 基本數(shù)據(jù)類型與控制語句5實驗1 輸出希臘字母表5實驗2 回文數(shù)6實驗3 猜數(shù)字游戲8上機實踐3 類與對象9實驗1 三角形、梯形和圓形的類封裝9實驗2 實例成員與類成員12實驗3 使用package語句與import語句14上機實踐4 繼承與接口16實驗1 繼承16實驗2 上轉(zhuǎn)型對象19實驗接口回調(diào)21上機實踐5
2、字符串、時間與數(shù)字23實驗1 String類的常用方法23實驗2 比較日期的大小24實驗3 處理大整數(shù)25上機實踐6 組件及事件處理26實驗1 算術(shù)測試26實驗2 信號燈29實驗3 布局與日歷31上機實踐7 組件及事件處理235實驗1 方程求根35實驗2 字體對話框38實驗3 英語單詞拼寫訓(xùn)練41上機實踐8 多線程45實驗1 漢字打字練習(xí)45實驗2 旋轉(zhuǎn)的行星47實驗3 雙線程接力51上機實踐9 輸入輸出流54實驗1 學(xué)讀漢字54實驗2 統(tǒng)計英文單詞字57實驗2 讀取Zip文件61上機實踐10 JAVA 中的網(wǎng)絡(luò)編程62實驗1 讀取服務(wù)器端文件62實驗2 使用套接字讀取服務(wù)器端對象64實驗3
3、基于UDP的圖像傳輸67上機實踐11 數(shù)據(jù)結(jié)構(gòu)71實驗1 掃雷小游戲71實驗2 排序與查找76實驗3 使用TreeSet排序77上機實踐12 JAVA SWING79實驗1 JLayeredPane分層窗格79實驗2 使用表格顯示日歷80實驗3 多文檔界面(MDI)83上機實踐1 初識Java實驗1 一個簡單的應(yīng)用程序1答案:【代碼1】: System.out.println("你好,很高興學(xué)習(xí)Java") ;【代碼2】: System.out.println("We are students") ;2模板代碼 Hello.javapublic clas
4、s Hello public static void main (String args ) 【代碼1】 /命令行窗口輸出"你好,很高興學(xué)習(xí)Java" A a=new A(); a.fA(); class A void fA() 【代碼2】 /命令行窗口輸出"We are students" 實驗2 一個簡單的Java Applet程序1答案:【代碼1】: g.drawString("這是一個Java Applet 程序",10,30);【代碼2】: g.drawString("我改變了字體",20,50);2模板
5、代碼 FirstApplet.javaimport java.applet.*; import java.awt.*;public class FirstApplet extends Applet public void paint(Graphics g) g.setColor(Color.blue); 【代碼1】/在Java Applet中繪制一行文字:“這是一個Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋體",Font.BOLD,36); 【代碼2】/在Java Applet中繪制一行文字:“我
6、改變了字體” 實驗3 聯(lián)合編譯1答案:【代碼1】: System.out.println("你好,只需編譯我");【代碼2】: System.out.println("I am A");【代碼3】: System.out.println("I am B");【代碼4】: System.out.println("I am C");2模板代碼 模板1:Hello.javapublic class MainClass public static void main (String args ) System.out.pr
7、intln("你好,只需編譯我") ; /命令行窗口輸出"你好,只需編譯我" A a=new A(); a.fA(); B b=new B(); b.fB(); 模板2 :A.javapublic class A void fA() System.out.println("I am A ") ; /命令行窗口輸出"I am A" 模板3 :B.javapublic class B void fB() System.out.println("I am B"); /命令行窗口輸出"I am
8、 B" 模板4 :C.javapublic class C void fC() System.out.println("I am C"); /命令行窗口輸出"I am C" 上機實踐2 基本數(shù)據(jù)類型與控制語句實驗1 輸出希臘字母表1答案:【代碼1】: startPosition=(int)cStart;【代碼2】: endPosition=(int)cEnd ; 【代碼3】: c=(char)i; 2模板代碼 GreekAlphabet.javapublic class GreekAlphabet public static void main
9、 (String args ) int startPosition=0,endPosition=0; char cStart='',cEnd='' 【代碼1】 /cStart做int型轉(zhuǎn)換據(jù)運算,并將結(jié)果賦值給startPosition 【代碼2】 /cEnd做int型轉(zhuǎn)換運算,并將結(jié)果賦值給endPosition System.out.println("希臘字母''在unicode表中的順序位置:"+(int)c); System.out.println("希臘字母表:"); for(int i=star
10、tPosition;i<=endPosition;i+) char c='0' 【代碼3】 /i做char型轉(zhuǎn)換運算,并將結(jié)果賦值給c System.out.print(" "+c);if(i-startPosition+1)%10=0) System.out.println(""); 實驗2 回文數(shù)1答案:【代碼1】: number<=99999&&number>=1【代碼2】: d5=number/10000;【代碼3】: d4=number%10000/1000;【代碼4】: d3=number%1
11、000/100;【代碼5】: d5!=0【代碼6】: d1=d5&&d2=d4【代碼7】: d4!=0【代碼8】: d1=d4&&d2=d3【代碼9】: d3!=0【代碼10】:d1=d32模板代碼 Number.javaimport javax.swing.JOptionPane;public class Number public static void main(String args) int number=0,d5,d4,d3,d2,d1; String str=JOptionPane.showInputDialog("輸入一個1至99999
12、之間的數(shù)"); number=Integer.parseInt(str); if(【代碼1】) /判斷number在1至99999之間的條件 【代碼2】 /計算number的最高位(萬位)d5 【代碼3】 /計算number的千位d4 【代碼4】 /計算number的百位d3 d2=number%100/10; d1=number%10; if(【代碼5】) /判斷number是5位數(shù)的條件 System.out.println(number+"是5位數(shù)"); if(【代碼6】) /判斷number是回文數(shù)的條件 System.out.println(number
13、+"是回文數(shù)"); else System.out.println(number+"不是回文數(shù)"); else if(【代碼7】) /判斷number是4位數(shù)的條件 System.out.println(number+"是4位數(shù)"); if(【代碼8】) /判斷number是回文數(shù)的條件碼 System.out.println(number+"是回文數(shù)"); else System.out.println(number+"不是回文數(shù)"); else if(【代碼9】) /判斷number是3位數(shù)
14、的條件 System.out.println(number+"是3位數(shù)"); if(【代碼10】) /判斷number是回文數(shù)的條件 System.out.println(number+"是回文數(shù)"); else System.out.println(number+"不是回文數(shù)"); else if(d2!=0) System.out.println(number+"是2位數(shù)"); if(d1=d2) System.out.println(number+"是回文數(shù)"); else System.
15、out.println(number+"不是回文數(shù)"); else if(d1!=0) System.out.println(number+"是1位數(shù)"); System.out.println(number+"是回文數(shù)"); else System.out.printf("n%d不在1至99999之間",number); 實驗3 猜數(shù)字游戲1答案:【代碼1】: yourGuess!=realNumber【代碼2】: yourGuess>realNumber 【代碼3】: yourGuess<realN
16、umber 2模板代碼 GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber public static void main (String args ) System.out.println("給你一個1至100之間的整數(shù),請猜測這個數(shù)"); int realNumber=(int)(Math.random()*100)+1; int yourGuess=0; String str=JOptionPane.showInputDialog("輸入您的猜測:"); y
17、ourGuess=Integer.parseInt(str); while(【代碼1】) /循環(huán)條件 if(【代碼2】) /條件代碼 str=JOptionPane.showInputDialog("猜大了,再輸入你的猜測:"); yourGuess=Integer.parseInt(str); else if(【代碼3】) /條件代碼 str=JOptionPane.showInputDialog("猜小了,再輸入你的猜測:"); yourGuess=Integer.parseInt(str); System.out.println("猜對了
18、!"); 上機實踐3 類與對象實驗1 三角形、梯形和圓形的類封裝1答案:【代碼1】: sideA=a;sideB=b;sideC=c;【代碼2】: a+b>c&&a+c>b&&c+b>a 【代碼3】: boo=true; 【代碼4】: boo=false; 【代碼5】: if(boo) length=sideA+sideB+sideC; return length; else System.out.println("不是一個三角形,不能計算周長"); return 0; 【代碼6】: sideA=a;sideB=b
19、;sideC=c;【代碼7】: a+b>c&&a+c>b&&c+b>a【代碼8】: boo=true;【代碼9】: boo=false;【代碼10】:above=a; bottom=b; height=h;【代碼11】: area=(above+bottom)/2*height; return area;【代碼12】: radius=r;【代碼13】: return 3.14*radius*radius;【代碼14】: return 3.14*2*radius;【代碼15】: circle=new Circle(10);【代碼16】: tran
20、gle=new Trangle(3,4,5);【代碼17】: lader=new Lader(3,4,10);【代碼18】: length=circle.getLength();【代碼19】: area=circle.getArea();【代碼20】: length=trangle.getLength();【代碼21】: area=trangle.getArea();【代碼22】: area=lader.getArea();【代碼23】: trangle.setABC(12,34,1);【代碼24】: area=trangle.getArea();【代碼25】: length=trangle.
21、getLength();2模板代碼 AreaAndLength.javaclass Trangle double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) 【代碼1】 /參數(shù)a,b,c分別賦值給sideA,sideB,sideC if(【代碼2】) /a,b,c構(gòu)成三角形的條件表達(dá)式 【代碼3】 /給boo賦值。 else 【代碼4】 /給boo賦值。 double getLength() 【代碼5】 /方法體,要求計算出length的值并返回 public do
22、uble getArea() if(boo) double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; return area; else System.out.println("不是一個三角形,不能計算面積"); return 0; public void setABC(double a,double b,double c) 【代碼6】 /參數(shù)a,b,c分別賦值給sideA,sideB,sideC if(【代碼7】) /a,b,c構(gòu)成三角形的條件表達(dá)式 【代碼8】
23、/給boo賦值。 else 【代碼9】 /給boo賦值。 class Lader double above,bottom,height,area; Lader(double a,double b,double h) 【代碼10】 /方法體,將參數(shù)a,b,c分別賦值給above,bottom,height double getArea() 【代碼11】 /方法體,,要求計算出area返回 class Circle double radius,area; Circle(double r) 【代碼12】 /方法體 double getArea() 【代碼13】 /方法體,要求計算出area返回 do
24、uble getLength() 【代碼14】 /getArea方法體的代碼,要求計算出length返回 void setRadius(double newRadius) radius=newRadius; double getRadius() return radius; public class AreaAndLength public static void main(String args) double length,area; Circle circle=null; Trangle trangle; Lader lader; 【代碼15】 /創(chuàng)建對象circle 【代碼16】 /創(chuàng)
25、建對象trangle。 【代碼17】 /創(chuàng)建對象lader 【代碼18】 / circle調(diào)用方法返回周長并賦值給length System.out.println("圓的周長:"+length); 【代碼19】 / circle調(diào)用方法返回面積并賦值給area System.out.println("圓的面積:"+area); 【代碼20】 / trangle調(diào)用方法返回周長并賦值給length System.out.println("三角形的周長:"+length); 【代碼21】 / trangle調(diào)用方法返回面積并賦值給are
26、a System.out.println("三角形的面積:"+area); 【代碼22】 / lader調(diào)用方法返回面積并賦值給area System.out.println("梯形的面積:"+area); 【代碼23】 / trangle調(diào)用方法設(shè)置三個邊,要求將三個邊修改為12,34,1。 【代碼24】 / trangle調(diào)用方法返回面積并賦值給area System.out.println("三角形的面積:"+area); 【代碼25】 / trangle調(diào)用方法返回周長并賦值給length System.out.println
27、("三角形的周長:"+length); 實驗2 實例成員與類成員1答案:【代碼1】: float a; 【代碼2】: static float b; 【代碼3】: this.a=a; 【代碼4】: this.b=b;【代碼5】: A.b=100; 【代碼6】: A.inputB(); 【代碼7】: cat.setA(200);【代碼8】: cat.setB(400);【代碼9】: dog.setA(150);【代碼10】:dog.setB(300);【代碼11】:cat.inputA();【代碼12】:cat.inputB();【代碼13】:dog.inputA();【代碼
28、14】:dog.inputB();2模板代碼 Example.javaclass A 【代碼1】 /聲明一個float型實例變量a 【代碼2】 /聲明一個float型類變量b,即static變量b void setA(float a) 【代碼3】 /將參數(shù)a的值賦值給成員變量a void setB(float b) 【代碼4】 /將參數(shù)b的值賦值給成員變量b float getA() return a; float getB() return b; void inputA() System.out.println(a); static void inputB() System.out.prin
29、tln(b); public class Example public static void main(String args) 【代碼5】 /通過類名操作類變量b,并賦值100 【代碼6】 /通過類名調(diào)用方法inputB() A cat=new A(); A dog=new A(); 【代碼7】 /cat象調(diào)用方法setA(int a)將cat的成員a的值設(shè)置為200 【代碼8】 /cat調(diào)用方法setB(int b)將cat的成員b的值設(shè)置為400 【代碼9】 /dog象調(diào)用方法setA(int a)將dog的成員a的值設(shè)置為150 【代碼10】 /dog調(diào)用方法setB(int b)將
30、dog的成員b的值設(shè)置為300 【代碼11】 /cat調(diào)用inputA()。 【代碼12】 /cat調(diào)用inputB()。 【代碼13】 /dog調(diào)用inputA()。 【代碼14】 /dog調(diào)用inputB()。 實驗3 使用package語句與import語句1答案:無2模板代碼 SquareEquation.javapackage tom.jiafei;public class SquareEquation double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,double b,doub
31、le c) this.a=a; this.b=b; this.c=c; if(a!=0) boo=true; else boo=false; public void getRoots() if(boo) System.out.println("是一元2次方程"); double disk=b*b-4*a*c; if(disk>=0) root1=(-b+Math.sqrt(disk)/(2*a); root2=(-b-Math.sqrt(disk)/(2*a); System.out.printf("方程的根:%f,%fn",root1,root2
32、); else System.out.printf("方程沒有實根n"); else System.out.println("不是一元2次方程"); public void setCoefficient(double a,double b,double c) this.a=a; this.b=b; this.c=c; if(a!=0) boo=true; else boo=false; SunRise.javaimport tom.jiafei.*;class SunRise public static void main(String args ) S
33、quareEquation equation=new SquareEquation(4,5,1); equation.getRoots(); equation.setCoefficient(-3,4,5); equation.getRoots(); 上機實踐4 繼承與接口實驗1 繼承1答案:【代碼1】: public void speakHello() System.out.println("你好,吃飯了嗎?"); 【代碼2】: public void averageHeight() height=173; System.out.println("中國人的平均身高
34、:"+height+"厘米"); 【代碼3】: public void averageWeight() weight=67.34; System.out.println("中國人的平均體重:"+weight+"公斤"); 【代碼4】: System.out.println("坐如鐘,站如松,睡如弓");【代碼5】: public void speakHello() System.out.println("How do You do"); 【代碼6】: public void avera
35、geHeight() height=188; System.out.println("Amerian Average height:"+height+" cm"); 【代碼7】: public void averageWeight() weight=80.23; System.out.println("Amerian Average weight:"+weight+" kg"); 【代碼8】: System.out.println("直拳、鉤拳");【代碼9】: public void spea
36、kHello() System.out.println("您好"); 【代碼10】: public void averageHeight() height=16; System.out.println("北京人的平均身高:"+height+"厘米"); 【代碼11】: public void averageWeight() weight=6; System.out.println("北京人的平均體重:"+weight+"公斤"); 【代碼12】: System.out.println("
37、;京劇術(shù)語");2模板代碼 Example.javaclass People protected double weight,height; public void speakHello() System.out.println("yayawawa"); public void averageHeight() height=173; System.out.println("average height:"+height); public void averageWeight() weight=70; System.out.println(&qu
38、ot;average weight:"+weight); class ChinaPeople extends People 【代碼1】 /重寫public void speakHello()方法,要求輸出類似“你好,吃了嗎”這樣的 /漢語信息【代碼2】 /重寫public void averageHeight()方法,要求輸出類似 /“中國人的平均身高:168.78厘米”這樣的漢語信息【代碼3】 /重寫public void averageWeight()方法, /要求輸出類似“中國人的平均體重:65公斤”這樣的漢語信息 public void chinaGongfu() 【代碼4】
39、/輸出中國武術(shù)的信息,例如:"坐如鐘,站如松,睡如弓"等 class AmericanPeople extends People【代碼5】 /重寫public void speakHello()方法,要求輸出類似 /“How do you do”這樣的英語信息?!敬a6】 /重寫public void averageHeight()方法 【代碼7】 /重寫public void averageWeight()方法 public void americanBoxing() 【代碼8】/輸出拳擊的信息,例如,“直拳”、“鉤拳”等 class BeijingPeople exte
40、nds ChinaPeople 【代碼9】 /重寫public void speakHello()方法,要求輸出類似“您好”這樣的漢語信息 【代碼10】 /重寫public void averageHeight()方法 【代碼11】 /重寫public void averageWeight()方法 public void beijingOpera() 【代碼12】/輸出京劇的信息 public class Example public static void main(String args) ChinaPeople chinaPeople=new ChinaPeople(); America
41、nPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello(); americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); am
42、ericanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); 實驗2 上轉(zhuǎn)型對象1答案:【代碼1】: public double earnings() return 50000.456; 【代碼2】: public double earnings() return 12*2300; 【代碼3】: p
43、ublic double earnings() return 52*500; 【代碼4】: for(int i=0;i<employee.length;i+) salaries=salaries+employeei.earnings(); 2模板代碼 HardWork.javaabstract class Employee public abstract double earnings();class YearWorker extends Employee 【代碼1】 /重寫earnings()方法class MonthWorker extends Employee 【代碼2】 /重寫earnings()方法。class WeekWorker extends Employee 【代碼3】 /重寫earnings()方法。class Company Employ
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球及中國汽車研發(fā)服務(wù)行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 保加利亞語中的數(shù)字表達(dá)文化論文
- 2025-2030全球及中國水翼圍板行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 2025-2030全球及中國插入汽車節(jié)溫器行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 2025-2030全球及中國心臟成像軟件行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 2025-2030全球及中國基于智能手機的汽車信息娛樂系統(tǒng)行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 商務(wù)英語中的語言智能決策技術(shù)應(yīng)用論文
- 世界語與匈牙利語的語法對比論文
- 2025年GMAT邏輯推理實戰(zhàn)技巧模擬試卷
- 2025年初中地理環(huán)境與可持續(xù)發(fā)展模擬試卷及詳細(xì)答案解析
- 土方回填施工記錄表
- 植物根莖葉課件
- 反生產(chǎn)行為講稿
- 施工現(xiàn)場消防安全技術(shù)交底
- 冀教版二年級語文下冊看圖寫話專項加深練習(xí)題含答案
- 焊接工藝評定及焊接工藝技術(shù)評定管理標(biāo)準(zhǔn)
- 洗衣房各崗位工作流程
- 基于SWOT分析的義烏市現(xiàn)代物流業(yè)發(fā)展研究
- 基于自適應(yīng)濾波對音頻信號的處理詳解
- 油浸式變壓器工藝文件匯編
- 并網(wǎng)前設(shè)備電氣試驗繼電保護整定通訊聯(lián)調(diào)完整資料
評論
0/150
提交評論