ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:147.87KB ,
资源ID:17167078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17167078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java毕业课程设计计算器报告书模版软件工程文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java毕业课程设计计算器报告书模版软件工程文档格式.docx

1、 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算、 设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。用鼠标单击相应的数字键和运算符号键,然后单击=按钮,窗口上方的文本框将会显示计算出来的结果,要将文本编辑框清零,可单击清零按钮。二、需求分析1、 状态定义2、 1,刚启动计算器时的状态:开始计算按键开始键ON3、 2清零:计算刚启动时,或者任何时候键入了清零键,计算器所处的状态。4、 2一个操作数:输入了一个操作数时计算器所处的状态,如键入“2”后的状态,此时操作数为“2”,或者依次键入“3”、“8”后的状态,此时操作数为“38”。5、 3运算结果:键入了“=”键后

2、计算器所处的状态,如依次键入“35=”之后计算器的状态。在此状态如果输入数字,输入的数字将作为第一个操作数,开始一次新的计算。6、 4一个操作数和一个两元符号:输入了一个操作数和加减乘除中的一个键后计算器的状态,如依次输入“2”或“315=”之后计算器的状态。7、 5操作数两元符操作数:输入了一个操作数、一个加减乘除符号和另一个操作数后计算器所处的状态,如依次键入“304”或“35=5”后计算器的状态。8、 6操作数两元符运算结果:输入了一个操作数、一个加减乘除符号和另一个操作数后紧接着键入开方键计算器所处的状态。9、 7错误:执行非法计算后所处的状态,如执行0计算或者对负数的开方计算后的状态

3、。比如60后计算的结果是“0不能做除数”。10、 二、本计算器具有以下功能 :用表说明状态操作计算器响应结果状态清零键入数字键,如1显示键入的数字,操作数=键入的数字一个操作数键入减号键相当于键入了0,但负号不显示,只显示0。键入除减号键和数字键以外的键忽略键入的键,仍保留清零状态键入数字键显示新操作数,新操作数=当前操作数*10+键入的数字键入回退键显示新操作数,新操作数=当前操作数除以10取整清屏键显示0,但操作数不变键入清零(任何状态下,键入清零键都会到清零状态下,以下的状态不再重复)键入加减乘除中任意键仍显示操作数,跳转到状态“一个操作数和一个两元符号”一个操作数和一个两元符号键入开方

4、键对操作数执行开方运算,显示运算结果运算结果键入=键显示操作数,如果操作数为负数,显示负号和操作数,如“32”键入%忽略,不做任何处理键入加减乘除之一用新操作符替换原操作符,如当前是“30”,接着键入“”则变为“30”键入=如果操作符为加法,则加0,显示结果;如果操作符为减法,显示为负数;如果操作符为乘法,显示为第一个操作数相乘,如键入12*=,结果为144;如果键入为除法,结果为1。第一个操作数回退一位,操作符保持不变,如:123+,键入回退键后显示12,操作符仍然为+执行开方操作,操作符保持不变;例如:当前是“9”,键入开方键则显示3。键入数字键、小数点键入的为第二个操作数,例如:当前是“

5、9”,键入8,显示为8操作数2元操作符操作数结果作为一个操作数,例如:当前是“45”,键入*,显示仍然是45,操作符是*,将执行乘法。键入数字和小数点清除结果,键入的数值作为新的操作数;例如当前是“16开方”后的运算结果,显示是“4”;键入56,显示“56”。键入%、=键显示结果。如:当前是“16+开方”后的运算结果,键入=,显示的结果为20。执行16+16开方的运算;当前显示的结果9,或者任意其它值,输入%,运算结果显示“0”。运算结果再执行开方运算结果回退一位,如当前显示“123”,键入回退键,显示“12”。先执行前面的计算,显示结果并记下下一个操作符;起始状态键入的是12*6,然后键入+

6、,则显示72例如输入:12+3%,结果0.36; 12-3%,结果0.36;12*3%,结果0.36;123%,结果0.36;一律按照乘法计算。执行运算,得出结果。例如当前是键入了“1+2”,再键入“=”,显示“3”。键入数字键、回退键、小数点键等待键入第二个操作数完毕开方键第二个操作数开方操作数2元操作符运算结果操作符为除号,第二个操作数为0;负数开方不正确的运算错误键入数字键、小数点键忽略开方步骤,直接进行操作数与键入数字进行操作符的运算。4+9开方32结果为36; 5-9开方65结果为-60。计算结果。12+9开方=,先计算9开方=3,再12+3=15;12*64开方=,结果96。12+

7、9开方,再键入%结果0.36;12-9开方,再键入%结果0.36;12*9开方,再键入%结果0.36;9开方,再键入%结果0.36;得到运算结果,并记忆操作符;例如12+9开方,键入+得到15+。键入开方、回退键运算结果再次执行开方或者回退清零以外的任何键忽略,计算器不做任何响应清零键三、设计思路 本应用程序继承自框架类(Frame),此程序使用Frame布局管理器GridBagLayout,将单行文本框加入到0行0列,包含各种按钮的面板Panel 3 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。Button b1=new Button(

8、);b1.addActionListener(this); b2.addActionListener(this);事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”8”,”9”)、运算符按钮事件(”+”,”“,”*”,”,”%”)、正负号按钮事件(”+-“)、小数点按钮事件(”.”)、等号按钮事件(”)、求倒按钮事件(”1x”)、退格按钮事件(”退格”)、清楚按钮事件(“C”)。在事件处理。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中

