用JAVA编写计算器程序(模拟Windows计算器)

  • 格式:doc
  • 大小:38.50 KB
  • 文档页数:14

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用JAVA编写计算器程序(模拟Windows计算器)

import java.awt.*;

import java.awt.event.*;

public class Calculation extends WindowAdapter implements ActionListener

{

double dResult=0;

double dNowInput=0;

double dMemory;

int n=0; //记载小数位数

int nOperation=1; // 记录运算符类型

int nBitsNum=0; //记录总共输入的位数

boolean alreadyHaveDot=false; //已经有小数点?

boolean keyAvailable=true;

boolean alreadyClickedEqueal=false; //是否按下过"="?

boolean isTempNowInput=false; //是否在计算出结果后直接按运算符将结果赋给了当前输入值?

Frame f;

Panel p1,p2,p3,p4,p5,p6;

TextField tf1,tf2;

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;

public void display()

{

f=new Frame("计算器");

f.setSize(280,213);

f.setLocation(200,200);

f.setBackground(Color.LIGHT_GRAY);

f.setResizable(false);

f.setLayout(new BorderLayout(3,3));

p1=new Panel(new GridLayout(1,3,5,5)); //用于存放backspace,ce,c三键

p2=new Panel(new GridLayout(4,5,5,5)); //用于存放数字区及附近共20键, 此处间隙设置可能不合理,以后调整

p3=new Panel(new GridLayout(5,1,5,5)); //用于存放MC,MR,MS,M+键及显示M状态文本框,此处间隙设置可能不合理,以后调整

p4=new Panel(new FlowLayout()); //用于存放p1,p2

p5=new Panel(new FlowLayout());

p6=new Panel(new FlowLayout());

p4.add(p1);

p4.add(p2);

tf1=new TextField(35); //存放显示区

tf1.setText("0.");

tf1.setEditable(false);

p5.add(tf1);

f.add(p5,BorderLayout.NORTH);

f.add(p4,BorderLayout.CENTER);

f.add(p3,BorderLayout.WEST);

b1=new Button("1");

b2=new Button("2");

b3=new Button("3");

b4=new Button("4");

b5=new Button("5");

b6=new Button("6");

b7=new Button("7");

b8=new Button("8");

b9=new Button("9");

b0=new Button("0");

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b4.addActionListener(this);

b5.addActionListener(this);

b6.addActionListener(this);

b7.addActionListener(this);

b8.addActionListener(this);

b9.addActionListener(this);

b0.addActionListener(this);

bDiv=new Button("/");

bSqrt=new Button("sqrt"); bMulti=new Button("*"); bMinus=new Button("-"); bPercent=new Button("%"); bPlus=new Button("+"); bReciprocal=new Button("1/x"); bEqual=new Button("=");

bDot=new Button("."); bNegative=new Button("+/-");

bDiv.addActionListener(this); bSqrt.addActionListener(this);

bMulti.addActionListener(this); bMinus.addActionListener(this); bPercent.addActionListener(this); bPlus.addActionListener(this); bReciprocal.addActionListener(this); bEqual.addActionListener(this); bDot.addActionListener(this); bNegative.addActionListener(this);

p2.add(b7);

p2.add(b8);

p2.add(b9);

p2.add(bDiv);

p2.add(bSqrt);

p2.add(b4);

p2.add(b5);

p2.add(b6);

p2.add(bMulti);

p2.add(bPercent);

p2.add(b1);

p2.add(b2);

p2.add(b3);

p2.add(bMinus);

p2.add(bReciprocal);

p2.add(b0);

p2.add(bNegative);

p2.add(bDot);

p2.add(bPlus);

p2.add(bEqual);