Java编写计算器的几种常见的做法.docx

上传人:b****2 文档编号:3546394 上传时间:2023-05-06 格式:DOCX 页数:16 大小:17.11KB
下载 相关 举报
Java编写计算器的几种常见的做法.docx_第1页
第1页 / 共16页
Java编写计算器的几种常见的做法.docx_第2页
第2页 / 共16页
Java编写计算器的几种常见的做法.docx_第3页
第3页 / 共16页
Java编写计算器的几种常见的做法.docx_第4页
第4页 / 共16页
Java编写计算器的几种常见的做法.docx_第5页
第5页 / 共16页
Java编写计算器的几种常见的做法.docx_第6页
第6页 / 共16页
Java编写计算器的几种常见的做法.docx_第7页
第7页 / 共16页
Java编写计算器的几种常见的做法.docx_第8页
第8页 / 共16页
Java编写计算器的几种常见的做法.docx_第9页
第9页 / 共16页
Java编写计算器的几种常见的做法.docx_第10页
第10页 / 共16页
Java编写计算器的几种常见的做法.docx_第11页
第11页 / 共16页
Java编写计算器的几种常见的做法.docx_第12页
第12页 / 共16页
Java编写计算器的几种常见的做法.docx_第13页
第13页 / 共16页
Java编写计算器的几种常见的做法.docx_第14页
第14页 / 共16页
Java编写计算器的几种常见的做法.docx_第15页
第15页 / 共16页
Java编写计算器的几种常见的做法.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java编写计算器的几种常见的做法.docx

《Java编写计算器的几种常见的做法.docx》由会员分享,可在线阅读,更多相关《Java编写计算器的几种常见的做法.docx(16页珍藏版)》请在冰点文库上搜索。

Java编写计算器的几种常见的做法.docx

Java编写计算器的几种常见的做法

importjava.awt.*;

importjava.awt.event.*;

publicclassMyCalculator{

privateFramef;

privateTextFieldtf=newTextField(30);

privatelongresult;

privatebooleanappend=false;

privatecharoperator='=';

privateButton[]btn=newButton[15];

publicMyCalculator(){

initComponent();

}

privatevoidinitComponent(){

f=newFrame("MyCalculatorV1.0");

f.setLayout(newBorderLayout());//TheframeusesBorderLayout

f.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEventevt){

System.exit(0);

}

});

PanelcenterPanel=newPanel();

centerPanel.setLayout(newGridLayout(5,3));//ThepanelusesGridLayout

NumberListenernl=newNumberListener();

OperatorListenerol=newOperatorListener();

btn[10]=newButton("+");

btn[11]=newButton("-");

btn[12]=newButton("*");

btn[13]=newButton("/");

btn[14]=newButton("=");

for(inti=0;i<=9;i++){

btn[i]=newButton(String.valueOf(i));

centerPanel.add(btn[i]);

btn[i].addActionListener(nl);

if(i%2==1){

centerPanel.add(btn[(i+19)/2]);

btn[(i+19)/2].addActionListener(ol);

}

}

f.add(centerPanel,BorderLayout.CENTER);

PanelnorthPanel=newPanel();

tf.setEditable(false);

northPanel.add(tf);

f.add(northPanel,BorderLayout.NORTH);

}

publicvoidgo(){

f.pack();

f.setVisible(true);

}

publicstaticvoidmain(String[]args){

newMyCalculator().go();

}

/**

*采用成员内部类方式,实现监听器接口,方便访问主类内类内部成员。

*此类负责数字按钮Action事件监听和处理

*/

classNumberListenerimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

if(!

append){

tf.setText("");

append=true;

}

Strings=tf.getText();

s+=e.getActionCommand();

tf.setText(s);

if(!

btn[10].isEnabled()){

for(inti=10;i<=14;i++)btn[i].setEnabled(true);

}

}

}

/**

*成员内部类,负责操作符按钮的事件处理

*/

classOperatorListenerimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

if(!

append)return;

for(inti=10;i<=14;i++)btn[i].setEnabled(false);

Strings=tf.getText();

