java程序設(shè)計方案宋波主編課后答案打印版_第1頁
java程序設(shè)計方案宋波主編課后答案打印版_第2頁
java程序設(shè)計方案宋波主編課后答案打印版_第3頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、java程序設(shè)計基于JDK6和NetBeans實現(xiàn)課后答案第一章課后作業(yè)答案1. 試說明 Java Application 與 Java Applet 的不同之處。答案:Java的用戶程序分為兩類:Java Application和Java Applet,這兩類程序在組成結(jié)構(gòu)和執(zhí)行機(jī)制 上都有一定的差異,主要體現(xiàn)在以下幾方面:(1 )運(yùn)行方式不同。Java Application是完整的程序,可以獨(dú)立運(yùn)行; Java Applet程序不能單獨(dú)運(yùn)行, 它必須嵌入到用 HTML語言編寫的 Web頁面中,通過與 Java兼容的瀏覽器來控制執(zhí)行。(2 )運(yùn)行工具不同。Java Application程

2、序被編譯以后,用普通的Java解釋器就可以使其邊解釋邊執(zhí)行;而Java Applet必須通過網(wǎng)絡(luò)瀏覽器或者Applet觀察器才能執(zhí)行。(3) 程序結(jié)構(gòu)不同。每個 Java Application程序必定含有一個并且只有一個main()方法,程序執(zhí)行時,首先尋找main()方法,并以此為入口點(diǎn)開始運(yùn)行;而 Applet程序則沒有含 main()方法的主類,這也正 是Applet程序不能獨(dú)立運(yùn)行的原因。盡管Applet沒有含有main()方法的主類,但 Applet 一定有一個從派生的類,它是由 Java系統(tǒng)提供的。(4) 受到的限制不同。Java Application程序可以設(shè)計成能進(jìn)行各種操

3、作的程序,包括讀 /寫文件的操 作,但是Java Applet對站點(diǎn)的磁盤文件既不能進(jìn)行讀操作,也不能進(jìn)行寫操作。然后,由于Applet的引入,使 Web頁面具有動態(tài)多媒體效果和可互交性能,這使由名為超文本、實為純文本的HTML語言編寫成的Web頁面真正具有了超文本功能,不但可以顯示文本信息,而且還可以有各種圖片效果和動態(tài)圖形效果,從而使頁面顯得生動美麗;另外, Applet使Web頁面增加了按鈕等功能,從而增加 了交互性。2. Java程序的最小程序單位是什么? 答案:Java語言以類作為程序的基本單位。3. 下載并安裝JDK 1.6以及Java API文檔,編譯并運(yùn)行例1-1。答案:實踐題

4、。4. 編寫一個Java應(yīng)用程序,在屏幕上輸出“歡迎進(jìn)入Java奇妙世界! ”的字符串。答案:public class HelloWorld public static void main( Stri ng args) (” 歡迎進(jìn)入 Java 奇妙世界!");5. 下面程序的功能是:計算并打印輸出兩個整數(shù)a和b之間的最大值,請?zhí)羁铡?1 public class Max0802public static void main (String args)09else10max=b;03int max;1104int a=3;12System.out.pri ntln (max);05i

5、nt b=5;1306if(a>b)14 07max=a【運(yùn)行結(jié)果】5第2章Java語言基礎(chǔ)1.請完成下面程序,使得程序的輸出結(jié)果如右圖所示。01.public class LoopC on trol *02.public static void main( Str in g args) * *03.outer: for (int i = 0; i < 10; i+) * * *04.for (int j = 0; j < 10; j+) * * * *05.if (j > i) * * * *06.Svstem.out.println();* * * *07.cont

6、inue outer;* * * *08.* * * *09.System.out.pri nt(" * ");* * * *10.* * * *.編與程序,輸出英文子母AZ及其對應(yīng)的Uni code編碼值。01.public class Char Uni codeTest 02.public static void main( Str in g args) 03.for(char c='A'c<='Z'c+)04.System.out.pr in t("Character: "+c);05.Sy

7、stem.out.pri ntln ("t"+"U ni code: "+(i nt)c);06.07.08.3.編寫程序,計算1!+2!+3!+20!的和。01.public class NestedLoopTest 09.02.public static void main( Str in g args) 10.sum=sum+fac;03.long sum=0;11.04.long fac;12.05.for(i nt i=1;i<21;i+)System.out.pri ntln( "1!+2!+.+20!="+sum)

8、;06.fac=1;13.07.for(i nt j=1;j<=i;j+)14.08.fac=fac*j;401.02.03.04.05.06.07.08.501.02.03.04.05.06.07.08.09.10.1.編寫程序,隨機(jī)產(chǎn)生一個( 50, 100)之間的整數(shù)并判斷其是否為素數(shù)。public class RandomPrimeTest 09.if(j=i)public static void main(String args) 10.System.out.println(i+" is a primeint i=(int)(Math.random()*49+51);

9、number");System.out.println("The random11.elsenumber is : "+i);12.System.out.println(i+" is not aint j;prime number");for(j=2;j<i;j+)13.if(i%j=0) break;14.編寫程序,輸出從 1 到 9 的乘法口訣表。public class MultiTableTest public static void main(String args) for(int i=1;i<=9;i+) for(in

10、t j=1;j<=i;j+) System.out.print(i+"*"+j+"="+i*j+"t");System.out.println();第 4章Java 面向?qū)ο蟾呒壧匦灾赋鱿旅娉绦蛑谐霈F(xiàn)編譯錯誤的行數(shù)及其原因。01. public class Outer 02. private class Inner 03.static String name=new String("Inner");04.public void method()05. System.out.println(name);06.0

