




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)號(hào)xxxxxx面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:計(jì)算器設(shè)計(jì)與實(shí)現(xiàn)專業(yè):班級(jí):姓名:指導(dǎo)教師: 成績:xx201x年 x月xx日 專心-專注-專業(yè)目錄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)的開發(fā)運(yùn)行環(huán)境23 設(shè)計(jì)過程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è)圖形界面的簡單Java計(jì)算器,具有良好的界面,使用人員能快捷簡單的進(jìn)行操作。即時(shí)準(zhǔn)確地獲得需要的計(jì)算結(jié)果,充分降低了數(shù)字計(jì)算的難度和節(jié)
2、約了時(shí)間,對(duì)人們的生活有一定的幫助??梢赃M(jìn)行簡單的四則運(yùn)算(加、減、乘、除,等)1.2設(shè)計(jì)任務(wù)及具體要求 計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn),使學(xué)生鞏固和加深以Java 語言為基礎(chǔ)的面向?qū)ο缶幊碳夹g(shù)理論知識(shí)的理解,提高實(shí)際動(dòng)手編程能力的培養(yǎng),掌握以Java為核心的應(yīng)用軟件開發(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í)沒有計(jì)算器就會(huì)顯得很麻煩。為了解決日常生活中的困難,特意設(shè)計(jì)了這個(gè)計(jì)算器系統(tǒng)。 2 概要設(shè)計(jì)2.1 功能需求 在日常生活中人們總是難以避免的要進(jìn)行一些運(yùn)算,當(dāng)運(yùn)算比較復(fù)雜
3、時(shí)沒有計(jì)算器就會(huì)顯得很麻煩。為了解決日常生活中的困難,特意設(shè)計(jì)了這個(gè)計(jì)算器系統(tǒng)。在該系統(tǒng)中不僅可以進(jìn)行整數(shù)的加、減、乘、除等簡單運(yùn)算,也可以進(jìn)行浮點(diǎn)數(shù)的加、減、乘、除等運(yùn)算。除此之外還可以進(jìn)行三角函數(shù)、指數(shù)、對(duì)數(shù)、平方等運(yùn)算。人們應(yīng)用它可以解決日常生活中的一些運(yùn)算問題,比如做買賣時(shí)進(jìn)行交易的過程中就可以利用該計(jì)算器進(jìn)行數(shù)量、價(jià)格以及金額的統(tǒng)計(jì)計(jì)算。學(xué)生也可以利用該計(jì)算器進(jìn)行數(shù)學(xué)運(yùn)算,解決簡單的三角函數(shù)運(yùn)算。2.2 系統(tǒng)的開發(fā)運(yùn)行環(huán)境本系統(tǒng)開發(fā)平臺(tái): Java 本系統(tǒng)集成開發(fā)環(huán)境:MyEclipse和UltraEdit 本系統(tǒng)運(yùn)行環(huán)境: windows xp 3 設(shè)計(jì)過程3.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
4、 本應(yīng)用程序繼承自框架類(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中將單行文本框放在窗體上方區(qū)域,將選項(xiàng)、進(jìn)制轉(zhuǎn)換、幫助等按鈕添加到菜單條。包含各種按鈕的面板Jpanel采用n行m列的網(wǎng)格布局,然后將數(shù)字按鈕和運(yùn)算按鈕以及控制按鈕添加到面板中。同時(shí)注冊(cè)事件監(jiān)聽器: 計(jì)算器總體結(jié)構(gòu)如圖1所示:圖1總體分析圖3.2系統(tǒng)功能模塊 3.2.1系統(tǒng)功能描述(1)基本運(yùn)算,包括對(duì)整數(shù)和浮點(diǎn)數(shù)進(jìn)行加、減、乘、除以及乘方、三角函數(shù)、指數(shù)等運(yùn)算;(2)進(jìn)制運(yùn)算,包括十進(jìn)制和二進(jìn)制數(shù)、十進(jìn)制和八進(jìn)制之間的轉(zhuǎn)換; (3)其他功能,包括對(duì)輸入、輸出結(jié)果的復(fù)制、粘貼、剪
5、切和退格、清零等。3.2.2系統(tǒng)流程圖根據(jù)系統(tǒng)要求和和系統(tǒng)功能的劃分可以得到如圖2所示的流程圖:圖2程序流程圖3.2.3主要類設(shè)計(jì)public class Calculator extends Frame implements ActionListener;WindowListener/ Calculator是初始化界面,整體布局及響應(yīng)用戶的各種按鈕操作class WinCloseimplementsWindowListenerpublic void windowClosing(WindowEvent e)/ WinClose是設(shè)置計(jì)算器整個(gè)窗體的顯示、退出、隱藏的操作。4 設(shè)計(jì)結(jié)果與分析 4
6、.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)聽器模塊:該模塊為每一個(gè)按鈕設(shè)置監(jiān)聽器,當(dāng)鼠標(biāo)點(diǎn)擊按鈕時(shí)通過監(jiān)聽器來判斷該按鈕代表的什么數(shù)據(jù)、實(shí)現(xiàn)什么運(yùn)算功能、執(zhí)行什么功能等。(3)動(dòng)作響應(yīng)模塊:該模塊通過按鈕事件,進(jìn)行對(duì)應(yīng)的處理功能其主要是將運(yùn)算數(shù)據(jù),以浮點(diǎn)型類型保存在內(nèi)存中,然后通過判斷運(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ù),來實(shí)現(xiàn)計(jì)算器的全部功能。4.2
7、功能模塊的實(shí)現(xiàn)4.2.1計(jì)算器界面模塊 在界面設(shè)計(jì)中,應(yīng)用Frame框架,F(xiàn)rame是獨(dú)立于瀏覽器的可運(yùn)行的窗口,所以應(yīng)用Frame框架來設(shè)計(jì)計(jì)算器界面比較合適。在Frame框架的容器分別設(shè)置菜單條JmenuBar、文本區(qū)JTextField、然后在其中設(shè)置了五個(gè)面板分別都采用GirdLayout 布局完成數(shù)字鍵盤和運(yùn)算符的設(shè)置。實(shí)現(xiàn)該界面的部分代碼如下: public class Calculator extends Frame implements ActionListener, WindowListener private Container container; private Gri
8、dBagLayout layout; private GridBagLayout layout; private GridBagConstraints constraints; private JTextField displayField; /保存+,-,*,/,=命令定義各種組件 JPanel panel1=new JPanel(); panel1.setLayout(new GridLayout(1,5,4,4);/定義為GridLayout布局 this.add(panel1); button_sqrt=new JButton("sqrt"); button_plu
9、sminus=new JButton("+/-"); panel1.add(button_sqrt);/面板的定義和按鈕添加4.2.2監(jiān)聽器模塊 通過繼承ActionListener和WindonListener接口來實(shí)現(xiàn)事件監(jiān)聽。當(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)聽,當(dāng)被監(jiān)聽
10、的組件發(fā)生 事件時(shí)就進(jìn)行反饋,同時(shí)進(jìn)行動(dòng)作事件處理。該模塊的部分代碼如下:button_plusminus.addActionListener(this); button_exp.addActionListener(this); button_CE.addActionListener(this);/各按鈕的監(jiān)聽器設(shè)置this.addWindowListener(new WinClose(); /注冊(cè)窗口監(jiān)聽器this.setVisible(true); dialog.add(label_dialog); dialog.addWindowListener(this);/為對(duì)話框注冊(cè)窗口事件監(jiān)聽器
11、JMenuItem m1_exit=new JMenuItem("復(fù)制"); m1_exit.addActionListener(this);/設(shè)置菜單按鈕的監(jiān)聽器 4.2.3動(dòng)作響應(yīng)模塊 該模塊通過public void actionPerformed(ActionEvent e)函數(shù)來實(shí)現(xiàn)動(dòng)作響應(yīng)事件。首先通過e.getSource()來獲得當(dāng)前發(fā)生動(dòng)作,然后根據(jù)不同的按鈕產(chǎn)生不同動(dòng)作響應(yīng),在實(shí)現(xiàn)動(dòng)作響應(yīng)之前定義了lastCommand、resul 、start變量界面效果,其中若鼠標(biāo)點(diǎn)擊的是數(shù)字按鈕則e.getSource()獲取lastCommand ,if(e.g
12、etSource().equals(button_1)|e.getSource().equals(button_2)|if (start)displayField.setTiext("");/設(shè)置計(jì)算器初始為空if(input.equals("+/-")displayField.setText(displayField.getText()+"-") if(!input.equals("+/-")當(dāng)首先輸入的符號(hào)是+/-時(shí)初始if(input.equals("退格") /退格鍵的實(shí)現(xiàn)方if(str
13、.length()>0)displayField.setText(str.substring(0,str.length()-1); lse if(input.equals("C") /清零鍵的實(shí)現(xiàn)方displayField.setText("0"); else if (e.getActionCommand()="復(fù)制") /各按鈕的動(dòng)作響應(yīng)方式代碼displayField.copy(); else if (e.getActionCommand()="剪切") else if (e.getActionComma
14、nd()="二進(jìn)制") /二進(jìn)制的轉(zhuǎn)換if(displayField.getText()=null)若為空則彈出對(duì)話框JOptionPane.showMessageDialog(this,"不能為空!請(qǐng)輸入要進(jìn)行轉(zhuǎn)換的字符"," 消息對(duì)話框",JOptionPane.WARNING_MESSAGE); else if (e.getActionCommand()="用法") /按'幫助'菜單欄用法的處理方法label_dialog.setText("sqrt,exp,log等鍵是先輸運(yùn)算符再
15、輸數(shù)字,其他運(yùn)算是先輸 入數(shù)字再輸入運(yùn)算符n"); else if (e.getActionCommand()="關(guān)于")/按'關(guān)于'菜單欄用法的處理方法JOptionPane.showMessageDialog(label_dialog,"Java的計(jì)算器n" + "JAVA課程設(shè)計(jì)" + "詳情咨詢mail:n", "關(guān)于計(jì)算器", JOptionPane.INFORMATION_MESSAGE) if (lastCommand.equals("+&quo
16、t;)/各運(yùn)算符的具體運(yùn)算方法result+= x;public void windowClosing(WindowEvent e) if(e.getSource()=dialog)dialog.setVisible(false);/隱藏對(duì)話框elseSystem.exit(0); 基于前面三塊模板的功能,定義一個(gè)主函數(shù)來實(shí)現(xiàn)計(jì)算器的所有功能,同時(shí)定義一個(gè)windowClosing 控制窗口關(guān)閉事件,其具體代碼如下:public static void main(String args) Calculator calculator=new Calculator() Calss WinClose
17、 implements WindowListener public void windowClosing(WindowEvent e)4.3功能模塊的測(cè)試圖 3 初始化界面圖 4 求平方根圖 5 cos 運(yùn)算圖 6 exp 運(yùn)算結(jié)果圖 7 加減運(yùn)算小結(jié)設(shè)計(jì),給人以創(chuàng)作的沖動(dòng),但也要為這次沖動(dòng)承擔(dān)一定的痛苦,但事后發(fā)現(xiàn),這一切都是值得的,本次的JAVA課程設(shè)計(jì)讓我對(duì)JAVA的理論知識(shí)又有深一步的了解,溫故而知新,開始設(shè)計(jì)之時(shí)完全沒頭緒,對(duì)與理論學(xué)習(xí)不夠扎實(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ì)算器的一部分簡單內(nèi)容,離實(shí)際的需求肯定還有差距。由于我的知識(shí)淺薄,經(jīng)驗(yàn)不足及閱歷頗淺,在設(shè)計(jì)方面還有很多不足,比如功能過少,界面不醒目等問題,我會(huì)在以后的學(xué)習(xí)過程中,根據(jù)具體要求不斷的修改、完善,爭(zhēng)取使系統(tǒng)慢慢趨于完美。這次課程設(shè)計(jì)使我感到收獲不小,促進(jìn)了對(duì)理論知識(shí)的消化與吸收,也鞏固和完善了本門課程的知識(shí)體系結(jié)構(gòu)。設(shè)計(jì)過程中遇到了不少的麻
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老工地食堂轉(zhuǎn)讓合同協(xié)議
- 美味快餐廳轉(zhuǎn)讓合同協(xié)議
- 紅薯代購協(xié)議合同書
- 鏜工考試(中級(jí))鏜工考試題庫(新版)
- 《課件:運(yùn)輸單據(jù)的解析與運(yùn)用》
- 2025年中醫(yī)兒科《傷寒論》專業(yè)知識(shí)考試題庫(含各題型)
- 油庫安全操作流程解讀
- 《遺傳病教育課件:探索與理解》課件
- 國際商業(yè)美術(shù)設(shè)計(jì)師考題應(yīng)對(duì)技巧試題及答案
- 課件:利息和增長率應(yīng)用題的常見題型及解題方法
- 上海市金山區(qū)2025屆高三高考二模地理試卷(含答案)
- 《電氣控制技術(shù)》課件-反接制動(dòng)控制
- 華為市場(chǎng)面試題及答案
- 旅游港澳7天計(jì)劃
- 2024年初級(jí)會(huì)計(jì)實(shí)務(wù)考試真題及答案(5套)
- 2024年高考化學(xué)真題完全解讀(廣東卷)
- 預(yù)防老年人癡呆
- 三年級(jí)信息科技第23課《分解描述問題》教學(xué)設(shè)計(jì)、學(xué)習(xí)任務(wù)單及課后練習(xí)
- 數(shù)據(jù)庫應(yīng)用技術(shù)-第三次形考作業(yè)(第10章~第11章)-國開-參考資料
- 設(shè)備調(diào)試工作流程
- 農(nóng)業(yè)水利工程基礎(chǔ)知識(shí)單選題100道及答案
評(píng)論
0/150
提交評(píng)論