Java實驗教學指導書_第1頁
Java實驗教學指導書_第2頁
Java實驗教學指導書_第3頁
Java實驗教學指導書_第4頁
Java實驗教學指導書_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java程序設計實 驗 教 學 指 導 書撰寫人:軟件教研室審核人:河北經(jīng)貿(mào)大學信息技術學院2009年10月18日前 言一、實驗總體目標隨著Java語言程序設計是信息與計算科學專業(yè)的一門專業(yè)課,主要是給學生講授Java語言的語法知識(包括類的知識點)、面向?qū)ο蟮某绦蛟O計思想與算法。使學生對面向?qū)ο缶幊逃杏斜容^深的了解,并具備這方面的能力。Java程序必須面向?qū)ο?。由于這方面的內(nèi)容比較抽象,須經(jīng)過上機的實踐,計算機是注重實踐的學科,尤其是對編程語言的學習,要注重實際操作。所以上機實踐是很必要的。才能使學生領會面向?qū)ο蟮某绦蛟O計思想。 實驗教學目的主要是使學生進一步深刻理解Java語言基本概念、語

2、法規(guī)則及程序結(jié)構(gòu),熟練掌握Java語言程序設計的基本方法,提高利用Java在網(wǎng)絡環(huán)境下開發(fā)、設計應用程序的能力,從而進一步培養(yǎng)學生的創(chuàng)新能力和解決實際問題的能力。本課程的實驗任務是:1、掌握在利用JDK工具開發(fā)一些簡單程序。2、掌握JAVA語言的面向?qū)ο蟮母拍罴熬幊趟枷?,理解平臺無關性。二、適用專業(yè)年級本大綱適用于計算機科學與技術和網(wǎng)絡工程專業(yè)3年級學生使用。三、先修課程C+程序設計、數(shù)據(jù)結(jié)構(gòu)和操作系統(tǒng)。四、實驗環(huán)境計算機主頻1.7GHz以上,內(nèi)存512M以上。操作系統(tǒng)為Windows XP或2000,JDK為1.6。五、實驗總體要求實驗中,實驗者必須服從指導教師和實驗室工作人員的安排,遵守紀

3、律與實驗制度,愛護設備及衛(wèi)生。在指定的實驗時間內(nèi),必須到實驗室內(nèi)實驗,同時學生應該充分利用課余時間進行對實驗內(nèi)容的分析和程序設計。實驗所涉及的Java 程序代碼,都要求有較高的可讀性和可重用性,符合面向?qū)ο蟮木幊趟枷牒鸵?guī)范。實驗前要充分做好準備工作,建議如下:1、預習、思考實驗內(nèi)容;2、復習和掌握與本實驗有關的知識內(nèi)容;3、準備好上機所需的程序代碼,實驗課內(nèi)時間主要是解決問題、調(diào)試程序、運行程序、測試程序和分析結(jié)果的時間,不能不編寫程序或抄襲別人程序去做實驗;4、對程序中自己有不懂或疑問的地方,應做出記錄,以便在實驗課上集中解決;5、準備好調(diào)試和運行所需的數(shù)據(jù)。實驗時一人一組,獨立上機。對于上

4、機過程中出現(xiàn)的問題,盡量先獨立思考和解決,尤其是語法錯誤、編譯器提示信息,應善于獨立分析判斷,這是提高程序調(diào)試能力最主要的途徑;對于難以解決的問題可以和同學交流或問老師;對于一個實驗題目,可以先考慮盡可能多的方法,然后再這些方法里面選擇一種較為有效的方法來實現(xiàn)。作為實驗結(jié)果之一的實驗代碼書寫要求規(guī)范清晰,如縮進、空行、程序塊對齊等;同時應該有必要的注釋。實驗后,應及時整理出實驗報告,提交電子及書面文檔的實驗報告。實驗一 Java程序的編輯、編譯和運行一、實驗目的1、熟悉安裝和配置JDK開發(fā)環(huán)境2、掌握Java 程序編輯、編譯和運行的過程3、掌握Java 程序的構(gòu)成特點二、實驗內(nèi)容1、JDK 的

