九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

JAVA課程設(shè)計(jì)計(jì)算器

上傳人:max****ui 文檔編號(hào):23689108 上傳時(shí)間:2021-06-10 格式:DOC 頁(yè)數(shù):15 大小:134.41KB
收藏 版權(quán)申訴 舉報(bào) 下載
JAVA課程設(shè)計(jì)計(jì)算器_第1頁(yè)
第1頁(yè) / 共15頁(yè)
JAVA課程設(shè)計(jì)計(jì)算器_第2頁(yè)
第2頁(yè) / 共15頁(yè)
JAVA課程設(shè)計(jì)計(jì)算器_第3頁(yè)
第3頁(yè) / 共15頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《JAVA課程設(shè)計(jì)計(jì)算器》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《JAVA課程設(shè)計(jì)計(jì)算器(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、JAVA程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書(shū)一、課程設(shè)計(jì)的目的1、培養(yǎng)學(xué)生面向?qū)ο缶幊痰乃枷耄?、使學(xué)生熟悉JAVA語(yǔ)言的使用;3、培養(yǎng)學(xué)生JAVA編程的思想和方法;4、使學(xué)生掌握J(rèn)AVA編程調(diào)試的基本技能;5、培養(yǎng)學(xué)生分析、解決問(wèn)題的能力。二、課程設(shè)計(jì)內(nèi)容與要求1、內(nèi)容一:1簡(jiǎn)單計(jì)算器題目描述使用Java的GUI圖形用戶(hù)界面編程設(shè)計(jì)并編寫(xiě)一個(gè)計(jì)算器程序,用戶(hù)可以通過(guò)鼠標(biāo)或者鍵盤(pán)操作輸入?yún)⒓舆\(yùn)算的數(shù)值和運(yùn)算符,要求能進(jìn)行加、減、乘、除等混合運(yùn)算。基本要求實(shí)現(xiàn)加、減、乘、除的雙目單類(lèi)別的基礎(chǔ)運(yùn)算;實(shí)現(xiàn)提示GUI編程 Component的事件響應(yīng)。參考界面JAVA程序設(shè)計(jì)課程設(shè)計(jì)一、系統(tǒng)中所使用的數(shù)據(jù)對(duì)象及說(shuō)明

2、1、Calculator類(lèi)屬性屬性名稱(chēng)類(lèi)型描述JmbJMenuBar菜單欄Jm1 jm2 jm3 JMenu 菜單JmiJMenuItem菜單項(xiàng)fJFrame 實(shí)例化對(duì)象Panel1 1JPanel 輸入面板CommandsPanelJPanel 運(yùn)算符面板calckeysPanelJPanel 數(shù)字面板showline JTextField 數(shù)據(jù)輸出框backspace JButton 退格鍵CE JButton 清空C JButton 刪除1/XJButton 取余dao JButton 取倒數(shù)add JButton 數(shù)字相加jian JButton 數(shù)字相減cheng JButton 數(shù)

3、字相乘quzheng JButton 數(shù)字相除dian JButton 點(diǎn)符號(hào)deng JButton 等于號(hào)zero JButton 一one JButton 二two JButton 三three JButton 四four JButton 五five JButton 六six JButton 七seven JButton 八eight JButton 九num1 String保存第一個(gè)運(yùn)算數(shù)字operator String保存運(yùn)算符號(hào)方法方法名稱(chēng)功能Calculator計(jì)算器布局Add添加組件、面板addMouseListener添加鼠標(biāo)監(jiān)聽(tīng)事件setJMenuBar設(shè)置菜單2、 系統(tǒng)功

4、能結(jié)構(gòu)及相關(guān)算法描述1、系統(tǒng)功能結(jié)構(gòu) 計(jì)算器按鍵文本框菜單欄標(biāo)題欄1-9、BackspaceCE、C+、-、*、/%、.、1/x=文本框幫助查看編輯標(biāo)題:計(jì)算器關(guān)于計(jì)算器幫助主題數(shù)學(xué)分組科學(xué)型標(biāo)準(zhǔn)型粘貼復(fù)制系統(tǒng)功能結(jié)構(gòu)圖2、 相關(guān)算法流程圖(1)加減法流程N(yùn)Y將S添加到show文本框執(zhí)行加、減法運(yùn)算得出SMun1是否存在(2) 乘除法流程N(yùn)Mun1是否存在Y執(zhí)行乘、除法運(yùn)算得出S將S添加到show文本框(3) 乘方取余法流程Mun1是否存在NY執(zhí)行乘方、取余法運(yùn)算得出S將S添加到show文本框三、系統(tǒng)運(yùn)行結(jié)果(截圖)1、主菜單四、課程設(shè)計(jì)總結(jié)通過(guò)此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)JAVA圖

