版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《高級(jí)語(yǔ)言綜合課程設(shè)計(jì)》</p><p><b> 設(shè)計(jì)報(bào)告</b></p><p> 學(xué) 院: 信息工程學(xué)院</p><p> 專業(yè)班級(jí):</p><p> 學(xué) 號(hào):</p><p> 姓 名:</p><p> 指導(dǎo)老師:</p>
2、;<p> 完成時(shí)間:2011/7/22</p><p><b> 目錄</b></p><p><b> 題目一 計(jì)算器2</b></p><p> 1.1 題目簡(jiǎn)介3</p><p> 1.2 設(shè)計(jì)的內(nèi)容、要求和目標(biāo)3</p><p> 1.
3、2.1設(shè)計(jì)內(nèi)容3</p><p> 1.2.2設(shè)計(jì)要求3</p><p> 1.2.3設(shè)計(jì)目標(biāo)3</p><p> 1.3 總體設(shè)計(jì)3</p><p> 1.3.1 總體流程圖3</p><p> 1.3.2 總體結(jié)構(gòu)圖3</p><p> 1.4 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)4&l
4、t;/p><p> 1.4.1 操作界面設(shè)計(jì)4</p><p> 1.4.2 類成員變量及方法設(shè)計(jì)5</p><p> 1.4.3 源代碼分析5</p><p> 1.5 系統(tǒng)運(yùn)行及使用說(shuō)明6</p><p> 1.5.1程序主界面6</p><p> 1.5.2簡(jiǎn)單運(yùn)算6&
5、lt;/p><p> 1.5.3科學(xué)計(jì)算7</p><p> 1.5.4幫助文檔8</p><p> 題目二 學(xué)生信息管理9</p><p> 2.1 題目簡(jiǎn)介9</p><p> 2.2 設(shè)計(jì)的內(nèi)容、要求和目標(biāo)9</p><p> 2.2.1設(shè)計(jì)內(nèi)容9</p>
6、<p> 2.2.2設(shè)計(jì)要求9</p><p> 2.2.3設(shè)計(jì)目標(biāo)9</p><p> 2.3 總體設(shè)計(jì)9</p><p> 2.3.1 總體功能圖10</p><p> 2.3.2 總體流程圖10</p><p> 2.4 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)11</p><p&g
7、t; 2.4.2 類成員變量及方法設(shè)計(jì)12</p><p> 2.4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)15</p><p> 2.4.4效果圖17</p><p> 2.5 系統(tǒng)運(yùn)行及使用說(shuō)明19</p><p> 2.5.1 使用說(shuō)明19</p><p> 2.5.2 運(yùn)行效果圖19</p>&l
8、t;p> 題目三 俄羅斯方塊26</p><p> 3.1 題目簡(jiǎn)介26</p><p> 3.2需求分析26</p><p> 3.2.1設(shè)計(jì)目的和意義26</p><p> 3.2.2目標(biāo)26</p><p> 3.2.3用戶的特點(diǎn)26</p><p> 3.
9、2.4假定和約束26</p><p> 3.3功能分析26</p><p> 3.3.1對(duì)功能的規(guī)定26</p><p> 3.3.2對(duì)性能的規(guī)定26</p><p> 3.3.3靈活性27</p><p> 3.3.4 故障處理要求27</p><p> 3.3.5運(yùn)行
10、環(huán)境規(guī)定27</p><p> 3.3.6開(kāi)發(fā)環(huán)境27</p><p> 3.4概要設(shè)計(jì)27</p><p> 3.4.1設(shè)計(jì)的內(nèi)容、要求和目標(biāo)27</p><p> 3.4.2 總體設(shè)計(jì)27</p><p> 3.5詳細(xì)設(shè)計(jì)29</p><p> 3.5.1詳細(xì)設(shè)計(jì)及實(shí)
11、現(xiàn)29</p><p> 3.6 主要方法33</p><p> 3.6.1 類功能的分析34</p><p> 3.7 系統(tǒng)運(yùn)行及使用說(shuō)明34</p><p> 3.8 使用說(shuō)明38</p><p><b> 3.9總結(jié)40</b></p><p>
12、 3.10 附錄41</p><p> 3.10.1 題目一計(jì)算器主要代碼41</p><p> 3.10.2 題目二學(xué)生信息管理主要代碼47</p><p> 3.10.3 題目三俄羅斯方塊主要代碼51</p><p><b> 題目一 計(jì)算器</b></p><p><
13、b> 1.1 題目簡(jiǎn)介</b></p><p> 用java語(yǔ)言利用eclipse編程實(shí)現(xiàn)一個(gè)簡(jiǎn)易GUI計(jì)算器。</p><p> 1.2 設(shè)計(jì)的內(nèi)容、要求和目標(biāo)</p><p><b> 1.2.1設(shè)計(jì)內(nèi)容</b></p><p> 設(shè)計(jì)一個(gè)GUI簡(jiǎn)易計(jì)算器,用戶可以通過(guò)鼠標(biāo)單擊一次輸入?yún)⒓?/p>
14、計(jì)算的數(shù)值,進(jìn)行加減乘除等混合運(yùn)算。</p><p><b> 1.2.2設(shè)計(jì)要求</b></p><p> 要求所設(shè)計(jì)GUI界面計(jì)算器是一個(gè)使用方便的程序,能實(shí)現(xiàn)基本的加減乘除功能,以及sin,cos,tan等算術(shù)運(yùn)算;同時(shí)實(shí)現(xiàn)退格、清零等運(yùn)算。</p><p><b> 1.2.3設(shè)計(jì)目標(biāo)</b></p&g
15、t;<p> 實(shí)現(xiàn)加、減、乘、除、正弦、余弦、正切、清零、退格等功能。</p><p><b> 1.3 總體設(shè)計(jì)</b></p><p> 1.3.1 總體流程圖</p><p> 圖1.1 主要程序流程圖</p><p> 1.3.2 總體結(jié)構(gòu)圖</p><p> 圖
16、1.2 總體結(jié)構(gòu)圖</p><p> 1.4 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)</p><p> 1.4.1 操作界面設(shè)計(jì)</p><p> GUI圖形界面的組件:</p><p> a) 所用到的Java類庫(kù)包:</p><p> java.awt.*;基本的圖形界面組件來(lái)源于awt包。</p><
17、p> java.awt.event.*;事件的屬性處理來(lái)源于awt.event包。</p><p> javax.swing.*;swing組件增加了awt包中所不具備的各種優(yōu)越功能。</p><p> A)所用的各部分圖形組件的定義:</p><p> Frame mainFrame;//主框架</p><p>
18、 JTextField answerText;//顯示計(jì)算結(jié)果</p><p> JTextField memoryState;//顯示計(jì)算器內(nèi)存的使用情況</p><p> MenuBar menuGroup;//菜單欄</p><p> Menu editMenu,viewMenu,helpMenu;//編輯,查看,幫助菜單
19、</p><p> MenuItem copyItem,pasteItem;//復(fù)制,粘貼</p><p> CheckboxMenuItem numGroup;//數(shù)字分組</p><p> MenuItem aboutCal;//關(guān)于計(jì)算器</p><p> Button buttonBackSp
20、ace,buttonCE,buttonC;//退格,清除,清空按鈕</p><p> Button buttonMC,buttonMR,buttonMS,buttonMADD;//內(nèi)存操作按鈕</p><p> Button buttonNum[];//數(shù)字按鈕</p><p> Button buttonAdd,buttonSub
21、,buttonMul,buttonDiv;//+,-,*,/</p><p> Button buttonDot,buttonSign,buttonEqual;//. +/- =</p><p> Button buttonSqrt,buttonMod,buttonReciprocal;//sqrt % 1/x</p><p> a)組件的初始化
22、以及對(duì)界面的排版對(duì)主框架的初始化操作</p><p> void initMainFrame()函數(shù)是對(duì)主框架進(jìn)行初始化,設(shè)置其框架大</p><p> 小270*250,初始位置270*250,背景顏色Color.lightGray, 是否顯示true,能否改變窗口大小false,以及增加了addWindowListener委托事件,當(dāng)關(guān)閉窗口時(shí)調(diào)用System.exit(0) 系統(tǒng)
23、指令,結(jié)束程序。</p><p> 1.4.2 類成員變量及方法設(shè)計(jì)</p><p><b> 類之間的關(guān)系</b></p><p><b> 圖1.3 類關(guān)系</b></p><p> 1.4.3 源代碼分析</p><p> (a)響應(yīng)用戶點(diǎn)擊按鈕事件,將數(shù)字按
24、鈕鍵與數(shù)字一一對(duì)應(yīng)起來(lái)</p><p> public void actionPerformed(ActionEvent e) {</p><p> String label = e.getActionCommand();</p><p> if(e.getSource() == helpItem) {</p><p> helpDi
25、alog.setVisible(true);</p><p><b> }</b></p><p> else if (label.equals(KEYS[2])) {</p><p> handleBackspace();</p><p> } else if (label.equals(KEYS[3]))
26、{</p><p> resultText.setText("0");</p><p> } else if (label.equals(KEYS[4])) {</p><p> handleC();</p><p> } else if ("0123456789.".indexOf(label
27、) >= 0) {</p><p> handleNumber(label);</p><p><b> } else {</b></p><p> handleOperator(label);</p><p><b> }</b></p><p><b&
28、gt; }</b></p><p> (b)加減乘除求余都用operator函數(shù)</p><p> private void handleOperator(String key) {</p><p> if (operator.equals("/")) {</p><p> if (getNumber
29、FromText() == 0.0) {</p><p> operateValidFlag = false;</p><p> resultText.setText("除數(shù)不能為零");</p><p><b> } else {</b></p><p> resultNum /= getN
30、umberFromText();</p><p><b> }</b></p><p> } else if (operator.equals("1/x")) {</p><p> if (resultNum == 0.0) {</p><p> operateValidFlag = fals
31、e;</p><p> resultText.setText("零沒(méi)有倒數(shù)");</p><p><b> } else {</b></p><p> resultNum = 1 / resultNum;</p><p><b> }</b></p><
32、;p> } else if (operator.equals("+")) {</p><p> resultNum += getNumberFromText();</p><p> } else if (operator.equals("-")) {</p><p> resultNum -= getNumber
33、FromText();</p><p> } else if (operator.equals("*")) </p><p> 主要功能實(shí)現(xiàn)涉及的類及方法(順序圖,visio畫)</p><p> 1.5 系統(tǒng)運(yùn)行及使用說(shuō)明</p><p> 該應(yīng)用程序系統(tǒng)是基于JDK1.5版本以上,運(yùn)用eclipse開(kāi)發(fā)環(huán)境設(shè)計(jì)
34、而成。</p><p> 1.5.1程序主界面</p><p> 圖1.4 計(jì)算器主界面</p><p><b> 1.5.2簡(jiǎn)單運(yùn)算</b></p><p><b> 如計(jì)算5+3:</b></p><p> 圖1.5 加法運(yùn)算例圖</p><
35、p> 圖1.6 運(yùn)算結(jié)果5+3=8</p><p><b> 1.5.3科學(xué)計(jì)算</b></p><p> 如計(jì)算sin1 (注:1表示的是1弧度)</p><p> 圖1.7 科學(xué)計(jì)算sin1</p><p><b> 1.5.4幫助文檔</b></p><p&
36、gt; 使用樹(shù)形結(jié)構(gòu)產(chǎn)生三級(jí)目錄放置幫助內(nèi)容;</p><p><b> 幫助文檔效果圖</b></p><p><b> 圖1.8 幫助文檔</b></p><p> 題目二 學(xué)生信息管理</p><p><b> 2.1 題目簡(jiǎn)介</b></p>&
37、lt;p> 用java語(yǔ)言、利用eclipse開(kāi)發(fā)工具、SQL Server2005數(shù)據(jù)庫(kù)實(shí)現(xiàn)基于GUI界面的單機(jī)版學(xué)生管理系統(tǒng),實(shí)現(xiàn)學(xué)生基本信息的錄入、查詢、修改和刪除。</p><p> 2.2 設(shè)計(jì)的內(nèi)容、要求和目標(biāo)</p><p><b> 2.2.1設(shè)計(jì)內(nèi)容</b></p><p><b> 學(xué)生管理系統(tǒng)包括:
38、</b></p><p><b> (1)登錄頁(yè)面;</b></p><p> ?。?)主頁(yè)面:學(xué)院信息,專業(yè)信息,班級(jí)信息,個(gè)人信息。</p><p> 學(xué)院信息;添加學(xué)院,刪除學(xué)院;</p><p> 專業(yè)信息:查看,添加,刪除;</p><p> 班級(jí)信息;添加,刪除;&
39、lt;/p><p> 個(gè)人信息:查看,添加,修改,刪除。</p><p><b> 2.2.2設(shè)計(jì)要求</b></p><p> ?。?)實(shí)現(xiàn)添加學(xué)院的名稱和代號(hào)到數(shù)據(jù)庫(kù)academe表當(dāng)中</p><p> ?。?)實(shí)現(xiàn)添加專業(yè)的名稱和代號(hào)到數(shù)據(jù)庫(kù)speciality表當(dāng)中</p><p>
40、(3)通過(guò)編輯可以將學(xué)生的學(xué)院,專業(yè),學(xué)號(hào),姓名,性別,年齡,籍貫,手機(jī),郵箱錄入到數(shù)據(jù)庫(kù)student表當(dāng)中,可以查詢數(shù)據(jù)庫(kù)全部的、學(xué)生的信息和查詢單個(gè)學(xué)生的信息,可以刪除學(xué)生的基本信息</p><p><b> 2.2.3設(shè)計(jì)目標(biāo)</b></p><p> ?。?)實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、修改、刪除、和查看功能。</p><p> ?。?)
41、實(shí)現(xiàn)動(dòng)態(tài)的讀取數(shù)據(jù)庫(kù)中的學(xué)院,專業(yè)</p><p> ?。?)實(shí)現(xiàn)手機(jī),郵箱等都必須要正確輸入的驗(yàn)證</p><p> ?。?)實(shí)現(xiàn)學(xué)院,專業(yè)下拉框之間的關(guān)聯(lián),使選擇一個(gè)學(xué)院的時(shí)候?qū)I(yè)只顯示該學(xué)院的專業(yè)并且要將添加的學(xué)院,專業(yè)在下拉框中顯示出來(lái)</p><p><b> 2.3 總體設(shè)計(jì)</b></p><p> 根
42、據(jù)對(duì)需求索做的分析,要完成學(xué)生管理系統(tǒng)的設(shè)計(jì),我們必須實(shí)現(xiàn)幾個(gè)基本功能:</p><p> 1.完成系統(tǒng)的學(xué)生信息的錄入、修改和查看;</p><p> 2.完成系統(tǒng)的學(xué)院添加,專業(yè)的添加,班級(jí)的添加</p><p> 根據(jù)系統(tǒng)需求,學(xué)生管理系統(tǒng)的總體功能圖如圖2.1所示:</p><p> 2.3.1 總體功能圖</p>
43、<p> 圖2.1 總體功能圖</p><p> 2.3.2 總體流程圖</p><p> 根據(jù)對(duì)學(xué)生管理系統(tǒng)的功能分析,設(shè)計(jì)得到系統(tǒng)總流程,如圖2.2所示</p><p> 圖2.2 總體流程圖</p><p> 2.4 詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)</p><p> 2.4.1 操作界面設(shè)計(jì)</
44、p><p> 學(xué)生管理系統(tǒng)的整體布局為BorderLayout布局, 采用了按鈕、面板、文本框、下拉框、文本區(qū)和拆分窗格等組件, 有以下幾個(gè)功能:1.可以進(jìn)行登錄注銷,即注銷后頁(yè)面跳到登錄的頁(yè)面;2.可以退出,頁(yè)面直接關(guān)閉; 3.可以添加學(xué)院,添加的學(xué)院將會(huì)在錄入的下拉框中顯示,實(shí)現(xiàn)動(dòng)態(tài)的添加;4.可以添加專業(yè),專業(yè)添加時(shí)必須進(jìn)行數(shù)據(jù)庫(kù)兩張表的關(guān)聯(lián),不能直接將下拉框的學(xué)院名填入zhuanye表而是將學(xué)院的代號(hào)填入,
45、并且專業(yè)代號(hào)前面將自動(dòng)加入學(xué)院的代號(hào)實(shí)現(xiàn)字段的唯一化;5.拆分窗格放入幾個(gè)面板,面板全都是采用空布局;6.下拉框 兩個(gè)下拉框之間進(jìn)行數(shù)據(jù)庫(kù)的關(guān)聯(lián),但學(xué)院選擇時(shí),專業(yè)只顯示與之對(duì)應(yīng)的專業(yè);7.手機(jī)號(hào)、郵箱都必須按照生活實(shí)際情況進(jìn)行填寫;</p><p> 2.4.2 類成員變量及方法設(shè)計(jì)</p><p> ?。?)學(xué)生信息的錄入實(shí)現(xiàn)方法:</p><p> 錄入信
46、息時(shí)自定義方法Inputframe,并且調(diào)用自定義方法和類academe,speciality和student;在下拉框?qū)W院時(shí)用到了數(shù)據(jù)庫(kù)的連接并且要和下一級(jí)的下拉框進(jìn)行關(guān)聯(lián),使選擇一個(gè)學(xué)院的時(shí)候,在專業(yè)下拉框中只顯示本學(xué)院的專業(yè),通過(guò)使用下拉框的additem和循環(huán)語(yǔ)句實(shí)現(xiàn)動(dòng)態(tài)的顯示學(xué)院和專業(yè),通過(guò)添加學(xué)院和專業(yè),在學(xué)生信息錄入的下拉框中同時(shí)也添加;對(duì)于手機(jī)和郵箱必需按照生活常識(shí)進(jìn)行輸入,這時(shí)用到了java里面的正則表達(dá)式;用數(shù)據(jù)庫(kù)語(yǔ)
47、句insert將JTextField里面的內(nèi)容添加到數(shù)據(jù)庫(kù)里面。</p><p> ?。?)學(xué)生信息的修改實(shí)現(xiàn)方法:</p><p> 修改信息是通過(guò)自定義的方法QueryFrame,用數(shù)據(jù)庫(kù)表語(yǔ)句update將JTextField得到的數(shù)據(jù)將數(shù)據(jù)庫(kù)進(jìn)行更新。</p><p> ?。?)學(xué)生信息的刪除實(shí)現(xiàn)的方法:</p><p> 刪除信
48、息是通過(guò)自定義的方法DeleteFrame,用數(shù)據(jù)庫(kù)語(yǔ)句delete根據(jù)number和name將數(shù)據(jù)庫(kù)里面的數(shù)據(jù)刪除。</p><p> (4)學(xué)院添加的實(shí)現(xiàn)方法:</p><p> 學(xué)院的添加實(shí)現(xiàn)過(guò)程比較簡(jiǎn)單。用數(shù)據(jù)庫(kù)語(yǔ)句insert進(jìn)行插入。</p><p> ?。?)專業(yè)的添加實(shí)現(xiàn)方法:</p><p> 專業(yè)的添加實(shí)現(xiàn)過(guò)程,首先
49、需要用下拉框?qū)W(xué)院顯示這時(shí)用到了select語(yǔ)句,將學(xué)院所對(duì)應(yīng)的D_ID取出,同時(shí)插入到數(shù)據(jù)庫(kù)里面的專業(yè)編號(hào)必須前面是D_ID,這樣才能使唯一化。</p><p> ?。?)登錄頁(yè)面實(shí)現(xiàn)的方法:</p><p> 登錄頁(yè)面是進(jìn)入系統(tǒng)的門票,首先需要從數(shù)據(jù)庫(kù)取出username和password與JTextField里面的數(shù)據(jù)進(jìn)行判斷如果成功,則進(jìn)入系統(tǒng)。否則登錄失敗。在取數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)用到
50、select語(yǔ)句。</p><p><b> 1.類之間關(guān)系圖</b></p><p> 學(xué)生管理系統(tǒng)除了要編寫的13個(gè)java文件所給出的類外,還需要java系統(tǒng)提供的一些重要的類,如JButton,JCheckBox等,管理系統(tǒng)所用到的一些重要的類以及它們之間的關(guān)系如圖2.3所示:</p><p><b> 圖2.3 類關(guān)系
51、圖</b></p><p> ?。?)學(xué)生信息的錄入流程圖2.4所示:</p><p> 圖2.4 學(xué)生信息的錄入流程</p><p> (2)學(xué)生信息修改流程圖2.5所示:</p><p> 圖2.5 學(xué)生信息修改流程</p><p> (3)專業(yè)添加流程圖2.6所示:</p>
52、<p> 圖2.6 專業(yè)添加流程</p><p> ?。?)登錄流程圖2.7所示:</p><p><b> 圖2.7 登錄流程</b></p><p> 2.4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 主要闡述數(shù)據(jù)庫(kù)的各表、視圖、觸發(fā)器等的結(jié)構(gòu)(表名、各字段名、類型、寬度、精度、是否允許空、是否主鍵、外鍵、
53、缺省值)。</p><p> 2.4.3.1.數(shù)據(jù)字典</p><p> 管理員信息表( login )對(duì)應(yīng)的數(shù)據(jù)字典如表2-1所示:</p><p> 表2-1 管理員信息</p><p> 學(xué)院信息表( xueyuan )對(duì)應(yīng)的數(shù)據(jù)字典如表2-1所示:</p><p> 表2-2 學(xué)院信息表 <
54、/p><p> 學(xué)生基本信息表( Student )對(duì)應(yīng)的數(shù)據(jù)字典如表2-3所示:</p><p> 表2-3 學(xué)生基本信息表</p><p> 專業(yè)基本信息表( zhuanye )對(duì)應(yīng)的數(shù)據(jù)字典如表2-4所示:</p><p> 表2-4 專業(yè)信息表</p><p> 2.4.3.2.數(shù)據(jù)庫(kù)名稱</p
55、><p> student.mdf 里面的表有student, login, academe, speciality</p><p> 表2-5 管理員信息(login)</p><p> 表2-6 學(xué)生信息(student)</p><p> 表2-7 學(xué)院信息(xueyuan)</p><p
56、> 表2-8 專業(yè)信息(zhuanye)</p><p> 3.表與表之間的關(guān)系:</p><p> 各表之間的關(guān)系如表2-9所示:</p><p> 表2-9 表與表之間</p><p><b> 2.4.4效果圖</b></p><p> 2.4.4.1.數(shù)據(jù)庫(kù)設(shè)計(jì)圖<
57、;/p><p><b> 圖 2.8 數(shù)據(jù)庫(kù)</b></p><p> 2.4.4.2.Login表設(shè)計(jì)表</p><p> 圖2.9 login表</p><p> 2.4.4.3.Student表設(shè)計(jì)</p><p> 圖2.10 student表</p><p&
58、gt; 2.4.4.4.academe表設(shè)計(jì)</p><p> 圖2.11 academe表</p><p> 2.4.4.5.speciality表設(shè)計(jì)</p><p> 圖2.12 speciality表</p><p> 2.5 系統(tǒng)運(yùn)行及使用說(shuō)明</p><p> 2.5.1 使用說(shuō)明</p
59、><p> Eclipse使用非常的簡(jiǎn)單只需要將其解壓,就可以直接的使用,如果想用漢化版的在網(wǎng)上下載漢化包解壓,將其內(nèi)容放到對(duì)應(yīng)的位置即可。</p><p> SQLSRVER使用比較復(fù)雜,需要登錄名以及 SQLSRVER管理工具需要修改使eclipse在特定的端口下與SQLSRVER進(jìn)行關(guān)聯(lián),SQLSRVER的復(fù)雜體現(xiàn)了它的安全性。</p><p> 2.5.2
60、 運(yùn)行效果圖</p><p> 1.登錄頁(yè)面圖2.13所示:</p><p> 用戶輸入用戶名及密碼,程序會(huì)嘗試連接數(shù)據(jù)庫(kù)中的login表,核對(duì)用戶名及密碼,如果正確,就進(jìn)入主界面,否則報(bào)錯(cuò)。</p><p> 圖2.13 登陸界面</p><p> 2.系統(tǒng)總頁(yè)面圖2.14所示:</p><p> 主界面包
61、括學(xué)院信息,專業(yè)信息,班級(jí)信息,學(xué)生個(gè)人信息以及退出系統(tǒng)5個(gè)按鈕,點(diǎn)下相應(yīng)按鈕會(huì)出現(xiàn)相應(yīng)下拉菜單以供用戶選擇。</p><p> 圖2.14 系統(tǒng)總頁(yè)面</p><p> 3.學(xué)生信息錄入頁(yè)面圖2.15所示:</p><p> 用戶鍵盤對(duì)應(yīng)輸入學(xué)生基本信息,點(diǎn)擊添加按鈕,系統(tǒng)會(huì)自動(dòng)把該學(xué)生信息錄入到數(shù)據(jù)庫(kù)中的student表里面。</p><
62、;p> 圖2.15學(xué)生信息錄入頁(yè)面</p><p> 4.學(xué)生信息查詢頁(yè)面圖2.16所示:</p><p> 選擇查詢學(xué)生信息菜單,出現(xiàn)以下界面</p><p> 圖2.16 學(xué)生信息查詢界面</p><p> 5.學(xué)生信息刪除頁(yè)面圖2.17所示:</p><p> 選擇刪除學(xué)生信息菜單,出現(xiàn)以下界面
63、,選擇下拉框中要?jiǎng)h除的學(xué)生姓名,再點(diǎn)擊刪除按鈕,就可以把該學(xué)生信息從數(shù)據(jù)庫(kù)中刪除掉。</p><p> 圖2.17學(xué)生信息刪除頁(yè)面</p><p> 6.學(xué)院添加頁(yè)面圖2.18所示:</p><p> 選擇學(xué)院添加菜單,會(huì)出現(xiàn)以下界面,輸入要添加的學(xué)院的編碼以及名稱,點(diǎn)擊添加按鈕,就可以把該學(xué)院添加到數(shù)據(jù)庫(kù)中。</p><p> 圖2
64、.18 學(xué)院添加頁(yè)面</p><p> 7.學(xué)院刪除界面圖2.19所示:</p><p> 選擇學(xué)院刪除菜單,會(huì)出現(xiàn)以下界面,選擇下拉框中對(duì)應(yīng)的學(xué)院名稱,點(diǎn)擊刪除按鈕,就可以把該學(xué)院從數(shù)據(jù)庫(kù)中刪除。</p><p> 圖2.19 學(xué)院刪除頁(yè)面</p><p> 8.專業(yè)信息查看界面圖2.20所示:</p><p&g
65、t; 選擇學(xué)院查看菜單,會(huì)出現(xiàn)以下界面,選擇下拉框中對(duì)應(yīng)的專業(yè),就可以查看已有的專業(yè)。 </p><p> 圖2.20 查看專業(yè)頁(yè)面</p><p> 9.專業(yè)信息添加界面圖2.21所示:</p><p> 選擇專業(yè)添加菜單,會(huì)出現(xiàn)以下界面,選擇下拉框中對(duì)應(yīng)的專業(yè)名稱,點(diǎn)擊添加按鈕,就可以把該專業(yè)添加到數(shù)據(jù)庫(kù)中。</p><p>
66、圖2.21 添加專業(yè)頁(yè)面</p><p> 10.專業(yè)信息刪除界面圖2.22所示:</p><p> 選擇專業(yè)刪除菜單,會(huì)出現(xiàn)以下界面,選擇下拉框中對(duì)應(yīng)的專業(yè)名稱,點(diǎn)擊刪除按鈕,就可以把該專業(yè)從數(shù)據(jù)庫(kù)中刪除。</p><p> 圖2.22 專業(yè)刪除頁(yè)面</p><p> 11.班級(jí)添加界面圖2.23所示:</p><
67、;p> 選擇班級(jí)添加菜單,會(huì)出現(xiàn)以下界面,對(duì)應(yīng)輸入班級(jí)信息,點(diǎn)擊添加按鈕,就可以把該班級(jí)添加到數(shù)據(jù)庫(kù)中。</p><p> 圖2.23 添加班級(jí)頁(yè)面</p><p> 12.班級(jí)刪除界面圖2.24所示:</p><p> 選擇班級(jí)刪除菜單,會(huì)出現(xiàn)以下界面,選擇下拉框中對(duì)應(yīng)的班級(jí)名稱,點(diǎn)擊刪除按鈕,就可以把該班級(jí)從數(shù)據(jù)庫(kù)中刪除。</p>&
68、lt;p> 圖2.24 刪除班級(jí)頁(yè)面</p><p><b> 題目三 俄羅斯方塊</b></p><p><b> 3.1 題目簡(jiǎn)介</b></p><p> 用java語(yǔ)言、eclipse工具實(shí)現(xiàn)了j2me俄羅斯方塊游戲。隨著網(wǎng)絡(luò)的發(fā)展,通過(guò)手機(jī)上網(wǎng)已經(jīng)不是什么新鮮的事情,通過(guò)手機(jī)玩游戲也變得非常的方便。
69、俄羅斯方塊是一款非常簡(jiǎn)單的游戲,只要簡(jiǎn)單的操作鍵盤方向鍵就可以玩了。</p><p> J2ME:J2ME 是 SUN 公司針對(duì)嵌入式、消費(fèi)類電子產(chǎn)品推出的開(kāi)發(fā)平臺(tái),與 J2SE和 J2EE 共同組 成 Java技術(shù)的三個(gè)重要的分支。</p><p> Eclipse:Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。</p><p> C
70、LDC:Connected Limited Devices Configuration,主要用于手機(jī)等底端設(shè)備的配置。</p><p> MIDPlet:移動(dòng)信息設(shè)備概要描述應(yīng)用程序。</p><p> JDK(Java Development Kit)是Sun Microsystems針對(duì)Java開(kāi)發(fā)員的產(chǎn)品。自從Java推出以來(lái),JDK已經(jīng)成為使用最廣泛的Java SDK。JDK
71、是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類庫(kù)。JDK是學(xué)好Java的第一步。而專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比Sun JDK好很多。從SUN的JDK5.0開(kāi)始,提供了泛型等非常實(shí)用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高。</p><p><b> 3.2需求分析</b></p><p> 3
72、.2.1設(shè)計(jì)目的和意義</p><p> 按照MVC思想進(jìn)行軟件架構(gòu),使得不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于軟件的維護(hù)和修改,同時(shí)也能提高開(kāi)發(fā)的效率;</p><p><b> 3.2.2目標(biāo)</b></p><p> 運(yùn)用MVC思想,以J2SE為基礎(chǔ),采用J2ME中的一些技術(shù)。采用線程機(jī)制,要實(shí)現(xiàn)更好的處理效果
73、。在游戲切換時(shí),釋放掉一些手機(jī)資源,提高程序的運(yùn)行效率。</p><p> 3.2.3用戶的特點(diǎn)</p><p> 本軟件是以傳統(tǒng)的俄羅斯方塊規(guī)則為基礎(chǔ),所以操作過(guò)程簡(jiǎn)單易懂,基本所有年齡段的玩家都可以玩。</p><p> 3.2.4假定和約束</p><p> 1. 因?yàn)楸拒浖怯肑ava語(yǔ)言開(kāi)發(fā)的,這就要求安裝本程序的手機(jī)必須支
74、持Java應(yīng)用程序的功能;</p><p> 2. 軟件是以Sun公司的WTK為運(yùn)行測(cè)試平臺(tái),所以不是所有的手機(jī)都能夠安裝本軟件;</p><p> 3. 由于本軟件運(yùn)行的時(shí)候需要一定的運(yùn)行內(nèi)存,所以運(yùn)行本軟件的手機(jī)必須有足夠的運(yùn)行內(nèi)存,才可以運(yùn)行此軟件。</p><p><b> 3.3功能分析</b></p><p
75、> 3.3.1對(duì)功能的規(guī)定</p><p> 實(shí)現(xiàn)了對(duì)玩家游戲得分記錄的排行榜,方便玩家查看最高得分。</p><p> 3.3.2對(duì)性能的規(guī)定</p><p> 1. 軟件操作方便、界面友好;</p><p> 2. 易于維護(hù)和擴(kuò)展;</p><p> 3. 要求響應(yīng)及處理消息時(shí)間不超過(guò)3秒。<
76、;/p><p><b> 3.3.3靈活性</b></p><p> 1. 本軟件開(kāi)發(fā)使用的語(yǔ)言為Java,可以在WTK、KEmulator等模擬器中運(yùn)行。理論上可以在Nokia、三星等一些型號(hào)的手機(jī)上安裝運(yùn)行;</p><p> 2. 在開(kāi)發(fā)此軟件的時(shí)候采用的是完全的模塊設(shè)計(jì),方便以后的擴(kuò)展和修正程序的錯(cuò)誤。</p><
77、p> 3.3.4 故障處理要求</p><p> 本系統(tǒng)在開(kāi)發(fā)調(diào)試階段將所有的程序錯(cuò)誤以及設(shè)備初始化錯(cuò)誤在Eclipse控制臺(tái)里面輸出,以幫助更正錯(cuò)誤;在程序完成開(kāi)發(fā)的時(shí)候?qū)⑦\(yùn)行錯(cuò)誤和設(shè)備初始化錯(cuò)誤以友好的方式在游戲主畫板上面顯示,以提示玩家錯(cuò)誤的原因所在,一般根據(jù)錯(cuò)誤提示,玩家可以做出相關(guān)的操作。</p><p> 3.3.5運(yùn)行環(huán)境規(guī)定</p><p&g
78、t; 運(yùn)行環(huán)境:Sun JRE1.4或更高版本;</p><p> 模擬器:Wireless Toolkit 2.5.2或更高版本;</p><p> 操作系統(tǒng):Windows XP、Windows vsta、Win7理論上也可以在Linux平臺(tái)上運(yùn)行。</p><p><b> 3.3.6開(kāi)發(fā)環(huán)境</b></p><
79、;p> 開(kāi)發(fā)語(yǔ)言:Java;</p><p> 運(yùn)行環(huán)境:Sun JDK1.4或更高版本;</p><p> 開(kāi)發(fā)工具:Eclipse 3.2;</p><p> 操作系統(tǒng):Windows XP,Win7;</p><p> 模擬器:Wireless Toolkit 2.5.2或更高版本;</p><p&g
80、t; 開(kāi)發(fā)插件:Eclipseme.feature_1.7.9_site.zip或以上版本。</p><p><b> 3.4概要設(shè)計(jì)</b></p><p> 3.4.1設(shè)計(jì)的內(nèi)容、要求和目標(biāo)</p><p> 3.4.1.1設(shè)計(jì)基本要求</p><p><b> 俄羅斯方塊包括:</b&g
81、t;</p><p><b> ?。?)開(kāi)機(jī)動(dòng)畫;</b></p><p> ?。?)主菜單,開(kāi)始游戲,排行榜,幫助,退出。</p><p> 3.4.1.2設(shè)計(jì)基本要求</p><p> (1)實(shí)現(xiàn)運(yùn)行的時(shí)候有開(kāi)機(jī)動(dòng)畫;</p><p> ?。?)實(shí)現(xiàn)游戲進(jìn)行得分;</p>&
82、lt;p> ?。?)實(shí)現(xiàn)排行榜,動(dòng)態(tài)的記錄前三名的姓名和得分;</p><p><b> (4)實(shí)現(xiàn)幫助。</b></p><p> 3.4.1.3設(shè)計(jì)基本目標(biāo)</p><p> ?。?)實(shí)現(xiàn)增加開(kāi)機(jī)動(dòng)畫;</p><p> (2)實(shí)現(xiàn)手機(jī)有排行榜,動(dòng)態(tài)的記錄前三名的得分。</p><p
83、> 3.4.2 總體設(shè)計(jì)</p><p> 根據(jù)對(duì)需求索做的分析,要完成潛艇大戰(zhàn)游戲的設(shè)計(jì),我們必須實(shí)現(xiàn)幾個(gè)基本功能:1.完成開(kāi)機(jī)動(dòng)畫;2.完成單人游戲;3.排行榜; </p><p> 3.4.2.1 總體功能圖</p><p><b> 圖3.1總體功能圖</b></p><p> 3.4.2.2總
84、體流程圖</p><p> 圖3.2 總體流程圖</p><p><b> 3.5詳細(xì)設(shè)計(jì)</b></p><p> 3.5.1詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)</p><p> 3.5.1.1 操作界面設(shè)計(jì)</p><p> 俄羅斯方塊的整體布局采用了GameCanvas畫布類和必要的圖片將圖畫顯示在手
85、機(jī)的屏幕上, 有以下幾個(gè)功能:1.可以實(shí)現(xiàn)手機(jī)游戲開(kāi)機(jī)的時(shí)候有開(kāi)機(jī)動(dòng)畫;2.可以進(jìn)入主菜單進(jìn)行不同的選擇; 3.可以進(jìn)行游戲; 4.可以進(jìn)行前三名的排名(只要改代碼里面的一個(gè)數(shù)字即可實(shí)現(xiàn)前N多名的排名);5.可以了解幫助;6.可以直接的退出。</p><p> 3.5.1.2 類成員變量及方法設(shè)計(jì)</p><p> (1)開(kāi)機(jī)動(dòng)畫設(shè)計(jì):</p><p> 開(kāi)機(jī)
86、動(dòng)畫時(shí)自定義方法Player(),將自己要的開(kāi)機(jī)圖片放在一個(gè)數(shù)組里面并且使用線程實(shí)現(xiàn)圖片的同時(shí)啟用。這樣就可以通過(guò)Thread 的Start()方法跳到Run函數(shù)進(jìn)行圖片的輪換,在這里圖片之間的Sleep時(shí)間自定義為0.2秒,整套圖片的運(yùn)行時(shí)間是15秒,當(dāng)圖片運(yùn)行完之后通過(guò)方法block.tomenu()跳到主菜單。</p><p> ?。?)游戲方塊、提示方塊的設(shè)計(jì):</p><p>
87、 方塊的實(shí)現(xiàn)是用一個(gè)int型的四行四列的二維數(shù)組實(shí)現(xiàn)的。每一個(gè)元素代表著一個(gè)空格,如果該空格里有方塊的話則該元素為1,否則為0。這樣就可以在這個(gè)四行四列的二維數(shù)組里任意生成方塊了。具體設(shè)計(jì)見(jiàn)圖3.3。</p><p> 圖3.3游戲中方塊的設(shè)計(jì)圖</p><p> (3)排行榜的設(shè)計(jì):</p><p> 手機(jī)游戲排行榜是通過(guò)自定義的方法TopFrom(),將單
88、人游戲的得分以及姓名存儲(chǔ)在RMS文件下的top.db文件,使下一次登陸的時(shí)候排行榜是之前已經(jīng)記錄的數(shù)據(jù),方便記錄,現(xiàn)在的手機(jī)大部分采用的是cldc沒(méi)有數(shù)據(jù)庫(kù)(手機(jī)都是這個(gè)),cldc只有一個(gè)記錄倉(cāng)庫(kù) RecordStore,可以保存游戲或者軟件的信息,潛艇大戰(zhàn)采用靜態(tài)方法:RecordStore.openRecordStore(String name ,boolean createIfNecessary)throw RecordStor
89、eException ,RecordStoreFullException,RecordStoreNotFoundException</p><p> 參數(shù):( 記錄庫(kù)名稱,如果不存在是否創(chuàng)建新的記錄倉(cāng)庫(kù)),在潛艇大戰(zhàn)的游戲排行榜中則采用了自動(dòng)創(chuàng)建記錄倉(cāng)庫(kù)top.db。如果將其刪除,則出現(xiàn)之前記錄的數(shù)據(jù)丟失同時(shí)排行榜也會(huì)再次初始化(初始化前三名)。</p><p> ?。?)繪制游戲背景的
90、設(shè)計(jì):</p><p> 獲取畫筆是通過(guò)調(diào)用Canvas中的paint()函數(shù)得到的。圖3.4是繪制背景代碼</p><p> 圖3.4游戲背景的實(shí)現(xiàn)</p><p> <1.> 類之間關(guān)系圖</p><p> 潛艇大戰(zhàn)除了要編寫的14個(gè)java文件所給出的類外,還需要java系統(tǒng)提供的一些重要的類. 潛艇大戰(zhàn)所用到的一
91、些重要的類以及它們之間的關(guān)系如圖3.5所示:</p><p> 圖3.5 系統(tǒng)類之間的組合關(guān)系圖</p><p> <2.>排行榜實(shí)現(xiàn)流程圖:</p><p> 排行榜不僅能夠記錄前三名的得分和姓名,還能夠在下一次再玩游戲的時(shí)候顯示以前的數(shù)據(jù)這就要求潛艇游戲必須的有記錄文件來(lái)儲(chǔ)存數(shù)據(jù)。下面是排行榜再次顯示數(shù)據(jù)的流程圖。如圖3.6所示</p&g
92、t;<p> 圖3.6 排行榜流程圖</p><p> <3.>開(kāi)機(jī)動(dòng)畫實(shí)現(xiàn)流程圖:</p><p> 開(kāi)機(jī)動(dòng)畫是非常重要的部分,潛艇大戰(zhàn)開(kāi)機(jī)動(dòng)畫通過(guò)圖片的輪換實(shí)現(xiàn)視覺(jué)上的動(dòng)畫,通過(guò)線程睡眠時(shí)間的短暫來(lái)實(shí)現(xiàn)了動(dòng)畫,下面是開(kāi)機(jī)動(dòng)畫的實(shí)現(xiàn)流程圖。如圖3.7所示</p><p> 圖3.7 開(kāi)機(jī)動(dòng)畫流程圖</p><p
93、><b> 3.6 主要方法</b></p><p> 3.6.1 類功能的分析</p><p> 1.Block.java類</p><p> Block 類定義了方塊的各種狀態(tài)、方向等,對(duì)方塊進(jìn)行了初始化、獲得速度等最重要的是定義了如何實(shí)現(xiàn)方塊的移動(dòng)即通過(guò)Sprite。詳細(xì)說(shuō)明見(jiàn)上面</p><p>
94、 2.GameCanvas.java類</p><p> GameCanvas類定義了游戲的各種狀態(tài)、游戲中要用到的各種屬性、如何將游戲的各種屬性畫在屏幕上、如何控制關(guān)卡和控制游戲進(jìn)行的線程。</p><p> 3. MenuCanvas.java類</p><p> MenuCanvas類是執(zhí)行命令的類,是手機(jī)游戲的核心部分而startApp()是所有函數(shù)的
95、主函數(shù),手機(jī)命令從這里開(kāi)始執(zhí)行。</p><p> 4.Player.java類</p><p> Player是開(kāi)機(jī)動(dòng)畫所必須的類, Player類中利用線程實(shí)現(xiàn)了圖片的連續(xù)播放。</p><p> 3.7 系統(tǒng)運(yùn)行及使用說(shuō)明</p><p> 1.開(kāi)機(jī)動(dòng)畫效果圖3.8所示:</p><p><b&g
96、t; 圖3.8 開(kāi)機(jī)動(dòng)畫</b></p><p> 2.主菜單效果圖所示:</p><p> 圖3.9 開(kāi)始菜單 圖3.10 排行榜菜單</p><p> 圖3.11 幫助菜單 圖3.12 退出菜單</p><p> 3.游戲效果圖3.
97、13所示:</p><p> 圖3.13 游戲效果圖</p><p> 4.游戲結(jié)束效果圖3.14所示:</p><p> 圖3.14 游戲結(jié)束</p><p> 5.記錄效果圖3.15所示:</p><p> 圖3.15 記錄得分圖</p><p> 6.排行榜效果圖3.16所示:
98、</p><p><b> 圖3.16 排行榜</b></p><p> 7.幫助效果圖3.17所示:</p><p><b> 圖3.17 幫助圖</b></p><p> 3.5.3 程序系統(tǒng)的結(jié)構(gòu)</p><p> 此系統(tǒng)包括5大程序包,9個(gè)類文件。它們的名稱
99、、各類與包之間的關(guān)系和功能如表5-1所示。</p><p> 表5-1 程序中所有類和包之間的關(guān)系</p><p><b> 3.8 使用說(shuō)明</b></p><p> J2ME(Java Platform,Micro Edition),是為機(jī)頂盒、移動(dòng)電話和PDA之類嵌入式消費(fèi)電子設(shè)備提供的Java語(yǔ)言平臺(tái),包括虛擬機(jī)和一系列標(biāo)準(zhǔn)化的J
100、ava API。它和Java SE、Java EE一起構(gòu)成Java技術(shù)的三大版本,并且同樣是通過(guò)JCP(Java Community Process)制訂的。</p><p> WTK 的全稱是Sun J2ME Wireless Toolkit —— Sun的無(wú)線開(kāi)發(fā)工具包。這一工具包的設(shè)計(jì)目的是為了幫助開(kāi)發(fā)人員簡(jiǎn)化j2me的開(kāi)發(fā)過(guò)程。使用其中的工具可以開(kāi)發(fā)與 Java Technology for the W
101、ireless Industry (JTWI, JSR 185) 規(guī)范兼容的設(shè)備上運(yùn)行的j2me 應(yīng)用程序。該工具箱包含了完整的生成工具、實(shí)用程序以及設(shè)備仿真器。到本文寫作時(shí)為止可以獲取有四個(gè)版本,分別是1.0.4, 2.0, 2.1和2.2。每個(gè)版本都包括英語(yǔ),日語(yǔ),簡(jiǎn)體中文,繁體中文4個(gè)語(yǔ)種包。</p><p><b> 3.9總結(jié)</b></p><p>
102、本章主要描述了系統(tǒng)各功能模塊的實(shí)現(xiàn)過(guò)程,描述了部分功能模塊的程序流程,展示了系統(tǒng)各窗口的運(yùn)行時(shí)截圖。</p><p> 這次課程設(shè)計(jì)主要是對(duì)java設(shè)計(jì)的進(jìn)一步理解,由原來(lái)的理論學(xué)習(xí)轉(zhuǎn)入實(shí)踐環(huán)節(jié),熟悉使用了eclipse開(kāi)發(fā)工具,初步接觸到了數(shù)據(jù)庫(kù)的應(yīng)用,還有手機(jī)模擬器上游戲的開(kāi)發(fā),都是些比較新穎的東西,學(xué)習(xí)到了更多的知識(shí)。雖然系統(tǒng)的基本功能都已實(shí)現(xiàn),但還是存在系統(tǒng)不穩(wěn)定等多個(gè)問(wèn)題尚待解決。這個(gè)系統(tǒng)主要是我自己
103、開(kāi)發(fā)的,但也得到了老師和同學(xué)的很大幫助。我正在做系統(tǒng)的過(guò)程中遇到了很多問(wèn)題,有的是知識(shí)存儲(chǔ)不足,有的是考慮不夠周全,之所以能夠順利實(shí)現(xiàn)基本功功能,離不開(kāi)老師和同學(xué)的大力相助。</p><p> 事實(shí)證明,只靠自己是不能順利完成一套功能完整的系統(tǒng)的,必須充分利用團(tuán)隊(duì)的力量。開(kāi)發(fā)一套系統(tǒng),最重要的是細(xì)心,并不是一定要做到面面俱到,但也要充分考慮到客戶的需求和現(xiàn)實(shí)意義,不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具有先現(xiàn)實(shí)
104、意義。所以在準(zhǔn)備工作中要正確分析社會(huì)需求了解現(xiàn)實(shí)應(yīng)用,畫出流程圖,把大體框架做好,然后再逐一細(xì)化。我們不可能做到面面俱到,但一定要做到步步扎實(shí),作為一個(gè)程序編程人員,要保持清醒的頭腦,以現(xiàn)實(shí)為依據(jù),讓自己的每一行代碼都能實(shí)現(xiàn)自己的意義。</p><p> 通過(guò)這次課程設(shè)計(jì),我收獲的不僅僅是課程上的知識(shí)得到實(shí)際應(yīng)用,還有編程的基本習(xí)慣和開(kāi)發(fā)系統(tǒng)時(shí)應(yīng)注意的流程。</p><p><b&
105、gt; 3.10 附錄</b></p><p> 3.10.1 題目一計(jì)算器主要代碼</p><p> 1. 主類Calculatorr.java</p><p> public class Calculator extends JFrame implements ActionListener {</p><p> He
106、lp helpDialog;</p><p> JMenuBar bar;</p><p> JMenu menu1,menu2;</p><p> JMenuItem copyItem,cutItem,pasteItem,exitItem,helpItem;</p><p> JTextArea text;</p>&
107、lt;p> private static final long serialVersionUID = -1516581450261334610L;</p><p> private final String[] KEYS = { "cos","tan","Backplace","CE","C","
108、;7", "8", "9", "/", "sqrt", </p><p> "4", "5", "6", "*", "%", "1", "2", "3", &quo
109、t;-", "1/x",</p><p> "0", "+/-", ".", "+", "=" };//計(jì)算器上的鍵的顯示名字 </p><p> private final String[] M = { "sin", "MC&
110、quot;, "MR", "MS", </p><p> "M+" };//計(jì)算器左邊的M的顯示名字</p><p> private JButton keys[] = new JButton[KEYS.length]; //計(jì)算器上鍵的按鈕 </p><p> private JButton m[]
111、 = new JButton[M.length];// 計(jì)算器左邊的M的按鈕</p><p> private JTextField resultText = new JTextField("0");// 計(jì)算結(jié)果文本框 </p><p> private boolean firstDigit = true;// 標(biāo)志用戶按的是否是整個(gè)表達(dá)式的第一個(gè)數(shù)字,或者是運(yùn)算
112、符后的第一個(gè)數(shù)字</p><p> private double resultNum = 0.0;// 計(jì)算的中間結(jié)果。</p><p> private String operator = "=";// 當(dāng)前運(yùn)算的運(yùn)算符</p><p> private boolean operateValidFlag = true;// 操作是否合法&
113、lt;/p><p> public Calculator() {</p><p><b> super();</b></p><p> helpDialog = new Help();</p><p> init();// 初始化計(jì)算器</p><p> this.setBackground
114、(Color.LIGHT_GRAY);// 設(shè)置計(jì)算器的背景顏色</p><p> this.setTitle("計(jì)算機(jī)091班 杜華林 3號(hào)");</p><p> this.setLocation(350, 230);// 在屏幕(350, 230)坐標(biāo)處顯示計(jì)算器</p><p> //this.setResizable(false
115、);// 不許修改計(jì)算器的大小</p><p> this.pack();//使計(jì)算器中各組件大小合適</p><p><b> }</b></p><p> private void init() {</p><p> bar = new JMenuBar();</p><p> me
116、nu1 = new JMenu("編輯(E)")</p><p> pasteItem = new JMenuItem("粘貼");</p><p> pasteItem.setAccelerator(KeyStroke.getKeyStroke(</p><p> KeyEvent.VK_V,InputEvent.CT
117、RL_MASK));</p><p> pasteItem.addActionListener(new ActionListener(){</p><p> public void actionPerformed(ActionEvent e){</p><p> text.paste();</p><p><b> }<
118、;/b></p><p><b> });</b></p><p> exitItem = new JMenuItem("退出");</p><p> exitItem.setAccelerator(KeyStroke.getKeyStroke(</p><p> KeyEvent.VK
119、_E,InputEvent.CTRL_MASK));</p><p> exitItem.addActionListener(new ActionListener(){</p><p> public void actionPerformed(ActionEvent e){</p><p> System.exit(0);</p><p&g
120、t;<b> } </b></p><p><b> });</b></p><p> menu2 = new JMenu("幫助(H)");</p><p> helpItem = new JMenuItem("幫助文檔");</p><p> h
121、elpItem.setAccelerator(KeyStroke.getKeyStroke(</p><p> KeyEvent.VK_H,InputEvent.CTRL_MASK));</p><p> text = new JTextArea();</p><p> bar.add(menu1);</p><p> JPanel
122、commandsPanel = new JPanel();</p><p> commandsPanel.setLayout(new GridLayout(1, 5, 3, 3));// 用網(wǎng)格布局器,1行,5列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個(gè)象素,垂直方向間隔為3個(gè)象素</p><p> for (int i = 0; i < KEYS.length; i++) {<
123、/p><p> }// 初始化M鍵,用紅色標(biāo)示,將M鍵放在一個(gè)畫板內(nèi)</p><p> JPanel calmsPanel = new JPanel();</p><p> // 用網(wǎng)格布局管理器,5行,1列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個(gè)象素,垂直方向間隔為3個(gè)象素</p><p> calmsPanel.setLayout(new
124、 GridLayout(5, 1, 3, 3));</p><p> for (int i = 0; i < M.length; i++) {</p><p> m[i] = new JButton(M[i]);</p><p> calmsPanel.add(m[i]);</p><p> m[i].setForeground
125、(Color.red);</p><p><b> }</b></p><p> // 下面進(jìn)行計(jì)算器的整體布局,將calckeys和command畫板放在計(jì)算器的中部,</p><p> // 將文本框放在北部,將calms畫板放在計(jì)算器的西部。</p><p> // 新建一個(gè)大的畫板,將上面建立的comma
126、nd和calckeys畫板放在該畫板內(nèi)</p><p> JPanel panel1 = new JPanel();</p><p> // 畫板采用邊界布局管理器,畫板里組件之間的水平和垂直方向上間隔都為3象素</p><p> panel1.setLayout(new BorderLayout(3, 3));</p><p> /
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java俄羅斯方塊課程設(shè)計(jì)
- java課程設(shè)計(jì)--俄羅斯方塊游戲
- java課程設(shè)計(jì)---俄羅斯方塊游戲
- java課程設(shè)計(jì)報(bào)告-俄羅斯方塊
- java課程設(shè)計(jì)---俄羅斯方塊游戲
- 《c++俄羅斯方塊》課程設(shè)計(jì)--俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 課程設(shè)計(jì)---俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告俄羅斯方塊
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---俄羅斯方塊
- 課程設(shè)計(jì)-基于java的俄羅斯方塊游戲設(shè)計(jì)
- c課程設(shè)計(jì)--俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)報(bào)告
- 俄羅斯方塊課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論