Java制作计算机并实现基本运算

来源:互联网 发布:非电气化铁路 知乎 编辑:程序博客网 时间:2024/06/07 03:08

由于学习的深度还不够,所以现在只能实现一些简单的运算,只能实现两个数之间的运算,只支持鼠标点击,不支持输入指定数字或者字符

package 网格布局;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.lang.Math;public class Demo extends JFrame implements ActionListener{private int size = 20;JPanel jp = null;JTextField jtf = null;JButton []jb = new JButton[size];JButton jb1 = null,jb2 = null,jb3 = null;JPanel jp1 = null;public static void main(String[] args) {// TODO Auto-generated method stubDemo d = new Demo();}public Demo(){jtf = new JTextField();jp = new JPanel();jb[4] = new JButton("7");jb[5] = new JButton("8");jb[6] = new JButton("9");jb[7] = new JButton("/");jb[8] = new JButton("4");jb[9] = new JButton("5");jb[10] = new JButton("6");jb[11] = new JButton("*");jb[12] = new JButton("1");jb[13] = new JButton("2");jb[14] = new JButton("3");jb[15] = new JButton("+");jb[16] = new JButton("0");jb[17] = new JButton(".");jb[18] = new JButton("=");jb[19] = new JButton("-");jb[0] = new JButton("CE");jb[1] = new JButton("√");jb[2] = new JButton("%");jb[3] = new JButton("^2");for(int i = 0;i < size;i ++){jp.add(jb[i]);jb[i].addActionListener(this);}jp.setLayout(new GridLayout(5,4,10,10));this.add(jp);this.add(jtf,BorderLayout.NORTH);this.setTitle("计算器");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体居中显示this.setLocationRelativeTo(null);//禁止改变窗体大小this.setResizable(false);this.setSize(400,300);this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource() == jb[0]){//清屏jtf.setText("");}else if(e.getSource() == jb[1]){String str = jtf.getText();double n = Double.parseDouble(str);double m = Math.sqrt(n);String ss = "√" + String.valueOf(n) + " = " + String.valueOf(m);jtf.setText(ss);}else if(e.getSource() == jb[2]){String str = jtf.getText();str += "%";jtf.setText(str);}else if(e.getSource() == jb[3]){String str = jtf.getText();double n = Double.parseDouble(str);double m = n * n;String ss = String.valueOf(n) + " ^ 2 = " + String.valueOf(m);jtf.setText(ss);}else if(e.getSource() == jb[4]){String str = jtf.getText();str += "7";jtf.setText(str);}else if(e.getSource() == jb[5]){String str = jtf.getText();str += "8";jtf.setText(str);}else if(e.getSource() == jb[6]){String str = jtf.getText();str += "9";jtf.setText(str);}else if(e.getSource() == jb[7]){String str = jtf.getText();str += "/";jtf.setText(str);}else if(e.getSource() == jb[8]){String str = jtf.getText();str += "4";jtf.setText(str);}else if(e.getSource() == jb[9]){String str = jtf.getText();str += "5";jtf.setText(str);}else if(e.getSource() == jb[10]){String str = jtf.getText();str += "6";jtf.setText(str);}else if(e.getSource() == jb[11]){String str = jtf.getText();str += "*";jtf.setText(str);}else if(e.getSource() == jb[12]){String str = jtf.getText();str += "1";jtf.setText(str);}else if(e.getSource() == jb[13]){String str = jtf.getText();str += "2";jtf.setText(str);}else if(e.getSource() == jb[14]){String str = jtf.getText();str += "3";jtf.setText(str);}else if(e.getSource() == jb[15]){String str = jtf.getText();str += "+";jtf.setText(str);}else if(e.getSource() == jb[16]){String str = jtf.getText();str += "0";jtf.setText(str);}else if(e.getSource() == jb[17]){String str = jtf.getText();str += ".";jtf.setText(str);}/* * 若为等的时候,计算式子的结果,运算结果为+ - * / %四种方法得到 */else if(e.getSource() == jb[18]){String str = jtf.getText();char[] ss = str.toCharArray();String s1 = "",s2 = "";char cc = 0;//获取运算符int i;for(i = 0;i < ss.length;i ++)if(ss[i] =='+'|| ss[i] == '-' || ss[i] == '*' || ss[i] == '/' || ss[i] == '%'){cc = ss[i];break;}elses1 += String.valueOf(ss[i]);for( ++ i;i < ss.length;i ++)s2 += String.valueOf(ss[i]);double[]a = new double[2];a[0] = Double.parseDouble(s1);a[1] = Double.parseDouble(s2);double m = 0.0;if(cc == '+')m = a[0] + a[1];else if(cc == '-')m = a[0] - a[1];else if(cc == '*')m = a[0] * a[1];else if(cc == '/' && a[1] != 0)m = a[0] / a[1];else if(cc == '%')m = a[0] % a[1];str += " = " + String.valueOf(m);jtf.setText(str);}else if(e.getSource() == jb[19]){String str = jtf.getText();str += "-";jtf.setText(str);}}}


0 0
原创粉丝点击