小型简单的计算器

做的不好的地方,大家说说,因为我刚开始学

import java.awt.*;
import java.awt.event.*;
public class Calculator extends Frame
implements ActionListener
{
 int z;
 Double x;
 Double y;
 Double result;
 Panel p = new Panel();
 Panel p1 = new Panel();
 TextField tx = new TextField();
 
 Button b0 = new Button("0");
 Button b1 = new Button("1");
 Button b2 = new Button("2");
 Button b3 = new Button("3");
 Button b4 = new Button("4");
 Button b5 = new Button("5");
 Button b6 = new Button("6");
 Button b7 = new Button("7");
 Button b8 = new Button("8");
 Button b9 = new Button("9");
 Button bt = new Button(".");
 
 Button t1 = new Button("+");
 Button t2 = new Button("-");
 Button t3 = new Button("*");
 Button t4 = new Button("/");
 
 Button g = new Button("=");
 
 public Calculator()
 {
  this.setTitle("我的计算器");
  this.setLayout(new BorderLayout());
  this.add(p,BorderLayout.NORTH);
  p.setBounds(100,10,300,30);
  this.add(p1);
     p1.setLayout(new GridLayout(4,4));
  p.add(tx);
 
  tx.setColumns(20);
  p1.add(b7);
  p1.add(b8);
  p1.add(b9);
  p1.add(t1);
  p1.add(b4);
  p1.add(b5);
  p1.add(b6);
  p1.add(t2);
  
  p1.add(b1);
  p1.add(b2);
  p1.add(b3);
  p1.add(t3);
  p1.add(b0);
     p1.add(bt);
  
  p1.add(g);
  p1.add(t4);
  this.setBounds(300,200,200,200);
  this.setResizable(false);
  tx.addActionListener(this);
  b0.addActionListener(this);
  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);
  bt.addActionListener(this);
  t1.addActionListener(this);
  t2.addActionListener(this);
  t3.addActionListener(this);
  t4.addActionListener(this);
  g.addActionListener(this);
  this.addWindowListener(new MyAp());
  this.setVisible(true);
  
  
 }
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==b0)
  {
   tx.setText(tx.getText()+"0");
  }else if(e.getSource()==b1)
  {
   tx.setText(tx.getText()+"1");
  }else if(e.getSource()==b2)
  {
   tx.setText(tx.getText()+"2");
  }else if(e.getSource()==b3)
  {
   tx.setText(tx.getText()+"3");
  }else if(e.getSource()==b4)
  {
   tx.setText(tx.getText()+"4");
  }else if(e.getSource()==b5)
  {
   tx.setText(tx.getText()+"5");
  }else if(e.getSource()==b6)
  {
   tx.setText(tx.getText()+"6");
  }else if(e.getSource()==b7)
  {
   tx.setText(tx.getText()+"7");
  }else if(e.getSource()==b8)
  {
   tx.setText(tx.getText()+"8");
  }else if(e.getSource()==b9)
  {
   tx.setText(tx.getText()+"9");
  }else if(e.getSource()==bt)
  {
   tx.setText(tx.getText()+".");
  }else if(tx.getText().length()<=0)
   {
    return;
   }
   else if(e.getSource()==t1)
   {
    z=0;
    x=Double.parseDouble(tx.getText());
     tx.setText("");
     
   }else if(e.getSource()==t2)
   {
    z=1;
    x=Double.parseDouble(tx.getText());
     tx.setText("");
   }else if(e.getSource()==t3)
   {
    z=2;
    x=Double.parseDouble(tx.getText());
     tx.setText("");
   }else if(e.getSource()==t4)
   {
    z=3;
    x=Double.parseDouble(tx.getText());
     tx.setText("");
   }
     else if(e.getSource()==g)
   {
    y=Double.parseDouble(tx.getText());
    switch(z)
    {
     case 0:result=x+y;break;
     case 1:result=x-y;break;
     case 2:result=x*y;break;
     case 3:result=x/y;break;
    }
    tx.setText(result+"");
   }
  }
 public static void main(String args[])
 {
  new Calculator();
 }
}
class MyAp extends WindowAdapter
{
 public void windowClosing(WindowEvent e)
{
System.exit(0); 
}
}

