java課程設(shè)計(jì)-計(jì)算器系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(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、<p><b>  Java程序設(shè)計(jì)</b></p><p>  課程設(shè)計(jì)(論文)說(shuō)明書</p><p>  題目: 簡(jiǎn) 易 計(jì) 算 器</p><p><b>  摘 要</b></p><p>  在人們的日常生活中,計(jì)算器系統(tǒng)是很常見(jiàn)的。本次的課程設(shè)計(jì)就是研究這類的問(wèn)題,利用Ja

2、va語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的加、減、乘、除運(yùn)算,還要對(duì)在運(yùn)算過(guò)程中可能出現(xiàn)的問(wèn)題進(jìn)行處理,在本程序中,利用try、catch語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)可能出現(xiàn)的異常進(jìn)行捕獲、處理。在課程設(shè)計(jì)中,系統(tǒng)開發(fā)平臺(tái)為Windows 7,程序設(shè)計(jì)設(shè)計(jì)語(yǔ)言采用Java,程序運(yùn)行平臺(tái)為Windows 7,程序開發(fā)工具為Eclipse,其中還要用到JDK的配置等。計(jì)算器要實(shí)現(xiàn)簡(jiǎn)單的加、減、乘、除運(yùn)算,其中在除法運(yùn)算中對(duì)除數(shù)不能為零的情況做簡(jiǎn)單的處理,把問(wèn)題拋出,并在計(jì)算器的文

3、本框中輸出相應(yīng)的 “除數(shù)不能為零!” 信息。</p><p>  在本次課程設(shè)計(jì)中,將重點(diǎn)學(xué)習(xí)GUI的設(shè)計(jì)。在GUI的設(shè)計(jì)中,學(xué)習(xí)容器、組件的相關(guān)知識(shí),并且對(duì)其中的組件設(shè)置事件監(jiān)聽,然后處理監(jiān)聽到的事件。整個(gè)系統(tǒng)有一個(gè)無(wú)參構(gòu)造函數(shù);九個(gè)方法,其中包括一個(gè)主方法;八個(gè)類,其中包括七個(gè)事件監(jiān)聽類。</p><p>  關(guān)鍵詞:Java程序設(shè)計(jì)、Eclipse的安裝配置、JDK的安裝配置、系統(tǒng)變

4、量、try-catch語(yǔ)句、GUI圖形用戶界面、主方法、容器、組件、無(wú)參構(gòu)造函數(shù)、事件監(jiān)聽類</p><p><b>  目 錄</b></p><p>  第一章 前 言4</p><p>  1.1工作基礎(chǔ)及應(yīng)用環(huán)境4</p><p><b>  1.2研究意義4</b></p

5、><p>  第二章 開發(fā)環(huán)境的集成4</p><p>  2.1 Eclipse及JDK的安裝配置4</p><p>  2.1.1 Eclipse的安裝配置4</p><p>  2.1.2 JDK的安裝配置5</p><p>  第三章 系統(tǒng)需求分析及實(shí)現(xiàn)目標(biāo)6</p><p>

6、  3.1系統(tǒng)需求分析6</p><p>  3.2系統(tǒng)實(shí)現(xiàn)目標(biāo)7</p><p>  第四章 計(jì)算器系統(tǒng)設(shè)計(jì)7</p><p>  第五章 實(shí)現(xiàn)過(guò)程10</p><p>  第六章 總結(jié)12</p><p><b>  參考文獻(xiàn)13</b></p><p&g

7、t;<b>  致 謝13</b></p><p><b>  第一章 前 言</b></p><p>  1.1工作基礎(chǔ)及應(yīng)用環(huán)境</p><p>  經(jīng)過(guò)一學(xué)期的java學(xué)習(xí),對(duì)java的基本知識(shí)有了一定的了解,對(duì)各方面的知識(shí)形成了一定的系統(tǒng),在這樣的基礎(chǔ)下進(jìn)行java課程設(shè)計(jì),加強(qiáng)這一學(xué)期所學(xué)的知識(shí)點(diǎn),鞏固系

8、統(tǒng)知識(shí),并在實(shí)際應(yīng)用中靈活的應(yīng)用。</p><p>  應(yīng)用環(huán)境是:在Windows的操作系統(tǒng)中都可以應(yīng)用此軟件。</p><p><b>  1.2研究意義</b></p><p>  通過(guò)實(shí)訓(xùn)把知識(shí)形成系統(tǒng),把自己所學(xué)的知識(shí)在實(shí)際問(wèn)題中加以運(yùn)用。如果自己編寫的程序能夠給更多的人帶來(lái)方便,并且得到人們的好評(píng),那么自己編寫的程序就可以實(shí)現(xiàn)商品化

