用java编写一个简易的计算器代码.doc_第1页
用java编写一个简易的计算器代码.doc_第2页
用java编写一个简易的计算器代码.doc_第3页
用java编写一个简易的计算器代码.doc_第4页
用java编写一个简易的计算器代码.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;/*使用java 语言开发一个简易计算器 * * */public class TestJsq extends JFrame implements ActionListener, KeyListener private JTextField jtf;private JButton jb_bk, jb_ce, jb_c;private String xs = ;private double sum = 0;private int fh;public static void main(String args) new TestJsq().creatCUI();public void creatCUI() JFrame jf = new JFrame();jf.setTitle(计算器);jtf = new JTextField(0.);jtf.setHorizontalAlignment(JTextField.RIGHT);jf.add(jtf, BorderLayout.NORTH);JPanel jp_main = new JPanel(new BorderLayout();jf.add(jp_main);JPanel jp1 = new JPanel(new GridLayout(1, 3, 1, 1);jb_bk = new JButton(Backspace);jb_bk.setForeground(Color.RED);jb_bk.addActionListener(this);jb_ce = new JButton(CE);jb_ce.setForeground(Color.RED);jb_ce.addActionListener(this);jb_c = new JButton(C);jb_c.setForeground(Color.RED);jb_c.addActionListener(this);jp1.add(jb_bk);jp1.add(jb_ce);jp1.add(jb_c);jp_main.add(jp1, BorderLayout.NORTH);JPanel jp2 = new JPanel(new GridLayout(4, 5, 1, 1);String str = 7, 8, 9, /, sqrt, 4, 5, 6, *, %,1, 2, 3, -, 1/x, 0, +/-, ., +, = ;for (int i = 0; i 20; i+) JButton jb = new JButton(stri);jb.addActionListener(this);jb.setForeground(Color.blue);if (i = 3 | i = 8 | i = 13 | i = 18 | i = 19) jb.setForeground(Color.RED);jp2.add(jb);jp_main.add(jp2, BorderLayout.CENTER);jf.setResizable(false);jf.setBounds(50, 50, 350, 350);jf.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) String s = e.getActionCommand();if (s.equals(CE) | s.equals(C) xs = ;jtf.setText(0.); else if (s.equals(Backspace) String str = xs.substring(0, xs.length() - 1);xs = str;jtf.setText(xs); else if (s.equals(7) | s.equals(8) | s.equals(9)| s.equals(4) | s.equals(5) | s.equals(6)| s.equals(1) | s.equals(2) | s.equals(3)| s.equals(0) | s.equals(.) xs = xs + s;jtf.setText(xs); else if (s.equals(+/-) double x = Double.parseDouble(xs);xs= + (-x);jtf.setText(xs); else if (s.equals(/) fh = 4;int point = xs.indexOf(.);if (point != -1) String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length();int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z)/ (10 * z_num); else sum = Integer.decode(xs);xs = ;jtf.setText(null); else if (s.equals(*) fh = 3;int point = xs.indexOf(.);if (point != -1) String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length();int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z)/ (10 * z_num); else sum = Integer.decode(xs);xs = ;jtf.setText(null); else if (s.equals(-) fh = 2;int point = xs.indexOf(.);if (point != -1) String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length();int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z)/ (10 * z_num); else sum = Integer.decode(xs);xs = ;jtf.setText(null); else if (s.equals(+) fh = 1;int point = xs.indexOf(.);if (point != -1) String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length();int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z)/ (10 * z_num); else sum = Integer.decode(xs);xs = ;jtf.setText(null); else if (s.equals(sqrt) double x = Double.parseDouble(xs);double x1 = Math.sqrt(x);xs = x1 + ;jtf.setText(xs); else if (s.equals(%) double x = Double.parseDouble(xs);x=0.01 * x*x;xs=x+;jtf.setText(xs); else if (s.equals(1/x) if (xs = 0) jtf.setText(除数不能为0); else double x = Double.parseDouble(xs);double x1 = 1 / x;xs = x1 + ;jtf.setText(String.valueOf(xs); else if (s.equals(=) if (fh != 0) switch (fh) case 1:int point1 = xs.indexOf(.);if (point1 != -1) String s1 = xs.substring(0, point1);String z1 = xs.substring(point1 + 1, xs.length();int z1_num = z1.length();xs = ;double ss1 = Integer.decode(s1)+ (double) Integer.decode(z1) / (10 * z1_num);sum = sum + ss1; else sum = sum + Integer.decode(xs);xs = ;fh = 0;break;case 2:int point2 = xs.indexOf(.);if (point2 != -1) String s2 = xs.substring(0, point2);String z2 = xs.substring(point2 + 1, xs.length();int z2_num = z2.length();xs = ;double ss2 = Integer.decode(s2)+ (double) Integer.decode(z2) / (10 * z2_num);sum = sum - ss2; else sum = sum - Integer.decode(xs);xs = ;fh = 0;break;case 3:int point3 = xs.indexOf(.);if (point3 != -1) String s3 = xs.substring(0, point3);String z3 = xs.substring(point3 + 1, xs.length();int z1_num = z3.length();xs = ;double s4 = Integer.decode(s3)+ (double) Integer.decode(z3) / (10 * z1_num);sum = sum * s4; else sum = sum * Integer.decode(xs);xs = ;fh = 0;break;case 4:int point4 = xs.indexOf(.);if (point4 != -1) String s4 = xs.substring(0, point4);String z4 = xs.substring(point4 + 1, xs.length();int z4_num = z4.length();xs = ;double s5 = Integer.decode(s4)+ (double) Integer.decode(z4) / (10 * z4_num);sum = sum / s5; else sum = sum / Integer.decode(xs);xs = ;fh = 0;break;default:break;xs = String.valueOf(sum);jtf.se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论