n皇后问题MFC界面显示剖析Word文件下载.docx

上传人:b****2 文档编号:13781170 上传时间:2022-10-13 格式:DOCX 页数:36 大小:566.16KB
下载 相关 举报
n皇后问题MFC界面显示剖析Word文件下载.docx_第1页
第1页 / 共36页
n皇后问题MFC界面显示剖析Word文件下载.docx_第2页
第2页 / 共36页
n皇后问题MFC界面显示剖析Word文件下载.docx_第3页
第3页 / 共36页
n皇后问题MFC界面显示剖析Word文件下载.docx_第4页
第4页 / 共36页
n皇后问题MFC界面显示剖析Word文件下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

n皇后问题MFC界面显示剖析Word文件下载.docx

《n皇后问题MFC界面显示剖析Word文件下载.docx》由会员分享,可在线阅读,更多相关《n皇后问题MFC界面显示剖析Word文件下载.docx(36页珍藏版)》请在冰豆网上搜索。

n皇后问题MFC界面显示剖析Word文件下载.docx

速度控制功能实现,伪代码联动

杨策文

LLD文档编写,软件白盒测试

何林轩

HLD文档编写,软件黑盒测试

目录

摘要4

第一章算法描述6

第二章需求说明书7

2.1介绍7

2.1.1目的8

2.1.2文档约定8

2.1.3目标读者与阅读建议8

2.2总体说明8

2.2.1产品的角度8

2.2.2用户类别及特点9

2.2.3操作环境9

2.2.4用户文档9

2.2.5假设与依赖关系9

2.3外部接口要求9

2.3.1用户界面9

2.3.2硬件接口2

2.3.3软件界面10

2.3.4通信接口10

2.4其他非功能需求10

2.4.1性能需求10

2.4.2安全需求10

2.4.3软件质量属性10

第三章概要设计说明11

3.1范围11

3.1.1标识11

3.1.2系统概述11

3.1.3文档概述11

3.2引用文件12

3.3全系统的设计决策12

3.4结构设计12

3.4.1组件12

3.4.2执行的概念13

3.4.3动态控制序列13

3.4.4状态转换图14

3.4.5各单位之间的优先事项15

3.4.6异常和错误处理16

3.4.7其他方面的动态行为16

3.4.8界面设计16

3.5需求追踪16

3.6检查清单17

3.7说明17

第四章详细设计说明18

4.1.概述18

4.2.实现设计18

4.2.1单元模块的设计决策18

4.2.2约束限制18

4.2.3用伪代码或者流程图来说明执行逻辑19

4.2.4错误和系统记录信息24

4.2.5数据结构、功能的名字,原型和文件名称24

4.3.实现过程中要考虑的问题24

第五章软件测试25

5.1黑盒测试25

5.2.白盒测试26

摘要

n皇后问题是一个古老而著名的问题,它是回溯算法的典型例题。

该问题是十九世纪德国著名数学家高斯于1850年提出的:

在8行8列的国际象棋棋盘上摆放着八个皇后。

使他们之间不能互相攻击。

若两个皇后位于同一行、同一列或同一对角线上,则它们之间就可以互相攻击。

后来人们从8皇后问题延伸到了n皇后问题,问题的重点即使每两个皇后都不能在同一行、同一列、同一对角线上。

在分析这个问题时,我们不妨从第一列开始放置皇后。

这里我们选择使用回溯法即经典的递归法来求解n皇后问题,这个算法将在棋盘上一列一列地放置皇后直到n个皇后在不相互攻击的情况下都被摆放在棋盘上,算法便终止。

当一个新加入的皇后因为与已经存在的皇后之间相互攻击而不能被摆在棋盘上时,算法便发生回溯。

一旦发生这种情况,就试图把最后放在棋盘上的皇后移动到其他地方。

这样做是为了让新加入的皇后能够在不与其它皇后相互攻击的情况下被摆放在棋盘的适当位置上。

如图所示是两种满足要求摆放皇后的图。

关键词:

回溯法,n皇后,GUI

ABSTRACT

Nqueensproblemisanoldandwell-knownproblem,itisbacktrackingalgorithmstypicalexample.Theproblemiswell-knownnineteenth-centuryGermanmathematicianGaussproposedin1850:

Online8of8chessboardplacedeightQueens.Sothattheycannotattackeachotherbetween.Ifthetwoqueensonthesamerow,thesamecolumnorthesamediagonal,theycanattackeachotherbetweenthem.Later,peoplefromeightqueensproblemextendstothenqueensproblem,evenifeachofthetwokeyissuesofthequeencannotbeinthesamerow,thesamecolumn,onthesamediagonal.Inanalyzingthisquestion,wemightbegintoplacetheQueenfromthefirstcolumn.Herewechoosetousebacktrackingieclassicalrecursionmethodtosolvenqueensproblem,thealgorithmwillplacequeensontheboardaoneplaceuntilthen-queenswithoutmutualattackshavebeenplacedontheboard,thealgorithmisterminated.WhenaddinganewqueenbecausealreadyexistingbetweentheQueenandmutualattackswhichcannotbeplacedontheboard,backtrackingalgorithmwillhappen.Oncethishappens,itistryingtomovethelastplacedqueenontheboardelsewhere.Thisisdonetoallownewentrantstothequeencanbewithouttheotherqueensattackeachothertobeplacedintheappropriatepositionontheboard.AsshowninFIGplacedtomeettherequirementsaretwoqueenFIG.

