JAVA实训报告计算器_第1页
JAVA实训报告计算器_第2页
JAVA实训报告计算器_第3页
JAVA实训报告计算器_第4页
JAVA实训报告计算器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、java实训设计报告计算器专业:软件技术班级:09-23 学号:090123037姓名:范付明石家庄科技信息职业学院信息工程系2011年10月15日项目简介项目名称计算器开发人员范付明项目简介本程序名称为计算器,主要功能是实现简单的数字,运算符号,计算,删除,复位等功能。项目目的掌握计算器的各项基本功能掌握编写计算器程序的所用方法掌握swing组件的应用掌握事件的应用主要技术java编程语言、javaswing技术开发环境 jdk1.6.0_24项目特点使用组件构建的c/s应用程序各项功能的组织合理搭配应用图标控制功能实现技术重点构建基于c/s架构的应用程序swing组件应用事件监听的应用方法

2、的编写技术难点swing组件的应用事件监听器的使用异常处理方法简便的选择项目名称一、项目需求 本程序的主要功能:(1)单击“计算器”上的数字按钮(09)可以设置参与计算的运算数。(2)单击“计算器”上的运算符按钮(+、-、*、/、1/x、sqrt、%)可以选择运算符号。(3)单击“计算器”上的“=”按钮显示计算结果。(4)单击“计算器”上的“复位”按钮清空计算结果。(5)单击“计算器”上的“删除”按钮删除输入的最后一个数字。二、项目设计在设计计算器时,编写2个java源文件:calculatorwindow.java、numberbutton.java计算器除了上述java源文件所给出的类外,

3、还需要java系统提供的一些重要类,如jbutton,jtextfield等。下面是2个java源文件的总体设计。(1)calculatorwindow.java(主类)calculatorwindow类负责创建计算器的主窗口,该类含有main方法,计算器从该类开始执行。calculatorwindow类有4种类型的对象,分别是:linkedlist、numberbutton、jbutton、jtextfield。(2)numberbutton.javanumberbutton类创建的对象是主类calculatorwindow窗口的一个“数字”按钮。numberbutton有一个int类型的成

4、员temp,用于标明所创建的按钮所含有的运算符号。numberbutton所创建的22个按钮被添加到calculatorwindow窗口中。 1、calculatorwindow类(主类)(1)数据和方法calculatorwindow类是javax.swing包中jframe的一个字类,并实现了actionlistener接口。类中有关数据和方法的详细说明。1)成员变量jbarray是numberbutton型数组,每个单元是一个numberbutton类创建的“数字按钮”对象,该数组长度为10。numberbutton数组中的“数字按钮”含有的数字依次为09。每个“数字按钮”都注册有act

5、ionevent事件监听器。2)方法main(string args)方法是计算器程序运行的入口方法。calculatorwindow()是构造方法,负责完成窗口的初始化。(2)代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jisuanqi extends jframe implements actionlistenerprivate jtextfield jtresult=new jtextfield();private jbutton jb_clear=new jbutton(复

6、位);private jbutton jb_delete=new jbutton(删除);private static jbutton jbarray=new jbutton(7),new jbutton(4),new jbutton(1),new jbutton(0), new jbutton(8),new jbutton(5),new jbutton(2),new jbutton(+/-), new jbutton(9),new jbutton(6),new jbutton(3),new jbutton(.), new jbutton(/),new jbutton(*),new jbutt

7、on(-),new jbutton(+), new jbutton(sqrt),new jbutton(%),new jbutton(1/x),new jbutton(=) ;int first=0;double qian; string fuhao; boolean clear=true,clickable=true; public jisuanqi()setframe();addlistener();public void setframe()this.setlayout(null);this.settitle(计算器);jtresult.setbounds(120,100,310,30)

8、;jtresult.seteditable(false);jtresult.sethorizontalalignment(jtextfield.right);this.add(jtresult);jb_clear.setbounds(290,150,60,30);this.add(jb_clear);for(int i=0;ijbarray.length;i+)for(int j=0;jjbarray0.length;j+)jbarrayij.setbounds(50+80*i,200+60*j,60,30);this.add(jbarrayij);jb_delete.setbounds(37

9、0,150,60,30);this.add(jb_delete);this.setbounds(430,130,500,500);this.setvisible(true);public void addlistener()jtresult.addactionlistener(this);jb_clear.addactionlistener(this);jb_delete.addactionlistener(this);for(int i=0;ijbarray.length;i+)for(int j=0;jjbarray0.length;j+)jbarrayij.addactionlisten

