面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)指導(dǎo)書(shū)(定稿)_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)指導(dǎo)書(shū)(定稿)_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)指導(dǎo)書(shū)(定稿)_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)指導(dǎo)書(shū)(定稿)_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)指導(dǎo)書(shū)(定稿)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——面向?qū)ο蟪绦蛟O(shè)計(jì)試驗(yàn)指導(dǎo)書(shū)(定稿)

第五章《面象對(duì)象程序設(shè)計(jì)》課程試驗(yàn)

七、試驗(yàn)項(xiàng)目與內(nèi)容提要(experimentsprojectsanditscontent)序號(hào)123456Experimentname泛型Java集合架構(gòu)多線程網(wǎng)絡(luò)JavaBeans和Bean事件容器、布局管理器和邊框Objectives理解什么是泛型,了解通配符類(lèi)型把握J(rèn)ava集合構(gòu)架支持三種類(lèi)型的集合把握線程概念和如何創(chuàng)立線程把握Socket通信程序的設(shè)計(jì)方法理解JavaBeans組件的含義和Bean事件Personsinhoueachgrouprs1個(gè)單班(12class)1個(gè)單班(12class)1個(gè)單班(14class)1個(gè)單班(12class)1個(gè)單班(12class)LExperimentSelectiveofatypecompulsivebTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingCompulsiveTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingandCompulsiveDesigningTestingComprehensiveSelectiveSelective把握GridBagLayout、1個(gè)單班(1CardLayout、BoxLayout4class)等布局管理器1個(gè)單班(12class)1個(gè)單班(12class)1個(gè)單班(14class)1個(gè)單班(12class)1個(gè)單班(12class)78菜單、工具欄、把握主菜單、彈出式菜對(duì)話(huà)框單和工具欄MVC和Swing模型JTableJTree程序設(shè)計(jì)和把握Swing組件的模型-視圖-控件結(jié)構(gòu),JSpinner和JList把握J(rèn)Table和JTree的用法把握使用JDBCAPI訪問(wèn)數(shù)據(jù)庫(kù)的基本方法910Java數(shù)據(jù)庫(kù)11高級(jí)Java數(shù)把握批處理插入數(shù)據(jù)的據(jù)庫(kù)程序設(shè)計(jì)方法;把握處理可更新和可滾動(dòng)結(jié)果集方法12JSP基礎(chǔ)13Web應(yīng)用程序開(kāi)發(fā)把握J(rèn)SP程序設(shè)計(jì)基礎(chǔ)1個(gè)單班(12class)把握創(chuàng)立基于JSP的Web應(yīng)用程序的方法1個(gè)單班(12class)

試驗(yàn)G01:泛型

一、試驗(yàn)名稱(chēng)和性質(zhì)

所屬課程試驗(yàn)名稱(chēng)試驗(yàn)學(xué)時(shí)試驗(yàn)性質(zhì)必做/選做面向?qū)ο蟪绦蛟O(shè)計(jì)泛型2?驗(yàn)證綜合?設(shè)計(jì)?必做選做二、試驗(yàn)?zāi)康?/p>

1.理解為什么泛型類(lèi)型可以提高可靠性和可讀性;2.了解通配符類(lèi)型并理解為什么有必要使用該類(lèi)型;

3.理解泛型類(lèi)的所有實(shí)例共享同一個(gè)運(yùn)行類(lèi)文件。

三、試驗(yàn)內(nèi)容

1.構(gòu)建兩個(gè)ArrayList對(duì)象list1,list2,往兩個(gè)對(duì)象中各添加兩個(gè)元素(如輸入1,2),并輸出(驗(yàn)證性?xún)?nèi)容)。

2.應(yīng)用泛型編寫(xiě)程序(設(shè)計(jì)性?xún)?nèi)容)。四、試驗(yàn)的軟硬件環(huán)境要求

硬件環(huán)境要求:

PC計(jì)算機(jī);內(nèi)存512MB以上使用的軟件名稱(chēng)、版本號(hào)以及模塊:

操作系統(tǒng):Windows2000或WindowsXP軟件:JDK6.0;Eclipse

五、知識(shí)準(zhǔn)備

前期要求把握的知識(shí):把握線性表和接口。

試驗(yàn)相關(guān)理論或原理:泛型是參數(shù)化類(lèi)型的能力。表示形式泛型類(lèi)型,后面可以用一個(gè)實(shí)際具體類(lèi)型代替它。泛型類(lèi)型必需是引用類(lèi)型。

六、驗(yàn)證性試驗(yàn)1.試驗(yàn)要求

構(gòu)建兩個(gè)ArrayList對(duì)象list1,list2,往兩個(gè)對(duì)象中各添加兩個(gè)元素(如輸入1,2),并輸出。輸出結(jié)果如圖1.1所示:

