java課程設(shè)計(jì)-記憶測(cè)試系統(tǒng)Word版_第1頁(yè)
java課程設(shè)計(jì)-記憶測(cè)試系統(tǒng)Word版_第2頁(yè)
java課程設(shè)計(jì)-記憶測(cè)試系統(tǒng)Word版_第3頁(yè)
java課程設(shè)計(jì)-記憶測(cè)試系統(tǒng)Word版_第4頁(yè)
java課程設(shè)計(jì)-記憶測(cè)試系統(tǒng)Word版_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、傳播優(yōu)秀Word版文檔 ,希望對(duì)您有幫助,可雙擊去除!課程設(shè)計(jì)(論文)題 目 名 稱 記憶測(cè)試系統(tǒng) 課 程 名 稱 專業(yè)課程設(shè)計(jì) 學(xué) 生 姓 名 學(xué) 號(hào) 系 、專 業(yè) 信息工程系、計(jì)算機(jī)科學(xué)與技術(shù) 指 導(dǎo) 教 師 2013年 11 月 2 日目 錄1 前言12 需求分析12.1 任務(wù)和要求12.2 運(yùn)行環(huán)境22.3 開(kāi)發(fā)工具23 分析和設(shè)計(jì)23.1 系統(tǒng)分析及設(shè)計(jì)思路23.2 主要類圖33.3 函數(shù)流程圖44 具體代碼實(shí)現(xiàn)65 課程設(shè)計(jì)總結(jié)215.1 程序運(yùn)行結(jié)果或預(yù)期運(yùn)行結(jié)果215.2 設(shè)計(jì)結(jié)論25參考文獻(xiàn)26致 謝261前言伴隨著社會(huì)科學(xué)技術(shù)的飛速發(fā)展,信息化時(shí)代也以閃電般的速度呈現(xiàn)在我們

2、的面前,所以,計(jì)算機(jī)的發(fā)展更以其驚人的速度在發(fā)展著,生活中有許多復(fù)雜的問(wèn)題都需要用計(jì)算機(jī)去解決,從而產(chǎn)生了新的思想,Java語(yǔ)言就是一種伴隨著社會(huì)息技術(shù)的飛速發(fā)展而發(fā)展起來(lái)的強(qiáng)有力的計(jì)算機(jī)編程語(yǔ)言,它能夠透徹地反映人們的思想,巧妙而充分地使計(jì)算機(jī)本身特性發(fā)揮到極致,便于編程人員根據(jù)社會(huì)的需要,靈活地編制出高級(jí)語(yǔ)言程序來(lái)實(shí)現(xiàn)生活和工作中的各種復(fù)雜程序。在當(dāng)今眾多的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言中,面向?qū)ο蠹夹g(shù)正逐步替代傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì)技術(shù),成為目前軟件的主流開(kāi)發(fā)方向,Java語(yǔ)言以它獨(dú)到的面向?qū)ο筇匦栽诟黝惥幊陶Z(yǔ)言中脫穎而出,Java語(yǔ)言的快速發(fā)展與廣泛應(yīng)用有目共睹。Java語(yǔ)言是計(jì)算機(jī)能提供的最快

3、而又最有效的語(yǔ)言,也是能夠利用計(jì)算機(jī)所有硬件特性的編程語(yǔ)言。在當(dāng)今信息高速發(fā)展的社會(huì),Java語(yǔ)言越來(lái)越實(shí)用,可以通過(guò)Java實(shí)現(xiàn)更高更快的應(yīng)用需求,Java語(yǔ)言將成為應(yīng)用程序的開(kāi)發(fā)和建設(shè)的核心技術(shù),它能夠有效地提高計(jì)算機(jī)性能和應(yīng)用場(chǎng)合,滿足各種用戶的應(yīng)用需求。 本論文主要介紹了記憶測(cè)試系統(tǒng)的相關(guān)使用方法,以及程序中應(yīng)用到的相關(guān)技術(shù)和方法。本論文包括需求分析、系統(tǒng)功能介紹和系統(tǒng)功能實(shí)現(xiàn)三個(gè)主要部分。2 需求分析2.1任務(wù)和要求通過(guò)專業(yè)課程設(shè)計(jì),還有根據(jù)團(tuán)隊(duì)合作的內(nèi)容,我們做了相應(yīng)的自主練習(xí),笑話了課堂所解的內(nèi)容,通過(guò)調(diào)試典型例題或習(xí)題積累調(diào)試JAVA程序的經(jīng)驗(yàn)。逐漸培養(yǎng)了我們的編程能力,并且有

