java課程設(shè)計計算器實際與實現(xiàn)_第1頁
java課程設(shè)計計算器實際與實現(xiàn)_第2頁
java課程設(shè)計計算器實際與實現(xiàn)_第3頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)號xxxxxx面向?qū)ο蟪绦蛟O(shè)計»課程設(shè)計報告題目:計算器設(shè)計與實現(xiàn)專業(yè):班級:姓名:指導(dǎo)教師:成績:xx201x年x月xxH目錄1設(shè)計內(nèi)容及要求11.1設(shè)計內(nèi)容11.2設(shè)計任務(wù)及具體要求12概要設(shè)計12.1功能需求12.2系統(tǒng)的開發(fā)運行環(huán)境23設(shè)計過程23.2系統(tǒng)功能模塊34設(shè)計結(jié)果與分析44.1功能模塊的劃分44.2功能模塊的實現(xiàn)4小結(jié)105參考文獻111設(shè)計內(nèi)容及要求1.1設(shè)計內(nèi)容該程序是一個圖形界面的簡單Java計算器,具有良好的界面,使用人員能快捷簡單的進行操作。即時準(zhǔn)確地獲得需要的計算結(jié)果,充分降低了數(shù)字計算的難度和節(jié)約了時間,對人們的生活有一定的幫助。可以進行簡單的四則

2、運算(加、減、乘、除,等)1.2設(shè)計任務(wù)及具體要求計算器的設(shè)計與實現(xiàn),使學(xué)生鞏固和加深以Java語言為基礎(chǔ)的面向?qū)ο缶幊碳夹g(shù)理論知識的理解,提高實際動手編程能力的培養(yǎng),掌握以Java為核心的應(yīng)用軟件開發(fā)方案,達到能獨立閱讀、編制和調(diào)試一定規(guī)模的Java程序的水平。在日常生活中經(jīng)常需要用到計算器,比如科學(xué)計算、數(shù)字計算、會計業(yè)務(wù)甚至是日常生活中的一些運算,當(dāng)運算比較復(fù)雜時沒有計算器就會顯得很麻煩。為了解決日常生活中的困難,特意設(shè)計了這個計算器系統(tǒng)。2概要設(shè)計2.1功能需求在日常生活中人們總是難以避免的要進行一些運算,當(dāng)運算比較復(fù)雜時沒有計算器就會顯得很麻煩。為了解決日常生活中的困難,特意設(shè)計了這

3、個計算器系統(tǒng)。在該系統(tǒng)中不僅可以進行整數(shù)的加、減、乘、除等簡單運算,也可以進行浮點數(shù)的加、減、乘、除等運算。除此之外還可以進行三角函數(shù)、指數(shù)、對數(shù)、平方等運算。人們應(yīng)用它可以解決日常生活中的一些運算問題,比如做買賣時進行交易的過程中就可以利用該計算器進行數(shù)量、價格以及金額的統(tǒng)計計算。學(xué)生也可以利用該計算器進行數(shù)學(xué)運算,解決簡單的三角函數(shù)運算。2.2系統(tǒng)的開發(fā)運行環(huán)境本系統(tǒng)開發(fā)平臺:Java本系統(tǒng)集成開發(fā)環(huán)境:MyEclipse和UltraEdit本系統(tǒng)運行環(huán)境:windowsxp3設(shè)計過程3.1系統(tǒng)體系結(jié)構(gòu)設(shè)計本應(yīng)用程序繼承自框架類(Frame),此程序使用Frame布局管理器GridLayo

4、ut,在Container容器中將單行文本框放在窗體上方區(qū)域,將選項、進制轉(zhuǎn)換、幫助等按鈕添加到菜單條。包含各種按鈕的面板Jpanel采用n行m列的網(wǎng)格布局,然后將數(shù)字按鈕和運算按鈕以及控制按鈕添加到面板中。同時注冊事件監(jiān)聽器:計算器總體結(jié)構(gòu)如圖1所示:3.2系統(tǒng)功能模塊3.2.1系統(tǒng)功能描述基本運算,包括對整數(shù)和浮點數(shù)進行加、減、乘、除以及乘方、三角函數(shù)、指數(shù)等運算;進制運算,包括十進制和二進制數(shù)、十進制和八進制之間的轉(zhuǎn)換;其他功能,包括對輸入、輸出結(jié)果的復(fù)制、粘貼、剪切和退格、活零等。3.2.2系統(tǒng)流程圖根據(jù)系統(tǒng)要求和和系統(tǒng)功能的劃分可以得到如圖2所示的流程圖:3.2.3主要類設(shè)計publ