5、安裝與環(huán)境變量的配置安裝 JDK,觀察安裝后的目錄體系,并在WindowsXP 環(huán)境下分別配置JAVA_HOME、CLASSPATH、PATH 三個環(huán)境變量。具體步驟如下所示。(1)JDK 下載安裝過程首先,進入JDK1.6 下載網(wǎng)址:其次,選擇要下載的項目(此處需要選擇Java Development Kit 6.0 Update 5),然后點擊“Download”。在下載頁面選擇下載頁面會列出各個平臺下的JDK 版本,選擇其中Windows 版(32 位);有兩種安裝方式,一種是完全下載后再安裝,一種是在線安裝,選擇下載后再安裝。下載完成后,雙擊圖標進行安裝,安裝過程中可以自定義安裝目錄等

6、信息,例如選擇安裝目錄為C:jdk16。(2)配置JDK 環(huán)境變量右擊“我的電腦”,點擊“屬性”,如圖1-1 所示。圖1-1選擇屬性示意圖選擇“高級”選項卡,點擊“環(huán)境變量”,如圖1-2 所示。圖1-2環(huán)境變量選取示意圖在“系統(tǒng)變量”中,設置3 個變量:JAVA_HOME,Path,ClassPath(大小寫均可)。若已存在則點擊“編輯”,不存在則點擊“新建”,如圖1-3 所示。圖1-3需要的屬性設置示意圖JAVA_HOME 指明JDK 安裝路徑,就是剛才安裝時所選擇的路徑C,此路徑下包括lib,bin,jre 等文件夾。PATH 使得系統(tǒng)可以在任何路徑下識別Java 命令,設為:%JAVA_

7、HOME%bin;%JAVA_HOME%jrebin(只設為%JAVA_HOME%bin 也行)。CLASSPATH 為java 加載類(class or lib)路徑,設為:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar;.;(一定要加“.”號表示當前路徑)。(3)JDK 安裝與配置的有效性檢驗打開Dos 窗口:“開始”>“運行”,鍵入“cmd”,然后點擊確定,如圖1-4 所示。圖1-4打開Dos 窗口示意圖鍵入命令“java version”,出現(xiàn)下圖畫面,說明環(huán)境變量配置成功,如圖1-5 所示。圖1-5“java version”命令運行結(jié)果窗口2

8、、編寫一個簡單的Java 應用程序程序在命令窗口輸出兩行文字:“你好,很高興學習Java”和“We are students”。三、思考題1、程序的主類如果不用public修飾,編譯能通過嗎?2、程序的主類如果不用public修飾,程序能正常運行嗎?實驗二 Java基本數(shù)據(jù)類型一、實驗目的1、掌握變量名等標識符的命名方法2、掌握數(shù)據(jù)類型間的互相轉(zhuǎn)換,同時了解unicode 字符表二、實驗內(nèi)容1、輸出俄文字母表編寫一個Java 應用程序,該程序可以實現(xiàn)char類型數(shù)據(jù)和int類型數(shù)據(jù)之間的互相轉(zhuǎn)換,在命令窗口輸出希臘字母表,程序運行效果如圖2-1 所示。圖 2-1 程序運行結(jié)果【程序模板】/ G

9、reekAlphabet.javapublic class Russianpublic static void main(String args)int startPosition=0, endPosition=0;char cStart=, cEnd=;【代碼1】 /cStart做int類型轉(zhuǎn)換運算,并將結(jié)果賦值給startPosition【代碼2】 /cEnd做int類型轉(zhuǎn)換運算,并將結(jié)果賦值給endPositionSystem.out.println(“俄文字母共有:”);System.out.println(endPosition-startPosition+1+”個”);for (i

10、nt i=startPosition; i<=endPosition;i+)char c=0;【代碼3】 /i做char類型轉(zhuǎn)換運算,并將結(jié)果賦值給cSystem.out.println(“ “+c);2、編寫一個Java應用程序,用戶從鍵盤輸入一個浮點數(shù)據(jù),程序?qū)⑤敵鲞@個數(shù)的平方和三次方。【程序模板】/InputFloat.javaimport java.util.*;public class InputFloatpublic static void main(String args) double a,b,c; Scaner reader=new Scaner(System.in);