4、助于培養(yǎng)學(xué)生綜合運(yùn)用數(shù)據(jù)庫(kù)相關(guān)知識(shí)解決實(shí)際問(wèn)題的能力。本設(shè)計(jì)要求對(duì)實(shí)際問(wèn)題進(jìn)行需求分析,提煉實(shí)際問(wèn)題中的數(shù)據(jù),建立關(guān)系模型,并在大型數(shù)據(jù)庫(kù)中得以實(shí)現(xiàn)。同時(shí)要求對(duì)數(shù)據(jù)庫(kù)的運(yùn)營(yíng)、管理及使用上進(jìn)行必要的規(guī)劃和實(shí)現(xiàn)。(1)根據(jù)需求,建立ER模型。通過(guò)ER圖表示。(2)預(yù)計(jì)每個(gè)表的大致容量和增長(zhǎng)速度。指定備份的方案,寫(xiě)出相關(guān)的備份命令。(3)從安全的角度出發(fā),規(guī)劃系統(tǒng)的角色、用戶、權(quán)限,并通過(guò)相關(guān)的SQL實(shí)現(xiàn)。(4)從數(shù)據(jù)更新或修改的角度出發(fā),設(shè)計(jì)至少1個(gè)存儲(chǔ)過(guò)程。(5)以上所有命令及腳本均需測(cè)試,在設(shè)計(jì)報(bào)告中說(shuō)明其功能并記錄其輸出。(6)針對(duì)常用的業(yè)務(wù),創(chuàng)建包,同時(shí)實(shí)現(xiàn)一個(gè)函數(shù)放入包中。(7)從實(shí)際查

5、詢應(yīng)用出發(fā),為一些主要的應(yīng)用模塊設(shè)計(jì)至少3個(gè)參數(shù)化視圖。(8)在此基礎(chǔ)上,設(shè)計(jì)物理表結(jié)構(gòu),編寫(xiě)創(chuàng)建數(shù)據(jù)庫(kù)表的語(yǔ)句。較高要求為在設(shè)計(jì)創(chuàng)建數(shù)據(jù)表語(yǔ)句的同時(shí)考慮性能上的要求,采用相關(guān)的磁盤(pán)存儲(chǔ)技術(shù)。 (9)從數(shù)據(jù)檢驗(yàn)的角度出發(fā),為相關(guān)的表建立至少1個(gè)觸發(fā)器2.2運(yùn)行環(huán)境(1)WINDOWS2000/XP系統(tǒng)(2)editplus 或eclipse2.3開(kāi)發(fā)工具JAVA3分析和設(shè)計(jì)3.1系統(tǒng)分析及設(shè)計(jì)思路記憶測(cè)試系統(tǒng)界面分級(jí)功能存儲(chǔ)功能換圖功能計(jì)時(shí)功能結(jié)束MemoryGameStringFileMemoryTestAreaShoeRecordDialogFileTreeSetArrayListStri

6、ngRecordTimerFileThread選擇級(jí)別后,將顯示相應(yīng)級(jí)別的測(cè)試區(qū)域。測(cè)試區(qū)域由若干個(gè)方塊組成,每個(gè)方塊都有一個(gè)圖標(biāo),但該圖標(biāo)默認(rèn)情況下不可見(jiàn)。用鼠標(biāo)單擊測(cè)試區(qū)中的任何一個(gè)方塊,則計(jì)時(shí)器開(kāi)始啟動(dòng),同時(shí)該方塊上的圖標(biāo)將顯示出來(lái)。對(duì)于初級(jí)級(jí)別,用戶必須用鼠標(biāo)連續(xù)單擊出6個(gè)圖標(biāo)相同的方塊,也就是說(shuō),如果用戶已經(jīng)用鼠標(biāo)連續(xù)單擊出n(n6)個(gè)圖標(biāo)相同的方塊,單擊另一個(gè)房塊時(shí),如果該方塊的圖標(biāo)和上一個(gè)相同,那么該方塊的圖標(biāo)和前n 次單擊出的方塊的圖標(biāo)仍然可見(jiàn),否則,前n次單擊出的方塊的圖標(biāo)都變?yōu)椴豢梢?jiàn)。連續(xù)單擊出該級(jí)別所要求的若干個(gè)圖彪相同的方塊后,將顯示保存成績(jī)對(duì)話框,成績(jī)按所用時(shí)間排序。

