2020软件工程第三次作业

这个作业属于哪个课程

https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1

这个作业要求在哪里

https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494

这个作业的目标

独立完成数独游戏,学会思考、查找资料,知道怎样运用测试、分析代码

作业正文

https://www.cnblogs.com/Dominator/p/12594255.html 

其他参考文献

百科资料和一些同学的指导

一: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

原文地址:https://www.cnblogs.com/Dominator/p/12594255.html