JAVA課程設(shè)計——記憶測試系統(tǒng)(附源程序)_第1頁
JAVA課程設(shè)計——記憶測試系統(tǒng)(附源程序)_第2頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、NANJINGXIAOZHUANGUNTVERSITYJAVA程序設(shè)計課程設(shè)計報告題目:記憶游戲姓名:學(xué)號:班級:指導(dǎo)教師:完成時間成績:信息工程學(xué)院2015年6月目錄1概述11.1課程設(shè)計目的11.2課程設(shè)計內(nèi)容12需求分析22.1設(shè)計目標(biāo)22.2主體功能22.3開發(fā)環(huán)境23概要設(shè)計33.1系統(tǒng)的功能模塊劃分33.2系統(tǒng)流程圖44詳細設(shè)計55測試75.1測試方案85.2測試結(jié)果86小結(jié)11參考文獻12附錄13附錄1源程序清單13Java程序設(shè)計課程設(shè)計報告記憶測試系統(tǒng)1概述1.1 課程設(shè)計目的1) 鞏固和提高java編程技術(shù)。2) 培養(yǎng)掌握成學(xué)設(shè)計的基本思路和方法。3) 加強研發(fā)、調(diào)試程序的

2、能力。4) 增強分析、解決問題的能力。5) 提高科技論文寫作能力。1.2 課程設(shè)計內(nèi)容記憶測試系統(tǒng)是通過回憶法測試記憶能力,測試手段分為初級,中級和高級三個級別。記憶測試系統(tǒng)設(shè)計要求如下:(1) 單擊“記憶測試”菜單可以選擇初級、中級或高級三個級別。(2) 單擊“記憶測試”菜單還可以查看初級記憶榜、中級記憶榜或高級記憶榜,通過記憶榜存儲每個級別的成績。(3) 選擇級別后,將出現(xiàn)相應(yīng)級別的測試區(qū)。測試區(qū)由m*n個方塊組成,程序通過設(shè)置m和n的值來確定相應(yīng)的測試級別,例如,對于初級級別,m=3,n=3。每個方塊上都有一個圖標(biāo),但該圖標(biāo)默認(rèn)不可見。用鼠標(biāo)單擊測試區(qū)中的任何一個方塊,則計時器開始啟動動

3、,同時該方塊上的圖標(biāo)將顯示出來。(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(pn)個圖標(biāo)相同的方塊,當(dāng)再單擊另一個方塊時,如果該方塊的圖標(biāo)和上一個的相同,那么該方塊的圖標(biāo)和前p次單擊出的方塊的圖標(biāo)仍然可見;否則前p次單擊出來的方塊的圖標(biāo)全都變得不可見,只有當(dāng)前單擊的方塊的圖標(biāo)可現(xiàn)。(5) 測試區(qū)能顯示用戶的同時,并根據(jù)級別的不同,提示用戶必須用鼠標(biāo)連續(xù)單擊出多個圖標(biāo)相同的方塊。(6) 測試區(qū)有提示圖標(biāo)所在位置的功能。用戶單擊測試區(qū)中的“提示”按鈕

4、后,測試區(qū)將持續(xù)1.2秒為用戶顯示全部方塊上的圖標(biāo)。用戶每單擊一次“提示”按鈕,用戶用時將增加10秒。(7) 連續(xù)單擊出級別所要求的若干個相同的方塊后,將彈出保存成績對話框,用戶可以通過該對話框選擇是否將自己的成績保存到成績表中。2需求分析2.1 設(shè)計目標(biāo)1單擊“記憶測試”菜單可以選擇初級、中級、高級三個級別,通過記憶榜可以查看初級記憶榜、中級記憶榜或高級記憶榜。2. 選擇級別后,將顯示相應(yīng)級別的測試區(qū)域。測試區(qū)域由若干個方塊組成,每個方塊上都有一個圖標(biāo),但該圖標(biāo)默認(rèn)情況下不可見。用鼠標(biāo)單擊測試區(qū)中的任何一個方塊,則計時器開始啟動,同時該方塊上的圖標(biāo)將顯示出來。對于初級級別,用戶必須用鼠標(biāo)連續(xù)

5、單擊3個圖標(biāo)相同的方塊,也就是說,如果用戶已經(jīng)用鼠標(biāo)連續(xù)單擊出n(n3)個圖標(biāo)相同的方塊,單擊另一個方塊時,如果該方塊的圖標(biāo)和上一個相同,那么該方塊的圖標(biāo)和前n次單擊出的方塊的圖標(biāo)仍然可見,否則,前n次單擊出的方塊的圖標(biāo)都變?yōu)椴豢梢姟?. 連續(xù)單擊出該級別所要求的若干個圖標(biāo)形同的方塊后,將顯示保存成績對話框,成績按所用時間排序。用戶可以通過該對話框選擇是否將自己的成績保存到成績表中。2.2 主體功能本游戲是通過由用戶點擊圖片顯示出圖片后,如果是相同的,便保持圖形,如果用戶點開的是不同的圖片則先前點擊的圖片被清空。當(dāng)用戶同時點擊出規(guī)定數(shù)目的圖片后,彈出保存成績框。2.3 開發(fā)環(huán)境Win7;MyE

