数独_设计实现过程

本文详细介绍了使用C++实现数独的生成、数独题目的创建以及数独的求解过程。开发环境为Windows 10,IDE包括Visual Studio 2017和Visual Studio Code。代码组织分为4个模块:主函数、生成数独、求解数独和生成数独题目。数独生成利用全排列和平移策略,求解数独则采用迭代法。
摘要由CSDN通过智能技术生成

数独_设计实现过程

目录

设计实现过程

  开发环境

代码组织

代码结构

模块设计

函数流程图

代码说明

生成数独

生成数独题目

求解数独

求解单个数独

 

开发环境

操作系统    Windows 10   

IDE:         Visual Studio 2017    Visual Studio code

编程语言:c++

代码组织

代码结构

 

模块设计

项目功能实现部分,主要分为4个模块,分别为主函数,生成数独模块,求解数独模块,生成数独问题模块。

  • 主函数

    int main(int argc, char* argv[])

       int mainfun(int argc, char* argv[])

       功能:通过分析命令行,执行不同的功能能 ,对输入的错误命令参数进行提示

  • 生成数独模块

    int generate_final(int sum, char *filepath);

    返回值:失败,返回非0;打开文件失败返回1;

    成功,返回0;

    功能:通过首行全排列,其余行平移,加行间交换实现数独生成部分,可生成1~1209600个数独

  • 求解数独模块

    int isvalue(int x, int y, int value);

    返回值:有效,返回1;

    无效,返回0;

    功能:判断 (x,y)位置上value值(尝试填入的值)是否合法

    int slove(char que[][9], int x, int y)

    进行单个数独的求解函数,通过函数迭代求解数独.数独存储在que二维数组中

    int slove_all(char *filepath)

    返回值:失败,返回非0;打开文件失败返回1;文件空返回2;

    成功,返回0;

    功能:用于求解filepath的所有数独,首先判断文件是否有效,是否为空,然后从filepath读取一个数独,对每个数独调用slove函数进行求解,再把结果写入指定文件中,再读取下一个,直到文件末尾。

  • 生成数独问题模块

    int generate_que(int num_solution);

    返回值:失败,返回非0;打开文件失败返回1;文件空返回2;

    成功,返回0;

    功能:根据生成的数独终局生成一定数量的数独到指定文件

    int generate_queall();

    返回值:失败,返回非0;打开文件失败返回1;文件空返回2;

    成功,返回0;

    功能:根据生成的数独终局生成全部数独问题

    int linenum(char *filepath);

    返回值:文件行数

    功能:获得文件的行数,用来判断生成数独问题的数目是否合法

函数流程图

由于求解数独函数较为复杂,此处展示slove_al

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值