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

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

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

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

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

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

7、在Frame框架的容器分別設(shè)置菜單條JmenuBaK文本區(qū)JTextField、然后在其中設(shè)置了五個(gè)面板分別都采用GirdLayout布局完成數(shù)字鍵盤(pán)和運(yùn)算符的設(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)聽(tīng)器模塊通過(guò)繼承ActionListener和WindonListener接口來(lái)

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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ù)網(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)論