7、用戶可以通過(guò)該對(duì)話框選擇是否將自己的成績(jī)保存到成績(jī)表中。3.2主要類圖MemoryGameactionPerformed()main() Block 類getOpenStateIcon()setOpenStateIcon()Record類setGradeFile()setTime()actionPerformed() ShowRecordDialog 類setGradeFile()showRecord()actionPerformed()ShowRecord類 setGradeFile()showRecord()actionPerformed()MemoryTestArea類initBlock

8、()setImageName()actionPerformed()run()People類getTime()getName()compareTo()3.3函數(shù)流程圖4具體代碼實(shí)現(xiàn)/主類MemoryGameimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.LinkedList;public class MemoryGame extends JFrame implements ActionListener JMenuBar bar; JMenu menuG

9、rade,menuResult,menuIcon; JMenuItem oneGradeItem,twoGradeItem,threeGradeItem; JMenuItem oneGradeResult,twoGradeResult,threeGradeResult; JMenuItem carImageIcon,animalImageIcon; File fileOneGrade,fileTwoGrade,fileThreeGrade,gradeFile; String imageName; MemoryTestArea memoryArea; ShowRecordDialog showD

10、iolag=null; int m=5,n=6; final int imageNumber=7; MemoryGame() fileOneGrade=new File(初級(jí)記憶排行榜.txt); fileTwoGrade=new File(中級(jí)記憶排行榜.txt); fileThreeGrade=new File(高級(jí)記憶排行榜.txt); bar=new JMenuBar(); menuGrade=new JMenu(選擇級(jí)別); oneGradeItem=new JMenuItem(初級(jí)); twoGradeItem=new JMenuItem(中級(jí)); threeGradeItem=n

11、ew JMenuItem(高級(jí)); menuGrade.add(oneGradeItem); menuGrade.add(twoGradeItem); menuGrade.add(threeGradeItem); menuResult=new JMenu(查看排行榜); oneGradeResult=new JMenuItem(初級(jí)排行榜); twoGradeResult=new JMenuItem(中級(jí)排行榜); threeGradeResult=new JMenuItem(高級(jí)排行榜); menuResult.add(oneGradeResult); menuResult.add(twoG

12、radeResult); menuResult.add(threeGradeResult); menuIcon=new JMenu(選擇圖標(biāo)); carImageIcon=new JMenuItem(汽車圖標(biāo)); animalImageIcon=new JMenuItem(動(dòng)物圖標(biāo)); animalImageIcon.addActionListener(this); carImageIcon.addActionListener(this); menuIcon.add(carImageIcon); menuIcon.add(animalImageIcon); bar.add(menuGrade)

13、; bar.add(menuResult); bar.add(menuIcon); setJMenuBar(bar); oneGradeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); oneGradeResult.addActionListener(this); twoGradeResult.addActionListener(this); threeGradeResult.addActionListener(this); if

14、(!fileOneGrade.exists() try fileOneGrade.createNewFile(); catch(IOException exp) if(!fileTwoGrade.exists() try fileTwoGrade.createNewFile(); catch(IOException exp) if(!fileThreeGrade.exists() try fileThreeGrade.createNewFile(); catch(IOException exp) setBounds(100,100,400,360); setVisible(true); mem

15、oryArea=new MemoryTestArea(); imageName=new StringimageNumber; for(int i=0;iimageName.length;i+) imageNamei=new String(car+i+.jpg); m=5; n=6; gradeFile=fileOneGrade; memoryArea.initBlock(m,n,imageName,gradeFile); add(memoryArea,BorderLayout.CENTER); showDiolag=new ShowRecordDialog(); validate(); set

16、DefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent event) if(event.getSource()=oneGradeItem) m=5; n=6; gradeFile=fileOneGrade; memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=twoGradeItem) m=6; n=7; gradeFile=fileTwoGrade; memoryArea.initBlock(m,

17、n,imageName,gradeFile); if(event.getSource()=threeGradeItem) m=7; n=8; gradeFile=fileThreeGrade; memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=carImageIcon) for(int i=0;iimageName.length;i+) imageNamei=new String(car+i+.jpg); memoryArea.setImageName(imageName); memoryArea.initB