5、icclassCalculatorextendsFrameimplementsActionListenerWindowListener/Calculator是初始化界面,整體布局及響應(yīng)用戶的各種按鈕操作classWinCloseimplementsWindowListenerpublicvoidwindowClosing(WindowEvente)/WinClose是設(shè)置計算器整個窗體的顯示、退出、隱藏的操作。4設(shè)計結(jié)果與分析4.1功能模塊的劃分(1) 界面模塊:實現(xiàn)計算器的運算界面,該界面表示數(shù)據(jù)的按鈕、表示浮點型的按鈕運算符按鈕和實現(xiàn)顯示運算結(jié)果界面以及菜單選項界面。(2) 監(jiān)聽器模塊:該

6、模塊為每一個按鈕設(shè)置監(jiān)聽器,當(dāng)鼠標(biāo)點擊按鈕時通過監(jiān)聽器來判斷該按鈕代表的什么數(shù)據(jù)、實現(xiàn)什么運算功能、執(zhí)行什么功能等。(3) 動作響應(yīng)模塊:該模塊通過按鈕事件,進行對應(yīng)的處理功能其主要是將運算數(shù)據(jù),以浮點型類型保存在內(nèi)存中,然后通過判斷運算符類型對數(shù)據(jù)進行相應(yīng)的運算,并將運算結(jié)果以String類型在結(jié)果文本區(qū)域中顯示,其中包括菜單條里的進制轉(zhuǎn)換和各選項菜單的動作響應(yīng)。(4) 主函數(shù)模塊:調(diào)用已經(jīng)設(shè)計好的函數(shù),來實現(xiàn)計算器的全部功能。4.2功能模塊的實現(xiàn)4.2.1計算器界面模塊在界面設(shè)計中,應(yīng)用Frame框架,F(xiàn)rame是獨立于瀏覽器的可運行的窗口,所以應(yīng)用Frame框架來設(shè)計計算器界面比較合適。

7、在Frame框架的容器分別設(shè)置菜單條JmenuBaK文本區(qū)JTextField、然后在其中設(shè)置了五個面板分別都采用GirdLayout布局完成數(shù)字鍵盤和運算符的設(shè)置。實現(xiàn)該界面的部分代碼如下:publicclassCalculatorextendsFrameimplementsActionListener,WindowListenerprivateContainercontainer;privateGridBagLayoutlayout;privateGridBagLayoutlayout;privateGridBagConstraintsconstraints;privateJTextFie