9、间触发的按钮事件。四、详细设计一 import语句,使用import语句引入java.awt.,java.awt.event.,javax.swing.,Javax.swing.border包中所有的类。Java.awt.event.*引入系统事件类包。import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;二实现动作事件监听接口public class JiSuanQi extends JFrame implements ActionListener注册事件源的动作监

10、听者 menuitem1.addActionListener(this); menuitem2.addActionListener(this); menuitem3.addActionListener(this);注册事件监听器 b1.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListe

11、ner(this); b9.addActionListener(this); b10.addActionListener(this); b11.addActionListener(this); b12.addActionListener(this); b13.addActionListener(this); b14.addActionListener(this); b15.addActionListener(this); b16.addActionListener(this); b17.addActionListener(this); b18.addActionListener(this);

12、b19.addActionListener(this); b20.addActionListener(this); b01.addActionListener(this); b02.addActionListener(this); b03.addActionListener(this); b04.addActionListener(this); b05.addActionListener(this);三组件的布局管理采用了AWT布局管理器当中最复杂的,同时功能也是最强大的GridBagLayout布局方式.GridBagLayout g=new GridBagLayout(); GridBag

13、Constraints c=new GridBagConstraints();添加了三个面板进行组件布局panel1=new JPanel(); panel2=new JPanel(); panel3=new JPanel();面板penel1中包括显示操作结果的文本区,penel中包括退格按钮Backspace,全部清除按钮CE,本次清除按钮C,开始按钮,关闭按钮OFFPenel3中包括数字按钮0,123456789小数点按钮. ,除号按钮(),求根按钮sqrt,乘号按钮*,求余按钮%,减号按钮-,求倒数按钮1x,正负号按钮+-),加号按钮+,等号按钮=设置Penel1在0行0列即开始的地方

14、 GridBagConstraints c=new GridBagConstraints();c.gridx=0; c.gridy=0设置并添加penel2面板按钮panel1.add(panel2); GridBagLayout i=new GridBagLayout(); GridBagConstraints j=new GridBagConstraints(); panel2.setLayout(i); j.gridx=0; j.gridy=0; j.gridwidth=68; j.gridheight=40; j.fill=GridBagConstraints.BOTH; j.inse

15、ts=new Insets(); j.weightx=3.0; j.weighty=3.0; i.setConstraints(b04,j); panel2.add(b04); j.gridx=70; i.setConstraints(b01,j); panel2.add(b01); j.gridx=140; i.setConstraints(b02,j); panel2.add(b02); j.gridx=210; i.setConstraints(b03,j); panel2.add(b03); j.gridx=280; i.setConstraints(b05,j); panel2.ad

16、d(b05); c.gridy=120; c.gridheight=80; c.weighty=10.0;Penel3面板设置为4行5列共20个网格panel3.setLayout(new GridLayout(4,5);按布置好的方式添加按钮panel3.add(b1); panel3.add(b2); panel3.add(b3); panel3.add(b4); panel3.add(b5); panel3.add(b6); panel3.add(b7); panel3.add(b8); panel3.add(b9); panel3.add(b10); panel3.add(b11);

17、panel3.add(b12); panel3.add(b13); panel3.add(b14); panel3.add(b15); panel3.add(b16); panel3.add(b17); panel3.add(b18); panel3.add(b19); panel3.add(b20);四 在窗口中加入菜单定义一个菜单JMenuBar menubar; 定义菜单组件各个部分的对象JMenu menu1,menu2,menu3; 定义对象下的菜单项JMenuItem menuitem1,menuitem2,menuitem3,menuitem4,menuitem5;以下生成菜单组

18、件对象menubar=new JMenuBar(); menu1=new JMenu(File); menu2=new JMenu(Edit menu3=new JMenu(Help menuitem1=new JMenuItem( menuitem2=new JMenuItem( menuitem3=new JMenuItem(Close menuitem4=new JMenuItem(Copy menuitem5=new JMenuItem(添加菜单条,.菜单File中有菜单项.菜单中菜单项panel1.add(menubar); menubar.add(menu1); menubar.a

19、dd(menu2); menubar.add(menu3); menu1.add(menuitem1); menu1.add(menuitem2); menu1.addSeparator(); menu1.add(menuitem3); menu2.add(menuitem4); menu3.add(menuitem5);五 处理按钮事件if(e.getSource()=menuitem1)label.setText(a); b=true; else if(e.getSource()=menuitem2)label.setText( b=false; else if(e.getSource()

20、=menuitem3)System.exit(0); else if(e.getSource()=b04)label.setText(a); else if(e.getSource()=b05)label.setText( if(b) if(e.getSource()=b1) if(label.getText().equals()label.setText( else if(!c)label.setText(label.getText().concat(); elselabel.setText( c=false; n=0.0; if(e.getSource()=b2) if(e.getSource()=b3) if(e.getSource()=b6) if(e.getSource()=b7) if(e.getSource()=b8) if(e.getSource()=b11) if(e.getSource()=b12) if(e.getSource()=b13) if(e.getSource()=b16)labe

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1