




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計(java) 組長:覃冬麗09056060組員:趙紅樂09056039 楊小英09056059 全晶晶09071248 馬珍珍08056048010203課程設(shè)計目的課程設(shè)計總體要求問題分解題目描述問題分析04050610090807系統(tǒng)設(shè)計具體實現(xiàn)(編碼)系統(tǒng)測試和分析難點及關(guān)鍵技術(shù)分析心得體會目 錄一、課程設(shè)計目的:1、學(xué)會運用Java程序開發(fā)的環(huán)境搭建與配置,并在實際運用中學(xué)習(xí)和掌握J(rèn)ava程序開發(fā)的全過程。2、進(jìn)一步熟悉掌握J(rèn)ava程序設(shè)計語言的基礎(chǔ)內(nèi)容,如用戶圖形界面設(shè)計、Applet程序的設(shè)計、文件和網(wǎng)絡(luò)輸入輸出流編程、Java數(shù)據(jù)庫編程等。3、通過親自動手寫程序,
2、一方面拓展知識面,一方面鍛煉調(diào)試能力。二、課程設(shè)計總體要求:1、問題的描述與程序?qū)⒁獙崿F(xiàn)的具體能。 2、程序功能實現(xiàn)的具體設(shè)計思路或框架,并檢查流程設(shè)計。 3、代碼實現(xiàn)。 4、程序測試(如程序代碼、功能測試、可靠性測試和效率測試等)。 5、設(shè)計小結(jié)。三、題目描述整數(shù)進(jìn)制轉(zhuǎn)換。輸入一個十進(jìn)制整數(shù),分別以二進(jìn)制、八進(jìn)制、十六進(jìn)制形式輸出該整數(shù)。要求:整數(shù)文本行可以編輯,其他文本行僅用于顯示不可以編輯;整數(shù)文本行響應(yīng)文本編輯事件;當(dāng)輸入數(shù)據(jù)錯誤時,處理異常,彈出對話框,提示重新輸入信息。四、問題分析(問題范圍、系統(tǒng)的功能、對性能的要求、應(yīng)用環(huán)境的要求)1、問題范圍對整數(shù)進(jìn)制轉(zhuǎn)換。必須在整數(shù)范圍內(nèi)才能
3、輸出相對應(yīng)的進(jìn)制。若為非整數(shù)范圍或超出范圍,則顯示消息提醒錯誤。2、系統(tǒng)的功能進(jìn)制轉(zhuǎn)換器:轉(zhuǎn)換器界面由要轉(zhuǎn)換的數(shù)據(jù)和結(jié)果組成,十進(jìn)制整數(shù)輸入文本行可以編輯,其他文本行僅用于顯示不可以編輯;整數(shù)文本行響應(yīng)文本編輯事件;當(dāng)輸入數(shù)據(jù)錯誤時,處理異常,彈出對話框,提示重新輸入信息。能分別進(jìn)行十進(jìn)制轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的轉(zhuǎn)換,以及消息錯誤提示。在轉(zhuǎn)換器和彈出的消息提示界面有相關(guān)的最小化、關(guān)閉等按鈕可以操作。3、對性能的要求(1)具有較強(qiáng)的實用性(2)易于理解和應(yīng)用(3)對程序的配置要求不高,能廣泛應(yīng)用4、應(yīng)用環(huán)境的要求JDK 成功安裝,設(shè)置環(huán)境變量(JAVA_HOME=C:ProgramFil
4、esJavajdk1.6.0_10classpath= .;C:Program FilesJavajdk1.6.0_10lib;Path= C:Program FilesJavajdk1.6.0_10bin;)五、問題分解 可分以下步驟進(jìn)行:1.分析找出問題域中的對象,并將對象歸類,注意篩選掉不必要的對象或類。對象:屬于BinaryJFrame主類的對象: Bounds、Background、DefaultCloseOperation、ContentPane、Layout 屬于Boolean類的對象: Resizable、Editable、Visible 屬于Color類的對象:lightGr
5、ay 屬于String類的對象: labelstr 屬于Integer類的對象: i 屬于JtextField類的對象:textsi類:包括上述所有類及父類Jframe。2、確定類的屬性。BinaryJFrame: public String: publicInteger: public Color:publicBoolean:public JtextField:privateJframe:public3、確定對象之間的關(guān)系,包括依賴、泛化、關(guān)聯(lián)、實現(xiàn)等等。Jframe與主類BinaryJFrame之間:泛化textsi(JtextField)與labelstr(String)之間:依賴Str
6、ing與BinaryJFrame之間:依賴Color與Background之間:關(guān)聯(lián)中的組合Resizable、Editable、Visible與textsi之間:實現(xiàn)i與textsi之間:關(guān)聯(lián)六 、系統(tǒng)設(shè)計 1、工作原理圖: 2、功能規(guī)劃:整數(shù)進(jìn)制轉(zhuǎn)換器十進(jìn)制輸入域二進(jìn)制輸出域八進(jìn)制數(shù)出域十六進(jìn)制輸出域顯示輸入信息對應(yīng)的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)對應(yīng)的十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制對應(yīng)的十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制3、類的設(shè)計(對象的設(shè)計)(類圖、對象圖)4、java 程序中進(jìn)制轉(zhuǎn)換(十進(jìn)制轉(zhuǎn)換為其他進(jìn)制)的算法設(shè)計十進(jìn)制轉(zhuǎn)成十六進(jìn)制: Integer.toHexString(int i)十進(jìn)制轉(zhuǎn)成八進(jìn)制 In
7、teger.toOctalString(int i)十進(jìn)制轉(zhuǎn)成二進(jìn)制 Integer.toBinaryString(int i)5、程序的相關(guān)分析import .*; /這個一般在程序開始時用,即置入包。import .*;/置入最常用包,最常用的pachage,包含了各種swing組件的類import .*;/置入處理由swing組件產(chǎn)生的事件,有別于AWT事件public class:在 java 中用 public class 可以定義一個java 程序的入口類,在 asp 用 class ClassName 可以定義一個類private:在Java中是一個關(guān)鍵字,表示私有成員,priv
8、ate 是類中的一個屬性 用它定義的feild和method只能在類中被調(diào)用.如果定義了private,就不能被外部類所訪問了this:java中this有兩種用法1、代表當(dāng)前類;2、在構(gòu)造函數(shù)中的使用如:this.setBounds(300,240,440,140);/ 設(shè)置窗體的長寬各為:440, 140讓其顯示在距屏幕左上方坐標(biāo)(300,240)處/它們的計量單位是像素這句話等效于:this.setLocation(300, 240)this.setSize(440, 140);this.setResizable(false);/窗口大小不能改變this.setDefaultCloseO
9、peration(EXIT_ON_CLOSE);/單擊窗口按鈕時,結(jié)束程序運行;this.getContentPane().setLayout(new );/流式布局右對齊;textsi.setEditable(false);/只能顯示,不允許編輯;texts0.setEditable(true);/只允許編輯static :聲明靜態(tài)成員變量七、具體實現(xiàn)-類設(shè)計、功能實現(xiàn)(含代碼)、界面1、 類實現(xiàn):根據(jù)功能定義類共有 BinaryJFrame主類, Boolean類, String類, JtextField類四個類。(1) BinaryJFrame主類:定義面板,文本框,及變量,設(shè)置布局為流
10、動布局,并設(shè)置進(jìn)制轉(zhuǎn)換器背景顏色為灰色。(2)Boolean類:實現(xiàn)設(shè)置窗口能否改變、文本行能否編輯、顯示對話框操作。(3)String類:通過對象labelstr輸入各個標(biāo)簽,實現(xiàn)相關(guān)功能提示。(4) JtextField類:實現(xiàn)文本行的創(chuàng)建,設(shè)計面板,實現(xiàn)進(jìn)制轉(zhuǎn)換功能。對進(jìn)制轉(zhuǎn)換面板進(jìn)行操作。用ContentPane()方法設(shè)置網(wǎng)格布局,CaretListener()實現(xiàn)按鈕的監(jiān)聽,加載按鈕到進(jìn)制轉(zhuǎn)換面板上面,通過actionPerformed(ActionEvent e)方法對各個按鈕事件進(jìn)行操作。2、功能實現(xiàn):(1)布局實現(xiàn): super(十進(jìn)制整數(shù)轉(zhuǎn)換);/窗口標(biāo)題 this.set
11、Bounds(300,240,440,140);/設(shè)置框架的位置和尺寸即窗口大小this.setResizable(false); /設(shè)置窗口大小不能改變 ); /設(shè)置窗口背景顏色 this.setDefaultCloseOperation(EXIT_ON_CLOSE);/窗口關(guān)閉事件處理 方式:單機(jī)窗口按鈕時結(jié)束程序運行this.getContentPane().setLayout(newFlowLayout();/框架流動布局:右對齊String labelstr=十進(jìn)制,二進(jìn)制,八進(jìn)制,十六進(jìn)制; /設(shè)置標(biāo)簽texts = new ;/創(chuàng)建文本行 for (int i=0; i; i+)
12、 this.getContentPane().add(newJLabel(labelstri);/將標(biāo)簽添加到面板中textsi = new JTextField(32); /設(shè)置文本行的大小textsi.setEditable(false); /只能顯示,不能編輯this.getContentPane().add(textsi);/添加文本行到面板中 texts0.setEditable(true);/設(shè)置第一個文本行是可編輯的texts0.setText(-1);/設(shè)置第一個文本行初始值是-1texts0.addCaretListener(this); /注冊文本編輯事件監(jiān)聽器 this.
13、caretUpdate(null); /執(zhí)行文本編輯事件 this.setVisible(true); /顯示對話框(2)進(jìn)制轉(zhuǎn)換功能的實現(xiàn):十進(jìn)制轉(zhuǎn)成十六進(jìn)制: Integer.toHexString(int i) public void caretUpdate(CaretEvent e) /文本編輯事件處理方法 try /異常處理 int i= Integer.parseInt(texts0.getText(); /十進(jìn)制整數(shù)轉(zhuǎn)換事件(第一個文本行輸入操作) texts1.setText(Integer.toBinaryString(i); /二進(jìn)制(第二個文本行進(jìn)行將i轉(zhuǎn)換成二進(jìn)制事件)
14、 texts2.setText(Integer.toOctalString(i); /八進(jìn)制 texts3.setText(Integer.toHexString(i); /十六進(jìn)制/或/texts2.setText(String.format(%o, i); /八進(jìn)制/texts3.setText(String.format(%x, i); /十六進(jìn)制 (3)異常處理catch(NumberFormatException nfe) /捕獲parseInt()方法聲明的異常對象 JOptionPane.showMessageDialog(this,+texts0.getText()+不能轉(zhuǎn)換,
15、請重新輸入!); /提示框,提示出錯3、界面:完整的編碼如下:import .*;import .*;import .*;public class BinaryJFrame extends JFrame implements CaretListener private JTextField texts; public BinaryJFrame() super(十進(jìn)制整數(shù)轉(zhuǎn)換); this.setBounds(300,240,440,140); this.setResizable(false); ); this.setDefaultCloseOperation(EXIT_ON_CLOSE); t
16、his.getContentPane().setLayout(new ); String labelstr=十進(jìn)制,二進(jìn)制,八進(jìn)制,十六進(jìn)制; texts = new ; for (int i=0; i; i+) this.getContentPane().add(new JLabel(labelstri); textsi = new JTextField(32); textsi.setEditable(false); this.getContentPane().add(textsi); texts0.setEditable(true); texts0.setText(-1); texts0.
17、addCaretListener(this); /注冊文本編輯事件監(jiān)聽器 this.caretUpdate(null); this.setVisible(true); public void caretUpdate(CaretEvent e) /文本編輯事件處理方法 try inti=Integer.parseInt(texts0.getText(); texts1.setText(Integer.toBinaryString(i); /二進(jìn)制 texts2.setText(Integer.toOctalString(i); /八進(jìn)制 texts3.setText(Integer.toHexS
18、tring(i); /十六進(jìn)制/或/ texts2.setText(String.format(%o, i); /八進(jìn)制/ texts3.setText(String.format(%x, i); /十六進(jìn)制 catch(NumberFormatException nfe) JOptionPane.showMessageDialog(this,+texts0.getText()+不能轉(zhuǎn)換,請重新輸入!); finally public static void main(String arg) new BinaryJFrame(); 八、系統(tǒng)測試和分析程序運行情況: 程序正常的響應(yīng)按鈕事件。運行
19、顯示:輸入一個整數(shù),如45,運行結(jié)果如圖:輸入的數(shù)值長度受變量length的限定。當(dāng)整數(shù)太大的時候,有可能超出可能表示的最大值,(結(jié)果溢出)。則顯示消息提示:若輸入的是非整數(shù),則同樣彈出消息提示:如輸入和k; 這是程序進(jìn)行的異常處理,使用try-catch,捕捉輸入整數(shù)的方法 拋出的異常對象。此時只要重輸即可。(3)分析討論: 運行結(jié)果基本上完成了實驗題目所要求的功能。 使用方便明了,設(shè)計上有層次,立體感強(qiáng)。 可是這個整數(shù)進(jìn)制轉(zhuǎn)換器和Windows上面的仍有很大差距,主要表現(xiàn)在功能方面的不完善和不健全。如果需要改進(jìn),可在以下三個方面改進(jìn):布局上面:基本的方位布局不變,可以分別在二進(jìn)制、八進(jìn)制、
20、十六進(jìn)制對應(yīng)的文本行末尾添加轉(zhuǎn)換按鈕,方便輸出用戶需要的進(jìn)制即可。將一些功能按鈕比如清零按鈕,退格按鈕,確定按鈕放在文本框下面,采用流式布局,另外對于組件之間的間隙也要規(guī)劃好,實現(xiàn)美觀大方。添加菜單欄:標(biāo)準(zhǔn)的進(jìn)制轉(zhuǎn)換器具有菜單欄,包括“編輯”,“查看”,“幫助”三個主菜單項,在每個主菜單項里面都有若干子菜單項。這樣使的功能跟全面,更規(guī)范。添加功能:可以實現(xiàn)各個進(jìn)制之間的互換,而不只是十進(jìn)制轉(zhuǎn)換為二、八、十六進(jìn)制。A、B、C、九、難點及關(guān)鍵技術(shù)分析難點分析:框架的合理布局。對于一個應(yīng)用程序,界面的簡單明了是很重要的,既要簡單明了還要實用,不能華而不實。異常處理的實現(xiàn)。對于一個獨立運行的程序,能夠獨立的處理運行中的問題,并提示錯誤也是很重要的。 關(guān)鍵技術(shù)分析: 創(chuàng)建對
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車輛買賣賒購合同
- 倉房買賣合同協(xié)議書
- 的聘用合同年
- 銀行解除借款合同
- 《蘇武傳》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊
- Unit 1 How can I get there?PartA(教學(xué)設(shè)計)-2024-2025學(xué)年人教PEP版英語六年級上冊
- 山東醫(yī)學(xué)高等??茖W(xué)?!段锢砘瘜W(xué)B(下)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東華宇工學(xué)院《土木工程材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西藥科職業(yè)學(xué)院《財務(wù)大數(shù)據(jù)決策》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院《有色冶金設(shè)備》2023-2024學(xué)年第二學(xué)期期末試卷
- 中債違約債券估值方法(2020年版)
- 《經(jīng)典常談》課件
- 四川省2024年中考數(shù)學(xué)試卷十七套合卷【附答案】
- 北師大版二年級數(shù)學(xué)下冊全冊10套試卷(附答案)
- GB/T 2423.17-2024環(huán)境試驗第2部分:試驗方法試驗Ka:鹽霧
- 數(shù)字出版概論 課件 第六章 數(shù)字內(nèi)容加工、管理技術(shù)
- 糖尿病并發(fā)癥的早期篩查
- 2019年山東省職業(yè)院校技能大賽中職組“沙盤模擬企業(yè)經(jīng)營”賽項規(guī)程
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 初中體育與健康 初二 水平四(八年級)田徑大單元教學(xué)設(shè)計+快速跑教案
-
評論
0/150
提交評論