11、 System.out.println(“從鍵盤輸入一個浮點數(shù)”);【代碼1】 /reader調(diào)用方法讀取用戶從鍵盤輸入的數(shù)據(jù),并賦值給ab=a*a;c=a*a*a;【代碼2】 /.輸出b 【代碼3】 /.輸出c 三、思考題1、將一個float類型數(shù)據(jù)直接賦值給int類型變量,程序編譯時提示怎樣的錯誤?2、int x=(byte)128; 程序輸出變量x的值是多少?3、定義變量的作用是什么?實驗三 Java控制結(jié)構(gòu)一、實驗目的1、掌握Java程序設計中的表達式的使用。2、掌握Java程序設計中基本控制結(jié)構(gòu)的使用。3、學會進行基本的程序調(diào)試。二、實驗內(nèi)容1、猜數(shù)字游戲編寫一個

12、Java應用程序,實現(xiàn)如下功能:Ø 隨機分配給客戶一個1100之間的整數(shù)。Ø 用戶從鍵盤輸入自己的猜測。Ø 程序返回提示信息,提示信息分別是“猜大了”、“猜小了”和“猜對了”。Ø 用戶可根據(jù)提示信息再次輸入猜測,直到提示信息是“猜對了”。【程序模板】/GuessNumber.javaimport java.util.*;public class GuessNumberpublic static void main(String args)System.out.println(“給你一個1100之間的整數(shù),請猜猜這個數(shù)”);int realNumber=(

13、int)(Math.random()*100)+1;int yourGuess=0;Scanner reader=new Scanner(System.in);System.out.println(“輸入您的猜測:”);【代碼1】 /reader調(diào)用方法獲取用戶從鍵盤輸入的整數(shù),并賦值給yourGuesswhile (【代碼2】) /循環(huán)條件if (【代碼3】) /條件代碼System.out.println(“猜大了,請再猜:”);【代碼4】 /reader調(diào)用方法獲取用戶從鍵盤輸入的整數(shù),并賦值給yourGuesselse if(【代碼5】) /條件代碼System.out.println

