结对项目

结对项目

班级 19网34
作业要求 作业要求
作业目标 实现一个自动生成小学四则运算题目的命令行程序,可以控制生成题目的个数和题目中数值的范围,以及支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计。

陈浩芝3119005364
郑耿松3119005396
Github地址

一. PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 810 770
Estimate 估计这个任务需要多少时间
Development 开发
Analysis 需求分析 (包括学习新技术) 60 60
Design Spec 生成设计文档
Design Review 设计复审 (和同事审核设计文档) 30 30
Coding Standard 代码规范 (为目前的开发制定合适的规范) 40 20
Design 具体设计 60 40
Coding 具体编码 360 420
Code Review 代码复审 120 80
Test 测试(自我测试,修改代码,提交修改) 60 50
Reporting 报告 30 40
Test Report 测试报告
Size Measurement 计算工作量 20 20
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 10
合计 810 770

二.设计

主要的类

1.ExerciseCreate类用于输入参数,其中args[0],args[1]为两个参数。
2.Exercise类的exercise()方法用于生成题目文档和答案文档,被ExerciseCreate类调用。
3.ExerciseCheck类用于校对答案,其中args[0],args[1]为两个参数。
流程图如下:

三.代码设计

1.这一块代码实现了生成一道题目的过程,其中hash存储以往的式子,若生成重复的算式则重新生成。


2.运用数学知识,整数可以看做分子为1的分数,将所有算数都当成分数计算,于是通过对符号的分类可以得到一个最终为分数的答案,此代码块可算出答案的分子与分母,再通过一个约分方法yuefen()得到最终的答案。



3.通过readline()方法读取两个文件的每一行,通过replaceAll()方法去掉空格后进行比较,将正确和错误的题目序号分别存储到两个list数组,就可以输出正确题目和错误题目了。

四.测试

输出10000道题目


校对题目答案

五.性能分析

六.项目总结

陈浩芝:通过本次结对项目的练习我体会到有同伴的好处,当有地方不懂时可以互相沟通解决。本次项目我负责算式出题这一块,一开始在网上找资料,发现了一个外部包可以直接算出字符串的算式,兴冲冲的就用了,结果发现算出来的结果只有整数部分,不能表示为分数,只能重新思考,最后我想到整数可以看做分子为1的分数,只要将每个数都看成分数就容易求解了。最后不断改进,形成了一个尚且可行的项目。
郑耿松:这次我负责的是答案校对这一部分内容,在找到文档每一行是一个答案的特点后,我通过readline()这个方法读取exercisefile.txt和answer.txt的每一行进行比较,这样就能找出exercisefile.txt中哪些题目答案正确,哪些错误了。

posted @ 2021-10-26 00:12  glorious随心  阅读(46)  评论(0编辑  收藏  举报