版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> Java程序設(shè)計課程設(shè)計報告</p><p> ( 2011 -- 2012 年度第 1 學(xué)期)</p><p><b> 記憶測試系統(tǒng) </b></p><p> 專業(yè)計算機科學(xué)與技術(shù)(網(wǎng)絡(luò)技術(shù))</p><p> 學(xué)生姓名</p><p> 班級</p>
2、<p> 學(xué)號</p><p> 指導(dǎo)教師</p><p> 完成日期2012年1月8 日</p><p><b> 目 錄</b></p><p><b> 目 錄2</b></p><p> 1 概 述2</p>&l
3、t;p> 1.1 課程設(shè)計目的2</p><p> 1.2 課程設(shè)計內(nèi)容2</p><p><b> 2 需求分析2</b></p><p> 2.1 設(shè)計目標(biāo)2</p><p> 2.2 主體功能2</p><p> 2.3 開發(fā)環(huán)境2</p><
4、;p><b> 3 概要設(shè)計2</b></p><p> 3.1 系統(tǒng)的功能模塊劃分2</p><p> 3.2 系統(tǒng)流程圖2</p><p><b> 4 詳細(xì)設(shè)計2</b></p><p><b> 5測試2</b></p><
5、p> 5.1 測試方案2</p><p> 5.2 測試結(jié)果2</p><p><b> 6 小結(jié)2</b></p><p><b> 參考文獻(xiàn)2</b></p><p><b> 附 錄2</b></p><p> 附
6、錄1 源程序清單2</p><p><b> 記憶測試系統(tǒng)</b></p><p> 1 概 述 </p><p> 1.1 課程設(shè)計目的</p><p> 鞏固和提高java編程技術(shù)。</p><p> 培養(yǎng)掌握成學(xué)設(shè)計的基本思路和方法。</p>&
7、lt;p> 加強研發(fā)、調(diào)試程序的能力。</p><p> 增強分析、解決問題的能力。</p><p> 提高科技論文寫作能力。</p><p> 1.2 課程設(shè)計內(nèi)容</p><p> 記憶測試系統(tǒng)是通過回憶法測試記憶能力,測試手段分為初級,中級和高級三個級別。記憶測試系統(tǒng)設(shè)計要求如下:</p><p>
8、; (1)單擊“記憶測試”菜單可以選擇初級、中級或高級三個級別。</p><p> (2)單擊“記憶測試”菜單還可以查看初級記憶榜、中級記憶榜或高級記憶榜,通過記憶榜存儲每個級別的成績。</p><p> ?。?)選擇級別后,將出現(xiàn)相應(yīng)級別的測試區(qū)。測試區(qū)由m*n個方塊組成,程序通過設(shè)置m和n的值來確定相應(yīng)的測試級別,例如,對于初級級別,m=5,n=6。每個方塊上都有一個圖標(biāo),但該圖標(biāo)
9、默認(rèn)不可見。用鼠標(biāo)單擊測試區(qū)中的任何一個方塊,則計時器開始啟動動,同時該方塊上的圖標(biāo)將顯示出來。</p><p> (4)m*n個方塊組成的測試區(qū)中有m個圖標(biāo),每個圖標(biāo)重復(fù)出現(xiàn)n次,并且隨機分布在測試區(qū)中的m*n各方塊上。用戶必須用鼠標(biāo)連續(xù)單擊出n個圖表相同的方塊,也就是說,如果用戶已經(jīng)用鼠標(biāo)連續(xù)單擊出p(p<n)個圖標(biāo)相同的方塊,當(dāng)再單擊另一個方塊時,如果該方塊的圖標(biāo)和上一個的相同,那么該方塊的圖標(biāo)和前
10、p次單擊出的方塊的圖標(biāo)仍然可見;否則前p次單擊出來的方塊的圖標(biāo)全都變得不可見,只有當(dāng)前單擊的方塊的圖標(biāo)可現(xiàn)。</p><p> ?。?)測試區(qū)能顯示用戶的同時,并根據(jù)級別的不同,提示用戶必須用鼠標(biāo)連續(xù)單擊出多個圖標(biāo)相同的方塊。</p><p> (6)測試區(qū)有提示圖標(biāo)所在位置的功能。用戶單擊測試區(qū)中的“提示”按鈕后,測試區(qū)將持續(xù)1.2秒為用戶顯示全部方塊上的圖標(biāo)。用戶沒單擊一次“提示”按
11、鈕,用戶用時將增加10秒。</p><p> ?。?)連續(xù)單擊出級別所要求的若干個相同的方塊后,將彈出保存成績對話框,用戶可以通過該對話框選擇是否將自己的成績保存到成績表中。</p><p><b> 2 需求分析</b></p><p><b> 2.1 設(shè)計目標(biāo)</b></p><p>
12、1.單擊“記憶測試”菜單可以選擇初級、中級、高級三個級別,通過記憶榜可以查看初級記憶榜、中級記憶榜或高級記憶榜。</p><p> 2.選擇級別后,將顯示相應(yīng)級別的測試區(qū)域。測試區(qū)域由若干個方塊組成,每個方塊上都有一個圖標(biāo),但該圖標(biāo)默認(rèn)情況下不可見。用鼠標(biāo)單擊測試區(qū)中的任何一個方塊,則計時器開始啟動,同時該方塊上的圖標(biāo)將顯示出來。對于初級級別,用戶必須用鼠標(biāo)連續(xù)單擊6個圖標(biāo)相同的方塊,也就是說,如果用戶已經(jīng)用鼠
13、標(biāo)連續(xù)單擊出n(n<6)個圖標(biāo)相同的方塊,單擊另一個方塊時,如果該方塊的圖標(biāo)和上一個相同,那么該方塊的圖標(biāo)和前n次單擊出的方塊的圖標(biāo)仍然可見,否則,前n次單擊出的方塊的圖標(biāo)都變?yōu)椴豢梢姟?lt;/p><p> 3.連續(xù)單擊出該級別所要求的若干個圖標(biāo)形同的方塊后,將顯示保存成績對話框,成績按所用時間排序。用戶可以通過該對話框選擇是否將自己的成績保存到成績表中。</p><p><b
14、> 2.2 主體功能</b></p><p> 本游戲是通過由用戶點擊圖片顯示出圖片后,如果是相同的,便保持圖形,如果用戶點開的是不同的圖片則先前點擊的圖片被清空。當(dāng)用戶同時點擊出規(guī)定數(shù)目的圖片后,彈出保存成績框。</p><p><b> 2.3 開發(fā)環(huán)境</b></p><p> Win7;MyEclipse 8.
15、5軟件</p><p><b> 3 概要設(shè)計</b></p><p> 3.1系統(tǒng)的功能模塊劃分</p><p> 記憶測試系統(tǒng)共包含8個java源文件和若干個圖像文件(用戶可以增加)。類之間的主要關(guān)系如下圖所示。</p><p> 在測試系統(tǒng)中,可以編寫6個Java源文件:MemoryGame.java、Me
16、moryTestArea.java、Block.java、ShowRecordDialog.java、Record.java、People.java。</p><p> 記憶測試系統(tǒng)除了上述6個Java源文件產(chǎn)生的類外,還需要Java系統(tǒng)提供的一些重要的類。</p><p> 記憶測試系統(tǒng)所用到的一些重要的類以及之間的組合關(guān)系如圖3.1所示。</p><p>
17、 圖3.1 類之間的組合關(guān)系</p><p> 圖3.1 類之間的關(guān)系</p><p><b> 3.2 系統(tǒng)流程圖</b></p><p> 圖3.2 系統(tǒng)流程圖</p><p><b> 4 詳細(xì)設(shè)計</b></p><p><b> 4.1工作
18、原理</b></p><p> 系統(tǒng)主體部分是在底層容器上插入面板,并在面板上安排按鈕陣列,當(dāng)用戶點擊按鈕,經(jīng)過隨機安排在按鈕后面的圖片顯示出來。通過對比圖片下標(biāo),如果所顯示圖片和前一個顯示圖片一樣,則沒變化;如果,不一樣,則把以前所有顯示的圖片重新用按鈕遮蓋。當(dāng)用戶點開指定數(shù)量的圖片時,就進入記錄數(shù)據(jù)部分。在測試過程中,顯示用戶測試時間。記錄數(shù)據(jù)部分。是把用戶輸入的姓名和系統(tǒng)記錄用戶測試時間寫入指
19、定文檔中保存。查閱數(shù)據(jù)部分,是把指定文檔的數(shù)據(jù)顯示給用戶,包括姓名和測試時間。用戶此時可以清除文檔中數(shù)據(jù),即可刪除排行榜。</p><p><b> 4.2 算法思路</b></p><p> 主窗口安排指定數(shù)量按鈕,是通過用戶所選級別傳參數(shù)計算后進行安排。隨機分布圖片需要隨機函數(shù)隨機產(chǎn)生指定數(shù)量的圖片下標(biāo),并傳給主窗口的按對應(yīng)按鈕通過對比所顯示圖片的下標(biāo),統(tǒng)計顯
20、示的相同圖片的數(shù)量。用戶測試開始后,記錄測試時間,并保存。</p><p> 4.3主類Memory</p><p><b> a).成員變量</b></p><p> 主要成員變量(屬性):</p><p><b> b).方法</b></p><p><b&
21、gt; 主要方法:</b></p><p><b> 4.4類Block</b></p><p><b> a).成員變量</b></p><p> 主要成員變量(屬性):</p><p><b> b).方法</b></p><p&g
22、t;<b> 主要方法:</b></p><p> 4.5類MemoryTestPane</p><p><b> a).成員變量</b></p><p> 主要成員變量(屬性):</p><p><b> b).方法</b></p><p>
23、<b> 主要方法:</b></p><p> 4.6類ShowRecord</p><p><b> a). 成員變量</b></p><p> 主要成員變量(屬性):</p><p><b> b).方法</b></p><p><b
24、> 主要方法:</b></p><p> 4.7類Record</p><p><b> a).成員變量</b></p><p> 主要成員變量(屬性):</p><p><b> b).方法</b></p><p><b> 主要方法
25、:</b></p><p> 4.8類RandomSetIcon</p><p> a).成員變量(無)</p><p><b> b).方法</b></p><p><b> 主要方法:</b></p><p> 4.9類People</p>
26、;<p><b> a)成員變量</b></p><p> 主要成員變量(屬性):</p><p><b> b) 方法</b></p><p><b> 主要方法:</b></p><p><b> 5測試</b></p&g
27、t;<p><b> 5.1 測試方案</b></p><p> 將7個java文件保存到一個文件夾中,例如,D:\jiyiceshi。將7個文件分別編譯成相應(yīng)的字節(jié)碼(.class)文件。然后,用java解釋器運行主類:C:\jiyiceshi\java Memory 程序運行后選擇各菜單,分別進行功能測試。</p><p><b>
28、 5.2 測試結(jié)果</b></p><p><b> (1)運行效果</b></p><p> 圖5.2.1 運行效果</p><p> (2)當(dāng)選擇“記憶力測試”后,自己可以設(shè)置游戲的難度,效果如圖</p><p> 圖5.2.2 初級效果圖</p><p> 圖5.2.
29、3 中級效果圖</p><p> 圖5.2.4 高級效果圖</p><p> (3)當(dāng)游戲結(jié)束后,查看“初級排行榜”,將顯示初級的成績記錄效果</p><p> 圖5.2.5 初級成績記錄</p><p><b> 6 小結(jié)</b></p><p> Java程序設(shè)計是本專業(yè)的一門重要的
30、面向?qū)ο蟮某绦蛘Z言。在剛開始學(xué)習(xí)時,一直擔(dān)心自己、也沒把握自己能否學(xué)好,也曾擔(dān)心過不了考試這一關(guān)。經(jīng)過近大半學(xué)期老師您不厭其煩的教導(dǎo),引導(dǎo)我們?nèi)W(xué)習(xí)。我對Java語言有了一定的了解,但那絕對是遠(yuǎn)遠(yuǎn)不夠的,還是要不斷地把它應(yīng)用到實踐中去,融會貫通。</p><p> 經(jīng)過為期一周的Java課程設(shè)計,親身感受體驗敲、改寫Java程序代碼的樂趣,我對Java編程有了較為深入的了解,不僅鞏固了以前在課本上學(xué)到的知識,還
31、學(xué)會了很多其他東西,比如Java程序不同調(diào)試平臺的使用、錯誤的調(diào)試及數(shù)據(jù)庫路徑的配置等等。 </p><p> 一直以來,或許有不少人跟我一樣,總是覺得編程是很枯燥乏味的,但是這次</p><p> 的體驗下來,其實以前我們的想法錯誤的。感覺到看著敲擊的代碼變?yōu)橐粋€個可以自娛自樂小游戲程序,其實是一件非常有趣的事情。并且在添加功能的過程中,不僅可以啟發(fā)自己的想象力,還可以培養(yǎng)靈活運用知
32、識的能力。在此過程中,我們認(rèn)識到編程的重要步驟是分析,分析問題的本身和現(xiàn)實要求。分析過程中采用根據(jù)設(shè)置框架選擇功能使我的思路特別清晰。拿到一個題目不能只局限在一種思想一種方法上,要盡量的多嘗試其他的做法,然后比較,集各家之所長,拿出最優(yōu)秀的程序來。其次也是最重要的就是我們應(yīng)當(dāng)打開我們的視野,我們應(yīng)當(dāng)從我們的生活的這個世界中去領(lǐng)悟解決問題的思想和方法</p><p> 通過這次課程設(shè)計,我收獲的不僅僅是課程上的知
33、識得到實際應(yīng)用,還有編程的基本習(xí)慣和開發(fā)系統(tǒng)時應(yīng)注意的流程。作為一個程序編程人員,要保持清醒的頭腦,以現(xiàn)實為依據(jù),讓自己的每一行代碼都能實現(xiàn)自己的意義。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]耿祥義,張躍平. Java2實用教程(第三版)[M] . 北京:清華大學(xué)出版社, 2006 [2]耿祥義. Java課
34、程設(shè)計(第三版)[M] . 北京:清華大學(xué)出版社, 2004</p><p> [3]張躍平.Java2實用教程實驗指導(dǎo)與習(xí)題解答(第三版)[M]. 北京:清華大學(xué)出版社, 2004</p><p><b> ……</b></p><p><b> 附 錄</b></p><p><
35、;b> 附錄1 源程序清單</b></p><p> Memory.java</p><p> import javax.swing.*;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> impo
36、rt java.io.*;</p><p> import java.util.LinkedList;</p><p> public class Memory extends JFrame implements ActionListener</p><p><b> { </b></p><p> JMenuB
37、ar bar;</p><p> JMenu fileMenu;</p><p> JMenuItem 初級,中級,高級,初級排行榜,中級排行榜,高級排行榜;</p><p> Block block[];</p><p> ImageIcon icon[];</p><p> MemoryTestPane
38、記憶測試板=null;</p><p> File file初級=new File("初級記憶排行榜.txt"),</p><p> file中級=new File("中級記憶排行榜.txt"),</p><p> file高級=new File("高級記憶排行榜.txt");</p>
39、<p> LinkedList 成績表=null;</p><p> ShowRecord 顯示成績表對話框=null;</p><p> int m=5,n=6; </p><p> int 圖標(biāo)個數(shù)=0;</p><p> Container
40、 con=null;</p><p> JTextField 提示條=null;</p><p> File gradeFile=null; </p><p> public Memory()</p><p><b> { </b></p><p> block=
41、new Block[m*n];</p><p><b> 圖標(biāo)個數(shù)=m; </b></p><p> icon=new ImageIcon[圖標(biāo)個數(shù)];</p><p> for(int i=0;i<icon.length;i++)</p><p><b> {</b></p&g
42、t;<p> icon[i]=new ImageIcon("a"+i+".gif");</p><p><b> } </b></p><p> for(int i=0;i<block.length;i++)</p><p><b> {</b></
43、p><p> block[i]=new Block();</p><p> block[i].設(shè)置關(guān)閉時的圖標(biāo)(new ImageIcon("關(guān)閉.gif"));</p><p><b> }</b></p><p> bar=new JMenuBar();</p><p>
44、; fileMenu=new JMenu("記憶力測試");</p><p> 初級=new JMenuItem("初級");</p><p> 中級=new JMenuItem("中級");</p><p> 高級=new JMenuItem("高級");</p>
45、<p> fileMenu.setMnemonic('G');</p><p> 初級.setMnemonic('B');</p><p> 中級.setMnemonic('I');</p><p> 高級.setMnemonic('E');</p><p>
46、 高級排行榜=new JMenuItem("高級排行榜");</p><p> 中級排行榜=new JMenuItem("中級排行榜");</p><p> 初級排行榜=new JMenuItem("初級排行榜");</p><p> 初級.setMnemonic('T');<
47、/p><p> fileMenu.add(初級);</p><p> fileMenu.add(中級);</p><p> fileMenu.add(高級);</p><p> fileMenu.add(初級排行榜);</p><p> fileMenu.add(中級排行榜);</p><p&
48、gt; fileMenu.add(高級排行榜);</p><p> bar.add(fileMenu);</p><p> setJMenuBar(bar);</p><p> 初級.addActionListener(this);</p><p> 中級.addActionListener(this);</p>&l
49、t;p> 高級.addActionListener(this);</p><p> 初級排行榜.addActionListener(this);</p><p> 中級排行榜.addActionListener(this);</p><p> 高級排行榜.addActionListener(this);</p><p> 成績
50、表=new LinkedList();</p><p> if(!file初級.exists()) </p><p><b> {</b></p><p><b> try{</b></p><p> FileOutputStream out=
51、new FileOutputStream("初級記憶排行榜.txt");</p><p> ObjectOutputStream object_out=new ObjectOutputStream(out);</p><p> object_out.writeObject(成績表);</p><p> object_out.close();
52、</p><p> out.close();</p><p><b> }</b></p><p> catch(IOException e)</p><p><b> {</b></p><p><b> }</b></p>&
53、lt;p><b> } </b></p><p> if(!file中級.exists())</p><p><b> {</b></p><p><b> try{</b></p><p> FileOutputStream out=new FileOutpu
54、tStream("中級記憶排行榜.txt");</p><p> ObjectOutputStream object_out=new ObjectOutputStream(out);</p><p> object_out.writeObject(成績表);</p><p> object_out.close();</p>&
55、lt;p> out.close();</p><p><b> }</b></p><p> catch(IOException e)</p><p><b> {</b></p><p><b> }</b></p><p><b
56、> } </b></p><p> if(!file高級.exists())</p><p><b> {</b></p><p><b> try{</b></p><p> FileOutputStream out=new FileOutputStream("
57、;高級記憶排行榜.txt");</p><p> ObjectOutputStream object_out=new ObjectOutputStream(out);</p><p> object_out.writeObject(成績表);</p><p> object_out.close();</p><p> out
58、.close();</p><p><b> }</b></p><p> catch(IOException e)</p><p><b> {</b></p><p><b> }</b></p><p><b> } </
59、b></p><p> gradeFile=file初級;</p><p> setBounds(100,100,300,260);</p><p> setVisible(true);</p><p> addWindowListener(new WindowAdapter()</p><p><
60、b> {</b></p><p> public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p> System.exit(0);</p><p><b> }</b></p><
61、;p><b> });</b></p><p> con=getContentPane(); </p><p> 記憶測試板=new MemoryTestPane(block,icon,m,n,gradeFile);</p><p> 提示條=new JTextField("初級:您需要連續(xù)找出"+6+&quo
62、t;個相同圖標(biāo)的方塊"); </p><p> 提示條.setEditable(false);</p><p> 提示條.setForeground(Color.red);</p><p> con.add(記憶測試板,BorderLayout.CENTER);</p><p> con.add(提示條,BorderLayo
63、ut.SOUTH);</p><p> con.validate();</p><p> this.validate();</p><p><b> }</b></p><p> public void 給出級別測試(int 寬,int 高,File f)</p><p><b>
64、; { </b></p><p><b> m=寬;</b></p><p><b> n=高;</b></p><p><b> 圖標(biāo)個數(shù)=m;</b></p><p> gradeFile=f;</p><p> blo
65、ck=new Block[m*n];</p><p> icon=new ImageIcon[圖標(biāo)個數(shù)];</p><p> for(int i=0;i<icon.length;i++)</p><p><b> {</b></p><p> icon[i]=new ImageIcon("a&qu
66、ot;+i+".gif");</p><p><b> } </b></p><p> for(int i=0;i<block.length;i++)</p><p><b> {</b></p><p> block[i]=new Block();</p&g
67、t;<p> block[i].設(shè)置關(guān)閉時的圖標(biāo)(new ImageIcon("關(guān)閉.gif"));</p><p><b> }</b></p><p> 記憶測試板=new MemoryTestPane(block,icon,m,n,gradeFile);</p><p> con.removeAl
68、l();</p><p> con.add(記憶測試板,BorderLayout.CENTER);</p><p> con.add(提示條,BorderLayout.SOUTH);</p><p> con.validate();</p><p> this.validate();</p><p><b
69、> }</b></p><p> public void actionPerformed(ActionEvent event)</p><p><b> { </b></p><p> if(event.getSource()==初級) </p><p><b> { </b
70、></p><p> 給出級別測試(5,6,file初級);</p><p> setBounds(100,100,300,260);</p><p> this.validate();</p><p> 提示條.setText("初級:您需要連續(xù)找出"+6+"個相同圖標(biāo)的方塊");<
71、;/p><p><b> }</b></p><p> if(event.getSource()==中級) </p><p><b> {</b></p><p> 給出級別測試(6,7,file中級);</p><p> setBounds(100,100,340,2
72、80);</p><p> this.validate();</p><p> 提示條.setText("中級:您需要連續(xù)找出"+7+"個相同圖標(biāo)的方塊");</p><p><b> }</b></p><p> if(event.getSource()==高級) <
73、;/p><p><b> { </b></p><p> 給出級別測試(7,8,file高級);</p><p> setBounds(100,100,360,300);</p><p> this.validate();</p><p> 提示條.setText("高級:您需要
74、連續(xù)找出"+8+"個相同圖標(biāo)的方塊");</p><p><b> }</b></p><p> if(event.getSource()==高級排行榜)</p><p><b> {</b></p><p> 顯示成績表對話框=new ShowRecord(t
75、his,file高級);</p><p> 顯示成績表對話框.setVisible(true);</p><p><b> }</b></p><p> if(event.getSource()==中級排行榜)</p><p><b> {</b></p><p>
76、 顯示成績表對話框=new ShowRecord(this,file中級);</p><p> 顯示成績表對話框.setVisible(true);</p><p><b> }</b></p><p> if(event.getSource()==初級排行榜)</p><p><b> {</b
77、></p><p> 顯示成績表對話框=new ShowRecord(this,file初級);</p><p> 顯示成績表對話框.setVisible(true);</p><p><b> }</b></p><p><b> } </b></p><p>
78、; public static void main(String args[])</p><p><b> {</b></p><p> new Memory();</p><p><b> }</b></p><p><b> }</b></p>&l
79、t;p> Block.java</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p><p> public class Block extends JButton implements ActionListener</p><p><b&
80、gt; {</b></p><p> ImageIcon 翻開時的圖標(biāo)=null,關(guān)閉時的圖標(biāo)=null;</p><p> public Block()</p><p><b> {</b></p><p> addActionListener(this);</p><p>
81、;<b> } </b></p><p> public ImageIcon 獲取翻開時的圖標(biāo)()</p><p><b> {</b></p><p> return 翻開時的圖標(biāo);</p><p><b> } </b></p><p>
82、 public ImageIcon 獲取關(guān)閉時的圖標(biāo)()</p><p><b> {</b></p><p> return 關(guān)閉時的圖標(biāo);</p><p><b> } </b></p><p> public void 設(shè)置翻開時的圖標(biāo)(ImageIcon icon)</p&
83、gt;<p><b> {</b></p><p> 翻開時的圖標(biāo)=icon;</p><p><b> }</b></p><p> public void 設(shè)置關(guān)閉時的圖標(biāo)(ImageIcon icon)</p><p><b> {</b><
84、/p><p> 關(guān)閉時的圖標(biāo)=icon;</p><p><b> }</b></p><p> public void 設(shè)置圖標(biāo)(ImageIcon icon)</p><p><b> {</b></p><p> setIcon(icon); </p&
85、gt;<p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> this.setIcon(翻開時的圖標(biāo));</p><p><b>
86、}</b></p><p><b> }</b></p><p> MemoryTestPane.java</p><p> import javax.swing.*; </p><p> import java.awt.event.*;</p><p> import ja
87、va.awt.*;</p><p> import java.util.LinkedList;</p><p> import java.io.*;</p><p> public class MemoryTestPane extends JPanel implements ActionListener</p><p><b>
88、; {</b></p><p> RandomSetIcon 排列圖標(biāo)=null;</p><p> Block block[]; </p><p> ImageIcon icon[]; </p><p> LinkedList
89、 listIocn=null, </p><p> listBlock=null; </p><p> int 行數(shù)=0,列數(shù)=0;</p><p> int success=0; </p><p> int time=0;
90、 </p><p> javax.swing.Timer 計時器=null; </p><p> JTextField 顯示時間=null;</p><p> File gradeFile=null;</p><p> boolean 計時器是否啟動=false;</p>
91、<p> public MemoryTestPane(Block[] block,ImageIcon[] icon,int m,int n,File f)</p><p><b> {</b></p><p> 排列圖標(biāo)=new RandomSetIcon();</p><p> this.block=block;<
92、;/p><p> this.icon=icon;</p><p><b> 行數(shù)=m;</b></p><p><b> 列數(shù)=n;</b></p><p> gradeFile=f;</p><p> listIocn=new LinkedList();</p&
93、gt;<p> listBlock=new LinkedList();</p><p> setLayout(new BorderLayout());</p><p> JPanel center=new JPanel();</p><p> center.setLayout(new GridLayout(行數(shù),列數(shù)));</p>
94、<p> for(int i=0;i<block.length;i++)</p><p><b> {</b></p><p> center.add(block[i]);</p><p> block[i].addActionListener(this);</p><p><b>
95、 }</b></p><p> JPanel south=new JPanel();</p><p> 顯示時間=new JTextField(12);</p><p> 顯示時間.setEditable(false);</p><p> 顯示時間.setForeground(Color.red);</p>
96、<p> south.add(顯示時間);</p><p> add(center,BorderLayout.CENTER);</p><p> add(south,BorderLayout.SOUTH); </p><p> 排列圖標(biāo).隨機設(shè)置圖標(biāo)(block,icon);</p><p> 計時器=new Timer(
97、1000,this); </p><p> 計時器是否啟動=false;</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {&
98、lt;/b></p><p> if(e.getSource() instanceof Block)</p><p><b> { </b></p><p> Block 方塊=(Block)e.getSource();</p><p> ImageIcon 翻開時的圖標(biāo)=方塊.獲取翻開時的圖標(biāo)();<
99、;/p><p> 方塊.設(shè)置圖標(biāo)(翻開時的圖標(biāo));</p><p> if(listIocn.size()==0) </p><p><b> {</b></p><p> listIocn.add(翻開時的圖標(biāo));</p><p&
100、gt; listBlock.add(方塊);</p><p> success=1; </p><p><b> }</b></p><p><b> else</b></p><p><b>
101、 {</b></p><p> ImageIcon temp=(ImageIcon)listIocn.getLast(); </p><p> if(temp==翻開時的圖標(biāo)&&!(listBlock.contains(方塊))) </p><p><b> {</b></p>&
102、lt;p> success=success+1; </p><p> listIocn.add(翻開時的圖標(biāo)); </p><p> listBlock.add(方塊);</p><p> if(success==列數(shù)) </p><p
103、><b> {</b></p><p> for(int i=0;i<block.length;i++) </p><p><b> {</b></p><p> block[i].setEnabled(false);</p><p><b> }
104、</b></p><p> for(int j=0;j<listBlock.size();j++)</p><p><b> {</b></p><p> Block b=(Block)listBlock.get(j);</p><p> b.setDisabledIcon(b.獲取翻開時的圖標(biāo)
105、());</p><p><b> } </b></p><p> 計時器.stop();</p><p> Record record=new Record(gradeFile);</p><p> record.setTime(time);</p><p> record.setVi
106、sible(true);</p><p><b> } </b></p><p><b> }</b></p><p> else if((temp!=翻開時的圖標(biāo))&&(!(listBlock.contains(方塊)))) </p><p><b> {&
107、lt;/b></p><p> listIocn.clear(); </p><p> listBlock.clear();</p><p> listIocn.add(翻開時的圖標(biāo)); </p><p> listBlock.add(方塊);<
108、;/p><p> success=1; </p><p> for(int i=0;i<block.length;i++) </p><p><b> {</b></p><p> if(方塊!=block[i])</p
109、><p><b> {</b></p><p> block[i].設(shè)置圖標(biāo)(block[i].獲取關(guān)閉時的圖標(biāo)());</p><p><b> }</b></p><p> } </p><p><b> } </b&
110、gt;</p><p><b> }</b></p><p> if(計時器是否啟動==false)</p><p><b> {</b></p><p><b> time=0;</b></p><p> 計時器.start();
111、 </p><p> 計時器是否啟動=true; </p><p><b> }</b></p><p><b> }</b></p><p> if(e.getSource()
112、==計時器)</p><p><b> {</b></p><p> time=time+1;</p><p> 顯示時間.setText("您的用時:"+time+"秒");</p><p><b> }</b></p><p&g
113、t;<b> }</b></p><p><b> }</b></p><p> ShowRecord.java</p><p> import java.io.*;</p><p> import java.util.*;</p><p> import jav
114、ax.swing.*;</p><p> import java.awt.event.*;</p><p> import java.awt.*;</p><p> public class ShowRecord extends JDialog implements ActionListener</p><p><b> {
115、 </b></p><p> File gradeFile=null;</p><p> JButton 確定,清除;</p><p> JTextArea show=null;</p><p> public ShowRecord(JFrame frame,File f)</p><p><
116、b> {</b></p><p> super(frame,"記憶測試排行榜:"+f.toString());</p><p> gradeFile=f;</p><p> show=new JTextArea(6,4);</p><p> 確定=new JButton("顯示排行榜&
117、quot;);</p><p> 確定.addActionListener(this);</p><p> 清除=new JButton("清空排行榜");</p><p> 清除.addActionListener(this);</p><p> Container con=getContentPane(); &
118、lt;/p><p> con.add(new JScrollPane(show),BorderLayout.CENTER);</p><p> JPanel p=new JPanel();</p><p> p.add(確定);</p><p> p.add(清除);</p><p> con.add(p,Bor
119、derLayout.SOUTH);</p><p> setBounds(100,100,320,185);</p><p> setVisible(false);</p><p> setModal(true); </p><p> addWindowListener(new WindowAdapter()</p>&
120、lt;p><b> {</b></p><p> public void windwoClosing(WindowEvent e)</p><p><b> {</b></p><p> setVisible(false);</p><p> dispose();</p>
121、<p><b> }</b></p><p><b> }</b></p><p><b> ); </b></p><p><b> }</b></p><p> public void actionPerformed(Actio
122、nEvent e)</p><p><b> { </b></p><p> if(e.getSource()==確定)</p><p><b> { </b></p><p><b> try</b></p><p><b> {&
123、lt;/b></p><p> show.setText(null);</p><p> FileInputStream in=new FileInputStream(gradeFile);</p><p> ObjectInputStream object_in=new ObjectInputStream(in);</p><p&g
124、t; LinkedList 成績=(LinkedList)object_in.readObject();</p><p> object_in.close();</p><p> sort(成績); </p><p> for(int i=0;i<成績.size();i++)
125、</p><p><b> {</b></p><p> People people=(People)成績.get(i);</p><p> show.append("\n"+people.getName()+"成績:"+people.getTime());</p><p>
126、<b> }</b></p><p><b> }</b></p><p> catch(Exception ee)</p><p><b> {</b></p><p><b> }</b></p><p><b&
127、gt; }</b></p><p> if(e.getSource()==清除)</p><p><b> { </b></p><p><b> try</b></p><p><b> {</b></p><p> FileI
128、nputStream in=new FileInputStream(gradeFile);</p><p> ObjectInputStream object_in=new ObjectInputStream(in);</p><p> LinkedList 成績=(LinkedList)object_in.readObject();</p><p> obj
129、ect_in.close();</p><p> 成績.clear();</p><p> FileOutputStream out=new FileOutputStream(gradeFile);</p><p> ObjectOutputStream object_out=new ObjectOutputStream(out);</p>&l
130、t;p> object_out.writeObject(成績);</p><p> out.close();</p><p> object_out.close(); </p><p> show.setText("排行榜被清空");</p><p><b> }</b></p&
131、gt;<p> catch(Exception ee)</p><p><b> {</b></p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p>
132、;<p> public void sort(LinkedList list)</p><p><b> {</b></p><p> for(int i=0;i<list.size()-1;i++)</p><p><b> {</b></p><p> for(in
133、t j=i+1;j<list.size();j++)</p><p><b> {</b></p><p> if(((People)list.get(i)).getTime()>((People)list.get(j)).getTime())</p><p><b> {</b></p>
134、<p> People temp=(People)list.get(j);</p><p> list.set(j,(People)list.get(i));</p><p> list.set(i,temp);</p><p><b> }</b></p><p><b> } </
135、b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> Record.java</p><p> import java.io.*;</p>
136、<p> import java.util.*;</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p><p> import java.awt.*;</p><p> public class Record extends JFrame
137、implements ActionListener</p><p><b> {</b></p><p> int time=0;</p><p> JTextField yourName,label; </p><p> JButton 確定,取消;</p><p> File gra
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的記憶測試系統(tǒng)
- 課程設(shè)計單詞記憶測試器程序設(shè)計
- 單片機單詞記憶測試器課程設(shè)計
- java課程設(shè)計記憶系統(tǒng)報告
- java網(wǎng)絡(luò)測試系統(tǒng)_課程設(shè)計
- 基于單片機的單詞記憶測試器設(shè)計
- 打字訓(xùn)練測試軟件-java課程設(shè)計
- java課程設(shè)計報告---java實現(xiàn)畫筆系統(tǒng)
- java課程設(shè)計--酒店管理系統(tǒng)
- java課程設(shè)計---即時聊天系統(tǒng)
- java課程設(shè)計--注冊登錄系統(tǒng)
- java課程設(shè)計-文件管理系統(tǒng)
- java課程設(shè)計超市收銀系統(tǒng)
- java課程設(shè)計
- java課程設(shè)計----課程設(shè)計報告
- java課程設(shè)計--學(xué)籍管理系統(tǒng)
- java學(xué)生管理系統(tǒng)課程設(shè)計
- java課程設(shè)計報告---考試系統(tǒng)
- java課程設(shè)計(班級管理系統(tǒng))
- java課程設(shè)計學(xué)籍管理系統(tǒng)
評論
0/150
提交評論