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

     

    Github地址:https://github.com/sbls/131700114 

    这个作业属于哪个课程https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
    这个作业的目标    Sudoku
    作业正文 如下
    其他参考文献  
    PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
    Planning 计划 30 10
    · Estimate · 估计这个任务需要多少时间 30 10
    Development 开发 180 200
    · Analysis · 需求分析 (包括学习新技术) 30 50
    · Design Spec · 生成设计文档 10 10
    · Design Review · 设计复审 60 10
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 10
    · Design · 具体设计 30 40
    · Coding · 具体编码 120 130
    · Code Review · 代码复审 30 60
    · Test · 测试(自我测试,修改代码,提交修改) 30 40
    Reporting 报告 30 25
    Test Repor 测试报告 30 25
    Size Measurement 计算工作量 30 10
    Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 10
      合计 700 660

    解题思路:

    思路:拿到题目的时候,我觉得对我好陌生,根本不知道数独是什么东西,连现实中都没玩过,在软件上又该怎样实现呢,无疑是难上加难。后面在浏览器中找了好久,总算找到一些资料让我学习数独的解法思路,数独一般的解法需要用到很多次的推导,对各行各列各个九宫格进行排查,删选候选数后挑选候选数最少的去填。

    数独的解法:

    第一步:遍历预处理过的矩阵的每一个元素,通过对行,列以及周围格子的检查,得出该位置所有可能的侯选数值。

    第二步:通过检查更新过的数独的结果,有三种情况。

    1.数独已经被全部填完并正确。

    2.数独还有空未填。

    3.该数独不满足规则。

    第三步:根据上述的情况,分别对应三种情况:

    1.先把此次答案打印出来,然后返回上一次递归继续解题,查看是否有多解。

    2.选取未填的格子里面侯选数最少的一个格子选填一个侯选值,执行第二步。

    3.退出当前的尝试,返回上一次递归并换下一个可能的侯选值。

    3.  结束

    所有的尝试结束后,递归程序退出。并显示结果

    运行结果部分

    1、以学号为名的文件夹中的目录下有src文件夹,在src目录下有名为Sudoku.java文件,且Sudoku.java中包含 public static void main(String[] args) 方法

    2、将变量设置到对应的位置

    3、做循环,将满足条件的取值都放进对应的九宫格里

    4、运行前

    5、运行后

    实现:我的代码里有一个类就是Sudoku类,有一个main主函数,三个被主函数调用的函数。他们之间的关系就是调用与被调用的关系,单元测试的话没来得及做,考试还有各科的课程设计压力太大,我已经连续三天通宵了,每天睡觉时间不超过三小时。单元测试我以后会做出来,希望老师能原谅我这次没有完全的完成这次作业,我真的尽力了也很努力的在做。

    个人心得:需要我去学习的太多太多了,这次代码实现对于我来说好难,我把室友都请教烦了,整整几天都在缠着室友问来问去,这些代码有许多都是室友的帮助下写的,只懂得了30%左右,但我有信心把这些全部弄懂,我做完这次作业肯定还不算完,我想争取靠我自己就能把代码实现和测试,以后这篇随笔我可能会经常改进,把室友教我的代码改成我自己写的。

  • 相关阅读:
    Python性能鸡汤
    postgreSQL设置自增长字段并插入值
    DBSCAN算法的Java,C++,Python实现
    查看进程及端口使用情况
    软件工程中的各种图
    程序员技术练级攻略[转]
    CSS中 opacity的设置影响了index(层数)的改变
    页面预加载loading动画
    JS 判断用户使用的设备类型
    图片懒加载——介绍
  • 原文地址:https://www.cnblogs.com/sbxb/p/13202510.html
Copyright © 2011-2022 走看看