版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录目 录 11 需求分析 . 15 总结和体会 错误 ! 未定义书签。1.1 计算器的基本功能:1.1.1加法运算:用数字按钮和“ +”1.1.2减法运算:用数字按钮和“ - ”1.1.3乘法运算:用数字按钮和“ *”1.1.4除法运算:用数字按钮和“ / ”按钮进行运算; 1按钮进行运算; 1按钮进行运算; 1按钮进行运算; 11.2退格键和清零键:用” Backspace”和” C按钮实现;1.3 计算器的科学计算方法:1.3.1 开方:用数字按钮和“ Sqrt ”按钮进行运算; 11.3.2 百分比:用数字按钮和“ %”按钮进行运算; 11.3.3 求倒数:用数字按钮和“ 1/x ”按
2、钮进行运算; 12 设计 2.1 用户界面设计 2.1.1 该计算器程序的设计:用户界面包括 Swing 组件,不过程序中大都使用的是 AWT组件.import java.awt.*; 22.1.2 在 AWT组件, 22.1.3 这个界面设计中包含了两个接口, 单击事件监听器接 ActionListener口和键盘事件监听器接口 (KeyListener). 42.1.4 程序设计中 , 使用了布局管理 : 42.2 概要设计 42.2.1 Calculator 类中的类名是 Calculator. 它的功能是使用图形用户来实现 计算器的界面设计和运算功能以及一些科学运算方法2.2.2 ma
3、in主类.中调用了 cal.display来实现计算器的功能4163 实现4 测试4.1实现加法运算:4+12=16 4.2实现减法运算:22-11=11 .4.3实现乘法运算:3*9=27 4.4实现除法运算17171864/32=2 184.5 用” C实现清零功能:194.6 用” Backspace”实现退格功能: 204.7 求倒数 :1/4=0.25 201需求分析(该部分主要阐述所要实现的程序具体具有什么样的功能,要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减乘除基本功能外,还有清零键C和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程
4、序里面 也写了键盘事件监听器接口,不过由于时间仓促,还没能设计出来,所以该计 算器不能实现此功能。BackspaceCECMC789/SqrtMR456*%MS123-1/xM+0+/-.+=1.1计算器的基本功能:1.1.1加法运算:用数字按钮和“ +”按钮进行运算;1.1.2减法运算:用数字按钮和“-”按钮进行运算;1.1.3乘法运算:用数字按钮和“ *”按钮进行运算;1.1.4除法运算:用数字按钮和“ /”按钮进行运算;1.2 退格键和清零键:用” Backspace”和” C”按钮实现;1.3计算器的科学计算方法:1.3.1开方:用数字按钮和“ Sqrt ”按钮进行运算;1.3.2百分
5、比:用数字按钮和“ %按钮进行运算;1.3.3求倒数:用数字按钮和“ 1/x ”按钮进行运算;2 设计(该部分主要要说明,在使用 Java 实现该程序前考虑的容,主要包括下面两部分:用 户界面设计和概要设计(这部分可简单看作是类设计) )。2.1 用户界面设计(用图或文字阐述你的界面如何设计, 如:包括哪些部分, 使用什么样的布局管理器等)2.1.1 该计算器程序的设计:用户界面包括 Swing 组件 , 不过程序中大都使用的是 AW1组件.import java.awt.*;import java.awt.event.*;import javax.swing.*;2.1.2 在 AWffi件
6、,(1) 使用了面板和按钮 :Panel p1,p2,p3,p4,p5,p6;Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;Button bBackspace,bCE,bC,bMR,bMS,bMC,bM;(2)界面设计也包括了AWT的委托事件模型,该程序设计在java.awt.event包中定义了窗口事件类public void windowClosing(WindowEvent e)System.exit
7、(0);单击事件类 .public void actionPerformed(ActionEvent e)/key 0 to 9if(this.keyAvailable& e.getActionCommand().length()=1&e.getActionCommand().compareTo(0)=0&e.getActionCommand().compareTo(9)=0)if(this.isTempNowInput)this.dNowInput=0;this.isTempNowInput=false;this.nBitsNum+;if(this.alreadyHaveDot=false)
8、this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand(); elsedouble temp=Double.parseDouble(e.getActionCommand();for(int i=this.n;i=0&e.getActi on Comma nd().compareTo(9)=0)if(this.isTempNowl nput)this.dNowI nput=O;this.isTempNowI nput=false;this. nBitsNum+;if(this.alreadyHaveDot=fa
9、lse)this.dNow In put=this.dNow In put*10+Double.parseDouble(e.getActi on Comma nd();elsedouble temp=Double.parseDouble(e.getActi on Comma nd();for(int i=this.n;i=0)this.dResult=Math.sqrt(this.dResult);tf1.setText(Double.toStri ng(this.dResult);elsetf1.setText(函数输入无效”);this.keyAvailable=false;elseif(
10、this.dNowI nput=0)this.dNowI nput=Math.sqrt(this.dNowI nput); tf1.setText(Double.toStri ng(this.dNow In put);elsetf1.setText(函数输入无效”);this.keyAvailable=false;/ key 1/xif(this.keyAvailable & e.getActio nComma nd()=1/x)if(this.dNowI nput=0)tf1.setText(除数不能为零”);this.keyAvailable=false;elsethis.dNowI np
11、ut=1/this.dNowl nput; tf1.setText(Double.toStri ng(this.dNow In put);/ key =if(this.keyAvailable & e.getActio nComma nd()=) this.alreadyClickedEqueal=true;switch(this .n Operati on)case 1: this.dResult+=this.dNow In put; break;case 2: this.dResult-=this.dNow In put; break;case 3: this.dResult*=this.
12、dNow In put; break;case 4:if(this.dNowI nput=0)tf1.setText(除数不能为零);this.keyAvailable=false; else this.dResult=this.dResult/this.dNowI nput;if(this.keyAvailable)tf1.setText(Double.toStri ng(this.dResult);/ key MS if(this.keyAvailable & e.getActio nComma nd()=MS) this.dMemory=this.dNow In put;if(this.
13、dMemory!=0) tf2.setText(M);/ key MCif(this.keyAvailable & e.getActio nComma nd()=MC)this.dMemory=0; tf2.setText();/ key MRif(this.keyAvailable & e.getActio nComma nd()=MR) this.dNowl nput=this.dMemory;tf1.setText(Double.toStri ng(this.dNow In put);/ key M+if(this.keyAvailable & e.getActionCommand()=
14、M+)this.dMemory+=this.dNowI nput;if(this.dMemory!=0)tf2.setText(M);else tf2.setText();/ key %if(this.keyAvailable & e.getActio nComma nd()=%)this.dNowI nput=(this.dResult*this.dNowl nput)/1OO;tf1.setText(Double.toStri ng(this.dNow In put);/ key Backspaceif(this.keyAvailable & e.getAct ion Comma nd()
15、=Backspace) if(!this.alreadyClickedEqueal)if(this.dNowI nput!=0)if(this.alreadyHaveDot)if(this. n=-1)this.alreadyHaveDot=false;this .n=0;elseStri ng str,str1;str=tf1.getText();str仁str.substri ng(0,this. nBitsNum-1);this. nBitsNum-;this .n+;this.dNow In put=Double.parseDouble(str1); tf1.setText(Doubl
16、e.toStri ng(this.dNow In put);elseint temp;temp=(i nt)(this.dNow In put/10); this.dNow In put=(double)temp;tf1.setText(Double.toStri ng(this.dNow In put); public void keyPressed(KeyEve nt e)public void keyReleased(KeyEve nt e)public void keyTyped(KeyEve nt e)char ch=e.getKeyChar();System.out.pri ntln(ch+);public void processEve nt(char ch)public static void mai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年零售行业ESG趋势与评级体系解析试题集(含标准答案+详细解析)
- 沧源佤族自治县2025-2026学年三年级数学第二学期期末学业质量监测模拟试题含解析
- 沙坡头区2025年三年级数学第二学期期末复习检测模拟试题含答案解析
- 沈阳市新城子区2025-2026学年数学三下期末试题含答案
- 2026年卫生院急救应急预案
- 2026年团圆活动方案设计小班
- 汾西县2025届数学四年级上学期阶段学业水平测试模拟试题含答案解析
- 2026年纪念烈士活动方案策划
- 2026年教务处安全自查报告
- 2026年大学晚会活动策划方案
- 《动作经济原则与改善》
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- QCSG1204009-2015电力监控系统安全防护技术规范
- 港口危险货物企业安全检查表
- 乳牙根管治疗术护理
- 腹痛穴位贴敷治疗
- 印尼出版行业现状分析
- 深圳建筑工务署品牌库
- 测量不确定度评定课件
- 首都医科大学附属北京世纪坛医院
- 英文故事-狼来了
评论
0/150
提交评论