11、7. 08. public static void main(String args) 09.Inner a=new Outer().new Inner();10. a.method();11. 12. 上述代碼中第 3 行會出現(xiàn)編譯錯誤,內(nèi)部類 Inner 中的成員變量不能定義為 static2.請完成下面程序,使得程序可以輸出枚舉常量值RED、GREEN 和 BLUE。01.public class Ball 07.for(i nt i=0;i<t.le ngth;i+) 02.publicenumT 08.System.out.pri ntl n(ti);03.RED, GREEN

12、, BLUE09.04.10.05.public static void main( Str in g args) 11.06.Ball.T t=Ball.T.values();3.請完成下面程序,使得程序可以輸出"hi"。01.public class Car 09.02.private class Engine 10.void go() 03.Engin e() 11.new Engin e();04.drive();12.05.13.void drive() 06.14.System.out.pr intln ("hi");07.public st

13、atic void main( Str in g args) 15.08.new Car().go();16.4.應(yīng)用抽象類及繼承編寫程序,輸出本科生及研究生的成績等級。要求:首先設(shè)計抽象類Stude nt,它包含學(xué)生的一些基本信息:姓名、學(xué)生類型、三門課程的成績和成績等級等。其次設(shè)計Stude nt類的兩個子類:本科生類Undergraduate和研究生類 Postgraduate,二者在計算成績等級時有所區(qū)別,具體計算標(biāo)準(zhǔn)如表所示。最后創(chuàng)建測試類進(jìn)行測試。學(xué)生成績等級本科生標(biāo)準(zhǔn)研究生標(biāo)準(zhǔn)平均分85-100 :優(yōu)秀平均分90-100 :優(yōu)秀平均分75-85 :良好平均分80-90 : 良好平

14、均分65-75 : 中等平均分70-80 : 中等平均分60-65 : 及格平均分60-70 : 及格平均分60以下:不及格平均分60以下:不及格/抽象類Student01.abstract class Stude nt 10.public void setName(Stri ng n ame)02.final static int COURSE_COUNT=3;11.this .n ame=n ame;03.private String name;12.04.private String type;13.public Stri ng getName()05.private in t scor

15、es;14.return n ame;06.private String grade;15.07.public Stude nt(Str ing n ame)16.public void setType(Stri ng type)08.this .n ame=n ame;17.this.type=type;09.18.19.public String getType()28.public void setGrade(String grade)20.return type;29.this.grade=grade;21.30.22.public void setScores(int scores)

16、31.public String getGrade()23.this.scores=scores;32.return grade;24.33.25.public int getScores()34.public abstract String26.return scores;calculateGrade();27.35./本科生類01.public class Undergraduate extends Student15.average=sum/Student.COURSE_CO02.public Undergraduate(StringUNT;name,int scores)16.if(a

17、verage>=85)03.super(name);17.return " 優(yōu)秀 "04.this.setType(" 本科生 ");18.else if(average>=75)05.this.setScores(scores);19.return " 良好 "06.20.else if(average>=65)07.public String calculateGrade()21.return " 中等 "08.int average;22.else if(average>=60)09.

