zoukankan      html  css  js  c++  java
  • 2020软件工程作业03

    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分
  • 相关阅读:
    python学习--大数据与科学计算第三方库简介
    养生轴---茶轴
    MobaXterm的安装和使用
    如何解决RIP的问题
    评论博客时注意的地方
    回忆老师教学博客
    助教自我介绍
    《构建之法》读书笔记1
    插入排序
    总结之H3C汇聚层交换机认证在线人数展示系统
  • 原文地址:https://www.cnblogs.com/feng11/p/12594376.html
Copyright © 2011-2022 走看看