结对编程1-四则运算GUI实现(58、59)

时间:2021-11-27 10:47:10

题目描述

我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
2.有计时功能,能显示用户开始答题后的消耗时间。
3.界面支持中文简体/中文繁体/英语,用户可以选择一种;

需求分析

1.将上次基于控制台的代码改写为GUI界面;
2.需要添加计时的功能方便用户了解自己的做题时间;
3.能够记录历史的对错总数。

coding地址

https://coding.net/u/wumingxiang/p/GUI_szys/git

程序设计

结对编程1-四则运算GUI实现(58、59)

计时功能代码:

        now.setHours(0);
        now.setMinutes(0);
        now.setSeconds(0);
        final Timer timer = new Timer(1000, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Date now2 = new Date(now.getTime() + 1000);
                now = now2;
                SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
                labTime.setText(formatter.format(now));
            }
        });

历史纪录存取功能

                try {
                    writer = new BufferedWriter(new FileWriter(new File("history.txt")));
                    writer.write(a.toString());
                    writer.newLine();
                    writer.write(b.toString());
                    writer.newLine();
                    writer.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
        try {
            reader = new BufferedReader(new FileReader(new File("history.txt")));
            rightNum = reader.readLine();
            errorNum = reader.readLine();
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        labRight.setText("历史正确量:"+ rightNum );
        labError.setText("历史错误量:"+ errorNum );
    }

功能展示

点击运行出现界面:

结对编程1-四则运算GUI实现(58、59)

点击开始答题,时间开始跳动:

结对编程1-四则运算GUI实现(58、59)

点击提交答案,自动判断对错:

结对编程1-四则运算GUI实现(58、59)

再次运行程序,历史对错总数发生改变:

结对编程1-四则运算GUI实现(58、59)

团队合作

结对编程1-四则运算GUI实现(58、59)

PSP

结对编程1-四则运算GUI实现(58、59)

小结

由于上次一次实验没有编程语言要求,我们都是用C++语言编写的,这次需要实现GUI界面,没掌握C++语言的界面编写,所以将我上次的代码以类似的思路改写成java语言代码,java的界面代码花费了我们许多时间,查了许多资料,这次界面使用的是AWT继承架构,因为掌握的不是很熟练,界面较为简单,界面创建完成后,后台的生成算式,判断结果等功能没多久就完成了。