圖1.1線性表的使用

2.源程序代碼參考importjava.util.ArrayList;

publicclassGeneric{

/**

*泛型應(yīng)用測(cè)試*/

publicGeneric(){

ArrayListlist1=newArrayList();

}

//程序入口main方法

publicstaticvoidmain(String[]args){

ArrayListlist2=newArrayList();list1.add(**代碼3**);list1.add(\代碼4**\list2.add(**代碼5**);list2.add(**代碼6**);

System.out.println(list1.toString());System.out.println(list2.toString());

newGeneric();

}}

七、設(shè)計(jì)性試驗(yàn)

1.試驗(yàn)要求

請(qǐng)應(yīng)用泛型編寫(xiě)程序。首先定義一個(gè)接口,它至少包含一個(gè)可以計(jì)算面積的成員方法。然后編寫(xiě)實(shí)現(xiàn)該接口的兩個(gè)類(lèi):正方形類(lèi)和圓類(lèi)。接著編寫(xiě)一個(gè)有泛型特點(diǎn)的類(lèi),要求利用這個(gè)類(lèi)可以在控制臺(tái)窗口中輸出某種圖形的面積,而且這個(gè)類(lèi)的類(lèi)型變量所在控制臺(tái)窗口中分別輸出給定邊長(zhǎng)的正方形的面積和給定半徑的圓的面積。結(jié)果如圖1.2所示:

圖1.2圖形的面積

試驗(yàn)G02:Java集合架構(gòu)

一、試驗(yàn)名稱(chēng)和性質(zhì)

所屬課程試驗(yàn)名稱(chēng)試驗(yàn)學(xué)時(shí)試驗(yàn)性質(zhì)必做/選做面向?qū)ο蟪绦蛟O(shè)計(jì)Java集合架構(gòu)2?驗(yàn)證綜合?設(shè)計(jì)?必做選做二、試驗(yàn)?zāi)康?/p>

1.熟悉Set接口,了解何時(shí)及如何使用HashSet,LinkedHashSet,orTreeSet來(lái)存儲(chǔ)元素;2.熟悉List接口,了解何時(shí)及如何使用ArrayListorLinkedList存儲(chǔ)元素;

3.區(qū)分VectorandArrayList,了解如何使用VectorandStack;4.使用Collections、Arrays類(lèi)中的靜態(tài)方法。

三、試驗(yàn)內(nèi)容

1.創(chuàng)立一個(gè)散列集HashSet,一個(gè)鏈?zhǔn)缴⒘屑疞inkedHashSet,和一個(gè)樹(shù)形集TreeSet,向各集合中添加單詞,并打印。根據(jù)結(jié)果分析三個(gè)集合的不同之處(驗(yàn)證性?xún)?nèi)容)。

2.編寫(xiě)一程序,創(chuàng)立用數(shù)字填充的數(shù)組線性表ArrayList,將新元素添加到線性表的指定位置,再利用數(shù)組線性表創(chuàng)立一個(gè)鏈表,最終用Foreach語(yǔ)法遍歷該鏈表(驗(yàn)證性?xún)?nèi)容)。

3.設(shè)計(jì)一個(gè)程序,用來(lái)統(tǒng)計(jì)字符串“haveagoodday,haveagoodclass,haveagoodvisit,havefun!〞中的每個(gè)單詞出現(xiàn)的次數(shù),并依照單詞的升序輸出(建議使用HashMap和TreeMap)(設(shè)計(jì)性?xún)?nèi)容)。

4.某中學(xué)有若干學(xué)生(學(xué)生對(duì)象放在一個(gè)List中),每個(gè)學(xué)生有一個(gè)姓名屬性、班級(jí)名稱(chēng)屬性(String)和考試成績(jī)屬性(int),某次考試終止后,每個(gè)學(xué)生都獲得了一個(gè)考試成績(jī)。請(qǐng)打印出每個(gè)班級(jí)的總分和平均分(設(shè)計(jì)性?xún)?nèi)容)。四、試驗(yàn)的軟硬件環(huán)境要求

硬件環(huán)境要求:

PC計(jì)算機(jī);內(nèi)存512MB以上使用的軟件名稱(chēng)、版本號(hào)以及模塊:

操作系統(tǒng):Windows2000或WindowsXP軟件:JDK6.0;Eclipse

五、知識(shí)準(zhǔn)備

前期要求把握的知識(shí):把握集合架構(gòu)支持的三種結(jié)構(gòu)。

