




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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;i=0) this.dResult=Math.sqrt(this.dResult); tf1.setText(Double.toString(this.dResult); else tf1.setText(函数输入无效); this.keyAvailable=false; else i
10、f(this.dNowInput=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 & e.getActionCommand()=1/x) if(this.dNowInput=0) tf1.setText(除数不能为零); this.keyAvailable=false; else this.dNowIn
11、put=1/this.dNowInput; tf1.setText(Double.toString(this.dNowInput); / key = if(this.keyAvailable & e.getActionCommand()=) this.alreadyClickedEqueal=true; switch(this.nOperation) case 1: this.dResult+=this.dNowInput; break; case 2: this.dResult-=this.dNowInput; break; case 3: this.dResult*=this.dNowIn
12、put; break; case 4: if(this.dNowInput=0) tf1.setText(除数不能为零); this.keyAvailable=false; else this.dResult=this.dResult/this.dNowInput; if(this.keyAvailable)tf1.setText(Double.toString(this.dResult); / key MS if(this.keyAvailable & e.getActionCommand()=MS) this.dMemory=this.dNowInput; if(this.dMemory!
13、=0) tf2.setText(M); / key MC if(this.keyAvailable & e.getActionCommand()=MC) this.dMemory=0; tf2.setText(); / key MR if(this.keyAvailable & e.getActionCommand()=MR) this.dNowInput=this.dMemory; tf1.setText(Double.toString(this.dNowInput); / key M+ if(this.keyAvailable & e.getActionCommand()=M+) this
14、.dMemory+=this.dNowInput; if(this.dMemory!=0) tf2.setText(M); else tf2.setText(); / key % if(this.keyAvailable & e.getActionCommand()=%) this.dNowInput=(this.dResult*this.dNowInput)/100; tf1.setText(Double.toString(this.dNowInput); / key Backspace if(this.keyAvailable & e.getActionCommand()=Backspace) if(!this.alreadyClickedEqueal) if(this.dNowInput!=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《点亮小灯泡》教学设计-2023-2024学年教科版科学四年级下册
- 采购计划立项报告范文
- 2025年稻谷产业链上下游合作框架合同
- 2025年度出租数据中心并协助注册数据中心运营公司合同范本
- 中国国学教育培训行业市场发展现状及前景趋势与投资分析研究报告(2024-2030版)
- 2025年中国豪华住户配电箱体行业市场发展前景及发展趋势与投资战略研究报告
- 2020-2025年中国商业健身行业市场调查研究及投资前景预测报告
- 2025年不锈钢、镍纤维及纤维毡项目合作计划书
- 亿以内数的认识(教学设计)2024-2025学年四年级上册数学人教版
- 二手房买卖合同二零二五年度版本修订版
- 沪科版八年级物理知识点总结
- 2024员工质量意识培训
- 孙权劝学(原卷版)-2024年中考语文之文言文对比阅读
- 失业保险待遇申领表
- 期末测试卷(一)(试题)2023-2024学年二年级上册数学苏教版
- 携程在线能力测评真题
- 人教版(2024)六年级全一册 第17课 设计我的种植园
- 四川省公务员考试行测真题
- 2024年广东省初中学业水平考试中考英语试卷(真题+答案解析)
- DL-T-255-2012燃煤电厂能耗状况评价技术规范
- 家庭教育家长会教案及反思(3篇模板)
评论
0/150
提交评论