18、lock(m,n,imageName,gradeFile); if(event.getSource()=animalImageIcon) for(int i=0;iimageName.length;i+) imageNamei=new String(ani+i+.jpg); memoryArea.setImageName(imageName); memoryArea.initBlock(m,n,imageName,gradeFile); if(event.getSource()=oneGradeResult) showDiolag.setGradeFile(fileOneGrade); sho

19、wDiolag.showRecord(); showDiolag.setVisible(true); if(event.getSource()=twoGradeResult) showDiolag.setGradeFile(fileTwoGrade); showDiolag.showRecord(); showDiolag.setVisible(true); if(event.getSource()=threeGradeResult) showDiolag.setGradeFile(fileThreeGrade); showDiolag.showRecord(); showDiolag.set

20、Visible(true); public static void main(String args) new MemoryGame(); /MemoryTestArea類import javax.swing.*; import java.awt.event.*;import java.awt.*;import java.util.*;import java.io.*;public class MemoryTestArea extends JPanel implements ActionListener,Runnable int row,col; File gradeFile; ArrayLi

21、st allBlockList; String imageFileName; LinkedList openIconList; LinkedList openBlockList; int success=0; Thread hintThead; JButton hintButton; int usedTime=0; JTextField showUsedTime,hintMessage; javax.swing.Timer timer; Record record; JPanel center,south; MemoryTestArea() setLayout(new BorderLayout

22、(); allBlockList=new ArrayList(); openIconList=new LinkedList(); openBlockList=new LinkedList(); hintThead=new Thread(this); hintMessage=new JTextField(); hintMessage.setHorizontalAlignment(JTextField.CENTER); hintMessage.setEditable(false); hintMessage.setFont(new Font(宋體,Font.BOLD,18); center=new

23、JPanel(); south=new JPanel(); hintButton=new JButton(提示); hintButton.addActionListener(this); showUsedTime=new JTextField(8); showUsedTime.setEditable(false); showUsedTime.setHorizontalAlignment(JTextField.CENTER); south.add(new JLabel(用時(shí):) ; south.add(showUsedTime); south.add(new JLabel(提示圖標(biāo)位置(導(dǎo)致用時(shí)

24、增加):) ; south.add(hintButton); add(south,BorderLayout.SOUTH); add(hintMessage,BorderLayout.NORTH); timer=new javax.swing.Timer(1000,this); record=new Record(); public void initBlock(int m,int n,String name,File f) row=m; col=n; gradeFile=f; center.removeAll(); imageFileName=name; ImageIcon icon=new

25、ImageIconimageFileName.length; for(int i=0;iicon.length;i+) iconi=new ImageIcon(imageFileNamei); if(allBlockList.isEmpty() for(int i=0;irow*col;i+) allBlockList.add(new Block(); else allBlockList.clear(); for(int i=0;irow*col;i+) allBlockList.add(new Block(); for(int i=0;iallBlockList.size();i+) all

26、BlockList.get(i).addActionListener(this); allBlockList.get(i).setOpenStateIcon(iconi%row); Collections.shuffle(allBlockList); center.setLayout(new GridLayout(row,col); for(int i=0;iallBlockList.size();i+) center.add(allBlockList.get(i); add(center,BorderLayout.CENTER); if(timer.isRunning() timer.sto

27、p(); hintMessage.setText(您需要用鼠標(biāo)單擊出+col+個(gè)同樣圖標(biāo)的方塊); usedTime=0; showUsedTime.setText(null); validate(); public void setImageName(String name) imageFileName=name; public void actionPerformed(ActionEvent e) if(e.getSource() instanceof Block) if(!timer.isRunning() timer.start(); Block block=(Block)e.getS

28、ource(); ImageIcon openStateIcon=block.getOpenStateIcon(); block.setIcon(openStateIcon); if(openIconList.size()=0) openIconList.add(openStateIcon); openBlockList.add(block); success=1; else ImageIcon temp=openIconList.getLast(); if(temp=openStateIcon&!(openBlockList.contains(block) success=success+1

29、; openIconList.add(openStateIcon); openBlockList.add(block); if(success=col) for(int i=0;iallBlockList.size();i+) allBlockList.get(i).setEnabled(false); for(int j=0;jopenBlockList.size();j+) Block b=openBlockList.get(j); b.setDisabledIcon(b.getOpenStateIcon(); timer.stop(); record.setTime(usedTime);

30、 record.setGradeFile(gradeFile); record.setVisible(true); else if(temp!=openStateIcon)&(!(openBlockList.contains(block) openIconList.clear(); openBlockList.clear(); openIconList.add(openStateIcon); openBlockList.add(block); success=1; for(int i=0;iallBlockList.size();i+) if(allBlockList.get(i)!=bloc

31、k) allBlockList.get(i).setIcon(null); if(e.getSource()=hintButton) if(!hintThead.isAlive() hintThead=new Thread(this); for(int i=0;iallBlockList.size();i+) allBlockList.get(i).removeActionListener(this); usedTime=usedTime+10; try hintThead.start(); catch(IllegalThreadStateException ex) if(e.getSourc

32、e()=timer) usedTime+; showUsedTime.setText(您的用時(shí):+usedTime+秒); public void run() for(int i=0;iallBlockList.size();i+) allBlockList.get(i).setIcon(allBlockList.get(i).getOpenStateIcon(); try Thread.sleep(1200); catch(InterruptedException exp) for(int i=0;iallBlockList.size();i+) allBlockList.get(i).ad

33、dActionListener(this); for(int i=0;iallBlockList.size();i+) if(!openBlockList.contains(allBlockList.get(i) allBlockList.get(i).setIcon(null); /Block 類import javax.swing.*;import java.awt.event.*;public class Block extends JButton ImageIcon openStateIcon; public ImageIcon getOpenStateIcon() return op

34、enStateIcon; public void setOpenStateIcon(ImageIcon icon) openStateIcon=icon; /Record類import java.io.*;import java.util.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;public class Record extends JDialog implements ActionListener int time=0; JTextField yourName; JLabel label; JButto

35、n enter,cancel; File gradeFile=null; public Record() setBounds(100,100,330,160); setResizable(false); setModal(true); setVisible(false); enter=new JButton(確定); cancel=new JButton(取消); yourName=new JTextField(8); yourName.setText(匿名); enter.addActionListener(this); cancel.addActionListener(this); set

36、Layout(new GridLayout(2,1); label=new JLabel(); add(label); JPanel p=new JPanel(); p.add(yourName); p.add(enter); p.add(cancel); add(p); public void setGradeFile(File f) gradeFile=f; setTitle(保存成績(jī)到+gradeFile.getName(); label.setText(保存成績(jī)到+gradeFile.getName(); validate(); public void setTime(int time

37、) this.time=time; public void actionPerformed(ActionEvent e) if(e.getSource()=enter) LinkedList list=new LinkedList(); try RandomAccessFile out=new RandomAccessFile(gradeFile,rw); out.seek(out.length(); out.writeUTF(yourName.getText(); out.writeInt(time); out.close(); catch(Exception event) setVisib

38、le(false); if(e.getSource()=cancel) setVisible(false); /ShowRecordDialog 類import java.io.*;import java.util.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;public class ShowRecordDialog extends JDialog implements ActionListener File gradeFile; JButton clear; JTextArea showArea=null;

39、 TreeSet treeSet; public ShowRecordDialog() treeSet=new TreeSet(); showArea=new JTextArea(6,4); showArea.setFont(new Font(楷體,Font.BOLD,20); clear=new JButton(清空排行榜); clear.addActionListener(this); add(new JScrollPane(showArea),BorderLayout.CENTER); add(clear,BorderLayout.SOUTH); setBounds(100,100,32

40、0,185); setModal(true); addWindowListener(new WindowAdapter() public void windwoClosing(WindowEvent e) setVisible(false); ); public void setGradeFile(File f) gradeFile=f; setTitle(f.getName(); public void showRecord() showArea.setText(null); treeSet.clear(); try RandomAccessFile in=new RandomAccessF

41、ile(gradeFile,rw); long fileLength=in.length(); long readPosition=0; while(readPositionfileLength) String name=in.readUTF(); int time=in.readInt(); readPosition=in.getFilePointer(); People people=new People(name,time); treeSet.add(people); in.close(); Iterator iter=treeSet.iterator(); while(iter.has

42、Next() People p=iter.next(); showArea.append(姓名:+p.getName()+,成績(jī): +p.getTime()+秒); showArea.append(n); catch(IOException exp)System.out.println(exp); public void actionPerformed(ActionEvent e) if(e.getSource()=clear) try File f=gradeFile.getAbsoluteFile(); gradeFile.delete(); f.createNewFile(); showArea.setText(排行榜被清空); catch(Exception ee) /ShowRecord類import java.io.*;import java.util.*;import javax.swing.*;import java.awt.event.*

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論