zoukankan      html  css  js  c++  java
  • 软件工程(2018)第二次结对编程

    四则运算生成器

    一.题目描述

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

    二.问题分析

      拿到问题我首先做的是和我的结对伙伴王永利同进行学商量,找出针对要求的应对方案,最终决定由我但任驾驶员 ,她担任领航员。该题主要分为两个部分,界面设计和随机生成四则运算的方法。
      (1).针对四则运算的方法:首先需要获取随机数的类,里面包随机整数和随机小数的获取;在获取到随机数之后需要随机获取运算符,我采用了一个字符串保存用户选择的运算符,在通过随机整数获取字符串中的元算符;有了随机数和运算符之后问题行对就简单了许多,只需要进行组合即可,也就是符号表达式的生成了;题目中没有要求需要就算出最终结果,为了方便用户的使用,我对符号表达式进行了解析并计算出其结果,如果用户需要可以进行答案生成;当然如果仅限于在电脑上生成题目和答案,那这个程序就失去了其真正的意义了,为了进一步的完善,我添加了最后一项功能,将生成的题和答案输出到了计算机本地文件,这样一来就显得很方便了不是吗?
      (2).针对界面设计方面:界面的设计和美化由我的结对伙伴王永利同学负责,我负责代码编写框架。由于第一次用Java编写界面,如何生成窗口?如何在窗口中添加按钮和文本框?以及如何获取按钮的响应和文本框的内容?都成为了本次作业的难题;在我坚持上网寻找解决方法和同学的帮助下我们完成了最终的作业要求。
      源代码:ArithmeticGenerator

    三.结果展示

      本次作业我采取的是Java编程,开发工具是MyEclipse

      (1).界面视图

      图片名称

      (2).输出数据以及选择

      图片名称

      (3).生成小数多项式

      图片名称

      (4).生成整数多项式及结果

      图片名称

      (5).输出到电脑文件中

      此处我默认生成在D/test/ArithmeticGenerator的文本文档中(如果有兴趣的可以添加文本框输入生成的目的地址,此处不予考虑)
      图片名称

    四.任然存在的Bug和不足

      (1).Bug1---当用户同时选择了除法和减法的时候,如果减法在括号中有可能出现同时生成两个一样的整数或小数进行相减,从而出现除0的错误。目前能力有限,想了很久没能解决。
      (2).不足1---目前的能力有限,只能实现含有括号的三项式,不能生成含有括号的四项式、五项式......等。(不要的括号的很好写)
      (3).不足2---目前只能生成整数整数的运算,小数与小数的运算,没有实现整数与小数的混合运算。(主要是没时间了,也有点不想写了)
      (4).不足3---不能实现点击一下相应的题目就给出对应的题的答案,这个用Java实现很麻烦。

    五.对伙伴的评价

      这是第二次和王永利同学合作了,也可能是最后一次合作了,在此次作业中王永利同学作为领航员,辅助我完成了设计与编写。在结对编程过程中,除了驾驶员要有较强的编程能力外,一个优秀的领航员也是非常中要的。王永利同学主要负责是设计界面的排版和布置,以及负责写方法的测试类,而这也是代码后期检查的必要过程,检测函数的功能是否能达到预期的功能,所以其重要性也是不言而喻的。在编程的过程中,她帮助我复审代码,减少编程过程中Bud的出现,时常提醒我在编程的过程中无意犯下的语法或者简单的小错误,始终保持着清晰的头脑;当我遇到困难的时候时常鼓励我,使我重新鼓起了勇气;她认真的完成她负责的功能和事务,态度认真思维缜密;他在编写测试类的时候也给我提出了许些小问题,即时的帮助我完善代码的功能;综合上述,我觉得这两次我们的合作让我们感到很愉快。

    六.总结

      在此次的作业中,我们两个都获得了颇多的感触,也清楚的意识到我们自身的不足,和别人的差距。让我影响最深刻的还是界面的编程,第一次接触界面编程虽然过程很困难,但是收获就不言而喻了,让我学会了创建窗口,在窗口中如何添加文本框和按钮,如何添加按键的监听和获取文本框的内容,以及如何将控制器的输出放进窗口文本框中显示,并输出到电脑文件中;对此都是对我自身的提高和帮助。

    七.结对编程过程中的合作留念

      图片名称

  • 相关阅读:
    mysql备份监控脚本
    关于ibatis的缓存的
    一些好用的软件和工具
    一,关于mongDB+SpringMVC【org.springframework.data.mongodb.core.MongoTemplate】
    java中的String内存分配原理
    java条件结构
    java运算符与选择结构
    JAVA变量补充
    JAVA变量
    java基础01
  • 原文地址:https://www.cnblogs.com/ZhangyiA/p/8848317.html
Copyright © 2011-2022 走看看