Github地址:https://github.com/Ligoes/migong/blob/master/Sudoku.cpp
1、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 0.5 | 1.0 |
Estimate | 估计这个任务需要多少时间 | 0.5 | 0.5 |
Development | 开发 | 72 | 96 |
Analysis | 需求分析(包括学习新技术) | 1.0 | 1.5 |
Design Spec | 生成设计文档 | 0.5 | 0.5 |
Design Review | 设计复审 | 0.5 | 0.5 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 1.0 | 2.0 |
Design | 具体设计 | 5.0 | 6.5 |
Coding | 具体编码 | 24 | 72 |
Code Review | 代码复审 | 2.0 | 2.5 |
Test | 测试(自我测试,修改代码,提交修改) | 5.0 | 5.0 |
Reporting | 报告 | 1.0 | 2.0 |
Test Repor | 测试报告 | 1.0 | 1.0 |
Size Measurement | 计算工作量 | 0.2 | 0.2 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 1.5 | 2.5 |
Total | 合计 | 115.7 | 193.7 |
2、思路描述
数独玩得很少,只是知道有这种游戏还有基本的游戏玩法。到真正要去写解法时才发现
然后就百度去查,发现了一篇数独的各种解法,第一种直接看。。。算了。从中选出几个自己可能能够实现的,一个个去试试。
3、解题过程
3、5、7宫格是一种解法相对来说比较简单一点,而4、6、8、9宫格需要判断宫内是否有数字重复的问题先写个函数判断当前数字在它所在的那一行与列是否有数字重复,需要写个函数来对宫进行判断,最后用DFS深搜算法遍历回溯。代码的重点要放在填入数的阶段。
4、思维导图
其中转为数组后内的操作
5、实现
①先进行宫的判断函数
②然后对行和列进行判断
③再DFS算法对数进行填入
④输出文本
三宫格
四宫格
五宫格
六宫格
七宫格
八宫格
九宫格
5、静态分析
6、结合构建之法谈心路历程和感想
最开始以为是比较简单的,因为毕竟也玩过数独的游戏,对于数独的解法也略知一二,但是当真正开始做之后,只有一个表情包
文件的读取和输出是一个比较关键的部分,一个人在家真的是困难重重,电脑的崩溃差点把我也送走了,
最后还是通过这生病的伙计完成了这次作业。幸好还是有一位朋友也是学本专业的,在拉黑的边缘疯狂试探,这个作业的完成也有他的一部分吧。
啥也不说了,伙计要重装了!
======================================================
由于电脑系统上次意外重复开关机,导致现在有点不稳,VS做测试时各种闪退,只能交完这次作业后重装系统,后面再做分析。本次作业用的是Dev_c++为作业工具,性能测试也会直接退出。望见谅。
======================================================