9、,形成產(chǎn)品給更多的人利用,并實(shí)現(xiàn)一定的商品價(jià)值。</p><p>  1.3進(jìn)度安排及分組情況</p><p>  進(jìn)度安排:利用第十六周一周的時(shí)間,把計(jì)算器程序的代碼編寫出來(lái),并且能夠運(yùn)行,實(shí)現(xiàn)預(yù)期所想要的結(jié)果;第十七周的時(shí)間主要是書寫實(shí)訓(xùn)報(bào)告,中間穿插軟件測(cè)試的內(nèi)容,把軟件的功能完善;在第十七周的最后一次課之前進(jìn)行答辯,完成本次的課程設(shè)計(jì)實(shí)訓(xùn)。</p><p>

10、  第二章 開發(fā)環(huán)境的集成</p><p>  2.1 Eclipse及JDK的安裝配置</p><p>  2.1.1 Eclipse的安裝配置</p><p>  Java開發(fā)工具有很多,比如:Eclipse 3.7、Netbeans 7.0、Myeclipse,其中Myeclipse就是Eclipse集成了很多插件,此軟件工具是要收費(fèi)的。我所用的java開發(fā)

11、工具是Eclipse,此軟件是設(shè)計(jì)好的軟件,不需要安裝就可以使用。</p><p>  2.1.2 JDK的安裝配置</p><p>  JDK環(huán)境變量的配置方法有兩種,具體配置方法如下:</p><p>  一、JDK環(huán)境變量的配置:</p><p>  1、新建系統(tǒng)變量:JAVA_HOME,其變量值為:"c:\java\jdk1

12、.6.0_10"。</p><p>  2、編輯系統(tǒng)變量:Path,在其變量值文本框末端添加字符串:";%JAVA_HOME%\bin;"。</p><p>  3、新建用戶變量:CLASSPATH,其變量值為:".;c:\java\jdk1.6.0_10\lib\tools.jar;"。</p><p>  二、J

13、DK環(huán)境變量的配置:</p><p>  1、新建系統(tǒng)變量:JAVA_HOME,其變量值為:"c:\java\jdk1.6.0_10"。</p><p>  2、編輯系統(tǒng)變量:Path,在其變量值文本框末端添加字符串:";%JAVA_HOME%\bin;"。</p><p>  3、新建系統(tǒng)變量:CLASSPATH,其變量值為

14、:".;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar"。</p><p>  下面以Window 7操作系統(tǒng)具體介紹JDK的配置方法:</p><p>  1、打開系統(tǒng)屬性對(duì)話框,然后點(diǎn)擊下面的環(huán)境變量按鈕:</p><p>  2、在打開的環(huán)境變量對(duì)話框中,進(jìn)行JDK環(huán)境變量的設(shè)置,具體的設(shè)置

15、方法參考2.1.2 JDK的安裝與配置:</p><p>  第三章 系統(tǒng)需求分析及實(shí)現(xiàn)目標(biāo)</p><p><b>  3.1系統(tǒng)需求分析</b></p><p>  本次課程設(shè)計(jì)的題目是制作簡(jiǎn)易的計(jì)算器,整個(gè)系統(tǒng)需要實(shí)現(xiàn)的功能是:簡(jiǎn)單的加、減、乘、除功能,并且對(duì)可能出現(xiàn)的異常進(jìn)行處理,還要輸出異常信息。在執(zhí)行計(jì)算功能時(shí),要注意計(jì)算數(shù)據(jù)的范

16、圍,不能輸入超出范圍之內(nèi)的數(shù)據(jù),對(duì)于異常的輸入能夠有提示信息。</p><p>  我主要負(fù)責(zé)的是在沒(méi)有點(diǎn)擊等號(hào)按鈕之前,實(shí)現(xiàn)加減乘除的算法,并把算的結(jié)果在文本框中顯示出來(lái)。在實(shí)現(xiàn)除法運(yùn)算的過(guò)程中,要注意除數(shù)不能為零的情況,在程序具體實(shí)現(xiàn)過(guò)程中用try語(yǔ)句撲捉異常,把除數(shù)為零的情況以異常類拋出,在后面用catch語(yǔ)句捕獲異常,然后在計(jì)算器文本框中輸出“除數(shù)不能為零!”的字幕。其他的算法主要是注意運(yùn)算的范圍,不能輸