6、clipse8.5軟件93概要設(shè)計3.1 系統(tǒng)的功能模塊劃分記憶測試系統(tǒng)共包含8個java源文件和若干個圖像文件(用戶可以增加)。類之間的主要關(guān)系如下圖所示。在測試系統(tǒng)中,可以編寫6個Java源文件:MemoryGame.java、MemoryTestArea.java、Block.java、ShowRecordDialog.java、Record.java、People.java。記憶測試系統(tǒng)除了上述6個Java源文件產(chǎn)生的類外,還需要Java系統(tǒng)提供的一些重要的類。記憶測試系統(tǒng)所用到的一些重要的類以及之間的組合關(guān)系如圖3.1所示。圖3.1類之間的關(guān)系3.2系統(tǒng)流程圖圖3.2系統(tǒng)流程圖4詳細

7、設(shè)計4.1 工作原理系統(tǒng)主體部分是在底層容器上插入面板,并在面板上安排按鈕陣列,當(dāng)用戶點擊按鈕,經(jīng)過隨機安排在按鈕后面的圖片顯示出來。通過對比圖片下標(biāo),如果所顯示圖片和前一個顯示圖片一樣,則沒變化;如果,不一樣,則把以前所有顯示的圖片重新用按鈕遮蓋。當(dāng)用戶點開指定數(shù)量的圖片時,就進入記錄數(shù)據(jù)部分。在測試過程中,顯示用戶測試時間。記錄數(shù)據(jù)部分。是把用戶輸入的姓名和系統(tǒng)記錄用戶測試時間寫入指定文檔中保存。查閱數(shù)據(jù)部分,是把指定文檔的數(shù)據(jù)顯示給用戶,包括姓名和測試時間。用戶此時可以清除文檔中數(shù)據(jù),即可刪除排行榜。4.2 算法思路主窗口安排指定數(shù)量按鈕,是通過用戶所選級別傳參數(shù)計算后進行安排。隨機分布

8、圖片需要隨機函數(shù)隨機產(chǎn)生指定數(shù)量的圖片下標(biāo),并傳給主窗口的按對應(yīng)按鈕通過對比所顯示圖片的下標(biāo),統(tǒng)計顯示的相同圖片的數(shù)量。用戶測試開始后,記錄測試時間,并保存。4.3 主類Memorya).成員變量主要成員變量(屬性):成員變量描述變量類型名稱菜單條JMenuBarBar菜單JMenuItemFileMenu菜單項JMenuBar初級,中級,高級,初級排行榜,中級排行榜,高級排行榜面板容器MemoryTestPane記憶測試板方塊數(shù)組Blockblock顯示成績ShowRecord顯示成績表對話框圖標(biāo)數(shù)組ImageIconiconb).方法主要方法:名稱功能備注Memory創(chuàng)建窗口構(gòu)造方法給出級

