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


    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很多都是第一次使用,所以时间比预估的时多很多。经过这次的实训,对上述软件的使用还是有很大的提高。

  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/zlxbky/p/7641451.html
Copyright © 2020-2023  润新知