• 软件工程第二次作业-个人实战


    Github项目地址:https://github.com/zlxzlxzlx/shudu

    PSP

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

    解题思路:

    项目需求

    利用程序随机构造出N个已解答的数独棋盘 。

    算法描述如下:

    • 算法输入:一组数值,未知数数值为0;
    • 算法输出:一组经过运算过后的数独,原始值为0的数值被改变的新输出状态,在对得到的棋盘基础上对全局的任意数字进行交换。

    对问题进行抽象理解:我的解题步骤

    1. 创建一个棋盘,初始化,未知数值为0;
    2. 自左向右,自上而下搜索数值为0的空格;
    3. 与该空格所在的横向,纵向,所在的九宫格进行比较;
    4. 将符合的数值替换初始的位置数值为0的值;
    5. 重复3、4步骤直至所有值全部为0且满足数独条件。
    6. 输出满足条件的数独。
    7. 在得到的棋盘基础上对全局的任意数字进行交换;
      即可随机构造N个已解答的数独棋盘。

    设计实现:

    主要涉及以下几个类:Calc(搜索数值为0的空格)、Check(与该空格所在的横向,纵向,所在的九宫格进行比较检查)、IsDone(检查是否满足数独条件)、turn(对得到的棋盘进行全局任意数字的交换)、suiji(产生随机数)、output(输出棋盘);

    流程图:

    代码说明:

    测试运行:

    性能分析

    总结

    这次在软件的使用,包括visual tudio、markdown编辑器、画图软件、GitHub很多都是第一次使用,所以时间比预估的时多很多。经过这次的实训,对上述软件的使用还是有很大的提高。

  • 相关阅读:
    如何设置body高度为浏览器高度
    h5的video下载按钮如何隐藏
    微信小程序中的子父组件传值问题
    elementUI级联选择器2(选择及回显)编辑保存
    elementUI级联选择器(选择及回显)
    vue+elementUI 表格操作行的增删改查
    单独验证非form表单中的input(限制)
    JS中去除数组中的假值(0, 空,undefined, null, false)
    vue 组件之间的传值 (父子传值、兄弟传值)
    http协议的状态码
  • 原文地址:https://www.cnblogs.com/zlxbky/p/7641451.html
Copyright © 2020-2023  润新知