1、用JAVA编写的计算器程序设计报告1需求分析 (该部分主要阐述所要实现的程序具体具有什么样的功能,要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减乘除基本功能外,还有清零键C和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程序里面也写了键盘事件监听器接口,不过由于时间仓促,还没能设计出来,所以该计算器不能实现此功能。 BackspaceCECMC789 /SqrtMR 45 6*%MS123-1/xM+0+/-.+ = 1.1计算器的基本功能:1.1.1加法运算:用数字按钮和“+”按钮进行运算;1.1.2减法运算:用数字按钮和“-”按钮进行运算;1.1
2、.3乘法运算:用数字按钮和“*”按钮进行运算;1.1.4除法运算:用数字按钮和“/”按钮进行运算;1.2退格键和清零键: 用”Backspace”和”C”按钮实现;1.3计算器的科学计算方法:1.3.1开方:用数字按钮和“Sqrt”按钮进行运算;1.3.2百分比:用数字按钮和“%”按钮进行运算;1.3.3求倒数:用数字按钮和“1/x”按钮进行运算; 2设计(该部分主要要说明,在使用Java实现该程序前考虑的内容,主要包括下面两部分:用户界面设计和概要设计(这部分可简单看作是类设计)。2.1用户界面设计(用图或文字阐述你的界面如何设计,如:包括哪些部分,使用什么样的布局管理器等)2.1.1该计算
3、器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT组件. import java.awt.*;import java.awt.event.*;import javax.swing.*;2.1.2在AWT组件,(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,
4、bMS,bMC,bM;(2)界面设计也包括了AWT的委托事件模型,该程序设计在java.awt.event包中定义了窗口事件类public void windowClosing(WindowEvent e) System.exit(0); 单击事件类.public void actionPerformed(ActionEvent e) /key 0 to 9 if(this.keyAvailable & e.getActionCommand().length()=1 & e.getActionCommand().compareTo(0)=0 & e.getActionCommand().com
5、pareTo(9)=0) if(this.isTempNowInput) this.dNowInput=0; this.isTempNowInput=false; this.nBitsNum+; if(this.alreadyHaveDot=false) this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand(); else double temp=Double.parseDouble(e.getActionCommand(); for(int i=this.n;i=0 & e.getActionComman
6、d().compareTo(9)=0) if(this.isTempNowInput) this.dNowInput=0; this.isTempNowInput=false; this.nBitsNum+; if(this.alreadyHaveDot=false) this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand(); else double temp=Double.parseDouble(e.getActionCommand(); for(int i=this.n;i0;i+) temp*=0.1
7、; this.dNowInput+=temp; this.n-; this.tf1.setText(Double.toString(this.dNowInput); / key dot if(this.keyAvailable & e.getActionCommand()=.) if(this.alreadyHaveDot=false) this.nBitsNum+; this.alreadyHaveDot=true; this.n=-1; /key +,-,*,/ if(this.keyAvailable & e.getActionCommand()=+ | e.getActionCommand()=- | e.getActionCommand()=* | e.getActionCommand()=/) if(this.alreadyClickedEqueal) this.dNowInput=this.dResult; this.isTe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1