Java计算器实验报告

时间:2024.4.7

一、目标:

通过Java程序开发实训使学生掌握《面向对象程序设计(Java)》课堂讲授的内容,灵活运用到Java程序的开发与设计中。

二、要求:

按时参加Java程序开发实训训练,不得迟到和早退;独立完成程序设计;按要求撰写实践报告。

三、详细内容:

使用《面向对象程序设计(Java)》课程讲授内容,编写一个简单的计算器,要求实现如下功能:

1. 进行图形界面设计

    通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。

2. 实现计算器的基本功能

包括加减乘除四则运算、倒数、平方根及清除结果等功能。

3. 实现计算器的存储计算功能

    包括存储中间结果(MS)、使用中间结果(MR)、累加中间结果(M+)及清除中间结果(MC)的功能。

4. 计算器的扩展功能

包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切及2进制、8进制、16进制、10进制之间的相互转换等功能。

四、源代码

     import java.awt.BorderLayout;

    import java.awt.Color;

    import java.awt.FlowLayout;

    import java.awt.GridLayout;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

    import java.text.DecimalFormat;

    import javax.swing.JButton;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JMenu;

    import javax.swing.JMenuBar;

    import javax.swing.JMenuItem;

    import javax.swing.JPanel;

    import javax.swing.JScrollPane;

    import javax.swing.JTextArea;