package com.softeem.train.calculator; import java.util.Scanner; import java.io.*; public class Calculator { private int m; // 第一个输入的数字 private int n; // 第二个输入的数字 public Calculator() { this.m = 0; this.n = 0; } /* * public void use() { System.out.println("你是否继续使用?继续输入Y,退出输任意键?"); Scanner * in5= new Scanner(System.in); String zz=in5.next(); * if(zz.equals("Y")||zz.equals("y")) this.gui(); else System.exit(0); * * } */ public void graphic() { //3 System.out.println("=========================="); System.out.println("欢迎使用 So easy 计算机简易系统 "); System.out.println(" 请选择计算类型:"); System.out.println(" 1.加法"); System.out.println(" 2.减法"); System.out.println(" 3.乘法"); System.out.println(" 4.除法"); System.out.println(" 5.输入表达式计算"); System.out.println(" 6.退出"); System.out.println("=========================="); Scanner in3 = new Scanner(System.in); int n = in3.nextInt(); switch (n) { //4 case 1: this.add(); //8 break; case 2: this.sub(); break; case 3: this.mul(); break; case 4: this.div(); break; case 5: this.cal(); break; case 6: System.exit(0); default: break; } } public void add() // 实现加法的方法 { //5 System.out.println("欢迎使用加法操作"); this.in(); //7 int sum; sum = this.m + this.n; System.out.println("你输入的数据的和是:" + sum); // this.use(); } public void sub() // 实现减法的方法 { System.out.println("欢迎使用减法操作"); this.in(); int cha; cha = this.m - this.n; System.out.println("你输入的数据的差是:" + cha); // this.use(); } public void mul() // 实现乘法的方法 { System.out.println("欢迎使用乘法操作"); this.in(); int ji; ji = this.m * this.n; System.out.println("你输入的数据的积是:" + ji); // this.use(); } public void div() // 实现除法的方法 { System.out.println("欢迎使用除法操作"); this.in(); if (n == 0) { System.out.println("被除数不能为零!"); this.graphic(); } int shang; shang = this.m / this.n; System.out.println("你输入的数据的和是:" + shang); // this.use(); } public void cal() // 实现表达式运算方法 { String s = ""; // 接收表达式的字符串 String ss1 = ""; // 分离数字m的字符串 String ss2 = ""; // 分离数字n的字符串 char c1 = ' '; // 存放运算符 int m = 0; // 第一个数字 int n = 0; // 第二个数字 System.out.print("请输入一个表达式:"); try { BufferedReader in = new BufferedReader(new InputStreamReader( System.in)); s = in.readLine(); } catch (IOException e) { } for (int i = 0; i < s.length(); i++) { if ((s.charAt(i) == '+') || (s.charAt(i) == '-') || (s.charAt(i) == '*') || (s.charAt(i) == '/')) { c1 = s.charAt(i); // 第一个数 for (int j = 0; j < i; j++) { ss1 += s.charAt(j); m = Integer.parseInt(ss1); } // 第二个数 for (int j = i + 1; j < s.length(); j++) { ss2 += s.charAt(j); n = Integer.parseInt(ss2); } break; } } if (c1 == '+') System.out.println(m + "+" + n + "=" + (m + n)); if (c1 == '-') System.out.println(m + "-" + n + "=" + (m - n)); if (c1 == '*') System.out.println(m + "*" + n + "=" + (m * n)); if (c1 == '/') System.out.println(m + "/" + n + "=" + (m / n)); } public void in() // 实现接收数据的方法 { //6 System.out.println("请输入第一个数:"); Scanner in1 = new Scanner(System.in); this.m = in1.nextInt(); System.out.println("请输入第二个数:"); Scanner in2 = new Scanner(System.in); this.n = in2.nextInt(); } public static void main(String[] args) throws java.io.IOException { //1 String ifquit = ""; // 用于接收是否退出 Calculator c = new Calculator(); do { //2 c.graphic(); // 调用界面方法 //9 System.out.println("你是否继续使用?继续输入Y,退出输任意键?"); Scanner in5 = new Scanner(System.in); ifquit = in5.nextLine(); //10 } while (ifquit.equals("Y") || ifquit.equals("y")); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值