9、別測試選擇級別actionPerformed處理ActionEvent事件接口方法Main主程序開始執(zhí)行4.4類Blocka).成員變量主要成員變量(屬性)成員變量描述變量類型名稱方塊翻開時的圖標(biāo)ImageIcon翻開時的圖標(biāo)方塊關(guān)閉時的圖標(biāo)ImageIcon關(guān)閉時的圖標(biāo)b).方法主要方法名稱功能備注Block創(chuàng)建方塊對象的構(gòu)造方法獲取翻開時的圖標(biāo)獲取方塊翻開時的圖標(biāo)獲取關(guān)閉時的圖標(biāo)獲取方塊關(guān)閉時的圖標(biāo)設(shè)置翻開時的圖標(biāo)設(shè)置翻開時的圖標(biāo)設(shè)置關(guān)閉時的圖標(biāo)設(shè)置關(guān)閉時的圖標(biāo)設(shè)置圖標(biāo)設(shè)置方塊上的圖標(biāo)actionPerformed處理ActionEvent事件處理ActionEvent事件4.5類Memo

10、ryTestPaneA).成員變量主要成員變量(屬性):變量描述變量類型名稱隨機排列圖標(biāo)對象RandomSetlcon排列圖標(biāo)方塊數(shù)組Blockblock圖標(biāo)數(shù)組Imagelconicon添加方塊對象用的鏈表LinkedListlisticon添加圖標(biāo)對象用的鏈表LinkedListlisticon確定是否成功的對象intsuccess用來計時的對象Timer計時器記憶測試板的行數(shù)和列數(shù)int行數(shù),列數(shù)b).方法主要方法名稱功能備注MemoryTestPane創(chuàng)建記憶測試板對象的構(gòu)造方法actionPerformed處理ActionEvent事件接口方法4.6類ShowRecorda).成員變

11、量主要成員變量(屬性)成員變量描述變量類型名稱存放成績的文件FilegradeFile按鈕對象JButton確定,清除顯示成績的區(qū)域JTextAreashowb).方法主要方法名稱功能備注ShowRecord創(chuàng)建顯示成績窗口構(gòu)造方法actionPerformed處理ActionEvent事件接口方法4.7 類Recorda).成員變量主要成員變量(屬性)成員變量描述變量類型名稱用時inttime輸入測試者的名字JTextFieldyourname存放成績的文件FilegradeFile是否保存成績的按鈕JButton確定,取消b).方法主要方法名稱功能備注Record創(chuàng)建保存成績窗口構(gòu)造方法a

12、ctionPerformed處理ActionEvent事件接口方法setTime設(shè)置時間setFile設(shè)置文件4.8 類RandomSetIcona).成員變量(無)b).方法主要方法:名稱功能備注隨機設(shè)置圖標(biāo)隨機排列記憶測試板中方塊的圖標(biāo)4.9 類Peoplea)成員變量主要成員變量(屬性)描述變量類型名稱測試者名字Stringname用時inttimeb)方法主要方法:名稱功能備注People傳遞名字和時間構(gòu)造方法getTime返回使用者用時getName返回使用者名字5測試5.1測試方案將7個java文件保存到一個文件夾中,例如,D:jiyiceshi。將7個文件分別編譯成相應(yīng)的字節(jié)碼(

13、.class)文件。然后,用java解釋器運行主類:C:jiyiceshijavaMemory程序運行后選擇各菜單,分別進行功能測試。5.2測試結(jié)果(1)運行效果圖5.2.1運行效果Java程序設(shè)計課程設(shè)計報告當(dāng)選擇“記憶力測試”后,自己可以設(shè)置游戲的難度,效果如圖圖5.2.2初級效果圖圖5.2.3中級效果圖高級:您需要連續(xù)找出5個相同圏標(biāo)的方塊圖524高級效果圖17圖5.2.5排行效果圖(3)當(dāng)游戲結(jié)束后,查看“初級排行榜”將顯示初級的成績記錄效果圖5.2.5初級成績記錄6小結(jié)Java程序設(shè)計是本專業(yè)的一門重要的面向?qū)ο蟮某绦蛘Z言。在剛開始學(xué)習(xí)時,一直擔(dān)心自己、也沒把握自己能否學(xué)好,也曾擔(dān)心