試驗(yàn)相關(guān)理論或原理:一個(gè)集合就是一個(gè)存儲(chǔ)一組對(duì)象的容器,一般將這些對(duì)象稱(chēng)為集合的元素。Java集合構(gòu)架支持三種類(lèi)型的集合:規(guī)則集set、線性表list和圖map,他們分別定義在接口Set、List和Map中。HashSet類(lèi)可以用來(lái)存儲(chǔ)互不一致的任何元素。鏈?zhǔn)缴⒘屑疞inkedHashSet使用鏈表實(shí)現(xiàn)了對(duì)HashSet類(lèi)的擴(kuò)展,支持規(guī)則集內(nèi)元素的排序。SortedSet是Set的子接口,它保證規(guī)則集中的元素是有序的。為了允許在一個(gè)集合中存儲(chǔ)重復(fù)的元素,可以使用線性表。線性表不僅支持重復(fù)的存儲(chǔ),而且支持用戶(hù)指定它們的存儲(chǔ)位置。Map接口建立元素和鍵值的一個(gè)映射關(guān)系,鍵值就像下標(biāo)。在List中,下標(biāo)是整數(shù),在Map中,鍵值可以是任意類(lèi)型的對(duì)象。一個(gè)圖中不能有重復(fù)的鍵值,每個(gè)鍵值對(duì)應(yīng)一個(gè)

值。實(shí)現(xiàn)Map接口的具體類(lèi):散列圖HashMap、鏈?zhǔn)缴⒘袌DLinkedHashMap、樹(shù)形圖TreeMap。六、驗(yàn)證性試驗(yàn)驗(yàn)證性試驗(yàn)11.試驗(yàn)要求

創(chuàng)立一個(gè)散列集HashSet,一個(gè)鏈?zhǔn)缴⒘屑疞inkedHashSet,和一個(gè)樹(shù)形集TreeSet,向各集合中添加單詞,并打印。根據(jù)結(jié)果分析三個(gè)集合的不同之處。輸出結(jié)果如圖2.1所示:

圖2.1集合應(yīng)用

2.源程序代碼參考/******Set集合********/importjava.util.HashSet;importjava.util.LinkedHashSet;importjava.util.Set;importjava.util.TreeSet;

