java编写的计算器设计报告.docx

上传人:b****5 文档编号:6142618 上传时间:2023-01-04 格式:DOCX 页数:13 大小:20.34KB
下载 相关 举报
java编写的计算器设计报告.docx_第1页
第1页 / 共13页
java编写的计算器设计报告.docx_第2页
第2页 / 共13页
java编写的计算器设计报告.docx_第3页
第3页 / 共13页
java编写的计算器设计报告.docx_第4页
第4页 / 共13页
java编写的计算器设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java编写的计算器设计报告.docx

《java编写的计算器设计报告.docx》由会员分享,可在线阅读,更多相关《java编写的计算器设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

java编写的计算器设计报告.docx

java编写的计算器设计报告

实验7:

综合实验二

一、试验目的

进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。

二、实验要求

创建一个界面来实现一个简单的计算器,要求:

1、实现最基本的计算器界面,包括:

0~9的10个数字按钮,加、减、乘、除、等于5个运算符按钮,一个结果存放的文本区域。

2、实现最基本的加、减、乘、除运算,并能得到正确结果。

3、实现连续的运算,小数点的使用,并考虑各种可能导致异常的情况,将程序作完善;

4、可以通过关闭按钮实现关闭窗口。

三、实验步骤、结果

1、程序代码:

importjava.awt.BorderLayout;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

importjavax.swing.SwingConstants;

publicclassZhxCacuextendsJFrameimplementsActionListener{

JPaneljpResult=newJPanel();

JPaneljpButton=newJPanel();

JTextFieldjtfResult=newJTextField("0");

JButtonzero=newJButton("0");//数字键0

JButtonone=newJButton("1");//数字键1

JButtontwo=newJButton("2");//数字键2

JButtonthree=newJButton("3");//数字键3

JButtonfour=newJButton("4");//数字键4

JButtonfive=newJButton("5");//数字键5

JButtonsix=newJButton("6");//数字键6

JButtonseven=newJButton("7");//数字键7

JButtoneight=newJButton("8");//数字键8

JButtonnine=newJButton("9");//数字键9

JButtonplus=newJButton("+");

JButtonsub=newJButton("-");

JButtonmul=newJButton("*");

JButtondiv=newJButton("/");

JButtonequal=newJButton("=");

JButtonce=newJButton("ce");//置零键

JButtonpoint=newJButton(".");

JButtontzero=newJButton("00");

//com代表敲击运算符,digit代表敲击数字键

booleancom=false;

booleandigit=false;

floattotal=0;

Stringsum="";

intsymbol=0;

intb,c=0;

publicZhxCacu(){

//添加结果输入框并设置对齐方式

jpResult.setLayout(newBorderLayout());

jpResult.add(jtfResult);

jtfResult.setEditable(false);

jtfResult.setHorizontalAlignment(SwingConstants.RIGHT);

//将组件添加到窗体上

this.add(jpResult,"North");

this.add(jpButton,"Center");

//定义按钮区域布局管理器为网格布局

jpButton.setLayout(newGridLayout(6,3,10,10));

//添加各个按钮键

jpButton.add(seven);

jpButton.add(eight);

jpButton.add(nine);

jpButton.add(four);

jpButton.add(five);

jpButton.add(six);

jpButton.add(one);

jpButton.add(two);

jpButton.add(three);

jpButton.add(zero);

jpButton.add(tzero);

jpButton.add(plus);

jpButton.add(sub);

jpButton.add(mul);

jpButton.add(div);

jpButton.add(point);

jpButton.add(equal);

jpButton.add(ce);

one.addActionListener(this);//对1按钮添加监听事件

two.addActionListener(this);//对2按钮添加监听事件

three.addActionListener(this);//对3按钮添加监听事件

four.addActionListener(this);//对4按钮添加监听事件

five.addActionListener(this);//对5按钮添加监听事件

six.addActionListener(this);//对6按钮添加监听事件

seven.addActionListener(this);//对7按钮添加监听事件

eight.addActionListener(this);//对8按钮添加监听事件

nine.addActionListener(this);//对9按钮添加监听事件

zero.addActionListener(this);//对0按钮添加监听事件

ce.addActionListener(this);//对置零按钮添加监听事件

plus.addActionListener(this);//对+按钮添加监听事件

equal.addActionListener(this);//对=按钮添加监听事件

sub.addActionListener(this);//对-按钮添加监听事件

mul.addActionListener(this);//对*按钮添加监听事件

div.addActionListener(this);//对/按钮添加监听事件

tzero.addActionListener(this);//对00按钮添加监听事件

point.addActionListener(this);//对.按钮添加监听事件

pack();//初始化窗体大小最合适大小

this.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

this.setSize(300,300);

this.setVisible(true);

}

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

newZhxCacu();

}

