1、word 完美格式精心整理 学习帮手目 录目 录 I1 需求分析 11.1 计算器的基本功能: 11.1.1 加法运算:用数字按钮和“+”按钮进行运算; .11.1.2 减法运算:用数字按钮和“-”按钮进行运算; .11.1.3 乘法运算:用数字按钮和“*”按钮进行运算; .11.1.4 除法运算:用数字按钮和“/”按钮进行运算; .11.2 退格键和清零键: 用”Backspace”和”C”按钮实现; 11.3 计算器的科学计算方法: 11.3.1 开方:用数字按钮和“Sqrt”按钮进行运算; 11.3.2 百分比:用数字按钮和“%”按钮进行运算; .11.3.3 求倒数:用数字按钮和“1/
2、x”按钮进行运算; .12 设计 22.1 用户界面设计 22.1.1 该计算器程序的设计:用户界面包括 Swing 组件,不过程序中大都使用的是 AWT 组件. import java.awt.*; 22.1.2 在 AWT 组件, .22.1.3 这个界面设计中包含了两个接口,单击事件监听器接 ActionListener 口和键盘事件监听器接口(KeyListener). 32.1.4 程序设计中,使用了布局管理: 42.2 概要设计 42.2.1 Calculator 类中的类名是 Calculator.它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法. .4
3、2.2.2 main 主类.中调用了 cal.display 来实现计算器的功能 . 43 实现 44 测试 .164.1 实现加法运算:4+12=16 164.2 实现减法运算:22-11=11 .174.3 实现乘法运算:3*9=27 .174.4 实现除法运算:64/32=2 184.5 用”C实现清零功能: .184.6 用”Backspace”实现退格功能: .194.7 求倒数:1/4=0.25 195 总结和体会 .20word 完美格式精心整理 学习帮手1 需求分析 (该部分主要阐述所要实现的程序具体具有什么样的功能,要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减
4、乘除基本功能外,还有清零键 C 和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程序里面也写了键盘事件监听器接口,不过由于时间仓促,还没能设计出来,所以该计算器不能实现此功能。Backspace CE CMC 7 8 9 / SqrtMR 4 5 6 * %MS 1 2 3 - 1/xM+ 0 +/- . + =1.1 计算器的基本功能:1.1.1 加法运算:用数字按钮和“+”按钮进行运算;1.1.2 减法运算:用数字按钮和“-”按钮进行运算;1.1.3 乘法运算:用数字按钮和“*”按钮进行运算;1.1.4 除法运算:用数字按钮和“/”按钮进行运算;1.2 退格键
5、和清零键: 用”Backspace”和”C”按钮实现;1.3 计算器的科学计算方法:1.3.1 开方:用数字按钮和“Sqrt”按钮进行运算;1.3.2 百分比:用数字按钮和“%”按钮进行运算;1.3.3 求倒数:用数字按钮和“1/x”按钮进行运算; word 完美格式精心整理 学习帮手2 设计(该部分主要要说明,在使用 Java 实现该程序前考虑的内容,主要包括下面两部分:用户界面设计和概要设计(这部分可简单看作是类设计) ) 。2.1 用户界面设计(用图或文字阐述你的界面如何设计,如:包括哪些部分,使用什么样的布局管理器等)2.1.1 该计算器程序的设计:用户界面包括 Swing 组件,不过
6、程序中大都使用的是 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,bMS,bMC,bM;(2) 界面设计也
7、包括了 AWT 的委托事件模型,该程序设计在 java.awt.event 包中定义了窗口事件类public void windowClosing(WindowEvent e) System.exit(0);单击事件类.public void actionPerformed(ActionEvent e)/key 0 to 9if(this.keyAvailable tf1.setText(Double.toString(this.dResult); else tf1.setText(“函数输入无效“);this.keyAvailable=false; else if(this.dNowInpu
8、t=0) this.dNowInput=Math.sqrt(this.dNowInput);tf1.setText(Double.toString(this.dNowInput); else tf1.setText(“函数输入无效“);this.keyAvailable=false;/ key “1/x“if(this.keyAvailable word 完美格式精心整理 学习帮手this.keyAvailable=false; else this.dNowInput=1/this.dNowInput;tf1.setText(Double.toString(this.dNowInput);/
9、key “=“if(this.keyAvailable switch(this.nOperation) case 1: this.dResult+=this.dNowInput; break;case 2: this.dResult-=this.dNowInput; break;case 3: this.dResult*=this.dNowInput; break;case 4:if(this.dNowInput=0) tf1.setText(“除数不能为零“);this.keyAvailable=false; else this.dResult=this.dResult/this.dNowI
10、nput;if(this.keyAvailable)tf1.setText(Double.toString(this.dResult);/ key “MS“if(this.keyAvailable if(this.dMemory!=0)tf2.setText(“M“);/ key “MC“if(this.keyAvailable tf2.setText(“);/ key “MR“if(this.keyAvailable tf1.setText(Double.toString(this.dNowInput);/ key “M+“if(this.keyAvailable if(this.dMemo
11、ry!=0)tf2.setText(“M“);else tf2.setText(“);/ key “%“if(this.keyAvailable tf1.setText(Double.toString(this.dNowInput);/ key “Backspace“if(this.keyAvailable this.n=0;else String str,str1;str=tf1.getText();str1=str.substring(0,this.nBitsNum-1);this.nBitsNum-;this.n+;this.dNowInput=Double.parseDouble(st
12、r1);tf1.setText(Double.toString(this.dNowInput); else word 完美格式精心整理 学习帮手int temp;temp=(int)(this.dNowInput/10);this.dNowInput=(double)temp;tf1.setText(Double.toString(this.dNowInput);public void keyPressed(KeyEvent e)public void keyReleased(KeyEvent e)public void keyTyped(KeyEvent e)char ch=e.getKey
13、Char();System.out.println(ch+“ “);public void processEvent(char ch)public static void main(String args) Calculator cal=new Calculator();cal.display();public void windowClosing(WindowEvent e) System.exit(0);4 测试 (针对需求分析部分提出的功能和要求进行对应的一项项的测试,并给出测试内容和测试结果)word 完美格式精心整理 学习帮手4.1 实现加法运算:4+12=164.2 实现减法运算:22-11=11word 完美格式精心整理 学习帮手4.3 实现乘法运算:3*9=24.4 实现除法运算:64/32=2word 完美格式精心整理 学习帮手4.5 用”C实现清零功能:word 完美格式精心整理 学习帮手4.6 用”Backspace”实现退格功能:4.7 求倒数:1/4=0.25