publicclassSetTest{

/**

*集合測(cè)試*/

publicSetTest(){

Setset1=newHashSet();Setset2=newLinkedHashSet();set1.add(\set1.add(\set1.add(\set1.add(\set2.add(\set2.add(\set2.add(\

}

set2.add(\

TreeSettreeset=newTreeSet(set1);for(Objectelement:set1){}

System.out.println();

for(Objectelement:set2){}

System.out.println();

for(Objectelement:treeset){}

System.out.print(element.toString()+\System.out.print(element.toString()+\System.out.print(element.toString()+\

//程序入口main方法

publicstaticvoidmain(String[]args){

newSetTest();}

驗(yàn)證性試驗(yàn)21.試驗(yàn)要求

編寫(xiě)一程序,創(chuàng)立用數(shù)字填充的數(shù)組線性表ArrayList,將新元素添加到線性表的指定位置,再利用數(shù)組線性表創(chuàng)立一個(gè)鏈表,最終用Foreach語(yǔ)法遍歷該鏈表。輸出結(jié)果如圖2.2所示:

}

圖2.2線性表

2.程序參考代碼

/*********List集合*************/

importjava.util.*;publicclassListTest{}

/***List測(cè)試*/

privateArrayListarraylist;privateLinkedListlinkedlist;

publicListTest(){}

publicstaticvoidmain(String[]args){newListTest();}

arraylist=newArrayList();arraylist.add(1);arraylist.add(2);arraylist.add(3);arraylist.add(4);arraylist.add(5);arraylist.set(2,9);

linkedlist=newLinkedList(/*****代碼1*****/);linkedlist.add(3,\

System.out.println(\for(Objectt:arraylist){}

System.out.println();

System.out.println(\

/***********代碼段2(foreach遍歷)****************/

System.out.print(t+\

七、設(shè)計(jì)性試驗(yàn)1.試驗(yàn)要求

(1)設(shè)計(jì)一個(gè)程序,用來(lái)統(tǒng)計(jì)字符串“haveagoodday,haveagoodclass,haveagoodvisit,havefun!〞中的每個(gè)單詞出現(xiàn)的次數(shù),并依照單詞的升序輸出。(建議使用HashMap和TreeMap)

輸出結(jié)果如圖圖2.3所示:

圖2.3

(2)某中學(xué)有若干學(xué)生(學(xué)生對(duì)象放在一個(gè)List中),每個(gè)學(xué)生有一個(gè)姓名屬性、班級(jí)名稱(chēng)屬性(String)和考試成績(jī)屬性(int),某次考試終止后,每個(gè)學(xué)生都獲得了一個(gè)考試成績(jī)。請(qǐng)打印出每個(gè)班級(jí)的總分和平均分。八、思考題:

第一個(gè)驗(yàn)證性試驗(yàn)中,用HashSet對(duì)象創(chuàng)立TreeSet和用無(wú)參構(gòu)造方法來(lái)創(chuàng)立一個(gè)TreeSet實(shí)例有什么區(qū)別?哪個(gè)效率更高?為什么?

注意:更新一個(gè)Set集合時(shí),假使不需要保持元素的順序關(guān)系,應(yīng)當(dāng)使用散列集,由于在散列集插入和刪除元素的時(shí)間較少;需要保持元素中的元素排序時(shí),可以把他們轉(zhuǎn)化成樹(shù)形集。

試驗(yàn)G03:多線程

一、試驗(yàn)名稱(chēng)和性質(zhì)

所屬課程試驗(yàn)名稱(chēng)試驗(yàn)學(xué)時(shí)試驗(yàn)性質(zhì)必做/選做二、試驗(yàn)?zāi)康?/p>

1.理解線程概念;了解線程的狀態(tài)和生命周期;2.學(xué)習(xí)繼承Thread類(lèi)來(lái)創(chuàng)立線程;

3.理解線程互斥與同步的含義;把握Synchrnized同步方法。

三、試驗(yàn)內(nèi)容

1.設(shè)計(jì)一個(gè)包含多線程運(yùn)行的程序,在主程序中依次創(chuàng)立3個(gè)線程,然后按順序啟動(dòng)這3個(gè)線程,每個(gè)線程在執(zhí)行時(shí)都是先睡眠(sleep)一會(huì)兒,醒來(lái)之后再繼續(xù)執(zhí)行(驗(yàn)證性試驗(yàn))。

2.用程序模擬鐵路火車(chē)票售票系統(tǒng),實(shí)現(xiàn)通過(guò)3個(gè)售票窗口同時(shí)銷(xiāo)售某次列車(chē)的100張車(chē)票。程序中會(huì)有3個(gè)線程同時(shí)對(duì)同一個(gè)車(chē)票對(duì)象進(jìn)行操作,每個(gè)線程的操作都按一致的步驟進(jìn)行,即將當(dāng)前車(chē)票數(shù)加1,然后將當(dāng)前車(chē)票數(shù)與剩余車(chē)票數(shù)顯示出來(lái)。由于車(chē)票數(shù)是臨界資源,一次只能有一個(gè)線程完成讀寫(xiě)操作,因此必需處理好線程之間的互斥關(guān)系(設(shè)計(jì)性試驗(yàn))。

四、試驗(yàn)的軟硬件環(huán)境要求

硬件環(huán)境要求:

PC計(jì)算機(jī);內(nèi)存512MB以上使用的軟件名稱(chēng)、版本號(hào)以及模塊:

操作系統(tǒng):Windows2000或WindowsXP

軟件:JDK6.0;Ecliplse五、知識(shí)準(zhǔn)備

前期要求把握的知識(shí):了解Java程序的運(yùn)行流程。

試驗(yàn)相關(guān)理論或原理:多線程是指一個(gè)程序中可以包含兩個(gè)或兩個(gè)以上同時(shí)并發(fā)運(yùn)行的程序單元,每個(gè)程序單元稱(chēng)之為一個(gè)線程。Java為多線程編程提供了語(yǔ)言級(jí)的支持,因此可以編寫(xiě)高效率的程序。

一個(gè)線程從它被創(chuàng)立到運(yùn)行終止的過(guò)程,稱(chēng)為線程的生命周期。在Java中使用多線程有如下兩種方式:一是繼承Thread線程類(lèi),其次是實(shí)現(xiàn)Runnable接口。在Thread類(lèi)中有兩個(gè)主要的方法,一個(gè)是run()方法,另一個(gè)是start()方法,在Thread類(lèi)的派生類(lèi)中要覆蓋這個(gè)run()方法,將多線程代碼放入其中。Start()方法的作用是啟動(dòng)一個(gè)線程,它會(huì)自動(dòng)地去調(diào)用run()方法以執(zhí)行該線程。

為了使多個(gè)線程互斥地使用臨界資源,可以在臨界資源上使用synchrnized修飾符。六、驗(yàn)證性試驗(yàn)

面向?qū)ο蟪绦蛟O(shè)計(jì)多線程設(shè)計(jì)4?驗(yàn)證綜合?設(shè)計(jì)?必做選做

1.試驗(yàn)要求

編譯、運(yùn)行ThreeThreads.java程序,運(yùn)行結(jié)果如圖3.1所示。

圖3.1驗(yàn)證性

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論