个人项目问题分析

目录

  • 一、需求分析
    • 数据流图
    • 程序流程图
  • 二、问题解决思路

一、需求分析

数据流图

0层图:
个人项目问题分析_第1张图片
1层图:
个人项目问题分析_第2张图片
2层图:
个人项目问题分析_第3张图片

程序流程图

个人项目问题分析_第4张图片

二、问题解决思路

在从网上查阅了很多关于求解数独的资料后,再加上题目要求的范围再1到1000000之间,认识到在这个数据量范围内,可以通过深度优先搜索加回溯来解决这个问题。
参考的文章:链接
那么基本的解题思路大概如下:
1、生成数独终局。
题目要求数独第一个数字为学号后两位模10再加1,我的学号对应的第一位数字应为2。在确定第一个数字后,递归调用create(i,j)函数,第一次i=0,j=1代表从第0行(即第一行,数组下标从0开始),第1个数字(即第2个数字)开始,之后每次确定完数字后调用create(i,j+1)即深度优先搜索,该换行时换行,当有位置1-9任何一个数字都无法满足时,先暂时把当前位置为0,回溯修改之前的值。直到生成一个数独终局,到生成指定数量的数独终局后结束。
2、求解数独终局。
求解与生成的基本思路相似。不同之处在于跳过不为0的值。

具体的代码实现见下一篇博客,问题设计

你可能感兴趣的:(个人项目问题分析)