计算器java程序设计报告总体设计,java程序设计实验报告-计算器
《java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告-計(jì)算器》由會(huì)員分享,可在線閱讀,更多相關(guān)《java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告-計(jì)算器(18頁(yè)珍藏版)》請(qǐng)?jiān)诮痄z頭文庫(kù)上搜索。
1、 Java 程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告題 目 計(jì)算器 姓 名 學(xué) 號(hào) 學(xué) 院 軟件學(xué)院 專 業(yè) 軟件工程 年 級(jí) 2009 級(jí) 指導(dǎo)教師 2010 年 4 月 9 日一、實(shí)驗(yàn)?zāi)康囊弧?shí)驗(yàn)?zāi)康?、熟練掌握 java 面向?qū)ο缶幊獭?、選擇合適的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)需求。3、熟練使用各種控制結(jié)構(gòu)。4、掌握 GUI 組件、事件處理技術(shù)。二、實(shí)驗(yàn)任務(wù)二、實(shí)驗(yàn)任務(wù)1、設(shè)計(jì)一個(gè)簡(jiǎn)易的計(jì)算器,可以進(jìn)行四則運(yùn)算:加、減、乘、除等(限于 十進(jìn)制下) 程序要求: (1)應(yīng)具有相應(yīng)的界面,可參考下圖進(jìn)行設(shè)計(jì):圖示 1 圖示 2(2)操作符號(hào)定為:“+” , “-” , “*” , “/” , “(”,“)”等。 (按。
2、國(guó)際慣例 設(shè)計(jì)) (3)用戶通過點(diǎn)擊面板中的各種組件輸入的表達(dá)式,應(yīng)在上方文本框中顯 示。 (4)當(dāng)用戶點(diǎn)擊“=”時(shí),文本框中之前的內(nèi)容應(yīng)清空,直接顯示表達(dá)式 運(yùn)算結(jié)果。例如:輸入表達(dá)式“3+2*(8-5) ”之后按“=” ,顯示結(jié)果“9” 。(5)具有菜單欄,內(nèi)有相應(yīng)的編輯“復(fù)制” 、 “粘貼”等菜單,提供相應(yīng)的 功能。 (6)以上部分為必須完成的內(nèi)容。 2、選作功能,可參考 windows 系統(tǒng)附帶計(jì)算器:(1)具有相應(yīng)的科學(xué)計(jì)算功能。例如“圖示 2”中的各種科學(xué)計(jì)算功能。三、開發(fā)工具與平臺(tái)三、開發(fā)工具與平臺(tái)1.開發(fā)工具開發(fā)工具:Eclipse 默認(rèn)是一個(gè)和 Jbuilder 類似的 Ja。
3、va 開發(fā)工具,但它不僅僅 只 是 Java 開發(fā)工具,只要裝上相應(yīng)的插件,eclipse 也可作為其它語言的開發(fā) 工具。如 C/C+插件(CDT)。 2.開發(fā)平臺(tái):開發(fā)平臺(tái):JDK1.5四、設(shè)計(jì)思路四、設(shè)計(jì)思路1.界面設(shè)計(jì)界面設(shè)計(jì) (1)制作一個(gè)簡(jiǎn)單的面板 JFrame,在其上面添加構(gòu)造界面所需的各種組件 其構(gòu)造方法為:calculate() super(); this.setBounds(10, 10, 300, 250); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this。
4、.setTitle(“計(jì)算器“);init();/創(chuàng)建菜單及各種組件(如按鈕,文本框等)getContentPane().setLayout(new BorderLayout(3,3); getContentPane().add(panelCenter,BorderLayout.CENTER); getContentPane().add(panelNorth,BorderLayout.NORTH);(2)實(shí)現(xiàn)構(gòu)造菜單及文本框等組件的函數(shù) init(),如下實(shí)現(xiàn): Public void Init() /菜單項(xiàng)的構(gòu)造形成;editor.add(copy);editor.addSeparator(。
5、);editor.add(paste);editor.setMnemonic(E);look.setMnemonic(V);help.setMnemonic(H);copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_M ASK);paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_M ASK);help.add(about);bar.add(editor);bar.add(look);bar.add(hel。
6、p);setJMenuBar(bar);/將菜單添加到 JFrame;/* 接下來是文本或結(jié)果顯示區(qū)及 Backspace、功能鍵(CE、C)和的添加, 采用 GridBagLayout 布局方式,將它們放在北部 panelNorth 面板。其次,是數(shù)字鍵及其他功能鍵的的使用,我這里采用的是網(wǎng)格布局, setLayout(new GridLayout(4,6,5,5);將它們放在主面板中心區(qū)域。 這里給出 網(wǎng)格包布布局的兩個(gè)重要方法,由于代碼段較長(zhǎng),故將其他的代碼放在后面附 錄;private void makeShow(GridBagLayout gridBag, GridBagConstr。
7、aints constraints, Component component) gridBag.setConstraints(component, constraints);/ 網(wǎng)格包布布局;panelNorth2.add(component); private void addButton(GridBagLayout gridBag,/網(wǎng)格包布布局重要方法; GridBagConstraints constraints, Component component) gridBag.setConstraints(component, constraints); panelNorth1.add(c。
8、omponent); 總體界面如下:2.邏輯設(shè)計(jì)邏輯設(shè)計(jì)為了能夠得到我們想要的操作,比如讓那些數(shù)字參與運(yùn)算,做什么運(yùn)算等 等,我們就需要為每個(gè)按鈕添加響應(yīng)事件,通過響應(yīng)事件來完成我們預(yù)期的結(jié) 果。以下我們來分析下重要的事件是如何響應(yīng)的:.String str = e.getActionCommand();/ TODO Auto-generated method stub if(str.equals(“Backspace“)/點(diǎn)擊 Backspace handerBackspace(); else if(str.equals(“CE“)/點(diǎn)擊了CE的功能是清除當(dāng)前顯示的數(shù)值 bool = fal。
9、se; show.setText(“0“); else if(str.equals(“C“)/點(diǎn)擊了 C 的功能是清零 copyText=“; Div = 0.0; CalculateResult =“; bool = false; show.setText(“0“); else if(str.equals(“MC“)/MC 清楚存儲(chǔ)器內(nèi)容 handerMC(); else if(str.equals(“MR“)/MR 將存于存儲(chǔ)器的值顯示在文本框中 handerMR(); else if(str.equals(“MS“)/MS 將顯示框得文字存于存儲(chǔ)器 handerMS(); else if。
10、(str.equals(“M+“)/M+將顯示框的數(shù)與存儲(chǔ)器中的數(shù)相加并進(jìn)行 存儲(chǔ)handerM(); else if(“.“.indexOf(str)=0)/按下的是數(shù)字鍵或者小數(shù)點(diǎn)正負(fù)號(hào) handerCenter(str); else if(str.equals(“%“)/將當(dāng)前顯示框里的數(shù)字用百分比表示( x/100) String current = show.getText(); double a = 0; if(!current.isEmpty()a = Double.parseDouble(current);Double result =(Double) a/100;String。
11、 s4 = result.toString();if(!isInt(s4)show.setText(s4); else show.setText(s4.substring(0,s4.indexOf(“.“);bool = true; else handerOperation(str);/響應(yīng)的是運(yùn)算符;處理運(yùn)算符操作 3.程序測(cè)試程序測(cè)試程序測(cè)試過程中無較大 BUG,基本上輕松搞定。五、實(shí)驗(yàn)總結(jié)五、實(shí)驗(yàn)總結(jié)這是我第一次正式的 java 程序設(shè)計(jì)實(shí)驗(yàn),感覺能夠把學(xué)到的東西用到實(shí)際 中是件非常有趣的事,更重要的是讓我們真正明白了學(xué)貴致用的道理。由于時(shí)間有限,本程序未能做到科學(xué)計(jì)算器,同時(shí)在這里也感。
12、謝老師的指導(dǎo) 和同學(xué)的幫助。6 6、附錄附錄public class calculate extends JFrame implements ActionListener /* param args*/ private JMenuBar bar = new JMenuBar(); private JMenu editor =new JMenu(“編輯(E)“); private JMenuItem copy =new JMenuItem(“復(fù)制“); private JMenuItem paste =new JMenuItem(“粘貼“); private JMenu look = new J。
13、Menu(“查看(V)“); private JMenu help = new JMenu(“幫助(H)“); private JMenuItem about = new JMenuItem(“關(guān)于“); private String copyText ; private JPanel panelWest= new JPanel(); private JPanel panelCenter = new JPanel();/放 Number 鍵 private JPanel panelNorth = new JPanel();/放功能鍵 1 與文本框 private JPanel panelNor。
14、th1 = new JPanel(); private JPanel panelNorth2 = new JPanel();/放顯示框private JPanel panelEast = new JPanel();/放運(yùn)算鍵;private String strNorth = new String“Backspace“,“CE“,“C“;/ 功能鍵 1 private String strCenter = new String“7“,“8“,“9“,“4“,“5“,“6“,“1“,“2“,“3“,“0“,“+/-“,“.“; private String strEast = new Strin。
15、g“/“,“sqrt“,“*“,“%“,“- “,“1/x“,“+“,“=“; private StringstrWest = new String“MC“,“MR“,“MS“,“M+“;private JButton buttonCenter = new JButtonstrCenter.length; private JButton buttonEast= new JButtonstrEast.length; private JButton buttonNorth = new JButtonstrNorth.length; private JButton buttonWest = new JButtonstrWest.length;private String ch=new String();/保存當(dāng)前運(yùn)算符 private Double Div;/保存中間運(yùn)算數(shù) priva。
總結(jié)
以上是生活随笔為你收集整理的计算器java程序设计报告总体设计,java程序设计实验报告-计算器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java for foreach 效率_
- 下一篇: android中activity布局,A