软工基础个人项目——数独

GITHUB项目地址:

https://github.com/hhz-hhz/Sudoku_software_engineer.git

零、任务

实现一个能够生成数独终局并且能求解数独问题的控制台程序。

一、需求分析

1、总体要求

 2、生成终局

(1)、使用命令行

 (2)、将终局用用一个文本文件,下一次的txt文件覆盖上一次的txt文件

 类似于下列格式:

 (3)、能够处理各种异常

 (4)、生成数独矩阵的要求

 格式如下:

 3、求解数独

(1)、求解的结果形式

 (2)、数独题目的格式

(3)、sudoku.txt的格式:与生成终局的格式相同。

(4)、数独题目的个数N(1 <= N <= 1000 000),保证文件中数独格式正确

4、为数独游戏的生成器做一个GUI界面,并附上简单说明(附加)

 二、设计阶段

1、开发时间预估——PSP 2.1 表格

 2、解题思路

决定使用C++来完成这个项目。

数独项目可以分为几个部分:

生成终局:

      查阅相关资料后,有以下几种方法:暴力回溯法、矩阵转换法、行列交换法、随机化方法等。

           一个高效生成数独的算法

          终盘生成值矩阵转换法

     打算先尝试使用全排列和行列变换来生成。

求解数独:

     参考了网上的资料后,决定先使用深度优先算法dfs试一试

单元测试:

    因为不太熟悉单元测试,所以查阅了许多资料,下面这个网站讲的比较清楚:

    Microsoft单元测试入门

猜你喜欢

转载自www.cnblogs.com/picaqiu/p/12130975.html