java綜合實(shí)驗(yàn)報(bào)告-整數(shù)進(jìn)制轉(zhuǎn)換_第1頁(yè)
java綜合實(shí)驗(yàn)報(bào)告-整數(shù)進(jìn)制轉(zhuǎn)換_第2頁(yè)
java綜合實(shí)驗(yàn)報(bào)告-整數(shù)進(jìn)制轉(zhuǎn)換_第3頁(yè)
java綜合實(shí)驗(yàn)報(bào)告-整數(shù)進(jìn)制轉(zhuǎn)換_第4頁(yè)
java綜合實(shí)驗(yàn)報(bào)告-整數(shù)進(jìn)制轉(zhuǎn)換_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、中南民族大學(xué)管理學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告(綜合設(shè)計(jì))課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)(java)選題名稱: 整數(shù)進(jìn)制轉(zhuǎn)換 年 級(jí): 09 級(jí) 專 業(yè):信息管理與信息系統(tǒng)指導(dǎo)教師:*老師 實(shí)驗(yàn)地點(diǎn):管理學(xué)院綜合實(shí)驗(yàn)室 完成時(shí)間: 2011年6月6日 2010 學(xué)年至 2011 學(xué)年度第 2 學(xué)期組長(zhǎng):覃冬麗 學(xué)號(hào):成員:姓 名學(xué) 號(hào)所做的貢獻(xiàn)貢獻(xiàn)分目 錄一、 課程設(shè)計(jì)目的二、 課程設(shè)計(jì)總體要求三、 題目描述四、 問題分析五、 問題分解六、 系統(tǒng)設(shè)計(jì)七、 具體實(shí)現(xiàn)(編碼)八、 系統(tǒng)測(cè)試和分析九、 難點(diǎn)及關(guān)鍵技術(shù)分析十、 心得體會(huì)一、課程設(shè)計(jì)目的:1. 學(xué)會(huì)運(yùn)用Java程序開發(fā)的環(huán)境搭建與配置,并在實(shí)際運(yùn)用中學(xué)習(xí)

2、和掌握J(rèn)ava程序開發(fā)的全過程。2. 進(jìn)一步熟悉掌握J(rèn)ava程序設(shè)計(jì)語言的基礎(chǔ)內(nèi)容,如用戶圖形界面設(shè)計(jì)、Applet程序的設(shè)計(jì)、文件和網(wǎng)絡(luò)輸入輸出流編程、Java數(shù)據(jù)庫(kù)編程等。3. 通過親自動(dòng)手寫程序,一方面拓展知識(shí)面,一方面鍛煉調(diào)試能力。二、 課程設(shè)計(jì)總體要求:1. 問題的描述與程序?qū)⒁獙?shí)現(xiàn)的具體功能。2. 程序功能實(shí)現(xiàn)的具體設(shè)計(jì)思路或框架,并檢查流程設(shè)計(jì)。3. 代碼實(shí)現(xiàn)。4. 程序測(cè)試(如程序代碼、功能測(cè)試、可靠性測(cè)試和效率測(cè)試等)。5. 設(shè)計(jì)小結(jié)。三、 題目描述整數(shù)進(jìn)制轉(zhuǎn)換。輸入一個(gè)十進(jìn)制整數(shù),分別以二進(jìn)制、八進(jìn)制、十六進(jìn)制形式輸出該整數(shù)。要求:整數(shù)文本行可以編輯,其他文本行僅用于顯示不

3、可以編輯;整數(shù)文本行響應(yīng)文本編輯事件;當(dāng)輸入數(shù)據(jù)錯(cuò)誤時(shí),處理異常,彈出對(duì)話框,提示重新輸入信息。四、 問題分析(問題范圍、系統(tǒng)的功能、對(duì)性能的要求、應(yīng)用環(huán)境的要求)1、 問題范圍對(duì)整數(shù)進(jìn)制轉(zhuǎn)換。必須在整數(shù)范圍內(nèi)才能輸出相對(duì)應(yīng)的進(jìn)制。若為非整數(shù)范圍或超出范圍,則顯示消息提醒錯(cuò)誤。2、系統(tǒng)的功能進(jìn)制轉(zhuǎn)換器:轉(zhuǎn)換器界面由要轉(zhuǎn)換的數(shù)據(jù)和結(jié)果組成,十進(jìn)制整數(shù)輸入文本行可以編輯,其他文本行僅用于顯示不可以編輯;整數(shù)文本行響應(yīng)文本編輯事件;當(dāng)輸入數(shù)據(jù)錯(cuò)誤時(shí),處理異常,彈出對(duì)話框,提示重新輸入信息。能分別進(jìn)行十進(jìn)制轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十六進(jìn)制的轉(zhuǎn)換,以及消息錯(cuò)誤提示。在轉(zhuǎn)換器和彈出的消息提示界面有相關(guān)的最小