14、(“猜小了,請再猜:”);【代碼6】 /reader調(diào)用方法獲取用戶從鍵盤輸入的整數(shù),并賦值給yourGuessSystem.out.println(“猜對了!”);2、回文數(shù)編寫一個Java 應用程序,用戶從鍵盤輸入一個199999之間的整數(shù),程序?qū)⑴袛噙@個數(shù)是幾位數(shù),并判斷這個數(shù)是否是回文數(shù)?;匚臄?shù)是將該數(shù)含有的數(shù)字逆序排列后得到的數(shù)和原數(shù)相同,如12121和3223都是回文數(shù)。讓學生掌握if-else if多分支語句。【程序模板】/Number.javaimport java.util.*;public class Numberpublic static void main(String

15、 args)int number=0, d5,d4,d3,d2,d1;Scanner reader=new Scanner(System.in);System.out.println(“從鍵盤輸入一個199999之間的數(shù)”):while(reader.hasNextInt()number=reader.nextInt();if(【代碼1】) /判斷number在199999之間的條件【代碼2】 /計算number 的萬位d5【代碼3】 /計算number 的千位d4【代碼4】 /計算number 的百位d3d2=number%100/10;d1=number%10;if (【代碼5】) /判斷

16、number是5位數(shù)的條件System.out.printf(“n%d是5位數(shù)”,number);if(【代碼6】) /判斷number是回文數(shù)的條件System.out.printf(“n%d是回文數(shù)”,number);elseSystem.out.printf(“n%d不是回文數(shù)”,number);else if (【代碼7】) /判斷number是4位數(shù)的條件System.out.printf(“n%d是4位數(shù)”,number);if(【代碼8】) /判斷number是回文數(shù)的條件System.out.printf(“n%d是回文數(shù)”,number);elseSystem.out.pri

17、ntf(“n%d不是回文數(shù)”,number);else if (【代碼8】) /判斷number是3位數(shù)的條件System.out.printf(“n%d是3位數(shù)”,number);if(【代碼9】) /判斷number是回文數(shù)的條件System.out.printf(“n%d是回文數(shù)”,number);elseSystem.out.printf(“n%d不是回文數(shù)”,number);else if (d2!=0) System.out.printf(“n%d是2位數(shù)”,number);if(d1=d2) System.out.printf(“n%d是回文數(shù)”,number);elseSyst

18、em.out.printf(“n%d不是回文數(shù)”,number);else if (d1!=0) System.out.printf(“n%d是1位數(shù)”,number);System.out.printf(“n%d是回文數(shù)”,number);else System.out.printf(“n%d不在199999之間”,number);System.out.printf(“n可繼續(xù)輸入整數(shù),或輸入非整數(shù)結(jié)束程序%n”);System.out.printf(“你輸入的數(shù)據(jù)不是整數(shù)”);三、思考題1、在猜數(shù)字的程序中,語句“System.out.println(“猜對了!”);”為何要放在while

19、語句之后?放在while語句的循環(huán)體中合理嗎?2、在運行回文數(shù)程序時,用戶從鍵盤輸入1221,程序提示怎樣的信息? 3、Java 運算符的優(yōu)先級與結(jié)合性是怎樣的?4、使用if 語句實現(xiàn)單分支、兩分支和使用switch 語句實現(xiàn)多分支的程序程序結(jié)構(gòu)和流程分別是什么?5、使用if 語句和switch 語句都可以實現(xiàn)多分支,它們之間的區(qū)別是什么?6、使用while、do-while 和for 語句實現(xiàn)循環(huán)的程序程序結(jié)構(gòu)和流程分別是什么?實驗四 類的封裝和繼承一、實驗目的1、掌握使用類來封裝對象的屬性和功能。2、掌握子類的繼承性。3、掌握子類對象的創(chuàng)建過程。4、掌握成員變量的繼承和隱藏。5、掌握方法的

20、繼承。二、實驗內(nèi)容1、三角形、梯形和圓形的類封裝編寫一個 Java 應用程序,該程序中有3 個類:Trangle,Lader 和Circle,分別用來刻畫“三角形”、“梯形”和“圓形”。具體要求如下:(1)Trangle 類具有類型為double 的三個邊以及周長、面積屬性,Trangle 類具有返回周長、面積以及修改三個邊的功能,另外,Trangle 還具有一個boolean 類型的屬性,該屬性用來判斷三個數(shù)是否構(gòu)成一個三角形;(2)Lader 類具有類型為double 的上底、下底、高、面積屬性,就有返回面積的功能;(3)Circle 類具有類型為double 的半徑、周長和面積屬性,具有

21、返回周長、面積的功能。【程序模板】/ 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)成三角形的條件表達式?!敬a3】 / 給boo 賦值。else 【代碼4】 / 給boo 賦值。double getLength() 【代碼5】 / 方法體,要求計算出length 的值并返回。pu

22、blic double 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)成三角形的條件表達式。

23、 【代碼8】 / 給boo 賦值。else 【代碼9】 / 給boo 賦值。class Lader double above,bottom,height,area;Lader(double a,double b,double h) 【代碼10】 / 方法體。double getArea() 【代碼11】 / 方法體,,要求計算出area 返回。class Circle double radius,area;Circle(double r) 【代碼12】 / 方法體。double getArea() 【代碼13】 / 方法體,要求計算出area 返回。double getLength() 【代碼

24、14】 / 方法體,要求計算出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)建對象trangle。【代碼17】 / 創(chuàng)建對象lader?!敬?/p>

