zoukankan      html  css  js  c++  java
  • 软件工程3

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
    这个作业的目标 c++编写程序实现数独填充
    作业正文 如下所示
    其他参考文献 www.baidu.com

    1.Github地址:https://github.com/kbdqp/dqp20177726/tree/kbdqp-patch-1
    2.PSP表格

    PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
    Planning 计划 2 4
    Estimate 估计这个任务需要多少时间 48 56
    Development 开发 15 20
    Analysis 需求分析 (包括学习新技术) 5 5
    Design Spec 生成设计文档 3 4
    Design Review 设计复审 3 3.5

    4.实现过程
    定义输入输出函数,检查函数,遍历函数
    |Coding Standard| 代码规范 (为目前的开发制定合适的规范)| 2| 2|
    |Design |具体设计| 10| 2|
    |Coding |具体编码| 6| 6|
    |Code Review| 代码复审| 3| 4|
    |Test| 测试(自我测试,修改代码,提交修改| 2| 3|
    |Reporting| 报告| 1| 2|
    |Test Repor| 测试报告| 1| 2|
    |Size Measurement| 计算工作量| 1| 2|
    |Postmortem & Process Improvement Plan| 事后总结, 并提出过程改进计划| 2| 1.5|
    |合计 || 99| 117|
    3.解题思路

    4.实现过程
    定义输入输出函数,检查函数,遍历函数

    接着读入数独矩阵

    输出数独矩阵

    判断key填入时是否满足条件

    判断n所在的横竖列是否合法

    接着深搜构造数独,所有的都符合,退出递归,当前位不为空时跳过,否则对当前位进行枚举测试。满足条件时填入数字,然后继续搜索,返回时如果构造成功,则直接退出,如果构造不成功,还原当前位。

    遍历数组,找到数字为0的数字,从1开始通过判断函数看填入的数是否满足要求,如果满足,就填入当前位置,如果发现填入的数字大于矩阵的规模重新遍历数组,找到下一个为0的数字,向上一次修改的位置改成下一个修改位置的值,如果遍历完成没有发现为0的数字,则遍历完成。
    5.实验结果







    6.单元测试



    这个单元测试我使用的是VS2019的Studio Profiling Tools,这个占内存是真的大,其中GPU,CPU使用情况,检测以及内存使用率,还有包括测试的输入输出函数,检查函数,以及遍历函数。
    对这些性能的测试,以我自己的水平。感觉还是远远不够,因此我借鉴了大量的文献,还有观看视屏,和同学探讨,才勉勉强强做了这些,说实话要全靠自己能力做,真的难于登天。还是要不断加强自己能力,不断学习。变得更好

    7.分析与总结
    代码测试和分析最终还是演示了,但运行过程中还是出现了大量问题,其中调用函数,我忘记使用检查函数对递归函数进行检查,然后中间数值为空就直接跳过了。最后处理这些问题让我叫苦不迭,真的太不容易了。一些语言的运用,还有要注意的细节,我都要要不断的学习。希望自己技能能够更上一层楼

  • 相关阅读:
    APP上线审核注意事项
    xcode环境变量设置(转载)
    iOS 工程中 Other Linker Flags
    iOS 打开应用与系统功能的调用
    在oc中一些常用的宏定义总结
    WebViewJavascriptBridge的简单应用
    UITextField 对键盘一些常用属性 记录一下
    UITextInputMode类的使用
    数组和指针
    自定义ViewGroup实现瀑布流效果
  • 原文地址:https://www.cnblogs.com/Mambakobe/p/13217758.html
Copyright © 2011-2022 走看看