四则运算题目生成器——项目笔记

这个程序,能够实现生成彼此不重复的题目,并且计算出相应答案答案,以及根据题目计算结果的功能。

预估时间及实际花费时间表格


设计以及调试花费了大量的时间。

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

需求分析

这次作业大体上可以分为三个部分的实现。

首先,根据参数生成满足要求的四则运算题目

其次,计算出生成题目的答案

最后,根据输入的两个文件进行评测

同时,还要求生成的题目不能有重复,因为重复的判定十分困难,所以构思对应的算法和存储数据的数据结构,花费了大量的时间和精力。

性能分析

测试用例

-n 1 -r 1 -e exercise.txt -a answer.txt

-n 5 -r 1 -e exercise.txt -a answer.txt

-n 10 -r 1 -e exercise.txt -a answer.txt

-n 10 -r 2 -e exercise.txt -a answer.txt

-n 1 -r 10 -e exercise.txt -a answer.txt

-n 10 -r 10 -e exercise.txt -a answer.txt

-n 100 -r 10 -e exercise.txt -a answer.txt

-n 1 -r 100 -e exercise.txt -a answer.txt

-n 10 -r 100 -e exercise.txt -a answer.txt

-n 100 -r 100 -e exercise.txt -a answer.txt

总结与收获


这个个人项目,是软件工程课程的第一次作业。

题目的要求很多而且实现起来并不容易。在最开始做题的时候,心中并没有一个很好的轮廓,就开始着手了代码的编写。之后的过程证明了这种做法是完全错误的。因为每增加一个功能,几乎都会发现之前的数据结构的设置,或者相应的函数都并不能完美的适合新的功能,需要回过头去重新修改,这无形之中大大的增加了工作量,也让程序的进展十分的缓慢。

完成这次个人项目的过程中,我进一步体会到做工程与写小程序的区别。

做工程首先要有一个整体的分析与规划,确定程序的需求以及大体的解决步骤。之后对于每一个小的步骤,确定适合的算法以及相应的数据结构。当完成了整个程序的构思,还需要进行检查,以避免出现差错。最后才是代码的编写工作。

希望之后的作业不要再出现这次的情况,盲目地开始编写真是痛苦万分,而且事倍功半,这次的教训已十分深刻。

原文地址:https://www.cnblogs.com/wx1306/p/4831901.html