25、碼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)用方法返回面積并賦值給area。System.out.println("三角形的

26、面積:"+area);【代碼22】 / lader 調(diào)用方法返回面積并賦值給area。System.out.println("梯形的面積:"+area);【代碼23】 / trangle 調(diào)用方法返修改三個邊的代碼,要求將三個邊修改為12,34,1?!敬a24】 / trangle 調(diào)用方法返回面積并賦值給area。System.out.println("三角形的面積:"+area);【代碼25】 / trangle 調(diào)用方法返回周長并賦值給length。System.out.println("三角形的周長:"+length

27、);2、繼承編寫一個 Java 程序,除了主類外,該程序中還有4 個類People、ChinaPeople、AmericanPeople和BeijingPeople 類。要求如下:(1) People 類含有訪問權限為protected、類型為double 的成員變量:height 和weight,以及public void speakHello()、public void averageHeight()和public void averageWeight()方法。(2) ChinaPeople 類是People 的子類,新增了public void chinaGongfu()方法。要求chi

28、naPeople重寫父類的public void speakHello()、public void averageHeight()和public void averageWeight()方法。(3) AmericanPeople 類是People 的子類,新增了public void americanBoxing()方法。要求AmericanPeople 重寫父類的public void speakHello()、public void averageHeight()和public void averageWeight()方法。(4) BeijingPeople 類是ChinaPeople 的

29、子類,新增了public void beijingOpera()方法。要求ChinaPeople 重寫父類的public void speakHello() 、public void averageHeight() 和public void averageWeight()方法?!境绦蚰0濉? Example.javaclass Peopleprotected double weight,height;public void speakHello() System.out.println("yayawawa");public void averageHeight() heig

30、ht=173;System.out.println("average height:"+height);public void averageWeight() weight=70;System.out.println("average weight:"+weight);class ChinaPeople extends People【代碼1】 / 重寫public void speakHello()方法,要求輸出類似“你好,/吃了嗎”這樣的 漢語信息?!敬a 2】 / 重寫public void averageHeight()方法,要求輸出類似/ “中國

31、人的平均身高:168.78 厘米”這樣的漢語信息?!敬a 3】 / 重寫public void averageWeight()方法,/ 要求輸出類似“中國人的平均體重:65 公斤”這樣的漢語信息。public void chinaGongfu() 【代碼4】 / 輸出中國武術的信息,例如:"坐如鐘,站如松,睡如弓"等。class AmericanPeople extends People【代碼5】 / 重寫public void speakHello()方法,要求輸出類似/“How do you do”這樣的英語信息?!敬a 6】 / 重寫public void avera

32、geHeight()方法。【代碼7】 / 重寫public void averageWeight()方法。public void americanBoxing() 【代碼8】 / 輸出拳擊的信息,例如,“直拳”、“鉤拳”等。class BeijingPeople extends ChinaPeople 【代碼9】 / 重寫public void speakHello()方法,要求輸出類似“您好”這樣的漢語信息?!敬a10】 / 重寫public void averageHeight()方法?!敬a11】 / 重寫public void averageWeight()方法。public void

33、 beijingOpera() 【代碼12】 / 輸出京劇的信息。public class Examplepublic static void main(String args) ChinaPeople chinaPeople=new ChinaPeople();AmericanPeople americanPeople=new AmericanPeople();BeijingPeople beijingPeople=new BeijingPeople();chinaPeople.speakHello();americanPeople.speakHello();beijingPeople.sp

34、eakHello();chinaPeople.averageHeight();americanPeople.averageHeight();beijingPeople.averageHeight();chinaPeople.averageWeight();americanPeople.averageWeight();beijingPeople.averageWeight();chinaPeople.chinaGongfu();americanPeople.americanBoxing();beijingPeople.beijingOpera() ;beijingPeople.chinaGong

