《java课程设计报告范例计算器.doc》由会员分享,可在线阅读,更多相关《java课程设计报告范例计算器.doc(22页珍藏版)》请在三一办公上搜索。
1、2011-2012学年第二学期Java程序设计课程设计报告选题: 计算器 学号: 姓名: 班级: 指导教师: 年 月 日目 录目 录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
2、.3求倒数:用数字按钮和“1/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.1Calculator类中的类名是Calculator.它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法.42.2.2main主类.中调用
3、了cal.display来实现计算器的功能 .43实现44测试164.1实现加法运算:4+12=16164.2实现减法运算:22-11=11174.3实现乘法运算:3*9=27174.4实现除法运算:64/32=2184.5用”C实现清零功能:184.6用”Backspace”实现退格功能:194.7求倒数:1/4=0.25195总结和体会201 需求分析 (该部分主要阐述所要实现的程序具体具有什么样的功能,要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减乘除基本功能外,还有清零键C和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程序里面也写了键盘事件
4、监听器接口,不过由于时间仓促,还没能设计出来,所以该计算器不能实现此功能。 BackspaceCECMC789 /SqrtMR 45 6*%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组件,不过程序中大都使用的是AWT组件. import java.awt.*;import java.awt.event.*;import javax.swing.*;2.1.2 在AWT组件,(1) 使用了面板和按钮: P
6、anel 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(0); 单击事件类.p
7、ublic void actionPerformed(ActionEvent e) /key 0 to 9 if(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(); else double temp=Double.parseDouble(e.getActionCommand(); for(int i=this.n;i=0 & e.getActionCommand().compareTo(9)=0) if(this.isTempNowInput) this.dNowInput=0; this.isTempNowInput=false; this.nBitsNum+; if(this.alreadyHaveDot
9、=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; this.dNowInput+=temp; this.n-; this.tf1.setText(Double.toString(this.dNowInput); / key dot if(this.keyAvailable & e.getAction
10、Command()=.) 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.isTem
11、pNowInput=true; else 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.dNowInput
12、; if(this.keyAvailable)tf1.setText(Double.toString(this.dResult); this.dNowInput=0; if(e.getActionCommand()=+) this.nOperation=1; if(e.getActionCommand()=-) this.nOperation=2; if(e.getActionCommand()=*) this.nOperation=3; if(e.getActionCommand()=/) this.nOperation=4; this.nBitsNum=0; this.alreadyClickedEqueal=false; / key +/-