10、er(this);public void actionperformed(actionevent e)object temp=e.getsource();if(temp=jb_clear)jtresult.settext();if(temp=jb_delete)string s = jtresult.gettext();jtresult.settext();for (int i = 0; i s.length() - 1; i+) char a = s.charat(i);jtresult.settext(jtresult.gettext() + a);if(temp=jbarray03)/点

11、击0按钮if(clear=false)/判断是否点击了符号位jtresult.settext();jtresult.settext(jtresult.gettext()+0);if(temp=jbarray02)/点击1按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+1);clear=true;/第二次不在清空if(temp=jbarray12)/点击2按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+2)

12、;clear=true;if(temp=jbarray22)/点击3按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+3);clear=true;if(temp=jbarray01)/点击4按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+4);clear=true;if(temp=jbarray11)/点击5按钮if(clear=false)jtresult.settext();jtresult.sette

13、xt(jtresult.gettext()+5);clear=true;if(temp=jbarray21)/点击6按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+6);clear=true;if(temp=jbarray00)/点击7按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+7);clear=true;if(temp=jbarray10)/点击8按钮if(clear=false)jtresult.

14、settext();jtresult.settext(jtresult.gettext()+8);clear=true;if(temp=jbarray20)/点击9按钮if(clear=false)jtresult.settext();jtresult.settext(jtresult.gettext()+9);clear=true;if(temp=jbarray23)/点击.按钮clickable=true;for (int i = 0; i jtresult.gettext().length(); i+) if (. = jtresult.gettext().charat(i) click

15、able=false;break; /第一层判断是否里面含有小数点;if(clickable=true)/第二坛判断jtresult.settext(jtresult.gettext()+.);tryif(temp=jbarray33)/点击+按钮qian=double.parsedouble(jtresult.gettext();fuhao=+;clear=false;if(temp=jbarray32)/点击-按钮qian=double.parsedouble(jtresult.gettext();fuhao=-;clear=false;if(temp=jbarray31)/点击*按钮qi

16、an=double.parsedouble(jtresult.gettext();fuhao=*;clear=false;if(temp=jbarray30)/点击/按钮qian=double.parsedouble(jtresult.gettext();fuhao=/;clear=false;if(temp=jbarray43)/点击=按钮double ss=double.parsedouble(jtresult.gettext();jtresult.settext();if(fuhao=+)jtresult.settext(qian+ss+);if(fuhao=-)jtresult.set

17、text(qian-ss+);if(fuhao=*)jtresult.settext(qian*ss+);if(fuhao=/)jtresult.settext(qian/ss+);clear=false;/要清空前一次的数据if(temp=jbarray40)/点击sqrt按钮string s = jtresult.gettext();if(s.charat(0) = -)jtresult.settext(负数不能开根号); elsejtresult.settext(double.tostring(java.lang.math.sqrt(double.parsedouble(jtresult

18、.gettext();clear=false;if(temp=jbarray42)/点击1/x按钮if (jtresult.gettext().charat(0) = 0&jtresult.gettext().length() = 1)jtresult.settext(除数不能为零); elseboolean isdec = true;int i, j, k;string s = double.tostring(1 / double.parsedouble(jtresult.gettext();for (i = 0; i s.length(); i+)if (s.charat(i) = .)b

19、reak;for (j = i + 1; j s.length(); j+)if (s.charat(j) != 0)isdec = false;break;if (isdec = true)string stemp = ;for (k = 0; k i; k+) stemp += s.charat(k); jtresult.settext(stemp); else jtresult.settext(s);clear=false;if(temp=jbarray41)/点击%按钮jtresult.settext(0);clear=false;if (temp = jbarray13) /点击+/-按钮boolean isnumber = true; string s = jtresult.gettext(); for (int i = 0; i = 0&s.charat(i) = 9|s.charat(i) = .|s.charat(i) = -)isnumber = false;break;if (isnumber = true)/如果当前字符串首字母

温馨提示

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

评论

0/150

提交评论