35、fu();三、思考題1、一個方法或一個塊內(nèi)定義的變量是否可以在方法外或塊外使用?這種變量稱為什么?方法的形式參數(shù)是否可以在方法之外使用?2、為什么說構(gòu)造函數(shù)是一種特殊的方法?特殊在哪里?構(gòu)造函數(shù)什么時候執(zhí)行?被誰調(diào)用?3、子類重新定義與父類方法的方法頭完全相同的方法,這種情況稱為什么?4、同名的不同方法共存的情況稱為什么?如何區(qū)分這些同名方法?5、定義一個類實現(xiàn)銀行帳戶的概念,包括的變量有“帳號”和“存款余額”,包括的方法有“存款”、“取款”和“查詢余額”。定義主類,創(chuàng)建帳戶類的對象,并完成相應操作。實驗五 多態(tài)與接口一、實驗目的1、了解抽象類和接口的原理。2、能運用抽象類和接口。3、理解多態(tài)

36、的概念。4、學習實現(xiàn)多態(tài)。二、實驗內(nèi)容1、定義一個接口,用于查詢課程定義一個類 Student,包括如下屬性:學號(ID)、姓名(name)、性別(Sex)、出生日期(birthDate)、專業(yè)(specialty)、課程(course),實現(xiàn)以下方法:每個屬性的獲取和定義,要求至少包含一個構(gòu)造函數(shù)。定義一個接口類,定義方法query_course_catalog()用來查詢課程。編寫一個接口,定義相關選課操作,定義Student 實現(xiàn)該接口?!境绦蚰0濉? 定義一個接口,用于查詢課程public interface 【代碼1】 / 根據(jù)專業(yè)查詢課程public String query_co

37、urse_catalog (String speciality);/ Student 類,并實現(xiàn)接口public class Student implements 【代碼2】 int ID; / 學號String name;/ 姓名char sex; / 性別String birthdate; / 出生日期 yyyy-MM-ddString specialty; / 專業(yè)Sting course; / 課程public Student (int ID,String name,char sex,String birthdate ,String specialty ,String course )

38、/ 實現(xiàn)構(gòu)造函數(shù),用于初始化信息【代碼段3】public showInfor() / 輸出學生的基本信息【代碼段 4】public String query_course_catalog (String speciality)return “welcome to you!”;public static void main(String args)Student student=new Student( 【代碼5】 );String str= student. query_course_catalog( 【代碼6】 );System.out.println(str);System.out.pri

39、ntln(student);2、抽象類和抽象方法(1)定義一個抽象類Shape,類里有一個抽象方法display();(2) 定義一個Cricle 類,繼承了Shape 類,并實現(xiàn)抽象方法display();(3) 定義一個Rectangle 類,繼承了Shape 類,并實現(xiàn)抽象方法display();(4) 定義一個Triangle 類,繼承了Shape 類,并實現(xiàn)抽象方法display();(5) 定義一個類,實例化上述幾個類的對角,并提用上述幾個類的display 方法。3、改用接口來實現(xiàn)題目2三、思考題1、同名的不同方法共存的情況稱為什么?如何區(qū)分這些同名方法?2、創(chuàng)建一個類,聲明一個

40、無參數(shù)的構(gòu)造函數(shù),打印類已創(chuàng)建的信息;再重載一個具有String 參數(shù)的構(gòu)造函數(shù),打印參數(shù)信息;并創(chuàng)建主類驗證之。3、定義一個矩形類,再定義接口EqualDiagonal,其中包含方法getDiagonal();由矩形類派生出一個正方形類,自行擴充成員變量和方法,并實現(xiàn)此接口EqualDiagonal。實驗六 字符串操作一、實驗目的1、掌握String類處理字符串的有關操作。2、掌握StringBuffer類處理字符串的有關操作。二、實驗內(nèi)容1、String類的常用方法編寫一個Java應用程序,判斷兩個字符串是否相同,判斷字符串的前綴、后綴是否與某個字符串相同,以及按字典順序比較兩個字符串的大

