




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)號xxxxxx面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告題目:計算器設(shè)計與實(shí)現(xiàn)專業(yè):班級:姓名:指導(dǎo)教師: 成績:xx201x年 x月xx日 專心-專注-專業(yè)目錄1 設(shè)計內(nèi)容及要求11.1設(shè)計內(nèi)容11.2設(shè)計任務(wù)及具體要求12 概要設(shè)計12.1 功能需求12.2 系統(tǒng)的開發(fā)運(yùn)行環(huán)境23 設(shè)計過程23.2系統(tǒng)功能模塊34 設(shè)計結(jié)果與分析44.1功能模塊的劃分44.2功能模塊的實(shí)現(xiàn)4小結(jié)105 參考文獻(xiàn)111 設(shè)計內(nèi)容及要求1.1設(shè)計內(nèi)容 該程序是一個圖形界面的簡單Java計算器,具有良好的界面,使用人員能快捷簡單的進(jìn)行操作。即時準(zhǔn)確地獲得需要的計算結(jié)果,充分降低了數(shù)字計算的難度和節(jié)
2、約了時間,對人們的生活有一定的幫助。可以進(jìn)行簡單的四則運(yùn)算(加、減、乘、除,等)1.2設(shè)計任務(wù)及具體要求 計算器的設(shè)計與實(shí)現(xiàn),使學(xué)生鞏固和加深以Java 語言為基礎(chǔ)的面向?qū)ο缶幊碳夹g(shù)理論知識的理解,提高實(shí)際動手編程能力的培養(yǎng),掌握以Java為核心的應(yīng)用軟件開發(fā)方案,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的Java程序的水平。在日常生活中經(jīng)常需要用到計算器,比如科學(xué)計算、數(shù)字計算、會計業(yè)務(wù)甚至是日常生活中的一些運(yùn)算,當(dāng)運(yùn)算比較復(fù)雜時沒有計算器就會顯得很麻煩。為了解決日常生活中的困難,特意設(shè)計了這個計算器系統(tǒng)。 2 概要設(shè)計2.1 功能需求 在日常生活中人們總是難以避免的要進(jìn)行一些運(yùn)算,當(dāng)運(yùn)算比較復(fù)雜
3、時沒有計算器就會顯得很麻煩。為了解決日常生活中的困難,特意設(shè)計了這個計算器系統(tǒng)。在該系統(tǒng)中不僅可以進(jìn)行整數(shù)的加、減、乘、除等簡單運(yùn)算,也可以進(jìn)行浮點(diǎn)數(shù)的加、減、乘、除等運(yùn)算。除此之外還可以進(jìn)行三角函數(shù)、指數(shù)、對數(shù)、平方等運(yùn)算。人們應(yīng)用它可以解決日常生活中的一些運(yùn)算問題,比如做買賣時進(jìn)行交易的過程中就可以利用該計算器進(jìn)行數(shù)量、價格以及金額的統(tǒng)計計算。學(xué)生也可以利用該計算器進(jìn)行數(shù)學(xué)運(yùn)算,解決簡單的三角函數(shù)運(yùn)算。2.2 系統(tǒng)的開發(fā)運(yùn)行環(huán)境本系統(tǒng)開發(fā)平臺: Java 本系統(tǒng)集成開發(fā)環(huán)境:MyEclipse和UltraEdit 本系統(tǒng)運(yùn)行環(huán)境: windows xp 3 設(shè)計過程3.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計
4、 本應(yīng)用程序繼承自框架類(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中將單行文本框放在窗體上方區(qū)域,將選項(xiàng)、進(jìn)制轉(zhuǎn)換、幫助等按鈕添加到菜單條。包含各種按鈕的面板Jpanel采用n行m列的網(wǎng)格布局,然后將數(shù)字按鈕和運(yùn)算按鈕以及控制按鈕添加到面板中。同時注冊事件監(jiān)聽器: 計算器總體結(jié)構(gòu)如圖1所示:圖1總體分析圖3.2系統(tǒng)功能模塊 3.2.1系統(tǒng)功能描述(1)基本運(yùn)算,包括對整數(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)其他功能,包括對輸入、輸出結(jié)果的復(fù)制、粘貼、剪
5、切和退格、清零等。3.2.2系統(tǒng)流程圖根據(jù)系統(tǒng)要求和和系統(tǒng)功能的劃分可以得到如圖2所示的流程圖:圖2程序流程圖3.2.3主要類設(shè)計public class Calculator extends Frame implements ActionListener;WindowListener/ Calculator是初始化界面,整體布局及響應(yīng)用戶的各種按鈕操作class WinCloseimplementsWindowListenerpublic void windowClosing(WindowEvent e)/ WinClose是設(shè)置計算器整個窗體的顯示、退出、隱藏的操作。4 設(shè)計結(jié)果與分析 4
6、.1功能模塊的劃分(1)界面模塊:實(shí)現(xiàn)計算器的運(yùn)算界面,該界面表示數(shù)據(jù)的按鈕、表示浮點(diǎn)型的按鈕運(yùn)算符按鈕和實(shí)現(xiàn)顯示運(yùn)算結(jié)果界面以及菜單選項(xiàng)界面。(2)監(jiān)聽器模塊:該模塊為每一個按鈕設(shè)置監(jiān)聽器,當(dāng)鼠標(biāo)點(diǎn)擊按鈕時通過監(jiān)聽器來判斷該按鈕代表的什么數(shù)據(jù)、實(shí)現(xiàn)什么運(yùn)算功能、執(zhí)行什么功能等。(3)動作響應(yīng)模塊:該模塊通過按鈕事件,進(jìn)行對應(yīng)的處理功能其主要是將運(yùn)算數(shù)據(jù),以浮點(diǎn)型類型保存在內(nèi)存中,然后通過判斷運(yùn)算符類型對數(shù)據(jù)進(jìn)行相應(yīng)的運(yùn)算,并將運(yùn)算結(jié)果以String類型在結(jié)果文本區(qū)域中顯示,其中包括菜單條里的進(jìn)制轉(zhuǎn)換和各選項(xiàng)菜單的動作響應(yīng)。(4)主函數(shù)模塊:調(diào)用已經(jīng)設(shè)計好的函數(shù),來實(shí)現(xiàn)計算器的全部功能。4.2
7、功能模塊的實(shí)現(xiàn)4.2.1計算器界面模塊 在界面設(shè)計中,應(yīng)用Frame框架,F(xiàn)rame是獨(dú)立于瀏覽器的可運(yùn)行的窗口,所以應(yīng)用Frame框架來設(shè)計計算器界面比較合適。在Frame框架的容器分別設(shè)置菜單條JmenuBar、文本區(qū)JTextField、然后在其中設(shè)置了五個面板分別都采用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對象上用鼠標(biāo)進(jìn)行點(diǎn)擊時,將發(fā)送一個ActionEvent事件。這個事件ActionEvent事件會被使用addAtionListener()方法注冊的所有ActionListener的actionPerformed()方法接 收,首先為所有具有時間動作的組件用addAtionListener(this)進(jìn)行監(jiān)聽,當(dāng)被監(jiān)聽
10、的組件發(fā)生 事件時就進(jìn)行反饋,同時進(jìn)行動作事件處理。該模塊的部分代碼如下:button_plusminus.addActionListener(this); button_exp.addActionListener(this); button_CE.addActionListener(this);/各按鈕的監(jiān)聽器設(shè)置this.addWindowListener(new WinClose(); /注冊窗口監(jiān)聽器this.setVisible(true); dialog.add(label_dialog); dialog.addWindowListener(this);/為對話框注冊窗口事件監(jiān)聽器
11、JMenuItem m1_exit=new JMenuItem("復(fù)制"); m1_exit.addActionListener(this);/設(shè)置菜單按鈕的監(jiān)聽器 4.2.3動作響應(yīng)模塊 該模塊通過public void actionPerformed(ActionEvent e)函數(shù)來實(shí)現(xiàn)動作響應(yīng)事件。首先通過e.getSource()來獲得當(dāng)前發(fā)生動作,然后根據(jù)不同的按鈕產(chǎn)生不同動作響應(yīng),在實(shí)現(xiàn)動作響應(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è)置計算器初始為空if(input.equals("+/-")displayField.setText(displayField.getText()+"-") if(!input.equals("+/-")當(dāng)首先輸入的符號是+/-時初始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ù)制") /各按鈕的動作響應(yīng)方式代碼displayField.copy(); else if (e.getActionCommand()="剪切") else if (e.getActionComma
14、nd()="二進(jìn)制") /二進(jìn)制的轉(zhuǎn)換if(displayField.getText()=null)若為空則彈出對話框JOptionPane.showMessageDialog(this,"不能為空!請輸入要進(jìn)行轉(zhuǎn)換的字符"," 消息對話框",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的計算器n" + "JAVA課程設(shè)計" + "詳情咨詢mail:n", "關(guān)于計算器", 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);/隱藏對話框elseSystem.exit(0); 基于前面三塊模板的功能,定義一個主函數(shù)來實(shí)現(xiàn)計算器的所有功能,同時定義一個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功能模塊的測試圖 3 初始化界面圖 4 求平方根圖 5 cos 運(yùn)算圖 6 exp 運(yùn)算結(jié)果圖 7 加減運(yùn)算小結(jié)設(shè)計,給人以創(chuàng)作的沖動,但也要為這次沖動承擔(dān)一定的痛苦,但事后發(fā)現(xiàn),這一切都是值得的,本次的JAVA課程設(shè)計讓我對JAVA的理論知識又有深一步的了解,溫故而知新,開始設(shè)計之時完全沒頭緒,對與理論學(xué)習(xí)不夠扎實(shí)的我深感“書到用時方恨少”只好再把書上介紹的相關(guān)知識重新閱讀一遍,對知識進(jìn)行了全面而系統(tǒng)的梳理,遇到難處首先是苦思冥想尋求方法,再向同學(xué)請教,終于熟練掌握了基本理論知識,而且領(lǐng)悟了諸多平時學(xué)習(xí)難以理解掌握的的較難的知識,學(xué)會了如何思考的方式,找到了設(shè)計的靈感。在反反復(fù)復(fù)的學(xué)習(xí)中,我終于作出一我涉及到的僅僅是計算器的一部分簡單內(nèi)容,離實(shí)際的需求肯定還有差距。由于我的知識淺薄,經(jīng)驗(yàn)不足及閱歷頗淺,在設(shè)計方面還有很多不足,比如功能過少,界面不醒目等問題,我會在以后的學(xué)習(xí)過程中,根據(jù)具體要求不斷的修改、完善,爭取使系統(tǒng)慢慢趨于完美。這次課程設(shè)計使我感到收獲不小,促進(jìn)了對理論知識的消化與吸收,也鞏固和完善了本門課程的知識體系結(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)科技創(chuàng)新培訓(xùn)
- 肺結(jié)核合并心力衰竭的護(hù)理
- 語音廳新人培訓(xùn):從零開始到主播之路
- 幼兒健康領(lǐng)域安全教育
- 整體護(hù)理查房標(biāo)準(zhǔn)化操作流程
- 造口護(hù)理查房
- 腫瘤住院患者的心理護(hù)理
- 中風(fēng)病人發(fā)燒護(hù)理常規(guī)
- 銷售業(yè)績培訓(xùn)
- 職業(yè)健康體檢質(zhì)量管理
- 煤礦應(yīng)急醫(yī)療救護(hù)常識課件
- 基于毫米波的工業(yè) 5G 創(chuàng)新應(yīng)用白皮書
- DB37T 2640-2022 監(jiān)獄安全防范系統(tǒng)建設(shè)技術(shù)規(guī)范
- 學(xué)校各功能室管理人員工作職責(zé)
- kpi績效考核培訓(xùn)課件
- 2023-2024學(xué)年滬科版(2019)高中信息技術(shù)必修二第三單元項(xiàng)目五《規(guī)劃并連接數(shù)字家庭系統(tǒng)的網(wǎng)絡(luò)-組建小型信息系統(tǒng)網(wǎng)絡(luò)(一)》說課稿
- RPA財務(wù)機(jī)器人開發(fā)與應(yīng)用 課件 6.2 RPA銀企對賬機(jī)器人
- 2024年研究生考試考研植物生理學(xué)與生物化學(xué)(414)試題與參考答案
- 天津市南開區(qū)2023-2024學(xué)年六年級下學(xué)期期末數(shù)學(xué)試題
- 公司招聘保安合同模板
- 老年患者術(shù)后譫妄護(hù)理
評論
0/150
提交評論