姓名 学号
张钟杰 3121005324
伊尔帕提江 3121005318

Github

结对项目github

作业概述

这个作业属于那个课程 软件工程
这个作业的要求 结对项目
这个作业的目标 实现一个自动生成小学四则运算题目的命令行程序

PSP表

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

性能分析


思路设计设计实现过程

1.主要实现的两个功能模块:出题和检查题目对错
出题
输入-n和-r控制题目个数和数值范围
根据n,r随机生成中缀表示式
将中缀表达式生成后缀表达式
判断新增表达式与前面生成的是否相同,直到生成数量达到题目要求
输出Exercise.txt文件和Answers.txt文件。
检查题目对错
输入自拟的答案Ans.txt
跟Answers.txt进行检验对错
输出Grade.txt 结果文件
2.类的说明
Main类:主函数,调用其他类
Expression类:获取输入的操作数和操作符并随机生成表达式
Calculate类:生成后缀表达式,将中缀表达式转换为后缀表达式
Check类:实现表达式结果查重功能
Function类:创建并输出Exercises.txt文件和Answers.txt文件
CheckQuestion类:检验结果对错并输出Grade.txt文件

代码说明

主函数

将中缀表达式转换为后缀表达式,可以把括号去除,进行遍历的时候,遇到操作符则与栈弹出的两个有理数进行运算即可

检查答案对错

结果测试



项目小结

这次项目一开始以为挺简单的,看完题目,简单分析之后就有了逻辑,但是在具体实现代码的时候,发现也有点难度,比如要用到栈啊,考虑如何选择表达式来进行操作,如何将数据统一进行操作运算等等,做的过程,也有和队友进行了讨论,在做项目的过程中,又学习了一些新的技术,也更加熟系用java写程序代码了,最后参考了多篇博客,综合运用,终于完成了,也学会了和队友合作完成一个项目的经验