四则运算挑战出题
四则运算(挑战出题)
实验日期:2017.6.1
实验成员:20162313苑洪铭
指导老师:娄老师、谢老师
需求分析:
每次生成的题目不能有重复
要能指定生成题目的数量
要能指定题目包含的运算符数量
实验步骤:
1. 本次实验的主要步骤
考虑题目生成过程中的去重,尤其是在题量大的情况下如何快速生成无重复的题目,是本次拓展实验的主要内容。同时这和我们上一个周所编写的四则预算有很大差别,上个周我并没有按照老师的暗示来编写程序,而是选择简单的方法来编写,但是到了这个周就成为我们编程的障碍。关于题目去重,经过讨论,认为可以从两个角度进行编译,一是从结果,二是从过程上。从结果上进行去重,需要对答案进行筛选,将答案相同的算式删去,这个方法相对比较简单。第二个方法是直接通过算式,将简化后的算式进行比较,将相同的部分删去,但这种方法就比较麻烦了,编写起来也相对比较复杂。所以这里使用第一种方法。(这里参考了张旭升同学的建议)
我的电脑java环境变量一直无法调试成功,只能在idea上运行代码,所以exp上的运行结果包括txt文件都是在结对伙伴电脑上运行的,这的确是大大拉慢了我们组的效率。我们组讨论关于去重问题,我们也考虑了过程去重这个方法,理论上通过分析算式来完成目的,但过程我们认为很麻烦,所以没有完成编译,最后对于该方法,我们选择暂时搁置。
2.运行过程截图(与之同时生成的还有相应分级的report):
3.UML类图:
4.所遇到的困难及解决方法:
本次实验是在四则运算的基础上完成的,需要加入的是自动生成题目包括去重环节,这两点算是难点。去重环节上面解释了,同时因为我们上一次的四则运算代码的问题,我们没有用原本的代码,而是换了一个代码,在生成题目的环节,刑天钺同学的建议是建立了一个GiveQuestions类进行输入。
结合这两个环节,可以完成自动生成题目并去重。
5.结对情况:
打分情况我给自己打57分给结对伙伴打43分,因为代码的主干主要是我在编写而之后的代码的各种修饰都是我们两个一起做,并且伙伴给了我很大帮助。
刑天钺由于没有在windows下调试java环境变量,所以博客中的exp无法正常运行。对于环境变量的配置,在查阅了网上的资料后,完成了配置(这里需要在PATH上调整路径,加入jdk的路径,而且需要idea所配置的jdk,才能正确配置路径)
成功后,结果如图
或许这在老师们看来属于低级错误,但是,老师们让我们用了如此多的软件,很多配置的路径,我们真的无法做到一一记明,如果可以,希望可以尽可能减少不必要的软件的安装要求。同时,到了学期末了,其他学科的结课论文之类的都需要占用时间,或许不能像之前那样做得特别细致了。
代码地址:https://git.oschina.net/pdds2017/yhm20162313/tree/master/src/test3?dir=1&filepath=src%2Ftest3&oid=226dc7573c069bca39f6332a0d209e0f859ea48c&sha=2455db9e16dd8f64473e110f0619fff091753df0
因为我们两个电脑本身的原因,我们没有进行过多的git,这个代码本来在结对伙伴的电脑上,他的电脑无法git,因此通过聊天软件发到我这里,我在通过虚拟机来进行上传。
6.PSP表格:
PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 2 | 3 |
· Estimate | · 估计这个任务需要多少时间 | 22.5 | 22 |
· Analysis | · 需求分析 (包括学习新技术) | 1 | 2 |
· Design Spec | · 生成设计文档 | 1 | 1 |
· Design Review | · 设计复审 (和同事审核设计文档) | 2 | 1.5 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
· Design | · 具体设计 | 2 | 2.5 |
· Coding | · 具体编码 | 2 | 3 |
· Code Review | · 代码复审 | 2 | 2.5 |
· Test | · 测试(自我测试,修改代码,提交修改) | 1.5 | 1.5 |
Reporting | 报告 | 1 | 1.5 |
· Test Report | · 测试报告 | 2 | 1.5 |
· Size Measurement | · 计算工作量 | 1 | 1.5 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 1 | 1 |