软工作业3:实现小学四则运算题的生成

发布时间 2023-09-28 12:06:25作者: 你好的俊峰

实现四则运算题的自动生成

开发人员:

学号 姓名
3121005088 黄俊强
3121005081 陈梓杨

 

Github仓库:链接

 

1. 快速了解

这个作业属于哪个课程前往课程
这个作业要求在哪里 作业要求
这个作业的目标 熟悉组队开发项目的完整流程

 

2. 程序的功能需求点:

  • 1.使用 -n 参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目。
  • 2.使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
  • 3.生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1− e2的子表达式,那么e1≥ e2。
  • 4.生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数
  • 5.每道题目中出现的运算符个数不超过3个。
  • 6.程序一次运行生成的题目不能重复
  • 7.在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件
  • 8.程序应能支持一万道题目的生成。
  • 9.程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计

 

3. 程序运行效能图

image-20230926153825407

 

4. 程序设计实现

  • 程序的类结构

    image-20230927143729775

     

    • 流程图

    image-20230927152443640

     

5. 单元测试

image-20230927164557014

  • 生成的题目

    image-20230927164634063

  • 生成的参考答案

    image-20230927164723082

  • 作答

    image-20230927164816161

  • 批改

    image-20230927164855655

这里只是极小题量的生成,主要是为了验证程序的雏形是否完成,由此可见,题目和参考答案生成以及对未作答或者作答错误的题目批改功能正常!

下面就是大题量的检测了:

首先,是大量题目和参考答案的生成:

image-20230927165237755

 

这里为了偷会懒(毕竟不可能全部一万道题都自己做了吧),就另外写了一个做题的小项目,将这一万道导入,再让其输出结果,复制粘贴到1.txt文件

1.txt

image-20230927170038937

批改功能:

grade.txt文件

image-20230927165525697

虽然只是小学四则运算题,大部分还是程序做的,但全对100的正确率,看着不可谓不舒服!!!

 

6. 项目小结

因为这次是双人组队开发项目,不同于单人开发,沟通就显得格外重要了,还有一个好的队友,是真的可以让开发这个过程变得有趣,两个人都有相同的目标,遇到问题不急躁,出了错,是安慰、一起解决,而不是埋怨!正是这些使得我们的开发特别顺利、舒心!!

本次项目其实还有很多可以深入开发的地方:(类似一个考试系统,或者私人化的刷题网站)

    1. 界面化

    2. 支持更多的题型

    3. 支持从外部导入试题库

    4. 支持多人同时作答

    .......

以上这些都是可以继续努力的地方,因为我们也是自学java开发的,所以有时间,我们应该会考虑一手,可以往下继续开发的!

 

7. 程序实现的PSP表格

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