41、小關系,進行字符串檢索,創(chuàng)建字符串,將數(shù)字型字符串轉(zhuǎn)化為數(shù)字,將字符串存放到數(shù)組中,用字符數(shù)組創(chuàng)建字符串等。【程序模板】/StringExample.javaclass StringExamplepublic static void main(String args)String s1=new String(“you are a student”);String s2=new String(“how are you”);if(【代碼1】) /判斷s1與s2是否相同System.out.println(“s1與s2相同”);elseSystem.out.println(“s1與s2不相同”);S

42、tring s3=new String(“2000202020202345”);if(【代碼2】) /判斷s3的前綴是否為“2000202”System.out.println(“吉林省的身份證”);String s4=new String(“你”);String s5=new String(“我”);if(【代碼3】) /按字典順序,s4大于s5的表達式System.out.println(“按字典順序,s4大于s5”);elseSystem.out.println(“按字典順序,s4小于s5”);int position=0;String path=“C:javajspA.java”;po

43、sition=【代碼4】 /獲取path中最后出現(xiàn)目錄分隔符號的位置System.out.println(“C:javajspA.java中最后出現(xiàn)的位置:”+position);String fileName=【代碼5】 /獲取path中“A.java”子字符串System.out.println(“C:javajspA.java中含有的文件名:”+fileName);String s6=new String(“100”);String s7=new String(“123.678”);int n1=【代碼6】 /將s6轉(zhuǎn)化成int類型數(shù)據(jù)double n2=【代碼7】 /將s7轉(zhuǎn)化成dou

44、ble類型數(shù)據(jù)double n=n1+n2;System.out.println(n);String s8=new String(“ABCDEF”);char a=【代碼8】 /將s8存放到數(shù)組a中for(int i=a.length-1;i>=0;i-)System.out.printf(“%3c”,ai);2、StringBuffer類的常用方法編寫一個應用程序,使用StringBuffer對象實現(xiàn)對字符串的編輯操作,如替換字符串中的某些字符、刪除字符串中的某些字符、在字符串中插入或尾加新的字符串等?!境绦蚰0濉緾lass StringBufferExamplepublic stat

45、ic void main(String args)StringBuffer str=new StringBuffer(“ABCDEFG”);【代碼1】 /向str尾添加“123456789”System.out.println(str); 【代碼2】 /將str中的字符B替換為bSystem.out.println(str);【代碼3】 /在str中的“123456789”前面插入“Game”System.out.println(str);int index=【代碼4】 /獲取str中首次出現(xiàn)“1”的位置【代碼5】 /刪除str中“1234”int n=【代碼6】 /獲取str中字符個數(shù)【代碼

46、7】 /將str中“789”替換為“七八九”System.out.println(str);StringBuffer otherStr=new StringBuffer(“we love you”);int start=0;char c=0;while(start!=-1)if(start!=0)start=start+1;c=otherStr.charAt(start);if(Character.isLowerCase(c)c=Character.toUpperCase(c);otherStr.setCharAt(start,c);start=otherStr.indexOf(“ ”,sta

47、rt);  /查找下一個空格System.out.println(otherStr);StringBuffer youStr=new StringBuffer(“i Love THIS GaME”);【代碼8】/將youStr中的大寫字符替換為小寫字符,小寫字符替換為大寫System.out.println(youStr);三、思考題1、StringBuffer類的length()方法和 capacity()方法有何不同?2、String類和StringBuffer類有何不同? 實驗七 Java流和文件操作一、實驗目的1、掌握流的概念。2、掌握字符輸入/輸出流以及緩沖流的用法。3、掌

48、握使用流讀取文件的內(nèi)容,并將內(nèi)容寫入到內(nèi)存。4、掌握數(shù)據(jù)流、對象流的使用。二、實驗內(nèi)容1、給文件的內(nèi)容添加行號編寫一個Java 應用程序,給已存在的.txt 文本文件添加行號。要求該文本文件事先用文本編輯完畢,保存在C:1000目錄中,命名為hello.txt。程序運行效果如圖7-1所示。圖7-1 程序運行效果【程序模板】import java.io.*;public class ReadExamplepublic static void main(String args ) File file=new File("c:/1000","hello.txt"

49、;);File tempFile=new File("temp.text");tryFileReader inOne=【代碼1】 / 創(chuàng)建指向文件file 的輸入流。BufferedReader inTwo= 【代碼2】 / 創(chuàng)建指向inOne file 的輸入流。FileWriter tofile=【代碼3】 / 創(chuàng)建指向文件tempFile 的輸出流。BufferedWriter out=【代碼4】 / 創(chuàng)建指向tofile 的輸出流。String s=null;int i=0;s=【代碼5】/inTwo 讀取一行。while(s!=null) i+;out.write

50、(i+" "+s);out.newLine();s=【代碼6】/inTwo 讀取一行。inOne.close();inTwo.close();out.flush();out.close();tofile.close();inOne=【代碼7】 / 創(chuàng)建指向文件tempFile 的輸入流inTwo= 【代碼8】 / 創(chuàng)建指向inOne file 的輸入流。tofile=【代碼9】 / 創(chuàng)建指向文件file 的輸出流。out=【代碼10】 / 創(chuàng)建指向tofile 的輸出流。while(s=【代碼11】)!=null) / inTwo 讀取一行。out.write(s);out