KEYWORDS:

backtracking,nqueens,GUI

第一章算法描述

1.1试探过程分析

N×

N皇后问题的求解过程就是一个试探回逆的过程。

如图1-1

1.1.1首先查找第一行的可放位置,第一行全部可以放,那么我们就先将第一个皇后放在(0,0)点。

 

图1-1

1.1.2再查找第二行,由于第一行的(0,0)已经放了皇后,所以和它同列和同对角线的不可放,可放的就是(1,2)和(1,3)点,按顺序先在(1,2)放上皇后。

图1-2

1.1.3再查找第三行,由上述规则查找发现第三行没有可放的位置了,回逆到第二行讲皇后放到(1,3)再查找第3行。

如果还不行,就回到第一行将第一行的皇后放人下一个可放的点,依次类推,查找N×

N上的所以可放的位置,直到第一行所以位置被放完,输出结果。

图1-3

1.1.4根据上面的规律可以发现,对于一个皇后放在坐标(x,y),那么和它同列或者同对角线的坐标都不能再放皇后。

我们用一个数组来存放本行能放皇后的点。

用循环来查找上面行对本行的影响,将收到影响的点置FALSE。

boolCNDlg:

:

place(intk,int*X)//位置判定

{

inti;

i=1;

while(i<

k)

{

if((X[i]==X[k])||(abs(X[i]-X[k])==abs(i-k)))//列和对角线判断

returnfalse;

i++;

}

returntrue;

}

第二章需求说明书

2.1.介绍

2.1.1目的

本需求规格说明书的作用是指导设计和验证本软件的顺利发行。

本软件名称是“递归法解决n皇后问题的算法演示软件”,旨在用软件来实现使用递归算法解决n皇后问题的过程的演示。

软件需要实现采用图形化的形式展示递归法在具体使用时的每一个步骤,这样学习递归发就将不仅仅限制在算法或者一些文字的解释。

在实际使用递归法时候会遇到很基本的继续向下搜索还是递归的决策,这也就是学习递归法的核心思想的关键,本软件的使用将使得人们对递归法的学习有了很形象的认识,有了清晰明了的思路,展示出递归法解决n皇后问题的实质,让学习者很快明白递归算法的核心思想。

总的来说,本软件有两大特点:

形象化,本软件将递归法的关键步骤图形化、形象化,比起算法代码或则其他的解释来说,十分形象;

详细化,本软件将详细展示递归算法在解决n皇后问题的每一个关键步骤。

2.1.2文档约定

本文档描述了递归法解决n皇后问题的算法演示软件的特点,组织如下:

软件名称:

递归法解决n皇后问题的算法演示软件。

软件介绍:

基于递归法设计算法解决n皇后问题,用户根据界面提示输入有效值,选择适当的算法和演示过程,运行软件输入正确结果。

软件需求说明书:

涵盖了软件设计的功能需求和非功能需求等多个方面的内容。

“递归法解决n皇后问题的演示软件”旨在用软件来实现使用递归算法解决n皇后问题的过程的演示,此演示软件设计主要用于教学演示和学习研究。

2.1.3目标读者与阅读建议

本软件是一款演示性软件,适用于开发人员,用户等人群。

通过顺序阅读此文档,就可了解SRS的组成构造。

2.2.总体说明

2.2.1产品的角度

本软件是一款独立的问题演示软件,没有商业用途,不涉及更大系统的要求。

层次结构如图1:

图1层次结构图

2.2.2用户类别及特点

本产品针对任何使用者,主要对需要解决n皇后问题的用户有极大帮助。

2.2.3操作环境

基本的配置,Windows操作系统。

2.2.4用户文档

<

notreply>

2.2.5假设与依赖关系

该软件是一个独立的演示软件;

输入值在有效范围内,均能正常运行;

软件在运行运行的计算机性能配置良好且n皇后的n值不是很大时候运行效率高。

2.3外部接口要求

2.3.1用户界面

本软件具有交互性界面,用户通过界面提示点击按钮完成软件交互,界面上具有n值输入,单步求解,一步求解,速度控制等主要功能。

2.3.2硬件接口

本软件规模较小,只需要基本的硬件配置。

2.3.3软件界面

本软件不需要其他的数据库的支持,无需独立的数据文件,在Windows版本下都可运行。

2.3.4通信接口

2.4其他非功能需求

2.4.1性能需求

整个软件包含以下三个方面的特征:

1.递归法解决n皇后问题

使用递归方法实现在一个n×

n的棋盘上摆放n个皇后,使其中任意两个皇后都不同列、同行和在一条斜线上。

2.用户界面

能形象的演示出递归法解决n皇后问题的过程和方法;

界面简洁直观;

用户操作简单;

提示信息友好。

3.软件功能

用户根据界面提示输入n值,选择算法操作,可以一次完成直接得出摆放方法或逐步演示出摆放过程。

2.4.2安全需求

2.4.3软件质量属性

软件具有灵活性,只需简单安装即可使用。

软件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1