17、入太大或是太小的數(shù)據(jù),如果輸入的數(shù)據(jù)太大,運(yùn)算的結(jié)果就不會(huì)以double型數(shù)據(jù)顯示。</p><p><b>  3.2系統(tǒng)實(shí)現(xiàn)目標(biāo)</b></p><p>  系統(tǒng)要實(shí)現(xiàn)的功能是簡(jiǎn)單的加減乘除算法,并且要在遇到異常的情況下,把異常拋出。比如:除法運(yùn)算中除數(shù)不能為零的情況,當(dāng)在運(yùn)算的過(guò)程中如果除數(shù)為零,程序就會(huì)把除數(shù)為零的情況以異常類拋出,并且在文本框中顯示捕獲的異常

18、信息。還有運(yùn)算的結(jié)果過(guò)大或是過(guò)小的情況。</p><p>  系統(tǒng)在實(shí)現(xiàn)除法運(yùn)算時(shí),如果輸入的除數(shù)為零會(huì)顯示如下信息:</p><p>  第四章 計(jì)算器系統(tǒng)設(shè)計(jì)</p><p>  本系統(tǒng)整體上說(shuō)還是有一定的難度,其中用到了一個(gè)構(gòu)造函數(shù)、八個(gè)類、九個(gè)方法,包括一個(gè)主方法和八個(gè)事件監(jiān)聽類。在公共類中對(duì)面板、按鈕等容器或組件進(jìn)行了申明和創(chuàng)建對(duì)象;在構(gòu)造函數(shù)Calcu

19、late()中只做了退出界面的設(shè)置和調(diào)用JbInit();在JbInit()方法中對(duì)每個(gè)按鈕或是面板進(jìn)行了設(shè)置,設(shè)置它的大小、位置,還有對(duì)應(yīng)觸發(fā)的事件;還有其他的方法和類就是對(duì)加減乘除算法的實(shí)現(xiàn),以及面板中二十個(gè)按鈕所對(duì)應(yīng)的事件響應(yīng),和八個(gè)事件監(jiān)聽類。</p><p>  我主要做的是加減乘除算法的實(shí)現(xiàn),還要考慮到在計(jì)算的過(guò)程中可能出現(xiàn)的異常,在這里主要是對(duì)除法運(yùn)算中除數(shù)不能為零的情況進(jìn)行處理,我所用到的方法是用

20、try-catch語(yǔ)句把異常拋出并且進(jìn)行異常類的處理,并把相關(guān)的異常信息輸出在計(jì)算器的文本框中。</p><p>  計(jì)算器系統(tǒng)中唯一的一個(gè)界面如下:</p><p>  在沒(méi)有用try-catch語(yǔ)句進(jìn)行異常處理的時(shí)候,除法運(yùn)算中除數(shù)為零的情況,運(yùn)算得到的結(jié)果為:</p><p>  在用到try-catch語(yǔ)句進(jìn)行異常處理的時(shí)候,除法運(yùn)算中除數(shù)為零的情況,運(yùn)算得