4、化、關(guān)閉等按鈕可以操作。3、 對(duì)性能的要求(1) 具有較強(qiáng)的實(shí)用性(2) 易于理解和應(yīng)用(3) 對(duì)程序的配置要求不高,能廣泛應(yīng)用4、應(yīng)用環(huán)境的要求JDK 成功安裝,設(shè)置環(huán)境變量(JAVA_HOME= C:Program FilesJavajdk1.6.0_10classpath= .;C:Program FilesJavajdk1.6.0_10lib;Path= C:Program FilesJavajdk1.6.0_10bin;)五、問題分解 可分以下步驟進(jìn)行:1、 分析找出問題域中的對(duì)象,并將對(duì)象歸類,注意篩選掉不必要的對(duì)象或類。對(duì)象:屬于BinaryJFrame主類的對(duì)象: Bounds

5、、Background、DefaultCloseOperation、ContentPane、Layout 屬于Boolean類的對(duì)象: Resizable、Editable、Visible 屬于Color類的對(duì)象:lightGray 屬于String類的對(duì)象: labelstr 屬于Integer類的對(duì)象: i 屬于JtextField類的對(duì)象:textsi類:包括上述所有類及父類Jframe。2、確定類的屬性。BinaryJFrame: public String: publicInteger: public Color:publicBoolean:public JtextField:pri

6、vateJframe:public3、確定對(duì)象之間的關(guān)系,包括依賴、泛化、關(guān)聯(lián)、實(shí)現(xiàn)等等。Jframe與主類BinaryJFrame之間:泛化textsi(JtextField)與labelstr(String)之間:依賴String與BinaryJFrame之間:依賴Color與Background之間:關(guān)聯(lián)中的組合Resizable、Editable、Visible與textsi之間:實(shí)現(xiàn)i與textsi之間:關(guān)聯(lián)六 、系統(tǒng)設(shè)計(jì)二進(jìn)制在文本框中顯示 1、工作原理圖:八進(jìn)制在文本框中顯示用數(shù)字按鈕輸入數(shù)字十進(jìn)制在文本框中顯示十六進(jìn)制在文本框中顯示確定錯(cuò)誤消息提示退格鍵 重輸2、功能規(guī)劃:整數(shù)

7、進(jìn)制轉(zhuǎn)換器十進(jìn)制輸入域二進(jìn)制輸出域八進(jìn)制數(shù)出域十六進(jìn)制輸出域顯示輸入信息對(duì)應(yīng)的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制對(duì)應(yīng)的十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制3、類的設(shè)計(jì)(對(duì)象的設(shè)計(jì))(類圖、對(duì)象圖)4、java 程序中進(jìn)制轉(zhuǎn)換(十進(jìn)制轉(zhuǎn)換為其他進(jìn)制)的算法設(shè)計(jì)十進(jìn)制轉(zhuǎn)成十六進(jìn)制: Integer.toHexString(int i) 十進(jìn)制轉(zhuǎn)成八進(jìn)制 Integer.toOctalString(int i) 十進(jìn)制轉(zhuǎn)成二進(jìn)制 Integer.toBinaryString(int i)5、程序的相關(guān)分析import java.awt.*; /這個(gè)一般在程序開始時(shí)用,即置入包。import java

8、x.swing.*;/置入最常用包,最常用的pachage,包含了各種swing組件的類import javax.swing.event.*;/置入處理由swing組件產(chǎn)生的事件,有別于AWT事件public class:在 java 中用 public class 可以定義一個(gè)java 程序的入口類,在 asp 用 class ClassName 可以定義一個(gè)類private:在Java中是一個(gè)關(guān)鍵字,表示私有成員,private 是類中的一個(gè)屬性 用它定義的feild和method只能在類中被調(diào)用.如果定義了private,就不能被外部類所訪問了this:java中this有兩種用法1、代

