2020软件工程作业03
| 软件工程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
|---|---|
| 作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
| 作业目标 | 实现一个数独命令行程序 |
| 作业正文 | 见下文 |
| 其他参考文献 | 百度 |
Github 项目地址:https://github.com/maoliu1/shudu1
PSP 表格:
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 45 |
| Estimate | 估计这个任务需要多少时间 | 30 | 60 |
| Development | 开发 | 40 | 30 |
| Analysis | 需求分析 (包括学习新技术) | 60 | 70 |
| Design Spec | 生成设计文档 | 20 | 20 |
| Design Review | 设计复审 | 20 | 30 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
| Design | 具体设计 | 60 | 60 |
| Coding | 具体编码 | 120 | 180 |
| Code Review | 代码复审 | 120 | 160 |
| Test | 测试(自我测试,修改代码,提交修改) | 100 | 125 |
| Reporting | 报告 | 30 | 45 |
| Test Repor | 测试报告 | 25 | 30 |
| Size Measurement | 计算工作量 | 20 | 20 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
| 合计 | 725 | 935 |
1.解题思路
首先我们要了解什么是数独。数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。我们可以先从三宫格开始,然后进阶到九宫格。其中三宫格,五宫格,七宫格可以不用考虑宫,但四宫格,六宫格,八宫格,九宫格需要考虑宫,宫中的每一个数字不能重复。每两个盘一间空格分开,每两个小格之间空格分开。代填入格子用零代替。输出有两种可能,有答案,和无解。
性能分析





单元测试
测试用例








关键代码展示



心路历程
刚开始接到这个任务内心还是很难受的,对于我们这个小白,一下子真的感觉触到知识盲区了。数独游戏一直也是我在玩的一款游戏,没想到有一天要我自己来写个数独程序,数独游戏以后可能不会再爱了。
这次任务的困难之处仍然在代码上,刚开始上网搜看了许多人的代码,从中知道回溯算法,奇怪的知识又增加了。技术小白的我,只能看着别人的代码,自己跟着编码学习,有时候这些代码连看懂都很吃力。这次作业,虽然算完成了,但离真正的标准还是不够,在之后还是得就这个任务多多完善,直到标准。


浙公网安备 33010602011771号