5、形界面布局等方面的知識(shí),雖然在設(shè)計(jì)過(guò)程中也遇到了很多問(wèn)題,但經(jīng)過(guò)一次又一次的思考,一遍又一遍檢查和反復(fù)修改終于找到了原因所在,也暴露了前期我在這方面的知識(shí)欠缺。課程設(shè)計(jì)是一種實(shí)踐活動(dòng),不但可以提升專(zhuān)業(yè)知識(shí)和專(zhuān)業(yè)能力,也培養(yǎng)了我們獨(dú)立思考,動(dòng)手操作的能力,使我對(duì)抽象的知識(shí)有了具體的認(rèn)識(shí)。這對(duì)于我們的將來(lái)也有很大的幫助。此次課程設(shè)計(jì)也讓我明白沒(méi)有最完善的程序代碼,只有不斷地改善才能使程序變得更完美,同時(shí)也增強(qiáng)了我對(duì)JAVA的興趣,相信繼續(xù)保持下去對(duì)JAVA的理解一定會(huì)更上一層樓。附錄:程序源碼import java.awt.BorderLayout;import java.awt.Color;im

6、port java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JSeparator;import javax

7、.swing.JTextField; public class Calculator extends JFrame implements ActionListener JMenuBar jmb; JMenu jm1,jm2,jm3; JMenuItem jmi; /* 計(jì)算器上的鍵的顯示名字 */ private final String KEYS = 7, 8, 9, /, sqrt, 4, 5, 6, *, %, 1, 2, 3, -, 1/x, 0, +/-, ., +, = ; /* 計(jì)算器上的功能鍵的顯示名字 */ private final String COMMAND = Bac

8、kspace, CE, C ; /* 計(jì)算器上鍵的按鈕 */ private JButton keys = new JButtonKEYS.length; /* 計(jì)算器上的功能鍵的按鈕 */ private JButton commands = new JButtonCOMMAND.length; /* 計(jì)算器左邊的M的按鈕 */ /* 計(jì)算結(jié)果文本框 */ private JTextField resultText = new JTextField(0); / 標(biāo)志用戶(hù)按的是否是整個(gè)表達(dá)式的第一個(gè)數(shù)字,或者是運(yùn)算符后的第一個(gè)數(shù)字 private boolean firstDigit = tr