14、過不了考試這一關(guān)。經(jīng)過近大半學(xué)期老師您不厭其煩的教導(dǎo),引導(dǎo)我們?nèi)W(xué)習(xí)。我對Java語言有了一定的了解,但那絕對是遠遠不夠的,還是要不斷地把它應(yīng)用到實踐中去,融會貫通。經(jīng)過為期一周的Java課程設(shè)計,親身感受體驗敲、改寫Java程序代碼的樂趣,我對Java編程有了較為深入的了解,不僅鞏固了以前在課本上學(xué)到的知識,還學(xué)會了很多其他東西,比如Java程序不同調(diào)試平臺的使用、錯誤的調(diào)試及數(shù)據(jù)庫路徑的配置等等。一直以來,或許有不少人跟我一樣,總是覺得編程是很枯燥乏味的,但是這次的體驗下來,其實以前我們的想法錯誤的。感覺到看著敲擊的代碼變?yōu)橐粋€個可以自娛自樂小游戲程序,其實是一件非常有趣的事情。并且在添加

15、功能的過程中,不僅可以啟發(fā)自己的想象力,還可以培養(yǎng)靈活運用知識的能力。在此過程中,我們認(rèn)識到編程的重要步驟是分析,分析問題的本身和現(xiàn)實要求。分析過程中采用根據(jù)設(shè)置框架選擇功能使我的思路特別清晰。拿到一個題目不能只局限在一種思想一種方法上,要盡量的多嘗試其他的做法,然后比較,集各家之所長,拿出最優(yōu)秀的程序來。其次也是最重要的就是我們應(yīng)當(dāng)打開我們的視野,我們應(yīng)當(dāng)從我們的生活的這個世界中去領(lǐng)悟解決問題的思想和方法通過這次課程設(shè)計,我收獲的不僅僅是課程上的知識得到實際應(yīng)用,還有編程的基本習(xí)慣和開發(fā)系統(tǒng)時應(yīng)注意的流程。作為一個程序編程人員,要保持清醒的頭腦,以現(xiàn)實為依據(jù),讓自己的每一行代碼都能實現(xiàn)自己的

16、意義。參考文獻文獻寫法如下:1.專著、論文集、畢業(yè)論文、報告等瘋狂Java講義(2008-09)李剛著附錄附錄1源程序清單Memory.javaimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.util.LinkedList;publicclassMemoryextendsJFrameimplementsActionListenerJMenuBarbar;JMenufileMenu;JMenuItem初級,中級,高級,初級排行榜,中級排行榜,高級排行榜;Blockbloc

17、k;ImageIconicon;MemoryTestPane記憶測試板=null;Filefile初級=newFile("初級記憶排行榜.txt"),file中級=newFile("中級記憶排行榜.txt"),file高級=newFile("高級記憶排行榜.txt");LinkedList成績表=null;ShowRecord顯示成績表對話框=null;intm=5,n=6;int圖標(biāo)個數(shù)=0;Containercon=null;JTextField提示條=null;FilegradeFile=null;publicMemory()b