import javax.swing.JTextField;

    publicclass jsq implements ActionListener { //导入动作监听接口

    //设计面板中的单位

        JFrame frame;//窗口

        JTextField textAnswer;//文本

        JPanel panel, panel1, panel2, panel3;//面版

        JMenuBar mainMenu;//菜单

        JTextField textMemory;

        JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状

        JButton buttonBk, buttonCe, buttonC;

        JButton button[];//按钮数组

        JButton buttonMC, buttonMR, buttonMS, buttonMAdd;//清除,使用,储存,添加

        JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,

                buttonDiv, buttonMod;

        JButton buttonSqrt, buttonDao, buttonEqual;

        JMenu editMenu, viewMenu, helpMenu;

        JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp,

                aboutCal;

        DecimalFormat df; //设置数据输出精度

        boolean clickable; //控制当前能否按键

        double memoryd; //使用内存中存储的数字

        int memoryi;

        double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)

        short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算

        String copy; //做复制用

        JTextArea help; //帮助

        JScrollPane scrollHelp;

        //构造函数

        public jsq() {

            clickable = true;

            answerd = 0;

            frame = new JFrame("计算器");

            df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)

            textAnswer = new JTextField(15);

            textAnswer.setText("");

            textAnswer.setEditable(false);

            textAnswer.setBackground(new Color(255, 255, 255));

            panel = new JPanel();

            frame.getContentPane().add(panel);

            panel1 = new JPanel();

            panel2 = new JPanel();

            panel.setLayout(new BorderLayout());

            //设计整个面板

            mainMenu = new JMenuBar();

            editMenu =new JMenu("编辑(E)");

            editMenu .setMnemonic(KeyEvent.VK_E);

            viewMenu =new JMenu("查看(V)");

            viewMenu .setMnemonic(KeyEvent.VK_V);

            helpMenu =new JMenu("帮助(H)");

            helpMenu .setMnemonic(KeyEvent.VK_H);

            mainMenu .add(editMenu );

            mainMenu .add(viewMenu );

            mainMenu .add(helpMenu );

            panel.add(mainMenu, BorderLayout.NORTH);

            panel.add(textAnswer, BorderLayout.CENTER);

            panel.add(panel1, BorderLayout.SOUTH);

            panel1.setLayout(new BorderLayout());

            textMemory = new JTextField(3);

            textMemory.setEditable(false);

            textMemory.setBackground(new Color(217, 217, 217));

            labelMemSpace = new JLabel(" ");

            buttonBk = new JButton("Backspace");

            buttonBk.setForeground(new Color(255, 0, 0));

            buttonCe = new JButton("CE");

            buttonCe.setForeground(new Color(255, 0, 0));

            buttonC = new JButton("C");

            buttonC.setForeground(new Color(255, 0, 0));

            buttonBk.addActionListener(this);

            buttonCe.addActionListener(this);

            buttonC.addActionListener(this);

            panel1.add(panel2, BorderLayout.NORTH);

            panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));

            panel2.add(textMemory);

            panel2.add(labelMemSpace);

            panel2.add(buttonBk);

            panel2.add(buttonCe);

            panel2.add(buttonC);

            panel3 = new JPanel();

            panel1.add(panel3, BorderLayout.CENTER);

            button = new JButton[10];

            for (int i = 0; i < button.length; i++) {

                button[i] = new JButton(Integer.toString(i));

                button[i].setForeground(new Color(0, 0, 255));

            }

            //构造按钮

            buttonMC = new JButton("MC");

            buttonMC.setForeground(new Color(255, 0, 0));

            buttonMR = new JButton("MR");

            buttonMR.setForeground(new Color(255, 0, 0));

            buttonMS = new JButton("MS");

            buttonMS.setForeground(new Color(255, 0, 0));

            buttonMAdd = new JButton("M+");

            buttonMAdd.setForeground(new Color(255, 0, 0));

            buttonDot = new JButton(".");

            buttonDot.setForeground(new Color(0, 0, 255));

            buttonAddAndSub = new JButton("+/-");

            buttonAddAndSub.setForeground(new Color(0, 0, 255));

            buttonAdd = new JButton("+");

            buttonAdd.setForeground(new Color(255, 0, 0));

            buttonSub = new JButton("-");

            buttonSub.setForeground(new Color(255, 0, 0));

            buttonMul = new JButton("*");

            buttonMul.setForeground(new Color(255, 0, 0));

            buttonDiv = new JButton("/");

            buttonDiv.setForeground(new Color(255, 0, 0));

            buttonMod = new JButton("%");

            buttonMod.setForeground(new Color(0, 0, 255));

            buttonSqrt = new JButton("sqrt");

            buttonSqrt.setForeground(new Color(0, 0, 255));

            buttonDao = new JButton("1/x");

            buttonDao.setForeground(new Color(0, 0, 255));

            buttonEqual = new JButton("=");

            buttonEqual.setForeground(new Color(255, 0, 0));

            //将所有行为与监听绑定

            panel3.setLayout(new GridLayout(4, 6));

            panel3.add(buttonMC);

            buttonMC.addActionListener(this);

            panel3.add(button[7]);

            button[7].addActionListener(this);

            panel3.add(button[8]);

            button[8].addActionListener(this);

            panel3.add(button[9]);

            button[9].addActionListener(this);

            panel3.add(buttonDiv);

            buttonDiv.addActionListener(this);

            panel3.add(buttonSqrt);

            buttonSqrt.addActionListener(this);

            panel3.add(buttonMR);

            buttonMR.addActionListener(this);

            panel3.add(button[4]);

            button[4].addActionListener(this);

            panel3.add(button[5]);

            button[5].addActionListener(this);

            panel3.add(button[6]);

            button[6].addActionListener(this);

            panel3.add(buttonMul);

            buttonMul.addActionListener(this);

            panel3.add(buttonMod);

            buttonMod.addActionListener(this);

            panel3.add(buttonMS);

            buttonMS.addActionListener(this);

            panel3.add(button[1]);

            button[1].addActionListener(this);

            panel3.add(button[2]);

            button[2].addActionListener(this);

            panel3.add(button[3]);

            button[3].addActionListener(this);

            panel3.add(buttonSub);

            buttonSub.addActionListener(this);

            panel3.add(buttonDao);

            buttonDao.addActionListener(this);

            panel3.add(buttonMAdd);

            buttonMAdd.addActionListener(this);

            panel3.add(button[0]);

            button[0].addActionListener(this);

            panel3.add(buttonAddAndSub);

            buttonAddAndSub.addActionListener(this);

            panel3.add(buttonDot);

            buttonDot.addActionListener(this);

            panel3.add(buttonAdd);

            buttonAdd.addActionListener(this);

            panel3.add(buttonEqual);

            buttonEqual.addActionListener(this);

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            frame.pack();

            frame.show();

        }

        //设置各个按钮行为

        publicvoid actionPerformed(ActionEvent event) {

            booleansign = false; //判断是否是double型数参与运算,是为true,不是为false

            Object temp = event.getSource();

            try {

                //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后

                for (int i = 0; i <= 9; i++)

                    if (temp == button[i] && clickable == true)

                        textAnswer.setText(textAnswer.getText()

                                + Integer.toString(i));

                //按下"."按钮时,判断当前文本框内字符串中含不含".",如果已含,则不允许再插入"."

                if (temp == buttonDot && clickable == true) {

                    boolean isDot = false;

                    if (textAnswer.getText().length() == 0)

                        isDot = true;

                    for (int i = 0; i < textAnswer.getText().length(); i++)

                        if ('.' == textAnswer.getText().charAt(i)) {

                            isDot = true;

                            break;

                        }

                    if (isDot == false)

                        textAnswer.setText(textAnswer.getText() + ".");

                }

                if ((temp == buttonAdd || temp == buttonSub || temp == buttonMul || temp == buttonDiv)

                        && clickable == true) {

                    //"+"操作

                    if (temp == buttonAdd) {

                        switch (prekey) {

                        case 0:

                            answerd += Double.parseDouble(textAnswer.getText());

                            break;

                        case 1:

                            answerd -= Double.parseDouble(textAnswer.getText());

                            break;

                        case 2:

                            answerd *= Double.parseDouble(textAnswer.getText());

                            break;

                        case 3:

                            if (Double.parseDouble(textAnswer.getText()) == 0) {

                                //textAnswer="aa";

                                textAnswer.setText("除数不能为零");

                                clickable = false;

                            } else

                                answerd /= Double.parseDouble(textAnswer.getText());

                            break;

                        default:

                            answerd = Double.parseDouble(textAnswer.getText());

                        }

                        textAnswer.setText("");

                        prekey = key = 0;

                    }

                    //"-"操作

                    if (temp == buttonSub) {

                        switch (prekey) {

                        case 0:

                            answerd += Double.parseDouble(textAnswer.getText());

                            break;

                        case 1:

                            answerd -= Double.parseDouble(textAnswer.getText());

                            break;

                        case 2:

                            answerd *= Double.parseDouble(textAnswer.getText());

                            break;

                        case 3:

                            if (Double.parseDouble(textAnswer.getText()) == 0) {

                                textAnswer.setText("除数不能为零");

                                clickable = false;

                            } else

                                answerd /= Double.parseDouble(textAnswer.getText());

                            break;

                        default:

                            answerd = Double.parseDouble(textAnswer.getText());

                        }

                        textAnswer.setText("");

                        prekey = key = 1;

                    }

                    //"*"操作

                    if (temp == buttonMul) {

                        switch (prekey) {

                        case 0:

                            answerd += Double.parseDouble(textAnswer.getText());

                            break;

                        case 1:

                            answerd -= Double.parseDouble(textAnswer.getText());

                            break;

                        case 2:

                            answerd *= Double.parseDouble(textAnswer.getText());

                            break;

                        case 3:

                            if (Double.parseDouble(textAnswer.getText()) == 0) {

                                textAnswer.setText("除数不能为零");

                                clickable = false;

                            } else

                                answerd /= Double.parseDouble(textAnswer.getText());

                            break;

                        default:

                            answerd = Double.parseDouble(textAnswer.getText());

                        }

                        //textAnser = "";

                        textAnswer.setText("");

                        prekey = key = 2;

                    }

                    //"/"操作

                    if (temp == buttonDiv) {

                        switch (prekey) {

                        case 0:

                            answerd += Double.parseDouble(textAnswer.getText());

                            break;

                        case 1:

                            answerd -= Double.parseDouble(textAnswer.getText());

                            break;

                        case 2:

                            answerd *= Double.parseDouble(textAnswer.getText());

                            break;

                        case 3:

                            if (Double.parseDouble(textAnswer.getText()) == 0) {

                                textAnswer.setText("除数不能为零");

                                clickable = false;

                            } else

                                answerd /= Double.parseDouble(textAnswer.getText());

                            break;

                        default:

                            answerd = Double.parseDouble(textAnswer.getText());

                        }

                        textAnswer.setText("");

                        prekey = key = 3;

                    }

                }

                //"="操作

                if (temp == buttonEqual && clickable == true) {

                    //如果连续按"=",则进行连续运算

                    if (prekey == 5) {

                        if (key == 0) {

                            answerd += vard;

                            textAnswer.setText(df.format(answerd));

                        }

                        if (key == 1) {

                            answerd -= vard;

                            textAnswer.setText(df.format(answerd));

                        }

                        if (key == 2) {

                            answerd *= vard;

                            textAnswer.setText(df.format(answerd));

                        }

                        if (key == 3) {

                            if (Double.parseDouble(textAnswer.getText()) == 0) {

                                textAnswer.setText("除数不能为零");

                                clickable = false;

                            } else {

                                answerd /= vard;

                                textAnswer.setText(df.format(answerd));

                            }

                        }

                    } else {

                        vard = Double.parseDouble(textAnswer.getText());

                        if (key == 0) {

                            prekey = -1;

                            answerd += Double.parseDouble(textAnswer.getText());

                            textAnswer.setText(df.format(answerd));

                        }

                        if (key == 1) {

                            prekey = -1;

                            answerd -= Double.parseDouble(textAnswer.getText());

                            textAnswer.setText(df.format(answerd));

                        }

                        if (key == 2) {

                            prekey = -1;

                            answerd *= Double.parseDouble(textAnswer.getText());

                            textAnswer.setText(df.format(answerd));

                        }

                        if (key == 3) {

                            prekey = -1;

                            if (Double.parseDouble(textAnswer.getText()) == 0) {

                                textAnswer.setText("除数不能为零");

                                clickable = false;

                            } else {

                                answerd /= Double.parseDouble(textAnswer.getText());

                                textAnswer.setText(df.format(answerd));

                            }

                        }

                    }

                    prekey = 5;

                }

                //"%"操作,对第二个操作数除以100

                if (temp == buttonMod && clickable == true) {

                    if (answerd == 0) {

                        String s = textAnswer.getText();

                        textAnswer.setText(s);

                    } else {

                        boolean isDot = false;

                        for (int i = 0; i < textAnswer.getText().length(); i++)

                            if ('.' == textAnswer.getText().charAt(i)) {

                                isDot = true;

                                break;

                            }

                        //如果是double数,除100

                        if (isDot == true) {

                            double dtemp = Double.parseDouble(textAnswer.getText());

                            dtemp = dtemp / 100.0;

                            textAnswer.setText(Double.toString(dtemp));

                        } else {

                            //如果是int数但能被100整除,则去掉末尾两个零

                            if (Integer.parseInt(textAnswer.getText()) % 100 == 0) {

                                int itemp = Integer.parseInt(textAnswer.getText());

                                itemp /= 100;

                                textAnswer.setText(Integer.toString(itemp));

                            }

                            //如果是int数,但不能被100整除,则按double数处理

                            else {

                                double dtemp = Double.parseDouble(textAnswer

                                        .getText());

                                dtemp = dtemp / 100.0;

                                textAnswer.setText(Double.toString(dtemp));

                            }

                        }

                    }

                }

                //开根号运算

                if (temp == buttonSqrt && clickable == true) {

                    String s = textAnswer.getText();

                    if (s.charAt(0) == '-') {

                        textAnswer.setText("负数不能开根号");

                        clickable = false;

                    } else

                        textAnswer.setText(Double.toString(java.lang.Math

                                .sqrt(Double.parseDouble(textAnswer.getText()))));

                }

                //倒数运算

                if (temp == buttonDao && clickable == true) {

                    if (textAnswer.getText().charAt(0) == '0'

                            && textAnswer.getText().length() == 1) {

                        textAnswer.setText("零不能求倒数");

                        clickable = false;

                    } else {

                        boolean isDec = true;

                        int i, j, k;

                        String s = Double.toString(1 / Double

                                .parseDouble(textAnswer.getText()));

                        for (i = 0; i < s.length(); i++)

                            if (s.charAt(i) == '.')

                                break;

                        for (j = i + 1; j < s.length(); j++)

                            if (s.charAt(j) != '0') {

                                isDec = false;

                                break;

                            }

                        if (isDec == true) {

                            String stemp = "";

                            for (k = 0; k < i; k++)

                                stemp += s.charAt(k);

                            textAnswer.setText(stemp);

                        } else

                            textAnswer.setText(s);

                    }

                }

                //按下"+/-"按钮时处理

                if (temp == buttonAddAndSub && clickable == true) {

                    boolean isNumber = true;

                    String s = textAnswer.getText();

                    for (int i = 0; i < s.length(); i++)

                        if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'

                                || s.charAt(i) == '.' || s.charAt(i) == '-')) {

                            isNumber = false;

                            break;

                        }

                    if (isNumber == true) {

                        //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉

                        if (s.charAt(0) == '-') {

                            textAnswer.setText("");

                            for (int i = 1; i < s.length(); i++) {

                                char a = s.charAt(i);

                                textAnswer.setText(textAnswer.getText() + a);

                            }

                        }

                        //如果当前字符串第一个字符不是符号,则添加一个符号在首字母处

                        else

                            textAnswer.setText('-' + s);

                    }

                }

                //计算器有关内存操作

                //'MC'的操作,将内存清0

                if (temp == buttonMC && clickable == true) {

                    memoryd = memoryi = 0;

                    textMemory.setText("");

                }

                //'MS'的操作,将当前文本框内容保存入内存,显示'M'

                if (temp == buttonMS && clickable == true) {

                    boolean isDot = false;

                    textMemory.setText(" M");

                    for (int i = 0; i < textAnswer.getText().length(); i++)

                        if ('.' == textAnswer.getText().charAt(i)) {

                            isDot = true;

                            break;

                        }

                    //如果是double,则存入memoryd(double存储器)

                    if (isDot == true) {

                        memoryd = Double.parseDouble(textAnswer.getText());

                        memoryi = 0; //保证存储器中存放最新的值

                    }

                    //如果是int,则存入memoryi(int存储器)

                    else {

                        memoryi = Integer.parseInt(textAnswer.getText());

                        memoryd = 0; //保证存储器中存放最新的值

                    }

                }

                //'MR'的操作,将存储器中的信息输出

                if (temp == buttonMR && clickable == true) {

                    if (memoryd != 0)

                        textAnswer.setText(Double.toString(memoryd));

                    if (memoryi != 0)

                        textAnswer.setText(Integer.toString(memoryi));

                }

                //'M+'的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器

                if (temp == buttonMAdd && clickable == true) {

                    boolean isDot = false;

                    for (int i = 0; i < textAnswer.getText().length(); i++)

                        if ('.' == textAnswer.getText().charAt(i)) {

                            isDot = true;

                            break;

                        }

                    if (memoryi != 0) { //存储中是一个int型数

                        if (isDot == false) //被加数是一个int型数

                            memoryi += Integer.parseInt(textAnswer.getText());

                        else { //被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零

                            memoryd = memoryi

                                    + Double.parseDouble(textAnswer.getText());

                            memoryi = 0;

                        }

                    } else

                        memoryd += Double.parseDouble(textAnswer.getText());

                }

                //按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除

                if (temp == buttonBk && clickable == true) {

                    String s = textAnswer.getText();

                    textAnswer.setText("");

                    for (int i = 0; i < s.length() - 1; i++) {

                        char a = s.charAt(i);

                        textAnswer.setText(textAnswer.getText() + a);

                    }

                }

                //按下'CE'按钮,将当前文本框内数据清除

                if (temp == buttonCe) {

                    textAnswer.setText("");

                    clickable = true;

                }

                //按下'C'按钮,文本框内数据清除,同时var,answer清0

                if (temp == buttonC) {

                    vard = answerd = 0;

                    textAnswer.setText("");

                    clickable = true;

                }

            }

            //输入中如果有操作非法,比如按下两次'+',捕获异常

            catch (Exception e) {

                textAnswer.setText("操作非法");

                clickable = false;

            }

        }

        //主函数

        publicstaticvoid main(String args[]) {

            new jsq();

        }

}

