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/alexlee-j/20177623

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 100
Estimate 估计这个任务需要多少时间 60 100
Development 开发 1100 2280
Analysis 需求分析 (包括学习新技术) 300 480
Design Spec 生成设计文档 30 30
Design Review 设计复审 20 50
Coding Standard 代码规范 (为目前的开发制定合适的规范) 30 20
Design 具体设计 120 180
Coding 具体编码 300 900
Code Review 代码复审 60 120
Test 测试(自我测试,修改代码,提交修改 240 500
Reporting 报告 120 120
Test Repor 测试报告 30 30
Size Measurement 计算工作量 90 120
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 30
合计 1310 2780

解题思路

想着用蛮力法来解决数独,然后就百度到了DFS算法。用深度优先搜索对每行每列进行遍历,对为空的进行枚举,然后在检查其合法性,看是否不符合条件。若满足条件说明,求得了此空的解,接着向下一个格枚举,若不符合条件,则置0,再枚举,直到所有构建数独矩阵完成,输出结果。

功能设计模块

流程图

检查合法性

核心代码

性能分析

这个只调用了81次但是却占用了99%的时间,没办法优化,毕竟用的深度优先搜索算法

测试结果

心路历程

一看到这个题目的时候,第一眼说实话,我题目都没太看懂,看了几分钟,理清了题目的意图。实现一个解数独的程序,用命令行实现解数独并输入指定的文件和输出到其他文件里。首先我不太清楚怎么读取文件和输出文件,所以就想着先实现一个解数独的再说,于是就想着就用蛮力法来解决这个数独问题,然后去百度了一些相关的算法,在解决了数独后,还有读取文件和输出文件的问题了,但是我百度到fstream,ofstream,放到代码中好像实现不了。

自评

作业头 GitHub地址 消除警告 psp表格 解题思路描述 设计实现过程 改进性能 代码说明 感想余心路历程 总分
2 1 0 1 1 1 0 1 1 8
原文地址:https://www.cnblogs.com/Mu-di/p/12591565.html