18、lock=newBlockm*n;圖標(biāo)個數(shù)=m;icon=newImageIcon圖標(biāo)個數(shù);for(inti=0;i<icon.length;i+)iconi=newImageIcon("a"+i+".gif");for(inti=0;i<block.length;i+)blocki=newBlock();blocki.設(shè)置關(guān)閉時的圖標(biāo)(newImageIcon("關(guān)閉.gif");bar=newJMenuBar();fileMenu=newJMenu("記憶力測試”);初級=newJMenuItem("

19、;初級”);中級=newJMenuItem("中級”);高級=newJMenuItem("高級");fileMenu.setMnemonic('G');初級.setMnemonic('B');中級.setMnemonic('I');高級.setMnemonic('E');高級排行榜=newJMenuItem(”高級排行榜”);中級排行榜=newJMenuItem("中級排行榜”);初級排行榜=newJMenuItem(”初級排行榜”);初級.setMnemonic('T');

20、fileMenu.add(初級);fileMenu.add(中級);fileMenu.add(高級);fileMenu.add(初級排行榜);fileMenu.add(中級排行榜);fileMenu.add(高級排行榜);bar.add(fileMenu);setJMenuBar(bar);初級.addActionListener(this);中級.addActionListener(this);高級.addActionListener(this);初級排行榜.addActionListener(this);中級排行榜.addActionListener(this);高級排行榜.addActi

21、onListener(this);成績表=newLinkedList();if(!file初級.exists()tryFileOutputStreamout=newFileOutputStreamC初級記憶排行榜.txt");ObjectOutputStreamobject_out=newObjectOutputStream(out);object_out.writeObject(成績表);object_out.close();out.close();catch(IOExceptione)if(!file中級.exists()tryFileOutputStreamout=newFil

22、eOutputStream中級記憶排行榜.txt");ObjectOutputStreamobject_out=newObjectOutputStream(out);object_out.writeObject(成績表);object_out.close();out.close();catch(IOExceptione)if(!file高級.exists()tryFileOutputStreamout=newFileOutputStream高級記憶排行榜.txt");ObjectOutputStreamobject_out=newObjectOutputStream(out

23、);object_out.writeObject(成績表);object_out.close();out.close();catch(IOExceptione)gradeFile=file初級;setBounds(100,100,300,260);setVisible(true);addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System.exit(0););con=getContentPane();記憶測試板=newMemoryTestPane(block,icon,m,n,gradeFile

24、);提示條=newJTextField("初級:您需要連續(xù)找出”+6+”個相同圖標(biāo)的方塊”);提示條.setEditable(false);提示條.setForeground(Color.red);con.add(記憶測試板,BorderLayout.CENTER);con.add(提示條,BorderLayout.SOUTH);con.validate();this.validate();publicvoid給出級別測試(int寬,int高,Filef)m=寬;n=高;圖標(biāo)個數(shù)=皿;gradeFile=f;block=newBlockm*n;icon=newImageIcon圖標(biāo)個

25、數(shù);for(inti=0;i<icon.length;i+)iconi=newImageIcon("a"+i+".gif");for(inti=0;i<block.length;i+)blocki=newBlock();blocki.設(shè)置關(guān)閉時的圖標(biāo)(newImageIcon(”關(guān)閉.gif");記憶測試板=newMemoryTestPane(block,icon,m,n,gradeFile);con.removeAll();con.add(記憶測試板,BorderLayout.CENTER);con.add(提示條,BorderL

26、ayout.SOUTH);con.validate();this.validate();publicvoidactionPerformed(ActionEventevent)if(event.getSource()=初級)給出級別測試(3,3,file初級);setBounds(100,100,300,260);this.validate();提示條.setText("初級:您需要連續(xù)找出"+3+"個相同圖標(biāo)的方塊”);if(event.getSource()=中級)給出級別測試(4,4,file中級);setBounds(100,100,340,280);thi

27、s.validate();提示條.setText(”中級:您需要連續(xù)找出"+4+"個相同圖標(biāo)的方塊”);if(event.getSource()=高級)給出級別測試(5,5,file高級);setBounds(100,100,360,300);this.validate();提示條.setText(”高級:您需要連續(xù)找出"+5+"個相同圖標(biāo)的方塊”);if(event.getSource()=高級排行榜)顯示成績表對話框=newShowRecord(this,file高級);顯示成績表對話框.setVisible(true);if(event.getSo

28、urce()=中級排行榜)顯示成績表對話框=newShowRecord(this,file中級);顯示成績表對話框.setVisible(true);:訛6皿傑上$0口26()=初級排行榜)顯示成績表對話框=newShowRecord(this,file初級);顯示成績表對話框.setVisible(true);publicstaticvoidmain(Stringargs)newMemory();Block.javaimportjavax.swing.*;importjava.awt.event.*;publicclassBlockextendsJButtonimplementsAction

29、ListenerImageIcon翻開時的圖標(biāo)=null,關(guān)閉時的圖標(biāo)=null;publicBlock()addActionListener(this);publicImageIcon獲取翻開時的圖標(biāo)()return翻開時的圖標(biāo);publicImageIcon獲取關(guān)閉時的圖標(biāo)()return關(guān)閉時的圖標(biāo);publicvoid設(shè)置翻開時的圖標(biāo)(Imageiconicon)翻開時的圖fe=icon;publicvoid設(shè)置關(guān)閉時的圖標(biāo)(Imageiconicon)關(guān)閉時的圖=icon;publicvoid設(shè)置圖標(biāo)(Imageiconicon)setIcon(icon);publicvoidact

30、ionPerformed(ActionEvente)this.setIcon(翻開時的圖標(biāo));MemoryTestPane.javaimportjavax.swing.*;importjava.awt.event.*;importjava.awt.*;importjava.util.LinkedList;importjava.io.*;publicclassMemoryTestPaneextendsJPanelimplementsActionListenerRandomSetlcon排列圖標(biāo)二null;Blockblock;ImageIconicon;LinkedListlistIocn=nu

31、ll,listBlock=null;int行數(shù)=0,列數(shù)=0;intsuccess=0;inttime=0;javax.swing.Timer計時器二null;JTextField顯示時間二null;FilegradeFile=null;boolean計時器是否啟動二false;publicMemoryTestPane(Blockblock,ImageIconicon,intm,intn,F(xiàn)ilef)排列圖標(biāo)二newRandomSetlcon();this.block=block;this.icon=icon;Java程序設(shè)計課程設(shè)計報告行數(shù)=m;列數(shù)=n;gradeFile=f;listIo

32、cn=newLinkedList();listBlock=newLinkedList();setLayout(newBorderLayout();JPanelcenter=newJPanel();center.setLayout(newGridLayout(行數(shù),列數(shù));for(inti=0;i<block.length;i+)center.add(blocki);blocki.addActionListener(this);JPanelsouth=newJPanel();顯示時間=newJTextField(12);顯示時間.setEditaBle(false);顯示時間.setFor

33、eground(Color.red);south.add(顯示時間);add(center,BorderLayout.CENTER);add(south,BorderLayout.SOUTH);排列圖標(biāo)隨機設(shè)置圖標(biāo)(BlocK,icon);計時器=newTimer(1000,this);計時器是否啟動=false;publicvoidactionPerformed(ActionEvente)if(e.getSource()instanceofBlock)Block方塊=(BlocK)e.getSource();Imageicon翻開時的圖標(biāo)=方塊.獲取翻開時的圖標(biāo)();方塊.設(shè)置圖標(biāo)(翻開時的

34、圖標(biāo));if(listIocn.size()=0)listlocn.add(翻開時的圖標(biāo));listBlock.add(方塊);success=1;elseImageIcontemp=(ImageIcon)listIocn.getLast();辻(temp=開時的圖標(biāo)&&!(listBlock.contains(方塊)success=success+1;listlocn.add(翻開時的圖標(biāo));listBlock.add(方塊);if(success=數(shù))for(inti=0;i<block.length;i+)blocki.setEnabled(false);for(i

35、ntj=O;jlistBlock.size();j+)Blockb=(Block)listBlock.get(j);b.setDisabledIcon(b.獲取翻開時的圖標(biāo)();計時器.stop();Recordrecord=newRecord(gradeFile);record.setTime(time);record.setVisible(true);elseif(temp!=|開時的圖標(biāo))&&(!(listBlock.contains(方塊)listIocn.clear();listBlock.clear();listlocn.add(翻開時的圖標(biāo));listBlock.

36、add(方塊);success=1;for(inti=0;iblock.length;i+)if(方塊!=blocki)blocki.設(shè)置圖標(biāo)(blocki.獲取關(guān)閉時的圖標(biāo)();if(計時器是否啟動=false)time=0;計時器.start();計時器是否啟動=七rue;if(e.getSource()二二計時器)time=time+1;顯示時間.setText("您的用時:"+time+"秒");ShowRecord.javaimportjava.io.*;importjava.util.*;importjavax.swing.*;importj

37、ava.awt.event.*;importjava.awt.*;publicclassShowRecordextendsJDialogimplementsActionListenerFilegradeFile=null;JButton確定,清除;JTextAreashow=null;publicShowRecord(JFrameframe,F(xiàn)ilef)super(frame,"記憶測試排行榜:"+f.toString();gradeFile=f;show=newJTextArea(6,4);確定=newJButton("顯示排行榜");確定.addAc

38、tionListener(this);清除=newJButton("清空排行榜");清除.addActionListener(this);Containercon=getContentPane();con.add(newJScrollPane(show),BorderLayout.CENTER);JPanelp=newJPanel();p.add(確定);p.add(清除);con.add(p,BorderLayout.SOUTH);setBounds(100,100,320,185);setVisible(false);setModal(true);addWindowLi

39、stener(newWindowAdapter()publicvoidwindwoClosing(WindowEvente)setVisible(false);dispose(););publicvoidactionPerformed(ActionEvente)if(e.getSource()=定)tryshow.setText(null);FileInputStreamin=newFileInputStream(gradeFile);ObjectInputStreamobject_in=newObjectInputStream(in);LinkedList成績二(LinkedList)obj

40、ect_in.readObject();object_in.close();sort(成績);for(inti=0;i成績.size();i+)Peoplepeople=(People)成績.get(i);show.append("n"+people.getName()+"成績:"+people.getTime();catch(Exceptionee)if(e.ge七50口口6()=清除)tryFileInputStreamin=newFileInputStream(gradeFile);ObjectInputStream0bject_in=newObj

41、ectInputStream(in);LinkedList成績二(LinkedList)object_in.readObject();0bject_in.cl0se();成績.clear();FileOutputStreamout=newFileOutputStream(gradeFile);ObjectOutputStreamobject_out=newObjectOutputStream(out);object_out.writeObject(成績);out.close();object_out.close();show.setText("排行榜被清空");catch(

42、Exceptionee)publicvoidsort(LinkedListlist)for(inti=0;i<list.size()-1;i+)for(intj=i+1;j<list.size();j+)if(People)list.get(i).getTime()>(People)list.get(j).getTime()Peopletemp=(People)list.get(j);list.set(j,(People)list.get(i);list.set(i,temp);Record.javaimportjava.io.*;importjava.util.*;impo

43、rtjavax.swing.*;importjava.awt.event.*;importjava.awt.*;publicclassRecordextendsJFrameimplementsActionListenerinttime=0;JTextFieldyourName,label;JButton確定,取消;FilegradeFile=null;publicRecord(Filef)super("記錄你的成績到:"+f.toString();gradeFile=f;setBounds(100,100,330,160);setResizable(false);setVi

44、sible(false);確定=newJButton("確定");取消=newJButton("取消");yourName=newJTextField(8);yourName.setText("匿名");確定.addActionListener(this);取消.addActionListener(this);Containercon=getContentPane();con.setLayout(newGridLayout(2,1);label二newJTextField("輸入你的姓名,將成績存放到排行榜:"+f.toString();label.setEditable(false);con.add(label);JPanelp=newJPanel();p.add(yourName);p.add(確定);p.add(取消);con.add(p);a

溫馨提示

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

評論

0/150

提交評論