18、int sum=0;23.return " 及格 "10.int scores;24.else11.scores=this.getScores();25.return " 不及格 "12.for(int26.i=0;i<Student.COURSE_COUNT;i+)27.13. sum+=scoresi;14. /研究生類01.publicclass Postgraduate sum=0;S scores;02.public Postgraduate(String name,int11.scor

19、es=this.getScores();scores)12.for(int03.super(name);i=0;i<Student.COURSE_COUNT;i+)04.this.setType(" 研究生 ");13.sum+=scoresi;05.this.setScores(scores);14.06.15.07.public String calculateGrade()average=sum/Student.COURSE_CO08.int average;UNT;16.if(average>=90)22.else if(average>=60)1

20、7.return " 優(yōu)秀 "23.return " 及格 "18.else if(average>=80)24.else19.return " 良好 "25.return " 不及格 "20.else if(average>=70)26. 21.return " 中等 "27. /測試類01. public class StudentTest 16.si=new Postgraduate(" 研02.public static void main(String究生 &qu

21、ot;+(i-4),scoresi);args)17.03.Student s=new Student10;si.setGrade(si.calculateGrade();04.int scores=10Student.COURSE_COUNT;19.int c;05.for(int i=0;i<5;i+)20.for(int i=0;i<10;i+)06.for(int21.j=0;j<Student.COURSE_COUNT;j+)System.out.print(si.getName()+"t");07.22.scoresij=(i

22、nt)(Math.random()*61System.out.print(si.getType()+"t");+40);23.c=si.getScores();08.24.for(int09.si=new Undergraduate("j=0;j<Student.COURSE_COUNT;j+)本科生 "+(i+1),scoresi);25.10.System.out.print(cj+"t");si.setGrade(si.calculateGrade();2.for(int i=5;i<10;i+)

23、System.out.println(si.getGrade();13.for(int28.j=0;j<Student.COURSE_COUNT;j+)29.14.30.scoresij=(int)(Math.random()*61+40);15. 運(yùn)行結(jié)果:本科生1本科生939068良好本科生5本科生547853及格本科生2本科生768958中等研究生1研究生836186中等本科生3本科生796690良好研究生2研究生915785中等本科生4本科生958598優(yōu)秀研究生3研究生709655中等5. 應(yīng)用枚舉類編寫程序,根據(jù)第 4 題的要求輸出本科生及研究生的成績等級。要求:將學(xué)生成績等

24、 級定義成枚舉類,其它功能不變,完成類的定義并進(jìn)行測試。/抽象類01.abstract class Student 27.02./枚舉類定義28.public String getName() 03.static enum Grade 29.return name;04.DISTINCTION(" 優(yōu)秀 "),30.05.MERIT(" 良好 "),31.public void setType(String type) 06.AVERAGE(" 中等 "),32.this.type = type;07.PASS(” 及格")

25、,33.08.FAIL(" 不及格 ");34.public String getType() 09.private String scoreGrade;35.return type;10.Grade(String scoreGrade) 36.11.this.scoreGrade =37.public void setScores(int scores) scoreGrade;38.this.scores = scores;12.39.13.public String getScoreGrade() 40.public int getScores() 14.return

26、scoreGrade;41.return scores;3.public void setGrade(Grade sgrade)17.final static int COURSE_COUNT =3;44.this.sgrade = sgrade;18.private String name;45.19.private String type;46.public Grade getGrade() 20.private int scores;47.return sgrade;21.private Grade sgrade;48.22.public Student(String

27、 name) 49.public abstract G = name;calculateGrade();24.50. 研究生 4 研究生 43 75 62 及格研究生 5 研究生 43 80 61 及格25.public void setName(String name) 26. = name; /本科生類01.public class Undergraduate extends04.this.setType(" 本科生 ");Student05.this.setScores(scores);02.publicUnderg

28、raduate(S,int scores)07.public Grade calculateGrade()03.super(name);08.int average;09.int sum=0;Grade.DISTINCTION;10.int scores;18.else if(average>=75)11.scores=this.getScores();19.return Grade.MERIT;12.for(int20.else if(average>=65)i=0;i<Student.COURSE_COUNT;i+)21.return Grade.

29、A VERAGE13.sum+=scoresi;22.else if(average>=60)14.23.return Grade.PASS;15.24.elseaverage=sum/Student.COURSE_CO25.return Grade.FAIL;UNT;26.16.if(average>=85)27.17. return/研究生類01.public class Postgraduate extends15.Studentaverage=sum/Student.COURSE_CO02.public Postgraduate(String name,intUNT;sco

30、res)16.if(average>=90)03.super(name);17.return04.this.setType(" 研究生 ");Grade.DISTINCTION;05.this.setScores(scores);18.else if(average>=80)06.19.return Grade.MERIT;07.public Grade calculateGrade()20.else if(average>=70)08.int average;21.return Grade.A VERAGE;09.int sum=0;22.else if

31、(average>=60)10.int scores;23.return Grade.PASS;11.scores=this.getScores();24.else12.for(int25.return Grade.FAIL;i=0;i<Student.COURSE_COUNT;i+)26.13.sum+=scoresi;27.14. /測試類01.public class StudentTest 05.for(int i=0;i<5;i+)02.public static void main(String06.for(intargs)j=0;j<Student.COU

32、RSE_COUNT;j+)03.Student s=new Student10;07.04.int scores=newscoresij=(int)(Math.random()*61int10Student.COURSE_COUNT;+40);08.19.int c;09.si=new Undergraduate("20.for(int i=0;i<10;i+)本科生 "+(i+1),scoresi);21.10.System.out.print(si.getName()+"t");si.setGrade(si.calculateGrade();2

33、2.11.System.out.print(si.getType()+"t");12.for(int i=5;i<10;i+)23.c=si.getScores();13.for(int24.for(intj=0;j<Student.COURSE_COUNT;j+)j=0;j<Student.COURSE_COUNT;j+)14.25.scoresij=(int)(Math.random()*61System.out.print(cj+"t");+40);6.si=new Postgraduate("研Sy

34、stem.out.println(si.getGrade().getScor究生 "+(i-4),scoresi);eGrade();17.28.si.setGrade(si.calculateGrade();. 應(yīng)用抽象類和接口編寫程序,根據(jù)第 4 題的要求輸出本科生及研究生的成績等級。要求:首先設(shè) 計一個接口,接口中包含用于計算學(xué)生成績等級的抽象方法,設(shè)計兩個類分別實現(xiàn)上述接口,這 兩個類分別表示本科生及研究生的成績等級標(biāo)準(zhǔn)。其次設(shè)計抽象類 Student 及其兩個子類本科生 類Undergraduate和研究生類Postgraduate,兩個子類分別設(shè)置各自

35、的成績等級計算標(biāo)準(zhǔn)。最后創(chuàng) 建測試類進(jìn)行測試。/定義接口01. public interface GradeCalculate 02. public String getGrade(int scores);03. /本科生成績等級計算標(biāo)準(zhǔn)01.publicclassUnderGradeCalculateimplements GradeCalculate 08.average=sum/Student.COURSE_CO02.public String getGrade(int scores)UNT;03.int average;09.if(average>=85)04.int sum=0;

36、10.return "優(yōu)秀 "05.for(int11.else if(average>=75)i=0;i<Student.COURSE_COUNT;i+)12.return "良好 "06.sum+=scoresi;13.else if(average>=65)07.14.return "中等 "15.else if(average>=60)06.private String grade;16.return "及格 "07.private GradeCalculate criterion;

37、17.else08.public Student(String name)18.return " 不及格 "09.=name;1.public void setName(String name)12.=name;/研究生成績等級計算標(biāo)準(zhǔn)13.01.public class PostGradeCalculate14.public String getName()implements GradeCalculate 15.return name;02.public String getGrade(int scores)16.

38、03.int average;17.public void setType(String type)04.int sum=0;18.this.type=type;05.for(int19.i=0;i<Student.COURSE_COUNT;i+)20.public String getType()06.sum+=scoresi;21.return type;07.22.08.23.public void setScores(int scores)average=sum/Student.COURSE_CO24.this.scores=scores;UNT;25.09.if(average

39、>=90)26.public int getScores()10.return " 優(yōu)秀 "27.return scores;11.else if(average>=80)28.12.return " 良好 "29.public void setGrade(String grade)13.else if(average>=70)30.this.grade=grade;14.return " 中等 "31.15.else if(average>=60)32.public String getGrade()16.r

40、eturn "及格 "33.return grade;17.else34.18.return " 不及格 "35.public void19.setCriterion(GradeCalculate criterion)20.36.this.criterion=criterion;37./抽象類38.public GradeCalculate01.abstract class Student getCriterion()02.final static int COURSE_COUNT=3;39.return criterion;03.private Str

41、ing name;40.04.private String type;41.05.private int scores;/本科生類05.for(int i=0;i<5;i+)01.public class Undergraduate extends06.for(intStudentj=0;j<Student.COURSE_COUNT;j+)02.public Undergraduate(S,int scores)scoresij=(int)(Math.random()*6103.super(name);+40);04.this.setType("

42、本科生 ");08.05.this.setScores(scores);09.si=new Undergraduate("06.this.setCriterion(new本科生 "+(i+1),scoresi);UnderGradeCalculate();10.07.11.for(int i=5;i<10;i+)this.setGrade(this.getCriterion().getG12.for(intrade(scores);j=0;j<Student.COURSE_COUNT;j+)08.13.09.scoresij=(int)(Math.ra

43、ndom()*61+40);/研究生類14.01.public class Postgraduate extends15.si=new Postgraduate(" 研Student究生 "+(i-4),scoresi);02.public Postgraduate(String name,int16.scores)17.int c;03.super(name);18.for(int i=0;i<10;i+)04.this.setType(" 研究生 ");19.05.this.setScores(scores);System.out.print(

44、si.getName()+"t");06.this.setCriterion(new20.PostGradeCalculate();System.out.print(si.getType()+"t");07.21.c=si.getScores();this.setGrade(this.getCriterion().getG22.for(intrade(scores);j=0;j<Student.COURSE_COUNT;j+)08.23.09.System.out.print(cj+"t");24./測試類25.01.publi

45、c class StudentTest System.out.println(si.getGrade();02.public static void main(String26.args)27.03.Student s=new Student10;28.04.int scores=newint10Student.COURSE_COUNT;1. 請在下面程序的劃線處填上適當(dāng)?shù)恼Z句,使程序能夠正常運(yùn)行。public class MyClass public static void main(String args ) trymyMethod();catch(MyExcepti on e)Syste

46、m.out.pri ntl n( e);public static void myMethod( ) throws Exception / 方法中聲明拋出異常 throw ( new MyException();class MyExcepti on exte nds Exception/ 用戶自定義異常類public Stri ng toStri ng( ) return(”用戶自定義的異?!?;2. 編寫程序,要求程序功能:首先輸出這是一個異常處理的例子”,然后在你程序中主動地產(chǎn)生一個ArithmeticException 類型被0除而產(chǎn)生的異常,并用catch語句捕獲這個異常。最后通過Ar

47、ithmeticException類的對象e的方法getMessage()給出異常的具體類型并顯示出來。public class Excepti on Exampublic static void main(String args)int a=10,b=0;double c=0.0;tryc=a/b;System.out.pri ntln (a+"/"+b+"="+c);catch(ArithmeticException e)System.out.pri ntl n( e.getMessage();3. 編寫從鍵盤讀入10個字符放入一個字符數(shù)組,并在屏幕

48、上顯示該數(shù)組的程序,要求處理數(shù)組越界異常(ArraylndexOutOfBoundsException)與輸入 /輸出異常(lOException)。import java.io.*;public class ReadCharspublic static void main(String args)BufferedReader buf=null;System.out.println(" 請輸入十個字符: ");char c=new char10;trybuf=new BufferedReader(new InputStreamReader(System.in);String

49、 text=buf.readLine();for(int i=0;i<text.length();i+) ci=text.charAt(i); System.out.print(ci+" "); catch(ArrayIndexOutOfBoundsException e1)System.out.println("n 輸入字符超出要求 ,只顯示前十個字符 !"); catch(IOException e2)e2.getMessage();4. 根據(jù)書中 5.3 小節(jié)所給的創(chuàng)建自定義異常類的使用格式,編寫一個自定義異常的小程序。 注意:實踐題,答案不

50、唯一。class MyException extends Exception private int idnumber;public MyException(String message,int id)super(message); this.idnumber=id;public int getID()return idnumber;public class ExceptionDemopublic void regist(int num) throws MyExceptionif(num<0)throw new MyException(" 人數(shù)為負(fù)值,不合理 ",3)

51、;System.out.println(" 登記人數(shù) "+num);public void manager()try regist(-100);catch(MyException e)【共享文件 請勿擅自下載上傳加分】System.out.println("登記出錯,類別:"+e.getlD(); (”本次登記操作結(jié)束”);public static void main(String args)Exception Demo ed=new Exception Demo ();ed.ma nager();第6章Java執(zhí)行環(huán)境類1.請完成下面程序,使得程序的輸出結(jié)果

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論