21、到的結(jié)果為:</p><p><b>  第五章 實(shí)現(xiàn)過(guò)程</b></p><p>  這里只列出了自己所做部分代碼:</p><p>  public void btnEqual_actionPerformed(ActionEvent e) {</p><p>  if(!flag3)//未曾按下等于運(yùn)算符</

22、p><p>  behind = txtResult.getText();//返回此文本組件表示的文本。</p><p><b>  else</b></p><p>  front = re; //re用于存儲(chǔ)運(yùn)算結(jié)果的字符串格式</p><p>  try {

23、 //front - 要解析的字符串。</p><p>  double a1 = Double.parseDouble(front);//Double 類在對(duì)象中包裝一個(gè)基本類型 double的值。每個(gè) Double 類型的對(duì)象都包含一個(gè) double 類型的字段。</p><p>  double b1 = Double.parseDouble(behind);//

24、parseDouble:返回一個(gè)新的 double 值,該值被初始化為用指定 String 表示的值</p><p>  if (op == "+") { //返回:由字符串參數(shù)表示的 double 值。 </p><p>  result = a1 + b1; //result用于存儲(chǔ)運(yùn)算結(jié)果</p><p

25、>  } else if (op == "-") //op用于記錄運(yùn)算符</p><p>  { result = a1 - b1; } </p><p>  else if (op == "*") </p><p>  { result = a1 * b1; } </p><p>  else

26、 { result = a1 / b1;</p><p><b>  if(b1==0)</b></p><p>  {throw new ArithmeticException("除數(shù)不能為零!");}</p><p>  }re = Double.toString(result);//toString:返回此 Doubl

27、e對(duì)象的字符串表示形式。</p><p>  txtResult.setText(re);//將此文本組件顯示的文本設(shè)置為指定文本。 //re - 新文本;如果此參數(shù)為 null,則將文本設(shè)置為空字符串 ""</p><p>  }catch (ArithmeticException ce) </p><p>  { t

28、xtResult.setText(ce.getMessage());</p><p>  } if (!flag3)</p><p>  flag3 = true;//確認(rèn)已經(jīng)按下等號(hào)</p><p>  } public void btnPoint_actionPerformed(ActionEvent e) {</p><p> 

29、 int num=txtResult.getText().indexOf(".");//返回索引在這個(gè)字符串的第一個(gè)發(fā)生指定子串。</p><p>  if(num<0 && !flag)//flag用于記錄是否按下了運(yùn)算符 txtResult.setText(txtResult.getText()+e.getActionCommand());</

30、p><p>  //getActionCommand:返回此按鈕激發(fā)的動(dòng)作事件的命令名稱。如果命令名稱為 null(默認(rèn)),則此方法返回按鈕的標(biāo)簽。 </p><p><b>  if(flag)</b></p><p>  flag1=true;//flag1用于判斷是否輸入了點(diǎn)運(yùn)算符</p><p><b> 

31、 }</b></p><p>  具體的實(shí)現(xiàn)方法如以下流程圖:</p><p>  程序中點(diǎn)號(hào)的實(shí)現(xiàn)代碼:</p><p>  public void btnPoint_actionPerformed(ActionEvent e) </p><p><b>  {</b></p><p&g

32、t;  int num=txtResult.getText().indexOf(".");//返回索引在這個(gè)字符串的第一個(gè)發(fā)生指定子串。</p><p>  if(num<0 && !flag)//flag用于記錄是否按下了運(yùn)算符 txtResult.setText(txtResult.getText()+e.getActionCommand());//g

33、etActionCommand:返回此按鈕激發(fā)的動(dòng)作事件的命令名稱。如果命令名稱為 null(默認(rèn)),則此方法返回按鈕的標(biāo)簽。 </p><p><b>  if(flag)</b></p><p>  flag1=true;//flag1用于判斷是否輸入了點(diǎn)運(yùn)算符</p><p><b>  }</b></p>

34、;<p><b>  第六章 總結(jié)</b></p><p>  在答辯中老師的提問(wèn):</p><p>  問(wèn):在點(diǎn)擊按鈕之后,怎樣讓程序知道這個(gè)事件?代碼中是如何實(shí)現(xiàn)的?</p><p>  答:在點(diǎn)擊按鈕之后,主要是利用事件監(jiān)聽,對(duì)按鈕設(shè)置,監(jiān)聽按鈕的動(dòng)作,然后在用具體的方法體去實(shí)現(xiàn)此按鈕的具體功能。課程設(shè)計(jì)中總共用到了七個(gè)事

35、件監(jiān)聽類,九個(gè)方法體。</p><p>  在本次的課程設(shè)計(jì)中,主要用到以下的方法和事件監(jiān)聽類:</p><p>  class Calculate_btnCancel_actionAdapter implements ActionListener </p><p>  //實(shí)現(xiàn)“←”號(hào)功能的監(jiān)聽</p><p>  class Calcul

36、ate_btnMinus_actionAdapter implements ActionListener </p><p>  //實(shí)現(xiàn)“+/-”號(hào)功能的監(jiān)聽</p><p>  class Calculate_btnBegin_actionAdapter implements ActionListener </p><p>  //實(shí)現(xiàn)“C”號(hào)功能的監(jiān)聽</

37、p><p>  class Calculate_btnPoint_actionAdapter implements ActionListener </p><p>  //實(shí)現(xiàn)點(diǎn)號(hào)功能的監(jiān)聽</p><p>  class Calculate_btnEqual_actionAdapter implements ActionListener </p><

38、;p>  //實(shí)現(xiàn)等號(hào)功能的監(jiān)聽</p><p>  class Calculate_btnIncrease_actionAdapter implements ActionListener </p><p>  //實(shí)現(xiàn)加、減、乘、除功能的監(jiān)聽</p><p>  class Calculate_btnZero_actionAdapter implements

39、 ActionListener </p><p>  //實(shí)現(xiàn)數(shù)字0-9功能的監(jiān)聽</p><p>  具體功能的實(shí)現(xiàn)方法體如下:</p><p>  無(wú)參構(gòu)造函數(shù):public Calculate()</p><p>  主方法:public static void main(String[] args)</p><p&

40、gt;  其他實(shí)現(xiàn)功能的方法:</p><p>  private void jbInit() throws Exception</p><p>  public void btnZero_actionPerformed(ActionEvent e)</p><p>  public void btnIncrease_actionPerformed(ActionEv

41、ent e)</p><p>  public void btnEqual_actionPerformed(ActionEvent e)</p><p>  public void btnPoint_actionPerformed(ActionEvent e)</p><p>  public void btnBegin_actionPerformed(Action

42、Event e)</p><p>  public void btnMinus_actionPerformed(ActionEvent e)</p><p>  public void btnCancel_actionPerformed(ActionEvent e)</p><p><b>  課程設(shè)計(jì)總結(jié):</b></p>&l

43、t;p>  通過(guò)兩周的實(shí)訓(xùn)明白了,書本中都是一些非?;A(chǔ)的知識(shí),如果想要把一個(gè)實(shí)訓(xùn)項(xiàng)目做好就必須自學(xué)其他的知識(shí)點(diǎn),參考一些書籍或是在網(wǎng)上查閱一些資料,就算是這樣我們?nèi)匀徊荒芎芡昝赖膶?shí)現(xiàn)所有的功能,我們也是會(huì)學(xué)到很多的,然后這就要我們?cè)谝院蟮膶W(xué)習(xí)中完善自己,多積累編程經(jīng)驗(yàn)。</p><p>  還有實(shí)訓(xùn)讓我明白了團(tuán)隊(duì)的重要性,如果你遇到了一個(gè)問(wèn)題,一個(gè)人思考永遠(yuǎn)都比不上幾個(gè)人思考的快,就算是問(wèn)題很難,但是在一

