【软件工程】四则运算自动生成器

  • 四则运算自动生成器


  • 需求分析

    我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
    1.能够自动生成四则运算练习题;
    2.可以定制题目数量;
    3.用户可以选择运算符;
    4.用户设置最大数(如十以内、百以内等);
    5.用户选择是否有括号、是否有小数;
    6.用户选择输出方式(如输出到文件、打印机等);
    7.最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)。

  • 结对编程角色分配

    驾驶员:孙翔天【本人】
    主要任务:

    1.能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至coding.net或者GitHub代码托管系统中(15分)
    2.能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结,并且上传和队友工作时的照片(5分)

    导航员:吕政国
    主要任务:

    1.能够辅助驾驶员完成全部代码工作,并且为关键函数选用合适的覆盖标准设计测试用例,并编写代码进行单元自动测试(10分)
    2.能够根据上次作业的代码检查表对驾驶员的本次工作进行评价(5分)
    3.能够对本次工作完成500字以上的总结(5分)



  • 功能模块说明

题目操作—Operation.java

在Operation类内部,实现了创建与显示题目,题目生成文件。

利用Random函数随机生成符号及数字

自动生成括号

GUI图形界面—MyGUI.java
在GUI类中,我们按照本次题目要求制作了这个四则运算自动生成器的界面,初次拿到我们觉得没有丝毫头绪,尤其是对于图形化界面来说,只能根据网上的教程一步一步摸索,由于时间紧凑,它实现了题目基本要求,包括自动生成50道题目以内的加减乘除四则混合运算,选择运算符,设置10~100的最大值,选择小数或者括号等功能。
UI界面如下:

自动生成50道运算题测试:

打印至文件测试:


  • 做个总结

    这是我第一次做这种两个人结对编程的工作,由于本次作业时间紧凑,我们首先选定了做第一个四则运算的题目,并迅速确定了,由我担任“驾驶员”的角色,吕政国担任“导航员”。我和我的导航员只有两天晚上进行题目讨论和代码实现,所以可能功能和界面都不是相对的完善,而且大部分都需要结合网上的参考资料照猫画虎,我和导航员有些地方可能还是不求甚解。在我编写代码的过程中,有导航员在身旁监督,会不断指出自己编写代码中和别人不同的习惯。自己一个人编程的时候,可能会由于算法的不完善导致思路中断;在两个人的结对编程中,例如如何添加括号上,我们进行了多种方式的讨论,最终选定了用三个字符段temp1,temp_mid,temp_2来判断两个括号的添加位置。

    在设计图形化界面的时候,由于我们两个都没接触过有关图形化GUI的学习,我们从网络开始了第一次学习,在这里,我们模糊了驾驶员与导航员的区分,全都变成了车辆维修员,一起开始学习。初步了解了Swing容器和Jframe,Jpanel组件等知识,初次知道了图形界面原来也是自己可以写出来的,感觉非常神奇。
    参考资料:
    (1)Java-GUI快速入门
    (2)Java图形化界面设计实战练习
    (3)如何实现四则运算题目
    以下是结对编程照片:

posted @ 2019-05-06 21:20  cocoaman  阅读(1042)  评论(0编辑  收藏  举报