2020软件工程第三次作业
| 这个作业属于哪个课程 | 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/0dominator/20177617/blob/master/Sudoku.java
二:PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) | 
|---|---|---|---|
| Planning | 计划 | 30 | 40 | 
| Estimate | 估计这个任务需要多少时间 | 1590 | 1660 | 
| Development | 开发 | 500 | 400 | 
| Analysis | 需求分析 (包括学习新技术) | 300 | 400 | 
| Design Spec | 生成设计文档 | 30 | 45 | 
| Design Review | 设计复审 | 30 | 60 | 
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 | 
| Design | 具体设计 | 120 | 180 | 
| Coding | 具体编码 | 180 | 200 | 
| Code Review | 代码复审 | 60 | 60 | 
| Test | 测试(自我测试,修改代码,提交修改) | 120 | 90 | 
| Reporting | 报告 | 70 | 60 | 
| Test Repor | 测试报告 | 30 | 20 | 
| Size Measurement | 计算工作量 | 30 | 30 | 
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 45 | 
| 合计 | 
 | 1590 | 1660 | 
三:解题思路
首先查阅百度关于数独游戏的解题方法,看过了排除法、唯余法、回溯法······又查阅了关于这类题目的别人的解题方法,最后我只能写出回溯法解数独的代码。回溯法:首先将3、5、7阶数独和4、6、8、9阶数独区分开来,因为4、6、8、9有对于宫的划分。我先判断格子中有没有数字,如果有就向后挪一位,如果没有就填入1到9进行一次次判断,如果在同一行列中没有重复和宫内没有重复的数就填入,如果到了9的时候都不符合就向上一格子回溯,就这样进行重复的判断直到最后。
四:流程图
 
五:改进
未能做到,真的太难了。
六:代码说明
1.获取cmd输入的参数。

2.结果输出至文件。

3.f1()方法宫格判断。(太长了)

4.f2()方法行列判断。

5.进行填数和回溯。

七:检测代码及性能分析
检测代码:

性能分析:
Jprofile不知道怎样使用,等我请教同学。
八:测试结果

 

九:心得与总结
这次的编程让我对自己有了新的了解,对于编程的熟练程度也有了新的提升,对于回溯这种算法也有了一定的认识,以及找到了cmd的参数输入方法。
十:自评
| 学号 | 姓名 | 作业头 | Github地址 | 消除警告 | PSP表格 | 解题思路描述 | 设计实现过程 | 改进程序性能 | 代码说明 | 感想 | 总分 | 
| 20177617 | 欧阳志强 | 2 | 1 | 1.5 | 1 | 0.5 | 1.5 | 0 | 1 | 0.5 | 9 | 
 
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号