44、個(gè)團(tuán)隊(duì)中幾個(gè)人一起討論,問(wèn)題就會(huì)很快解決。團(tuán)隊(duì)也讓我們活躍了很多,沒(méi)有像人們想的那樣,編程有多枯燥無(wú)味,不會(huì)讓我們對(duì)編程產(chǎn)生反感。團(tuán)隊(duì)之間相互交流還可以促進(jìn)進(jìn)步,有可能你不知道的知識(shí)點(diǎn)其他人知道,這樣不用看課本就可以把知識(shí)記得很牢。</p><p>  在我們拿到一個(gè)題目的時(shí)候不要以為這個(gè)題目會(huì)很難,任何問(wèn)題都是有解決辦法的,我們要把問(wèn)題細(xì)化,分成不同的模塊逐步求解,這樣就算是再難的問(wèn)題我們都有辦法解決。<

45、/p><p><b>  參考文獻(xiàn)</b></p><p>  Java程序設(shè)計(jì)項(xiàng)目教程 中國(guó)人民大學(xué)出版社</p><p>  Java程序設(shè)計(jì)案例教程 西北工業(yè)大學(xué)出版社</p><p>  Java語(yǔ)言程序設(shè)計(jì) 中國(guó)鐵道出版社</p><p><b>  網(wǎng)上

46、搜索的相關(guān)資料</b></p><p><b>  致 謝</b></p><p>  能夠完成本次的課程設(shè)計(jì),要感謝老師在課程設(shè)計(jì)中的指導(dǎo)。我們?cè)谄綍r(shí)的課堂上學(xué)到的知識(shí)點(diǎn)都是一些基礎(chǔ),沒(méi)有做過(guò)什么實(shí)際的項(xiàng)目,知識(shí)點(diǎn)都不能形成系統(tǒng)。通過(guò)本次的課程設(shè)計(jì)讓我們加強(qiáng)了個(gè)知識(shí)點(diǎn)之間的聯(lián)系,更能在實(shí)際中加以利用。</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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論