这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/ |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
这个作业的目标 | 数独 |
作业正文 | 如下 |
其他参考文献 | https://www.cnblogs.com/HelloXHD/p/11582099.html |
1.Github项目地址 https://github.com/b474584977/test1/tree/master
二psp
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 30 |
Estimate | 估计这个任务需要多少时间 | 2100 | 2210 |
Development | 开发 | 2100 | 2210 |
Analysis | 需求分析(包括学新技术) | 480 | 400 |
Design Spec | 生成设计文档 | 30 | 60 |
Design Review | 设计复审 | 30 | 20 |
Coding Standard | 代码规范(为目前的开发指定合适的规范) | 30 | 40 |
Design | 具体设计 | 60 | 90 |
Coding | 具体编码 | 900 | 930 |
Code Review | 代码复审 | 30 | 15 |
Test | 测试(自我测试,修改代码,提交修改) | 120 | 180 |
Reporting | 报告 | 240 | 120 |
Test Repor | 测试报告 | 120 | 120 |
Size Measurement | 计算工作量 | 30 | 15 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 240 | 240 |
合计 | 2100 | 2210 |
三.解题思路
思路比较常规,回溯法,就是在已有的限制条件下,按顺序尝试1-9在格子中的填充,如果在尝试过程中填写到了数独盘的最后一格,则代表数独已经解出来了(此方法仅限提供的数独盘只有唯一解,如果有多解也只能输出一个),如果到达某格无法继续填充后续数字,需要移除之前放置的数字,然后继续尝试,
四代码输出方法
![](https://img2020.cnblogs.com/blog/1957474/202003/1957474-20200329145303835-1045062842.png)
五关键代码
回溯方法
![](https://img2020.cnblogs.com/blog/1957474/202003/1957474-20200329145514142-57637028.png)
解数独方法
Initialize(rowOccupied);
Initialize(colOccupied);
Initialize(boxOccupied);
是个循环初始化占位数组方法Initialize,用于计算完一个数独盘后将用来标记占位的三个数组重新归0;
7测试
在cmd这一块还是很多没有明白,继续研究开发,会继续修改。
8代码审查
总洁
我在数独这一块完全是一个小白,函数我学了很久,然后那个cmd要去掉包才能实现,反正我还会来修改的,现在还在改一下,在思考要不要下载ida,性能优化还是很多不懂