结对编程项目:带UI的小初高数学学习软件
作者:互联网
结对编程
摘要
本次结对编程,由我和方浩楠同学共同完成。我们采用了JAVA GUI来实现“带UI的小初高数学学习软件”,其中的UI设计、登入系统、注册账号等功能由方浩楠同学实现,出题、解题、设置选项等功能由我实现。后期,我们共同完成了前后端的合并,以及软件的改进和测试。
实现结对编程项目的过程
1.复用个人项目中的代码
本次结对编程,复用了我们个人项目中的出题的部分。包含了SimpleOperation和CreateSingleQuestion两个类。
SimpleOperation主要实现了在出题之前的预备工作:
1.生成一定范围内的随机数
2.生成题目指定范围内的操作数
3.加入括号
4.加入平方,开方
5.加入三角函数
6.加入运算符"+,-,*,/"
CreateSingleQuestion通过调用并且组合SimpleOperation中的方法,实现:
1.为小学生成一道题
2.为初中生成一道题
3.为高中生成一道题
通过复用这两个类,轻松的实现了生成题目的要求。
2.计算题目并生成四个选项
本次项目还要求“界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题“。
因此,接下来还需要进行一下操作。先根据题目得出正确答案;根据一个正确答案,生成其他三个选项。包含了ExpressionCalculate,SolveQuestion,CreateOptions三个类。
ExpressionCalculate主要实现操作符的计算
- 计算2,已确定表达式含有2,才调用
- 计算√,已确定表达式含有√才调用
- 计算sin,确认表达式含有sin时才调用
- 计算cos,确认表达式含有sin时才调用
- 计算tan,确认表达式含有sin时才调用
SolveQuestion主要通过调用并组合ExpressionCalculate中的方法来实现表达式的计算
CreateOptions以一个正确答案(String)作为参数,生成三个选其他选项,并且返回一个长度为五的String类数组,数组前四个放四个选项,最后一个存放正确答案对应的选项。
3.加入选择题目类型、做题、反馈得分这三个部分的UI
选择题目类型UI,创建了一个SelectTypeUI类。加入了三个JButton,分别对应着小学类型,初中类型,高中类型的选择。
做题UI,创建了QuestionUI类。先选择题目数量,再进行选择题。其中,QuestionUI类的调用,使用了它的传参构造方法(参数为题目的类型:小学,初中,高中)。
反馈分数UI,创建了ScoreUI,通过累计之前的做题结果,显示分数。并且可以在这个界面选择继续做题,或是退出程序。
4.其他部分,详见方浩楠同学的博客。
总结
经验教训
本次试验中有几个方面让我印象深刻。第一个是在实现UI界面时,我独自通过JAVA写页面,不仅花费大量时间,并且实现的UI十分不美观。好在方浩楠同学,懂得使用Eclipse插件来简化UI设计。这个名叫“windowbuilder”的插件,可以使用图形化的操作界面,来增加Button,Label等组件,并且可以拖动并修改它们的大小,并且生成对应的代码。这大大缩短了我们完成项目的时间。
第二个是在通过方法计算表达式时,我仍然是独立的编写代码,希望实现小学,初中,高中题目的计算,但是实现起来依然很复杂,而且代码的bug很多。然后得知了逆波兰表达式,所以上网查找了代码。最后只通过简单的几行代码,就能实现“+,-,*,/,()”的运算。
收获
通过上面两个教训,我明白了写代码很忌讳闭门造车,应该和队友多多讨论。对于已经有前人实现的功能,没必要自己再写一遍,应该多利用库文件,和开源的一些资源,把重点放在其他功能的实现上。
标签:选项,结对,调用,题目,实现,小初,UI,表达式 来源: https://www.cnblogs.com/baoweijie99/p/13789237.html