五、程序运行结果演示

计算器界面

7+8

清除

9-4

7*8

8/4

储存

使用储存值

清除储存值

2的倒数

5的百分

9的开方

六、总结

通过本次实验让我对JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法,有了进一步的了解。同时在实验过程中也发现了自己的许多不足,但通过查询对其有有了更深刻大大大的了解.

更多相关推荐:
java-计算器实验报告

计算器实验报告一实验目的1熟悉java图形用户界面的设计原理和程序结构2能设计复核问题要求的图形用户界面程序3熟悉javaawt和swing的组合4掌握常用组建的事件借口5会应用awt和swing组件进行应用程...

Java计算器实验报告

一目标通过Java程序开发实训使学生掌握面向对象程序设计Java课堂讲授的内容灵活运用到Java程序的开发与设计中二要求按时参加Java程序开发实训训练不得迟到和早退独立完成程序设计按要求撰写实践报告三详细内容...

Java课程设计报告-计算器

Java课程设计报告计算器第一部分设计的内容要求11Windows自带计算器版面设计12计算器计算功能算法实现第二部分设计思想21根据图形用户界面设计方法设计计算器版面容器类窗口Window类面板Panel类框...

java计算器实验报告

GDOUB11112广东海洋大学学生实验报告书学生用表实验名称JAVA计算器程序设计学院系学生姓名课程名称专业JAVA程序设计班级课程号完成日期学号实验地点实验JAVA计算器程序设计1实验总结刚做之前勉强还能做...

