栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

课设-计算器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

课设-计算器

实验内容:

学习GUI图形界面的设计Java Swing/Awt,创建交互友好的应用程序;
能通过界面按钮控件输入并实现算术表达式,输入的表达式即时在控件中显示,按下“=”按钮能实现运算,并将运算结果输出在控件中显示;要求能保存和浏览历史表达式的运算记录。
算术表达式求解,是指算术表达式中包括加、减、乘、除、括号等运算符,能求解包含括号的四则混合运算;并且能够检验表达式的合法性。
实现效果:

实现思路

利用swing创建一个窗体,设计按键布局等,设置按键监听,将按键的输入信息转成String类型,
然后将输入的中缀表达式转化为后缀表达式并且计算结果。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class getStart extends Jframe{
    private boolean point_jud=true;//小数点合法性判断,true为可以输入小数点
    private boolean sym_jud =false;//运算符号合法性判断
    // 括号合法性判断,右括号数目小于左括号数目-1才能输入
    private int sym_l=0;
    private int sym_r=0;

    public String str;
    private JButton lpt;
    private JButton rpt;
    private JPanel panel1;

    private JButton answer;
    private JButton button_add;
    private JButton button_sub;
    private JButton Button_mul;
    private JButton button_div;
    private JButton delete;
    private JButton Button1;
    private JButton Button2;
    private JButton Button3;
    private JButton Button4;
    private JButton Button5;
    private JButton Button6;
    private JButton Button7;
    private JButton Button8;
    private JButton Button9;
    private JButton Button0;

    public Jtextarea output0;
    public Jtextarea input0;
    private Jtextarea textarea1;
    private JButton deleteALL;
    private JButton point;
    Calculator infix;

    public getStart() {
        textarea1.setLineWrap(true);
        infix=new Calculator();

        System.out.println(str);
        lpt.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sym_l += 1;
                input0.setText(input0.getText()+"(");
            }
        });
        rpt.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(sym_r<=sym_l-1){
                input0.setText(input0.getText()+")");
                sym_r+=1;
                }
            }
        });
        delete.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                char add='+',sub='-',div='/',mul='*';

                String str = input0.getText();
                StringBuilder str2 = new StringBuilder();
                for (int i = 0; i < (str.length() - 1); i++) {
                    str2.append(str.charAt(i));
                }
                if (str2.toString().equals("")) {
                    input0.setText("");
                } else {
                    input0.setText(str2.toString());
                }
                if(str.charAt(str.length()-1)==add||str.charAt(str.length()-1)==sub||str.charAt(str.length()-1)==div||str.charAt(str.length()-1)==mul)sym_jud=true;
                else sym_jud=false;
            }
        });
        Button0.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"0");
                sym_jud =true;
            }
        });
        Button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"1");
                sym_jud =true;

            }
        });

        Button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"2");
                sym_jud =true;
            }
        });
        Button3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"3");
                sym_jud =true;
            }
        });
        Button4.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"4");
                sym_jud =true;
            }
        });
        Button5.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"5");
                sym_jud =true;
            }
        });
        Button6.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"6");
                sym_jud =true;
            }
        });
        Button7.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"7");
                sym_jud =true;
            }
        });
        Button8.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"8");
                sym_jud =true;
            }
        });
        Button9.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                input0.setText(input0.getText()+"9");
                sym_jud =true;
            }
        });

        button_add.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(sym_jud)input0.setText(input0.getText()+"+");
                sym_jud =false;
                point_jud=true;
            }
        });
        button_sub.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(sym_jud)
                input0.setText(input0.getText()+"-");
                sym_jud =false;
                point_jud=true;
            }
        });
        Button_mul.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
       if(sym_jud) input0.setText(input0.getText()+"*");
                sym_jud =false;
                point_jud=true;
            }
        });
        button_div.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
               if(sym_jud) input0.setText(input0.getText()+"/");
                sym_jud =false;
                point_jud=true;
            }
        });
        answer.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                point_jud=true;
                sym_jud =true;
                str=input0.getText();
                output0.setText(infix.test(str));
                textarea1.setText(textarea1.getText()+input0.getText()+"="+output0.getText()+'n');
                input0.setText("");
            }
        });

        deleteALL.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                point_jud=true;
                sym_jud =true;
                input0.setText("");output0.setText("");textarea1.setText("");
            }
        });
        point.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(point_jud){input0.setText(input0.getText()+".");
                    point_jud=false;
                }
            }
        });
    }


    public static void main(String[] args) {
        Jframe frame = new Jframe("计算器已经运行---BY ymg");
        frame.setContentPane(new getStart().panel1);
        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }


}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/684600.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号