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