java课程设计报告范例计算器.doc_第1页
java课程设计报告范例计算器.doc_第2页
java课程设计报告范例计算器.doc_第3页
java课程设计报告范例计算器.doc_第4页
java课程设计报告范例计算器.doc_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java课程设计报告 2011-2012学年第二学期java程序设计课程设计报告选题: 计算器 学号: 姓名: 班级: 指导教师: 年 月 日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.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主类.中调用了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总结和体会20i1 需求分析 (该部分主要阐述所要实现的程序具体具有什么样的功能,要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减乘除基本功能外,还有清零键c和退格键backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程序里面也写了键盘事件监听器接口,不过由于时间仓促,还没能设计出来,所以该计算器不能实现此功能。 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 百分比:用数字按钮和“%”按钮进行运算;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) 使用了面板和按钮: 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(0); 单击事件类.public 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) 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=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 if(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.dnowinput=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.dnowinput; 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!=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.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.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论