这个作业属于哪个课程 |
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 |