四则运算java

个人PSP表格

java代码

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

class WindowActionEvent extends JFrame {
    JTextField text1 = new JTextField(20); // 题目的输出
    JTextField text2 = new JTextField(20); // 答案的输入
    JComboBox choiceFuhao = new JComboBox();
    JButton button1 = new JButton("获取题目");
    JButton button2 = new JButton("确认答案");
    String fuhao;
    
    public WindowActionEvent() {
        setLayout(null);
        choiceFuhao.addItem("选择运算符号:");
        String[] a = { "+", "-", "*", "/" };
        for (int i = 0; i < a.length; i++) {
            choiceFuhao.addItem(a[i]);
        }
        
        button1.addActionListener(new ActionListener() { // 产生随机数
            public void actionPerformed(ActionEvent e) {
                int a = (int) (1 + Math.random() * 100);
                int b = (int) (1 + Math.random() * 100);
                fuhao = choiceFuhao.getSelectedItem().toString();
                String s = String.valueOf(a) + fuhao + String.valueOf(b);
                text1.setText(s);
            }
        });
        
        button2.addActionListener(new ActionListener() { // 输入答案
            public void actionPerformed(ActionEvent e) {
                String regex = "[^0123456789.]+"; // 将字符串s变为2个整数并相加得到sum
                String T = text1.getText().replaceAll(regex, "#");
                StringTokenizer fenxi = new StringTokenizer(T, "#");
                int sum = 0, i = 0;
                double chu = 0;
                int[] t = new int[2];
                while (fenxi.hasMoreTokens()) { // 进行四则运算,得到结果sum
                    String item = fenxi.nextToken();
                    t[i++] = (int) Double.parseDouble(item);
                }
                if (fuhao.equals("+"))
                    sum = t[0] + t[1];
                else if (fuhao.equals("-"))
                    sum = t[0] - t[1];
                else if (fuhao.equals("*"))
                    sum = t[0] * t[1];
                else if (fuhao.equals("/"))
                    chu = ((double) t[0]) / ((double) t[1]);

                if (text2.getText().equals(String.valueOf(sum)) || text2.getText().equals(String.format("%.2f", chu))) { // 判断输入的数字是否正确
                    JOptionPane.showMessageDialog(button2, "答案正确", "消息对话框", JOptionPane.INFORMATION_MESSAGE);
                } else {
                    JOptionPane.showMessageDialog(button2, "答案错误", "消息对话框", JOptionPane.WARNING_MESSAGE);
                }
            }

        });
        
        choiceFuhao.setBounds(120, 50, 120, 20);
        text1.setBounds(120, 100, 120, 20);
        text2.setBounds(120, 150, 120, 20);
        button1.setBounds(20, 100, 100, 20);
        button2.setBounds(20, 150, 100, 20);
        add(choiceFuhao);
        add(text1);
        add(text2);
        add(button1);
        add(button2);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

public class sizeyunsuan {
    public static void main(String args[]) {
        WindowActionEvent win = new WindowActionEvent();
        win.setBounds(100, 100, 400, 400);
        win.setTitle("100以内的四则运算测试");
        Container con = win.getContentPane();
        con.setBackground(new Color(178, 255, 242));
    }
}

 初始界面

 

 输入的答案正确时

 

 答案错误时

 

posted @ 2021-09-27 22:29  ghhzaq  阅读(60)  评论(0编辑  收藏  举报