9、表當(dāng)前類;2、在構(gòu)造函數(shù)中的使用如:this.setBounds(300,240,440,140);/ 設(shè)置窗體的長(zhǎng)寬各為:440, 140讓其顯示在距屏幕左上方坐標(biāo)(300,240)處/它們的計(jì)量單位是像素這句話等效于:this.setLocation(300, 240)this.setSize(440, 140);this.setResizable(false);/窗口大小不能改變this.setDefaultCloseOperation(EXIT_ON_CLOSE);/單擊窗口按鈕時(shí),結(jié)束程序運(yùn)行;this.getContentPane().setLayout(new FlowLayou

10、t(FlowLayout.RIGHT);/流式布局右對(duì)齊;textsi.setEditable(false);/只能顯示,不允許編輯;texts0.setEditable(true);/只允許編輯static :聲明靜態(tài)成員變量七、具體實(shí)現(xiàn)-類設(shè)計(jì)、功能實(shí)現(xiàn)(含代碼)、界面1、 類實(shí)現(xiàn):根據(jù)功能定義類共有(1) BinaryJFrame主類, (2) Boolean類, (3) String類, (4) JtextField類四個(gè)類。 (1) BinaryJFrame主類:定義面板,文本框,及變量,設(shè)置布局為流動(dòng)布局,并設(shè)置進(jìn)制轉(zhuǎn)換器背景顏色為灰色。(2)Boolean類:實(shí)現(xiàn)設(shè)置窗口能否改變

11、、文本行能否編輯、顯示對(duì)話框操作。(3)String類:通過對(duì)象labelstr輸入各個(gè)標(biāo)簽,實(shí)現(xiàn)相關(guān)功能提示。(4) JtextField類:實(shí)現(xiàn)文本行的創(chuàng)建,設(shè)計(jì)面板,實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換功能。對(duì)進(jìn)制轉(zhuǎn)換面板進(jìn)行操作。用ContentPane()方法設(shè)置網(wǎng)格布局,CaretListener()實(shí)現(xiàn)按鈕的監(jiān)聽,加載按鈕到進(jìn)制轉(zhuǎn)換面板上面,通過actionPerformed(ActionEvent e)方法對(duì)各個(gè)按鈕事件進(jìn)行操作。2、功能實(shí)現(xiàn):(1)布局實(shí)現(xiàn):super(十進(jìn)制整數(shù)轉(zhuǎn)換);/窗口標(biāo)題 this.setBounds(300,240,440,140);/設(shè)置框架的位置和尺寸即窗口大小thi

12、s.setResizable(false); /設(shè)置窗口大小不能改變 this.setBackground(Color.lightGray); /設(shè)置窗口背景顏色 this.setDefaultCloseOperation(EXIT_ON_CLOSE);/窗口關(guān)閉事件處理方式:?jiǎn)螜C(jī)窗口按鈕時(shí)結(jié)束程序運(yùn)行this.getContentPane().setLayout(newFlowLayout(FlowLayout.RIGHT);/框架流動(dòng)布局:右對(duì)齊String labelstr=十進(jìn)制,二進(jìn)制,八進(jìn)制,十六進(jìn)制; /設(shè)置標(biāo)簽texts = new JTextFieldlabelstr.len

13、gth;/創(chuàng)建文本行 for (int i=0; itexts.length; i+) this.getContentPane().add(newJLabel(labelstri);/將標(biāo)簽添加到面板中textsi = new JTextField(32); /設(shè)置文本行的大小textsi.setEditable(false); /只能顯示,不能編輯this.getContentPane().add(textsi);/添加文本行到面板中 texts0.setEditable(true);/設(shè)置第一個(gè)文本行是可編輯的texts0.setText(-1);/設(shè)置第一個(gè)文本行初始值是-1texts0

14、.addCaretListener(this); /注冊(cè)文本編輯事件監(jiān)聽器 this.caretUpdate(null); /執(zhí)行文本編輯事件 this.setVisible(true); /顯示對(duì)話框(2)進(jìn)制轉(zhuǎn)換功能的實(shí)現(xiàn):public void caretUpdate(CaretEvent e) /文本編輯事件處理方法 try /異常處理 int i= Integer.parseInt(texts0.getText(); /十進(jìn)制整數(shù)轉(zhuǎn)換事件(第一個(gè)文本行輸入操作) texts1.setText(Integer.toBinaryString(i); /二進(jìn)制(第二個(gè)文本行進(jìn)行將i轉(zhuǎn)換成二

15、進(jìn)制事件) 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()方法聲明的異常對(duì)象 JOptionPane.showMessageDialog(this,+texts0.getText()+

16、不能轉(zhuǎn)換,請(qǐng)重新輸入!); /提示框,提示出錯(cuò)3、界面:完整的編碼如下:import java.awt.*;import javax.swing.*;import javax.swing.event.*;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.setB

17、ackground(Color.lightGray); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT); String labelstr=十進(jìn)制,二進(jìn)制,八進(jìn)制,十六進(jìn)制; texts = new JTextFieldlabelstr.length; for (int i=0; itexts.length; i+) this.getContentPane().add(new JLabel(labelstri); texts

18、i = new JTextField(32); textsi.setEditable(false); this.getContentPane().add(textsi); texts0.setEditable(true); texts0.setText(-1); texts0.addCaretListener(this); /注冊(cè)文本編輯事件監(jiān)聽器 this.caretUpdate(null); this.setVisible(true); public void caretUpdate(CaretEvent e) /文本編輯事件處理方法 try int i = Integer.parseIn

19、t(texts0.getText(); texts1.setText(Integer.toBinaryString(i); /二進(jìn)制 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)制 catch(NumberFormatException nfe) JOptionPane.showMess

20、ageDialog(this,+texts0.getText()+不能轉(zhuǎn)換,請(qǐng)重新輸入!); finally public static void main(String arg) new BinaryJFrame(); 八、系統(tǒng)測(cè)試和分析(1) 程序運(yùn)行情況: 程序正常的響應(yīng)按鈕事件。運(yùn)行顯示:輸入一個(gè)整數(shù),如45,運(yùn)行結(jié)果如圖:輸入的數(shù)值長(zhǎng)度受變量length的限定。當(dāng)整數(shù)太大的時(shí)候,有可能超出可能表示的最大值,(結(jié)果溢出)。則顯示消息提示:若輸入的是非整數(shù),則同樣彈出消息提示:如輸入1.2和k; 這是程序進(jìn)行的異常處理,使用try-catch,捕捉輸入整數(shù)的方法拋出的異常對(duì)象。此時(shí)只要重

21、輸即可。(2) 程序異常處理:使用try-catch去捕捉這個(gè)異常,異常的處理如下:trycatch(NumberFormatException nfe)JOptionPane.showMessageDialog(this,”+texts0.getText()+”不能轉(zhuǎn)換,請(qǐng)重新輸入!”);(3)分析討論:運(yùn)行結(jié)果基本上完成了實(shí)驗(yàn)題目所要求的功能。使用方便明了,設(shè)計(jì)上有層次,立體感強(qiáng)??墒沁@個(gè)整數(shù)進(jìn)制轉(zhuǎn)換器和Windows上面的仍有很大差距,主要表現(xiàn)在功能方面的不完善和不健全。如果需要改進(jìn),可在以下三個(gè)方面改進(jìn):A、布局上面:基本的方位布局不變,可以分別在二進(jìn)制、八進(jìn)制、十六進(jìn)制對(duì)應(yīng)的文本行末尾添加轉(zhuǎn)換按鈕,方便輸出用戶需要的進(jìn)制即可。將一些功能按鈕比如清零按鈕,退格按鈕,確定按鈕放在文本框下面,采用流式布局,另外對(duì)于組件之間的間隙也要規(guī)劃好,實(shí)現(xiàn)美觀大方。B、添加菜單欄:標(biāo)準(zhǔn)的進(jìn)制轉(zhuǎn)換器具有菜單欄,包括“編輯”,“查看”,“幫助”三個(gè)主菜單項(xiàng),在每個(gè)主菜單項(xiàng)里面都有若干子菜單項(xiàng)。這樣使的功能跟全面,更規(guī)范。C、添加功能:可以實(shí)現(xiàn)各個(gè)進(jìn)制之間的互換,而不只是十進(jìn)制轉(zhuǎn)換為二、八、十六進(jìn)制。九、 難點(diǎn)及關(guān)鍵技術(shù)分析難點(diǎn)分析:l 框架的合理布局。對(duì)于一個(gè)應(yīng)用程序,界面的簡(jiǎn)單明了是很重要的,既要簡(jiǎn)單明了還要實(shí)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論