| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| **这个作业要求在哪里 ** | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10458 |
| 作业目标 | 本次作业要求个人编写程序-数独 |
| ** 作业正文 ** | 如下文所示 |
| 参考文献 | 数独问题之排除法和唯余法 |
GIThub项目地址:
PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
| Planning | 计划 | 20 | 30 |
| Estimate | 估计这个任务需要多少时间 | 20 | 30 |
| Development | 开发 | 3 | 3 |
| Analysis | 需求分析 (包括学习新技术) | 1 | 1 |
| Design Spec | 生成设计文档 | 1 | 2 |
| Design Review | 设计复审 | 1 | 2 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
| Design | 具体设计 | 1 | 1 |
| Coding | 具体编码 | 1 | 1 |
| Code Review | 代码复审 | 1 | 3 |
| Test | 测试(自我测试,修改代码,提交修改 | 2 | 4 |
| Reporting | 报告 | 2 | 3 |
| Test Repor | 测试报告 | 2 | 3 |
| Size Measurement | 计算工作量 | 2 | 3 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 2 | 3 |
| 合计 | 20 | 30 |
想法与构思
数独就是个大的九宫格,每个九宫格又是一个小的九宫格,这个小的九宫格里面是1-9这九个数字,唯一且不重复。数独的目的就是根据给定的几个已知格子内的数字去填充大量的其他格子中的未知数字(1-9),且要保证,最外层的大九宫格的每一行、每一列都是1-9这9个数字,且大九宫格内的每个小九宫格也都是1-9这9个数字。都是唯一、不重复。在网上查阅资料结合之前学过的算法最后采用了回溯遍历:设置一个三维数组,充当标记值,用排除法利用已知数据,挨个排除每一行,每一列,每一宫的可能值,直到只剩下一个可能值时填入,再次进入循环,利用填入数值再次进入排除法,直到所有格子都被填入数据或超出最大循环次数,则输出结果.
功能设计模块
流程图

方法体

排除法详细编程*

命令行输入

文件写入输出

静态检测

输出结果

自我感悟
对算法的熟练程度还是不够,visual studio 用的也不够熟练,感觉自己落伍了,以前都是用的VC和eclipse,但是那个功能太少,而且稍微大点的程序运行半天,看来学习也要与时俱进啊!
自评
| 作业头 | githu地址 | 消除警告 | PSP表格 | 解题思路 | 设计实现 | 改进 | 代码说明 | 自我感悟 | 总分 |
| 2 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 12 |
| 2 | 1 | 2 | 1 | 1 | 1 | 0.5 | 1 | 0.5 | 10 |