51、.newLine();inOne.close();inTwo.close();out.flush();out.close();tofile.close();inOne=【代碼12】 / 創(chuàng)建指向文件file 的輸入流。inTwo=【代碼13】 / 創(chuàng)建指向inOne file 的輸入流。while(s=【代碼14】)!=null) / inTwo 讀取一行。System.out.println(s);inOne.close();inTwo.close();tempFile.delete();catch(IOException e) System.out.println(e);2、讀寫基本數(shù)據(jù)類

52、型數(shù)據(jù)編寫一個Java 應用程序,將若干基本數(shù)據(jù)寫入到一個文件,然后再按順序讀出。【程序模板】import java.io.*;public class NumberExamplepublic static void main(String args)int a1=12,a2=1180;long b=808080;float x1=3.14F,x2=12.456F;double d=1234.9876;boolean boo1=true,boo2=false;char c='我'File f=【代碼1】 / 創(chuàng)建文件。try FileOutputStream fos=【代碼1】

53、 / 創(chuàng)建指向f 文件輸出流DataOutputStream out_data=【代碼2】 / 創(chuàng)建指向fos 的數(shù)據(jù)輸出流【代碼2】 / out_data 將數(shù)據(jù)a1 寫入到文件【代碼3】 / out_data 將數(shù)據(jù)a2 寫入到文件【代碼4】 / out_data 將數(shù)據(jù)b 寫入到文件【代碼5】 / out_data 將數(shù)據(jù)x1 寫入到文件【代碼6】 / out_data 將數(shù)據(jù)x2 寫入到文件【代碼7】 / out_data 將數(shù)據(jù)d 寫入到文件【代碼8】 / out_data 將數(shù)據(jù)boo1 寫入到文件【代碼9】 / out_data 將數(shù)據(jù)boo2 寫入到文件【代碼10】 / out

54、_data 將數(shù)據(jù)c 寫入到文件catch (IOException e)tryFileInputStream fis=【代碼11】 / 創(chuàng)建指向f 文件輸入流DataInputStream in_data=【代碼12】 / 創(chuàng)建指向fis 的數(shù)據(jù)輸入流System.out.println(【代碼13】); / in_data 讀取int 整數(shù)System.out.println(【代碼14】); / in_data 讀取int 整數(shù)System.out.println(【代碼15】); / in_data 讀取long 整數(shù)System.out.println(【代碼16】); / in_data 讀取float 數(shù)System.out.println(【代碼17】); / in_data 讀取float 數(shù)System.out.println(【代碼18】); / in_data 讀取double 數(shù)System.out.println(【代碼19】); / in_data 讀取boolean 數(shù)據(jù)System.out.println(【代碼20】); / in_dat

溫馨提示

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

評論

0/150

提交評論