Advertisement

一个使用Java开发的简单计算器。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
package chapter11_3;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { private String[] str = { 7, 8, 9, /, sqrt, 4, 5, 6, *, %, 1, 2, 3, -, 1/x, 0, +/-, ., +, = }; private JTextField tf_out; private JButton jb_bk, jb_ce, jb_c; private JButton[] jb_key; private char ch = #; private boolean can = false; private double num1; public void creatGUI() { tf_out = new JTextField(); tf_out.setHorizontalAlignment(JTextField.RIGHT); tf_out.setColumns(18); tf_out.setEditable(false); // 设置输出不可编辑 tf_out.setText(0); this.add(tf_out, BorderLayout.NORTH); JPanel p = new JPanel(new BorderLayout(3, 8)); JPanel p1 = new JPanel(new GridLayout(1, 3, 3, 10)); p.add(p1, North); 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); p1.add(jb_bk); p1.add(jb_ce); p1.add(jb_c); JPanel p2 = new JPanel(new GridLayout(4, 5, 3, 3)); p.add(p2, BorderLayout.CENTER); jb_key = new JButton[str.length]; for (int i = 0; i < str.length; i++) { jb_key[i] = new JButton(str[i]); jb_key[i].addActionListener(this); if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) { jb_key[i].setForeground(Color.RED); } else { jb_key[i].setForeground(Color.BLUE); } p2.add(jb_key[i]); } this.add(p, BorderLayout.CENTER); this.setTitle(计算器); this.setIconImage(new ImageIcon(image/1.jpg).getImage()); this.setBackground(Color.LIGHT_GRAY); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds((1280 - 300) / 2, (768 - 200) / 2, 308, 225); this.setVisible(true); } public static void main(String[] args) { new Calculator().creatGUI(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String act = e.getActionCommand(); // 控制键 if (e.getSource() == jb_bk) { if (tf_out.getText().length() > 1){ tf_out.setText(tf_out.getText().substring(0, tf_out.getText().length() - 1)); }else{ tf_out.setText(0); } return; }else if (e.getSource() == jb_ce || e.getSource() == jb_c) { tf_out.setText(0); ch = #; return; } // 数字键 if (act == 0) { if (!tf_out.getText().equals(0)) { tf_out.setText(tf_out.getText()); } } else if (act == 1 || act == 2 || act == 3 || act == 4 || act == 5 || act == 6 || act == 7 || act == 9) { tf_out.setText(tf_out.getText()); } // 运算符 if (act.equals(+/-)) { if (tf_out.getText().charAt(0) != -) { tf_out.setText(- + tf_out.getText()); } else { tf_out.setText(tf_out.getText().substring(1)); } } else if (act.equals(.)) { tf_out.setText(tf_out.getText() + act); ch = #; } else if (act != 1/x && act.charAt(0) >= 0 && act.charAt(0) <= 9) { if (can) { tf_out.setText(act); can = false; } else { try { if (Double.parseDouble(tf_out.getText()) == 0) { if (tf_out.getText().equals(0.)) { tf_out.setText(tf_out.getText() + act); } else { tf_out.setText(act); } } else { tf_out.setText(tf_out.getText() + act); } } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, 输入格式错误!, 警告!,JOptionPane.ERROR_MESSAGE); } } } else if (act.equals(+) || act.equals(-) || act.equals(*) || act.equals(/)) { if (ch != #) { try { num1 = operation(num1, ch, Double.parseDouble(tf_out.getText())); tf_out.setText(String.valueOf(num1)); ch = act.charAt(0); can = true; return; } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, 输入格式错误!, 警告!,JOptionPane.ERROR_MESSAGE); return; } } else { try { num1 = Double.parseDouble(tf_out.getText()); ch = act.charAt(0); can = true; return; } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, 输入格式错误!, 警告!,JOptionPane.ERROR_MESSAGE); return; } } } else if (act.equals(sqrt)) { try { double num = (double) Math.sqrt(Double.parseDouble(tf_out.getText())); tf_out.setText(String.valueOf(num)); can = true; return; } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, 输入格式错误!, 警告!,JOptionPane.ERROR_MESSAGE); } } else if (act.equals(1/x)) { try { double num = 1 / Double.parseDouble(tf_out.getText()); tf_out.setText(String.valueOf(num)); can = true; return; } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, 输入格式错误!, 警告!,JOptionPane.ERROR_MESSAGE); return; } catch (ArithmeticException e1) { JOptionPane.showMessageDialog(null, 除0错误!, 警告!, JOptionPane.ERROR_MESSAGE); } } else if (act.equals(=)) { can = true; try { if (ch == #) { return; } double num = Double.parseDouble(tf_out.getText()); num1 = operation(num1, ch, num); tf_out.setText(String.valueOf(num1)); ch = #; return; } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, 输入格式错误!, 警告!,JOptionPane.ERROR_MESSAGE); return; } } else if (act.equals(%)) { double num = Double.valueOf(tf_out.getText()).doubleValue(); tf_out.setText(String.valueOf(num1)); double sum = (num1 * num) / 100; tf_out.setText(String.valueOf(sum)); return; } } // 运算 public double operation(double a, char c, double b) { double sum; switch (c) { case +: sum = a + b; break; case -: sum = a - b; break; case *: sum = a * b; break; case /: if (b == 0) { JOptionPane.showMessageDialog(null, 除0错误!, 警告!,JOptionPane.ERROR_MESSAGE); return 0; } sum = a / b; break; default: return 0; } return sum; }}

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 使Unity UGUI
    优质
    本项目是一款基于Unity引擎与UGUI框架开发的简易计算器应用。用户可以通过直观的操作界面进行基本数学运算,体验高效便捷的功能设计。 可以进行加减乘除运算以及计算平方。
  • Java小程序
    优质
    这是一个用Java语言编写的简单计算器程序,能够执行基本的数学运算如加减乘除。适合编程学习者练习和了解基础语法结构。 一个简易的计算器可以实现加减乘除、平方根(sqrt)、倒数(1/x)、百分比(%)以及删除等功能。
  • Java程序设
    优质
    本项目旨在通过构建一个简易的Java程序设计计算器来帮助初学者理解基本编程概念与实践操作。 设计一个简单计算器,在“操作数”标签右侧的两个文本框输入操作数。当单击操作符+、-、×、÷按钮时,对两个操作数进行运算,并将结果填入到“结果”标签右侧的文本框中。
  • Java编写小程序
    优质
    这是一款使用Java语言开发的简易计算器程序,功能涵盖基本的四则运算操作,适合编程学习者和爱好者进行实践与探索。 用Java编写的一个简单的计算器小程序希望能对大家有所帮助。
  • 使DW和HTML创建
    优质
    本项目旨在通过Dreamweaver(DW)和HTML技术构建一款基础网页计算器。学习并实践前端开发中的表单元素、事件处理及JavaScript编程技巧。适合初学者入门Web应用开发。 计算机
  • Java编写
    优质
    这是一款使用Java语言开发的简易计算器程序,支持基本的加、减、乘、除运算功能,适合初学者学习和实践。 用Java实现的一个简单计算器程序,支持加减乘除、求余和求平方根等运算。
  • JavaScript编写
    优质
    这是一个使用JavaScript语言开发的简易计算器程序,旨在帮助用户执行基本的数学运算操作,如加减乘除。代码简洁明了,适合编程学习者参考和实践。 使用JavaScript技术实现简单的加减乘除运算。
  • 使C#WinForm项目
    优质
    这是一款利用C#编程语言开发的Windows窗体应用程序(WinForm),旨在提供基本的数学运算功能,如加减乘除等操作,适合需要简单计算的用户。 这是一个用C#语言在Visual Studio 2019上制作的简单计算器项目,包含了四则运算以及异常处理功能,并对界面进行了美化。这个小项目非常适合练习编程技能,欢迎大家下载使用。
  • 使MATLAB创建
    优质
    本项目利用MATLAB编程语言开发了一个功能简洁的计算器应用程序,支持基本数学运算,旨在帮助用户轻松完成日常计算任务。 使用MATLAB制作一个简单的计算器,包括详细的实验步骤。该计算器的功能有:加法、减法、乘法、除法以及计算cosine(余弦)、sine(正弦)和tangent(正切)。
  • 使GUI
    优质
    本项目旨在通过图形用户界面(GUI)技术创建一个易于使用的简易计算器应用程序,适用于基础数学运算。 里面包含了大量的用MATLAB编写的计算器程序以及相关的论文。