java计算器实验报告

实验报告实验名称课程名称Java程序设计学生姓名号成绩指导教师实验日期专业班级学一实验目的综合应用所学的知识分析问题解决问题提高实际编程能力及程序调试能力二实验内容及要求三实验仪器与设备Eclipse四问题分析...

java计算器实验报告

Java计算器实验报告计算机032胡勇健0309521820xx年5月5日目录1设计名称与要求2各模块功能的介绍和实现3系统的特色和不足4参考书一实验名称及其要求A名称java计算器的设计B要求1实验目的图形界...

Java计算器实验报告(包括普通型和科学型)

一计算器实验报告一实验名称及其要求A名称java计算器的设计B要求1实验目的图形界面设计熟悉javaawt包中的组件掌握图形界面设计方法理解委托事件处理模型2题意请设计并实现Windows系统中计算器的窗口及功...

java计算器项目课程设计报告(包涵源文件与类图)

计算机网络技术专业专业代码590102动态网站基础程序设计课程设计班级网站1101班学号20xx352220xx184220xx221520xx515320xx352820xx289320xx352320xx3...

java程序设计课程报告书---计算器

面向对象程序设计课程设计报告题目计算器模拟程序组成员信息任课老师成绩20xx年12月30日目录1课程设计目的31131232设计题目分析32132233课程设计内容33133244设计心得与总结75附录86小组...

java计算器设计报告

摘要本计算器是由java语言所编程设计的标准计算器可以进行十进制下的四则运算加减乘除开平方求余求倒数还可以实现二进制与十进制之间的转换通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法以便...

java计算器设计报告

设计报告课题名称计算器设计学院专业班级学号学生指导教师教务处年月日

Java简单计算器(程序设计报告)

JAVA课程设计报告哈尔滨哈商业大学JAVA课程设计课程名称课题名称简单计算器姓名学号班级宋双龙20xx5094028108级软件工程教育20xx年10月20日1一实验目的使用Eclipse软件制作简单计算器实...

java计算器实验报告(29篇)