2020 软件工程作业 03

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
这个作业的目标 个人编写程序。
作业正文 如下
其他参考文献 www.baidu.com

1.Github 项目地址

https://github.com/fengliu782/20177631/tree/master/src

2.PSP表格

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

3.解题思路

1.题目的意思是求出不同阶数的数独

2.对于3阶的数独只需要判断每行每列上无重复的即可

3用DFS深度填数检测+回溯法

4.实现过程

要求命令行实现,这个是真不太会呀。各种百度。

数独实现过程流程图:

DFS算法:

 public static boolean DFS(int[][] a,boolean[][] cols,boolean[][] rows) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if(a[i][j]==0){

                    for (int l = 0; l < 3; l++) {
                        if(!cols[j][l]&&!rows[i][l]){//l对于的数字l+1没有在行列块中出现
                            rows[i][l] = cols[j][l] = true;
                            a[i][j] = 1 + l;//下标加1
                            if(DFS(a, cols, rows)) {
                                return true;//递进则返回true
                            }else {
                                rows[i][l] = cols[j][l] = false;//递进失败则回溯
                                a[i][j] = 0;
                            }
                        }
                    }
                    return false;//a[i][j]==0时,l发现都不能填进去
                }//the end of a[i][j]==0
            }
        }
        return true;//没有a[i][j]==0,则返回true
    }

5.程序运行结果

6.性能分析图

7.总结

经过这次的作业后,我发现自己的基础不牢固。题目本身很好理解,但是其他的命令行我也了解一点。头都大了。还有单元测试,好不容易学会单元测试的方法,但是却不知道怎么去写单元测试方法中的代码,静态检测和性能分析图也不太会弄,但是一定会去弄好的。

但是自己还是有所收获的,感觉自己阅读代码的能力提高了,各种工具用的也逐渐熟练。感觉这是一个好现象,接下来的任务就是恶补基础。希望自己以后能比较完美的解决问题,把能力搞上去。

8.评分

作业头 GITHUB项目地址 消除警告 psp表格 实现过程 改进行性能程序 解题思路 代码说明 心路和感想 总分
2分 1分 2分 1分 2分 1分 1分 1分 1分 12 分
2 1 2 1 1 0 0.5 0.5 1 9分
posted on 2020-03-29 19:58  feng12322  阅读(175)  评论(2编辑  收藏  举报