publicvoidactionPerformed(ActionEvente){

//TODO自动生成方法存根

//数字

if(e.getSource()==one){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("1");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"1";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==two){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("2");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"2";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==two){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("2");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"2";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==two){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("2");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"2";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==two){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("2");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"2";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==three){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("3");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"3";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==four){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("4");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"4";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==five){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("5");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"5";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==six){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("6");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"6";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==seven){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("7");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"7";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==eight){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("8");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"8";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==nine){

if(com||digit==false){//第一次敲击数字按钮

jtfResult.setText("9");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"9";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==zero){

if(com||digit==false){//第一次敲击数字按

jtfResult.setText("0");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"0";

jtfResult.setText(sum);

if(Float.parseFloat(sum)!

=0){

}

else{

if(b==1)

{sum=jtfResult.getText()+"0";

jtfResult.setText(sum);}

else

jtfResult.setText("0");

}

}

}

elseif(e.getSource()==tzero){

if(com||digit==false){//第一次敲击数字按

jtfResult.setText("00");

com=false;

digit=true;

}else{

sum=jtfResult.getText()+"00";

jtfResult.setText(sum);

}

}

elseif(e.getSource()==point){

if(com||digit==false){//第一次敲击数字按钮

b=1;

com=true;

digit=false;

}elseif(c==1);else

{

b=1;

sum=jtfResult.getText()+".";

jtfResult.setText(sum);c=1;

}

}

//运算

elseif(e.getSource()==plus){

symbol=1;c=0;

total=Float.parseFloat(jtfResult.getText());

com=true;

digit=false;

}

elseif(e.getSource()==sub){

symbol=2;c=0;

total=Float.parseFloat(jtfResult.getText());

com=true;

digit=false;

}

elseif(e.getSource()==mul){

symbol=3;c=0;

total=Float.parseFloat(jtfResult.getText());

com=true;

digit=false;

}

elseif(e.getSource()==div){

symbol=4;c=0;

total=Float.parseFloat(jtfResult.getText());

com=true;

digit=false;

}

elseif(e.getSource()==ce){

com=true;

digit=false;

total=0;

sum="0";

jtfResult.setText(sum);

}

//=

elseif(e.getSource()==equal){

com=true;

digit=false;

switch(symbol){

case1:

jtfResult.setText(newFloat(total+Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;

case2:

jtfResult.setText(newFloat(total-Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;

case3:

jtfResult.setText(newFloat(total*Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;

case4:

if(Float.parseFloat(jtfResult.getText())==0)

{try{thrownewException();}

catch(Exceptiona){

jtfResult.setText("错误!

被除数不能为0,请重新输入:

");

}

}

else

jtfResult.setText(newFloat(total/Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;

}

digit=false;

total=0;

}

}

}

2、界面:

四、实验中的问题以及解决方案:

1、问题:

被除数为0

解决:

抛出异常

2、问题:

阻止0、小数点在同一数字中重复出现

解决:

设置标志,

五、总结:

1、进一步了解了项目开发的步骤,思路,以及程序的布局和框架结构,尤其是对JAVA的模块化设计有了更为深入的了解。

2、进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1