2020软件工程作业03
软件工程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
作业目标 | 要求个人编写程序 |
作业正文 | 详见下文 |
参考文献 | 百度 |
1.Github项目地址
https://github.com/BrilliantMe001/20177601
2.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 30 |
Estimate | 估计这个任务需要多少时间 | 60 | 90 |
Development | 开发 | 40 | 50 |
Analysis | 需求分析 (包括学习新技术) | 30 | 40 |
Design Spec | 生成设计文档 | 30 | 45 |
Design Review | 设计复审 | 30 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
Design | 具体设计 | 100 | 150 |
Coding | 具体编码 | 200 | 300 |
Code Review | 代码复审 | 20 | 25 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 40 |
Reporting | 报告 | 40 | 50 |
Test Repor | 测试报告 | 50 | 40 |
Size Measurement | 计算工作量 | 20 | 30 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 720 | 970 |
3.解题思路
刚看到题目时,内心是这样的
没办法只能尝试的搞一下,尽自己的努力吧。
题目要求是设计一个数独宫,可以是三宫格到九宫格,并且在四、六、八、九宫格时,数独要考虑"宫"(数独基本元素,例如普通的九宫格数独
(81格)的分为九个小正方形,每个小正方形称为一个宫。)已知的整数填写对应的数字,待填入的格子用0代替。
说实话刚开始是没什么思路的,然后去百度看一下,知道这个地方要用到深度优先和回溯算法的,但对于算法我也不是很了解,没办法然后只能
又去百度。
4.实现设计
上图是代码中输入数独的方法,在数独的这个类里定义了输出方法。
这个方法是用来检测数独行、列、宫是否有相同的数字。三、五、七阶数独不需要判断宫。
该图是深度优先搜索算法,它的作用是用来检测数独下一个格子的数,如果都没满足,则回溯。
5.程序性能分析
静态检测
性能分析
总体来说,我觉得没有什么需要改进的地方,在输入时,事先做好阶数的模板,然后粘贴复制,在性能分析时,用时会少一点。
6.设计实现过程
3阶数独的效果展示
6阶数独计算
9阶数独计算
7.心路历程与收获
在本次的作业中自己确实还有很多不足的地方,很多地方自己也是一头的雾水,没得办法,只能请教大佬和问百度君了。
总的来说只是粗略的完成了作业,还有些要求没有实现。此时此刻我深刻的理解到了一句话,这句话也能形容我此时的状态。
“革命尚未成功,同志仍需努力”,原来自己不懂的还有很多,还得继续好好学,学习之路永无止境。
8.自评
作业头 | GitHub地址 | 分析和消除警告 | psp表格 | 解题思路描述 | 设计实现过程 | 改进性能 | 代码说明 | 心路历程和感想 | 总分 |
---|---|---|---|---|---|---|---|---|---|
2 | 1 | 0.5 | 1 | 0.5 | 0.5 | 0.5 | 0.5 | 1 | 7.5 |