8、lddisplayField;/保存+,-,*,/,=命令定義各種組件JPanelpanel1=newJPanel();panel1.setLayout(newGridLayout(1,5,4,4);/定義為GridLayout布局this.add(panel1);button_sqrt=newJButton("sqrt");button_plusminus=newJButton("+/-");panel1.add(button_sqrt);/面板的定義和按鈕添加4.2.2監(jiān)聽器模塊通過繼承ActionListener和WindonListener接口來

9、實現(xiàn)事件監(jiān)聽。當(dāng)Buttoin或Item對象上用鼠標(biāo)進行點擊時,將發(fā)送一個ActionEvent事件。這個事件ActionEvent事件會被使用addAtionListener()方法注冊的所有ActionListener的actionPerformed()方法接收,首先為所有具有時間動作的組件用addAtionListener(this)進行監(jiān)聽,當(dāng)被監(jiān)聽的組件發(fā)生事件時就進行反饋,同時進行動作事件處理。該模塊的部分代碼如下:button_plusminus.addActionListener(this);button_exp.addActionListener(this);button_C

10、E.addActionListener(this);/各按鈕的監(jiān)聽器設(shè)置this.addWindowListener(newWinClose();/注冊窗口監(jiān)聽器this.setVisible(true);dialog.add(label_dialog);dialog.addWindowListener(this);/為對話框注冊窗口事件監(jiān)聽器JMenuItemm1_exit=newJMenuItem("復(fù)制");m1_exit.addActionListener(this);/設(shè)置菜單按鈕的監(jiān)聽器4.2.3動作響應(yīng)模塊該模塊通過publicvoidactionPerfor

11、med(ActionEvente)函數(shù)來實現(xiàn)動作響應(yīng)事件。首先通過e.getSource()來獲得當(dāng)前發(fā)生動作,然后根據(jù)不同的按鈕產(chǎn)生不同動作響應(yīng),在實現(xiàn)動作響應(yīng)之前定義了lastCommandresul、start變量界面效果,其中若鼠標(biāo)點擊的是數(shù)字按鈕則e.getSource()獲取lastCommand,if(e.getSource().equals(button_1)|e.getSource().equals(button_2)|if(start)displayField.setTiext("");/設(shè)置計算器初始為空if(input.equals("+/

12、-")displayField.setText(displayField.getText()+"-")if(!input.equals("+/-")當(dāng)首先輸入的符號是+/-時初始if(input.equals("退格")/退格鍵的實現(xiàn)方if(str.length()>0)displayField.setText(str.substring(0,str.length()-1);lseif(input.equals("C")/活零鍵的實現(xiàn)方displayField.setText("0”);e

13、lseif(e.getActionCommand()="復(fù)制")/各按鈕的動作響應(yīng)方式代碼displayField.copy();elseif(e.getActionCommand()="剪切")elseif(e.getActionCommand()="二進制")/二進制的轉(zhuǎn)換if(displayField.getText()=null)若為空則彈出對話框JOptionPane.showMessageDialog(this,”不能為空!請輸入要進行轉(zhuǎn)換的字符","消息對話框",JOptionPane.WA

14、RNING_MESSAGE);elseif(e.getActionCommand()="用法")/按幫助菜單欄用法的處理方法label_dialog.setText("sqrt,exp,log等鍵是先輸運算符再輸數(shù)字,其他運算是先輸入數(shù)字再輸入運算符n");elseif(e.getActionCommand()="關(guān)于")/按'關(guān)于'菜單欄用法的處理方法JOptionPane.showMessageDialog(label_dialog,"Java的計算器n"+"JAVA課程設(shè)計"

15、;+"詳情咨詢mail:n","關(guān)于計算器",JOptionPane.INFORMATION_MESSAGE)if(lastCommand.equals("+")/各運算符的具體運算方法result+=x;publicvoidwindowClosing(WindowEvente)if(e.getSource()=dialog)dialog.setVisible(false);/隱藏對話框elseSystem.exit(O);基于前面三塊棋板的功能,定義一個主函數(shù)來實現(xiàn)計算器的所有功能,同時定義一個windowClosing控制窗口關(guān)閉

16、事件,其具體代碼如下:publicstaticvoidmain(Stringargs)Calculatorcalculator=newCalculator()voidCalssWinCloseimplementsWindowListenerpublicwindowClosing(WindowEvente)4.3功能模塊的測試圖3初始化界面國卜作計篇器D«回I造項避制轉(zhuǎn)損裁助7.6656666665C6667sqrt+J-e)cpC78g1456tan«*123cos-0'sin十圖5cos運算國jw航十算各IUI回傳fT遙項避制轉(zhuǎn)挽幫助162754.79141900

17、392sqn7+/8exp9退格logCt45Gtan122CMQIHsin*_j*-M壽=且選唳進制餐換幫助92,0sqrtexp退榕CT89log/45tan袁123cos*LJsin普圖7加減運算小結(jié)設(shè)計,給人以創(chuàng)作的沖動,但也要為這次沖動承擔(dān)一定的癰苦,但事后發(fā)現(xiàn),這一切都是值得的,本次的JAVA課程設(shè)計讓我對JAVA的理論知識乂有深一步的了解,溫故而知新,開始設(shè)計之時完全沒頭緒,對與理論學(xué)習(xí)不夠扎實的我深感“書到用時方恨少”只好再把書上介紹的相關(guān)知識重新閱讀一遍,對知識進行了全面而系統(tǒng)的梳理,遇到難處首先是苦思冥想尋求方法,再向同學(xué)請教,終丁熟練掌握了基本理論知識,而且領(lǐng)悟了諸多平時學(xué)習(xí)難以理解掌握的的較難的知識,學(xué)會了如何思考的方式,找到了設(shè)計的靈感。在反反復(fù)復(fù)的學(xué)習(xí)中,我終丁作出一我涉及到的僅僅是計算器的一部分簡單內(nèi)容,離實際的需求肯定還有差距。由丁我的知識淺薄,經(jīng)驗不足及閱歷頗淺,在設(shè)計方面還有很多不足,比如功能過少,界面不醒目等問題,我會在以后的學(xué)習(xí)過程中,根據(jù)具體要求不斷的修改、完善,爭取使系統(tǒng)慢慢趨丁完美。這次課程設(shè)計使我感到收獲不小,促進了對理論知識的消化與吸收,也鞏固和完善了本門課程的知識體系結(jié)構(gòu)。設(shè)計過程中遇到了不少

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論