Java2實(shí)用教程第3版實(shí)驗(yàn)代碼及答案_第1頁
Java2實(shí)用教程第3版實(shí)驗(yàn)代碼及答案_第2頁
Java2實(shí)用教程第3版實(shí)驗(yàn)代碼及答案_第3頁
Java2實(shí)用教程第3版實(shí)驗(yàn)代碼及答案_第4頁
Java2實(shí)用教程第3版實(shí)驗(yàn)代碼及答案_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Java 2實(shí)用教程(第三版)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答清華大學(xué)出版社(編著 耿祥義 張躍平)實(shí)驗(yàn)?zāi)0娲a及答案建議使用文檔結(jié)構(gòu)圖(選擇Word菜單視圖文檔結(jié)構(gòu)圖)上機(jī)實(shí)踐1 初識(shí)JAVA3實(shí)驗(yàn)1 一個(gè)簡單的應(yīng)用程序3實(shí)驗(yàn)2 一個(gè)簡單的Java Applet程序3實(shí)驗(yàn)3 聯(lián)合編譯4上機(jī)實(shí)踐2 基本數(shù)據(jù)類型與控制語句5實(shí)驗(yàn)1 輸出希臘字母表5實(shí)驗(yàn)2 回文數(shù)6實(shí)驗(yàn)3 猜數(shù)字游戲8上機(jī)實(shí)踐3 類與對(duì)象9實(shí)驗(yàn)1 三角形、梯形和圓形的類封裝9實(shí)驗(yàn)2 實(shí)例成員與類成員12實(shí)驗(yàn)3 使用package語句與import語句14上機(jī)實(shí)踐4 繼承與接口16實(shí)驗(yàn)1 繼承16實(shí)驗(yàn)2 上轉(zhuǎn)型對(duì)象19實(shí)驗(yàn)接口回調(diào)21上機(jī)實(shí)踐5

2、字符串、時(shí)間與數(shù)字23實(shí)驗(yàn)1 String類的常用方法23實(shí)驗(yàn)2 比較日期的大小24實(shí)驗(yàn)3 處理大整數(shù)25上機(jī)實(shí)踐6 組件及事件處理26實(shí)驗(yàn)1 算術(shù)測試26實(shí)驗(yàn)2 信號(hào)燈29實(shí)驗(yàn)3 布局與日歷31上機(jī)實(shí)踐7 組件及事件處理235實(shí)驗(yàn)1 方程求根35實(shí)驗(yàn)2 字體對(duì)話框38實(shí)驗(yàn)3 英語單詞拼寫訓(xùn)練41上機(jī)實(shí)踐8 多線程45實(shí)驗(yàn)1 漢字打字練習(xí)45實(shí)驗(yàn)2 旋轉(zhuǎn)的行星47實(shí)驗(yàn)3 雙線程接力51上機(jī)實(shí)踐9 輸入輸出流54實(shí)驗(yàn)1 學(xué)讀漢字54實(shí)驗(yàn)2 統(tǒng)計(jì)英文單詞字57實(shí)驗(yàn)2 讀取Zip文件61上機(jī)實(shí)踐10 JAVA 中的網(wǎng)絡(luò)編程62實(shí)驗(yàn)1 讀取服務(wù)器端文件62實(shí)驗(yàn)2 使用套接字讀取服務(wù)器端對(duì)象64實(shí)驗(yàn)3

3、基于UDP的圖像傳輸67上機(jī)實(shí)踐11 數(shù)據(jù)結(jié)構(gòu)71實(shí)驗(yàn)1 掃雷小游戲71實(shí)驗(yàn)2 排序與查找76實(shí)驗(yàn)3 使用TreeSet排序77上機(jī)實(shí)踐12 JAVA SWING79實(shí)驗(yàn)1 JLayeredPane分層窗格79實(shí)驗(yàn)2 使用表格顯示日歷80實(shí)驗(yàn)3 多文檔界面(MDI)83上機(jī)實(shí)踐1 初識(shí)Java實(shí)驗(yàn)1 一個(gè)簡單的應(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" 實(shí)驗(yàn)2 一個(gè)簡單的Java Applet程序1答案:【代碼1】: g.drawString("這是一個(gè)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中繪制一行文字:“這是一個(gè)Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋體",Font.BOLD,36); 【代碼2】/在Java Applet中繪制一行文字:“我

6、改變了字體” 實(shí)驗(yàn)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" 上機(jī)實(shí)踐2 基本數(shù)據(jù)類型與控制語句實(shí)驗(yàn)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ù)運(yùn)算,并將結(jié)果賦值給startPosition 【代碼2】 /cEnd做int型轉(zhuǎn)換運(yù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)換運(yùn)算,并將結(jié)果賦值給c System.out.print(" "+c);if(i-startPosition+1)%10=0) System.out.println(""); 實(shí)驗(yàn)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("輸入一個(gè)1至99999

12、之間的數(shù)"); number=Integer.parseInt(str); if(【代碼1】) /判斷number在1至99999之間的條件 【代碼2】 /計(jì)算number的最高位(萬位)d5 【代碼3】 /計(jì)算number的千位d4 【代碼4】 /計(jì)算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); 實(shí)驗(yàn)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("給你一個(gè)1至100之間的整數(shù),請(qǐng)猜測這個(gè)數(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("猜對(duì)了

18、!"); 上機(jī)實(shí)踐3 類與對(duì)象實(shí)驗(yàn)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("不是一個(gè)三角形,不能計(jì)算周長"); 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】 /方法體,要求計(jì)算出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("不是一個(gè)三角形,不能計(jì)算面積"); 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】 /方法體,,要求計(jì)算出area返回 class Circle double radius,area; Circle(double r) 【代碼12】 /方法體 double getArea() 【代碼13】 /方法體,要求計(jì)算出area返回 do

24、uble getLength() 【代碼14】 /getArea方法體的代碼,要求計(jì)算出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)建對(duì)象circle 【代碼16】 /創(chuàng)

25、建對(duì)象trangle。 【代碼17】 /創(chuàng)建對(duì)象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è)置三個(gè)邊,要求將三個(gè)邊修改為12,34,1。 【代碼24】 / trangle調(diào)用方法返回面積并賦值給area System.out.println("三角形的面積:"+area); 【代碼25】 / trangle調(diào)用方法返回周長并賦值給length System.out.println

27、("三角形的周長:"+length); 實(shí)驗(yàn)2 實(shí)例成員與類成員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】 /聲明一個(gè)float型實(shí)例變量a 【代碼2】 /聲明一個(gè)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()。 實(shí)驗(yàn)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("方程沒有實(shí)根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(); 上機(jī)實(shí)踐4 繼承與接口實(shí)驗(yàn)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”這樣的英語信息。【代碼6】 /重寫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(); 實(shí)驗(yàn)2 上轉(zhuǎn)型對(duì)象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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論