9、ue; / 計(jì)算的中間結(jié)果。 private double resultNum = 0.0; / 當(dāng)前運(yùn)算的運(yùn)算符 private String operator = =; / 操作是否合法 private boolean operateValidFlag = true; /* * 構(gòu)造函數(shù) */ public Calculator() super(); JMenuBar jmb=new JMenuBar();this.setJMenuBar(jmb);JMenu jm=new JMenu(編輯(E);jmb.add(jm);jmi= new JMenuItem(復(fù)制(c) Ctrl+c);j

10、m.add(jmi);jmi= new JMenuItem(粘貼(p) Ctrl+v);jm.add(jmi);jm2=new JMenu(查看(v);jmb.add(jm2);jmi= new JMenuItem(標(biāo)準(zhǔn)型(T);jm2.add(jmi);jmi= new JMenuItem(科學(xué)型(S);jm2.add(jmi);jm2.add(new JSeparator();jmi= new JMenuItem(數(shù)學(xué)分組(I);jm2.add(jmi);jm3=new JMenu(幫助(H);jmb.add(jm3);jmi= new JMenuItem(幫助主題(H);jm3.add(

11、jmi);jm3.add(new JSeparator();jmi= new JMenuItem(關(guān)于計(jì)算器(A);jm3.add(jmi); / 初始化計(jì)算器 init(); / 設(shè)置計(jì)算器的背景顏色 this.setBackground(Color.LIGHT_GRAY); this.setTitle(計(jì)算器); / 在屏幕(500, 300)坐標(biāo)處顯示計(jì)算器 this.setLocation(500, 300); / 不許修改計(jì)算器的大小 this.setResizable(false); / 使計(jì)算器中各組件大小合適 this.pack(); /* * 初始化計(jì)算器 */ privat

12、e void init() / 文本框中的內(nèi)容采用右對(duì)齊方式 resultText.setHorizontalAlignment(JTextField.RIGHT); / 不允許修改結(jié)果文本框 resultText.setEditable(false); / 設(shè)置文本框背景顏色為白色 resultText.setBackground(Color.WHITE); / 初始化計(jì)算器上鍵的按鈕,將鍵放在一個(gè)面板內(nèi) JPanel calckeysPanel = new JPanel(); / 用網(wǎng)格布局器,4行,5列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個(gè)象素,垂直方向間隔為3個(gè)象素 calckeysPa

13、nel.setLayout(new GridLayout(4, 5, 3, 3); for (int i = 0; i KEYS.length; i+) keysi = new JButton(KEYSi); calckeysPanel.add(keysi); keysi.setForeground(Color.blue); / 運(yùn)算符鍵用紅色標(biāo)示,其他鍵用藍(lán)色表示 keys3.setForeground(Color.red); keys8.setForeground(Color.red); keys13.setForeground(Color.red); keys18.setForegrou

14、nd(Color.red); keys19.setForeground(Color.red); / 初始化功能鍵,都用紅色標(biāo)示。將功能鍵放在一個(gè)面板內(nèi) JPanel commandsPanel = new JPanel(); / 用網(wǎng)格布局器,1行,3列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個(gè)象素,垂直方向間隔為3個(gè)象素 commandsPanel.setLayout(new GridLayout(1, 3, 3, 3); for (int i = 0; i COMMAND.length; i+) commandsi = new JButton(COMMANDi); commandsPanel.a

15、dd(commandsi); commandsi.setForeground(Color.red); / 下面進(jìn)行計(jì)算器的整體布局,將calckeys和command面板放在計(jì)算器的中下部 / 新建一個(gè)大的面板,將上面建立的command和calckeys面板放在該面板內(nèi) JPanel panel1 = new JPanel(); / 面板采用邊界布局管理器,面板里組件之間的水平和垂直方向上間隔都為3象素 panel1.setLayout(new BorderLayout(3, 3); panel1.add(North, commandsPanel); panel1.add(Center, c

16、alckeysPanel); / 建立一個(gè)面板放文本框 JPanel top = new JPanel(); top.setLayout(new BorderLayout(); top.add(Center, resultText); / 整體布局 getContentPane().setLayout(new BorderLayout(3, 5); getContentPane().add(North, top); getContentPane().add(Center, panel1); / 為各按鈕添加事件監(jiān)聽(tīng)器 / 都使用同一個(gè)事件監(jiān)聽(tīng)器,即本對(duì)象。本類(lèi)的聲明中有implements A

17、ctionListener for (int i = 0; i KEYS.length; i+) keysi.addActionListener(this); for (int i = 0; i = 0) / 用戶(hù)按了數(shù)字鍵或者小數(shù)點(diǎn)鍵 handleNumber(label); / handlezero(zero); else / 用戶(hù)按了運(yùn)算符鍵 handleOperator(label); /* * 處理Backspace鍵被按下的事件 */ private void handleBackspace() String text = resultText.getText(); int i =

18、 text.length(); if (i 0) / 退格,將文本最后一個(gè)字符去掉 text = text.substring(0, i - 1); if (text.length() = 0) / 如果文本沒(méi)有了內(nèi)容,則初始化計(jì)算器的各種值 resultText.setText(0); firstDigit = true; operator = =; else / 顯示新的文本 resultText.setText(text); /* * 處理數(shù)字鍵被按下的事件 * * param key */ private void handleNumber(String key) if (firstD

19、igit) / 輸入的第一個(gè)數(shù)字 resultText.setText(key); else if (key.equals(.) & (resultText.getText().indexOf(.) 0) / 輸入的是小數(shù)點(diǎn),并且之前沒(méi)有小數(shù)點(diǎn),則將小數(shù)點(diǎn)附在結(jié)果文本框的后面 resultText.setText(resultText.getText() + .); else if (!key.equals(.) / 如果輸入的不是小數(shù)點(diǎn),則將數(shù)字附在結(jié)果文本框的后面 resultText.setText(resultText.getText() + key); / 以后輸入的肯定不是第一個(gè)數(shù)

20、字了 firstDigit = false; /* * 處理C鍵被按下的事件 */ private void handleC() / 初始化計(jì)算器的各種值 resultText.setText(0); firstDigit = true; operator = =; /* * 處理運(yùn)算符鍵被按下的事件 * * param key */ private void handleOperator(String key) if (operator.equals(/) / 除法運(yùn)算 / 如果當(dāng)前結(jié)果文本框中的值等于0 if (getNumberFromText() = 0.0) / 操作不合法 oper

21、ateValidFlag = false; resultText.setText(除數(shù)不能為零); else resultNum /= getNumberFromText(); else if (operator.equals(1/x) / 倒數(shù)運(yùn)算 if (resultNum = 0.0) / 操作不合法 operateValidFlag = false; resultText.setText(零沒(méi)有倒數(shù)); else resultNum = 1 / resultNum; else if (operator.equals(+) / 加法運(yùn)算 resultNum += getNumberFro

22、mText(); else if (operator.equals(-) / 減法運(yùn)算 resultNum -= getNumberFromText(); else if (operator.equals(*) / 乘法運(yùn)算 resultNum *= getNumberFromText(); else if (operator.equals(sqrt) / 平方根運(yùn)算 resultNum = Math.sqrt(resultNum); else if (operator.equals(%) / 百分號(hào)運(yùn)算,除以100 resultNum = resultNum / 100; else if (

23、operator.equals(+/-) / 正數(shù)負(fù)數(shù)運(yùn)算 resultNum = resultNum * (-1); else if (operator.equals(=) / 賦值運(yùn)算 resultNum = getNumberFromText(); if (operateValidFlag) / 雙精度浮點(diǎn)數(shù)的運(yùn)算 long t1; double t2; t1 = (long) resultNum; t2 = resultNum - t1; if (t2 = 0) resultText.setText(String.valueOf(t1); else resultText.setText

24、(String.valueOf(resultNum); / 運(yùn)算符等于用戶(hù)按的按鈕 operator = key; firstDigit = true; operateValidFlag = true; /* * 從結(jié)果文本框中獲取數(shù)字 * * return */ private double getNumberFromText() double result = 0; try result = Double.valueOf(resultText.getText().doubleValue(); catch (NumberFormatException e) return result; public static void main(String args) Calculator calculator1 = new Calculator(); calculator1.setVisible(true); calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!