longnum=Long.parseLong(s);//getthenumberoftextfield

append=false;//setappend

switch(operator){

case'+':

result+=num;break;

case'-':

result-=num;break;

case'*':

result*=num;break;

case'/':

{

if(num==0)result=0;

elseresult/=num;

break;

}

case'=':

result=num;break;

}

tf.setText(String.valueOf(result));

//setthevalueofresulttotextfield

Stringop=e.getActionCommand();

operator=op.charAt(0);//setoperator

}

}

}

 

方法2:

——————————————————————————————————————————————

packagewanwa;

importjava.util.*;

publicclasscalc{

publicstaticvoidmain(String[]args){

Scannerinput=newScanner(System.in);

System.out.println("*****************简易计算器****************");

System.out.println("*\t\t\t\t\t*");

System.out.println("*使用说明:

1.加法2.减法3.乘法4.除法*");

System.out.println("*\t\t\t\t\t*");

System.out.println("*****************************************");

for(inti=0;i<100;i++){

System.out.print("\n请选择运算规则:

");

intnum=input.nextInt();

switch(num){

case1:

System.out.println("\n******你选择了加法******\n");

System.out.print("请输入第1个加数:

");

intjiashu1=input.nextInt();

System.out.print("请输入第2个加数:

");

intjiashu2=input.nextInt();

System.out.println("运算结果为:

"+jiashu1+"+"+jiashu1+"="+(jiashu1+jiashu2));

break;

case2:

System.out.println("\n******你选择了减法******\n");

System.out.print("请输入被减数:

");

intjianshu1=input.nextInt();

System.out.print("请输入减数:

");

intjianshu2=input.nextInt();

System.out.println("运算结果为:

"+jianshu1+"-"+jianshu2+"="+(jianshu1-jianshu2));

break;

case3:

System.out.println("\n******你选择了乘法******\n");

System.out.print("请输入第1个因数:

");

intchengfa1=input.nextInt();

System.out.print("请输入第2个因数:

");

intchengfa2=input.nextInt();

System.out.println("运算结果为:

"+chengfa1+"*"+chengfa2+"="+(chengfa1*chengfa2));

break;

case4:

System.out.println("\n******你选择了除法******\n");

System.out.print("请输入被除数:

");

doublechufa1=input.nextInt();

System.out.print("请输入除数:

");

doublechufa2=input.nextInt();

System.out.println("运算结果为:

"+chufa1+"/"+chufa2+"="+(chufa1/chufa2)+"余"+(chufa1%chufa2));

break;

default:

System.out.println("\n你的选择有错,请重新选择!

");

break;

}

}

}

}

 

第三种写法:

——————————————————————————————————————————————

packagewanwa;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassCalculatorextendsJFrame{

privateContainercontainer;

privateGridBagLayoutlayout;

privateGridBagConstraintsconstraints;

privateJTextFielddisplayField;//计算结果显示区

privateStringlastCommand;//保存+,-,*,/,=命令

privatedoubleresult;//保存计算结果

privatebooleanstart;//判断是否为数字的开始

publicCalculator(){

super("Calculator");

container=getContentPane();

layout=newGridBagLayout();

container.setLayout(layout);

constraints=newGridBagConstraints();

start=true;

result=0;

lastCommand="=";

displayField=newJTextField(20);

displayField.setHorizontalAlignment(JTextField.RIGHT);

constraints.gridx=0;

constraints.gridy=0;

constraints.gridwidth=4;

constraints.gridheight=1;

constraints.fill=GridBagConstraints.BOTH;

constraints.weightx=100;

constraints.weighty=100;

layout.setConstraints(displayField,constraints);

container.add(displayField);

ActionListenerinsert=newInsertAction();

ActionListenercommand=newCommandAction();

//addButton("Backspace",0,1,2,1,insert);

//addButton("CE",2,1,1,1,insert);

//addButton("C",3,1,1,1,insert);

addButton("7",0,2,1,1,insert);

addButton("8",1,2,1,1,insert);

addButton("9",2,2,1,1,insert);

addButton("/",3,2,1,1,command);

addButton("4",0,3,1,1,insert);

addButton("5",1,3,1,1,insert);

addButton("6",2,3,1,1,insert);

addButton("*",3,3,1,1,command);

addButton("1",0,4,1,1,insert);

addButton("2",1,4,1,1,insert);

addButton("3",2,4,1,1,insert);

addButton("-",3,4,1,1,command);

addButton("0",0,5,1,1,insert);

//addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值

addButton(".",2,5,1,1,insert);

addButton("+",3,5,1,1,command);

addButton("=",0,6,4,1,command);

this.setResizable(false);

setSize(180,200);

setVisible(true);

}

privatevoidaddButton(Stringlabel,introw,intcolumn,intwith,

intheight,ActionListenerlistener){

JButtonbutton=newJButton(label);

constraints.gridx=row;

constraints.gridy=column;

constraints.gridwidth=with;

constraints.gridheight=height;

constraints.fill=GridBagConstraints.BOTH;

button.addActionListener(listener);

layout.setConstraints(button,constraints);

container.add(button);

}

privateclassInsertActionimplementsActionListener{

publicvoidactionPerformed(ActionEventevent){

Stringinput=event.getActionCommand();

if(start){

displayField.setText("");

start=false;

if(input.equals("+/-"))

displayField.setText(displayField.getText()+"-");

}

if(!

input.equals("+/-")){

if(input.equals("Backspace")){

Stringstr=displayField.getText();

if(str.length()>0)

displayField.setText(str.substring(0,str.length()-1));

}elseif(input.equals("CE")||input.equals("C")){

displayField.setText("0");

start=true;

}else

displayField.setText(displayField.getText()+input);

}

}

}

privateclassCommandActionimplementsActionListener{

publicvoidactionPerformed(ActionEventevt){

Stringcommand=evt.getActionCommand();

if(start){

lastCommand=command;

}else{

calculate(Double.parseDouble(displayField.getText()));

lastCommand=command;

start=true;

}

}

}

publicvoidcalculate(doublex){

if(lastCommand.equals("+"))

result+=x;

elseif(lastCommand.equals("-"))

result-=x;

elseif(lastCommand.equals("*"))

result*=x;

elseif(lastCommand.equals("/"))

result/=x;

elseif(lastCommand.equals("="))

result=x;

displayField.setText(""+result);

}

publicstaticvoidmain(String[]args){

Calculatorcalculator=newCalculator();

calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

第四种写法:

——————————————————————————————————————————————

 

packagewanwa;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassCalculatorextendsJFrame{

privateContainercontainer;

privateGridBagLayoutlayout;

privateGridBagConstraintsconstraints;

privateJTextFielddisplayField;//计算结果显示区

privateStringlastCommand;//保存+,-,*,/,=命令

privatedoubleresult;//保存计算结果

privatebooleanstart;//判断是否为数字的开始

publicCalculator(){

super("Calculator");

container=getContentPane();

layout=newGridBagLayout();

container.setLayout(layout);

constraints=newGridBagConstraints();

start=true;

result=0;

lastCommand="=";

displayField=newJTextField(20);

displayField.setHorizontalAlignment(JTextField.RIGHT);

constraints.gridx=0;

constraints.gridy=0;

constraints.gridwidth=4;

constraints.gridheight=1;

constraints.fill=GridBagConstraints.BOTH;

constraints.weightx=100;

constraints.weighty=100;

layout.setConstraints(displayField,constraints);

container.add(displayField);

ActionListenerinsert=newInsertAction();

ActionListenercommand=newCommandAction();

//addButton("Backspace",0,1,2,1,insert);

//addButton("CE",2,1,1,1,insert);

//addButton("C",3,1,1,1,insert);

addButton("7",0,2,1,1,insert);

addButton("8",1,2,1,1,insert);

addButton("9",2,2,1,1,insert);

addButton("/",3,2,1,1,command);

addButton("4",0,3,1,1,insert);

addButton("5",1,3,1,1,insert);

addButton("6",2,3,1,1,insert);

addButton("*",3,3,1,1,command);

addButton("1",0,4,1,1,insert);

addButton("2",1,

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2