

版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)-計(jì)算器系統(tǒng)
- java課程設(shè)計(jì)---java計(jì)算器
- 計(jì)算器java課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- java課程設(shè)計(jì)---計(jì)算器
- java課程設(shè)計(jì)—計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)--計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java_計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)---科學(xué)計(jì)算器
- java課程設(shè)計(jì)報(bào)告—計(jì)算器
- java課程設(shè)計(jì)----簡(jiǎn)易計(jì)算器
- java實(shí)現(xiàn)計(jì)算器課程設(shè)計(jì)
- java計(jì)算器課程設(shè)計(jì)報(bào)告
- java計(jì)算器課程設(shè)計(jì)報(bào)告---模擬科學(xué)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)---計(jì)算器模擬程序
- java課程設(shè)計(jì)報(bào)告--計(jì)算器設(shè)計(jì)
- java計(jì)算器課程設(shè)計(jì)-- 計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
- java課程設(shè)計(jì)模擬科學(xué)計(jì)算器
評(píng)論
0/150
提交評(píng)論