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; } }
2022-06-16 15:24:16 7KB JAVA 计算器
1
144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单片机C语言实例Proteus仿真和代码)144-1602液晶显示的计算器(51单
2022-06-16 09:08:10 40KB 51单片机 c语言 proteus 软件/插件
例如输入:-(1+(2-3)*4-(3+19)%3)/2 输出:2
2022-06-15 17:58:21 9KB Java 课程设计 小程序
1
1. 课程目的 1.1. 课程性质 JAVA 程序设计是计算机专业本科生的必修专业主干课程,授课对象为计算 机科学与技术专业、数字媒体技术、信息安全专业等相关专业的本科生。 课程全面、系统地介绍 JAVA 语言的基本知识及程序设计技术,使学生掌握 Java 语言的语法、数据类型、流程控制等基本知识和面向对象程序设计思想的 Java 实现;了解 Java 常用的系统类;学习异常处理、线程、图形用户界面设计、 网络通信等内容。使学生的专业知识进一步完善和丰富,为将来的开发和研究工 作打下一定的基础。 1.2. 课程任务 (1) 巩固和加深学生对 Java 语言课程的基本知识的理解和掌握; (2) 掌握 Java 语言编程和程序调试的基本技能; (3) 利用 Java 语言进行基本的程序设计; (4) 掌握书写程序设计说明文档的能力; (5) 提高运用 Java 语言解决实际问题的能力。 2. 课程设计要求 编写一个计算器,可实现加减乘除等一系列运算。 编程要求:选择某一种运算后,根据输入的数据给出运算结果。 编程提示:在设计出的计算器界面上,。。。。。。
课程设计c语言实时闹钟,年月日显示,闹钟倒计时功能。计算器4X4键盘
2022-06-15 15:17:13 182KB c 计算器 实时闹钟
1
66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真
2022-06-15 11:06:11 34KB 66-矩阵键盘简易计算器(51单
Android 计算器源码.zip
2022-06-15 11:04:18 63KB 源码
Android 简单代码实现的计算器源码.zip
2022-06-15 11:04:16 65KB 源码
《C++语言程序设计》课程设计报告-分数计算器
2022-06-15 09:08:03 206KB 文档资料
《C++面向对象程序设计》课程设计-- 分数计算器设置
2022-06-15 09:08:01 59KB 文档资料