毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++八皇后问题源码

更新时间:2011-5-11:  来源:毕业论文

C++八皇后问题源码
编写程序对八皇后问题进行求解:在8行8列的棋盘上放置8个皇后,使任一个皇后都不能吃掉其他的7个皇后(注:皇后可吃掉与她处于同行或同列或同一对角线上的其他棋子),并将结果以某种方式显示出来。
 例如,当求出下述的一个解时,可输出如下信息来表示该解(输出了表示摆放皇后的坐标位置以及“棋盘状态”— 棋盘中有皇后的位置放一个“Q”字符,其他位置为“+”字符)。
(1,1) (5,2) (8,3) (6,4) (3,5) (7,6) (2,7) (4,8)
 Q + + + + + + +
 + + + + + + Q +
 + + + + Q + + +
 + + + + + + + Q
 + Q + + + + + +
 + + + Q + + + +
 + + + + + Q + +
 + + Q + + + + +
(一)需求分析:
本程序主要解决的是: 编写程序对八皇后问题进行求解:在8行8列的棋盘上放置8个皇后,使任一个皇后都不能吃掉其他的7个皇后(注:皇后可吃掉与她处于同行或同列或同一对角线上的其他棋子),并将结果以某种方式显示出来。原文请找腾讯752018766六,维-论'文.网http://www.lwfree.cn/
(二)概要分析:
和16题差不多,应用回溯算法,利用递归实现。
(三)详细分析
      void solve(int i,bool& ok)这个主要的解决方法,需要不断回溯查看是否有冲突的皇后位置的放置。
(四)调试分析:
开始设计出现部分不规范的问题输出时不容易看懂后来改过来了。这个实验比较顺利的完成。
(五)用户使用说明:
 使用者按照要求输入棋盘格数,确定就可以了,在这说明一点如果输入的个数过大程序可能需要一段时间来运算。
(六)测试结果:
 
(七)源程序:见上传源程序提高题17.cpp
(八)编程体会:
主要目的是看自己对递归的把握程度如何。加深对递归的理解/*************************************************

  Copyright (C),  2008

  File name: 软件设计普通题17(17.cpp)

  Author:  计06-1  高战         

  Description: 

  Others:       ....

  Function List:  // 主要函数列表,每条记录应包括函数名及功能简要说明

                void print()                //打印结果
  void solve(int i,bool& ok)   //解决方法
           
  History:       


   <author>  <time>   <version >   <desc>

*****************************************************/
#include<iostream>
#include<iomanip>
using namespace std;

int LineNum[20],n,t;         //LineNum[i]表示放皇后第i行,其值为列数  n为解的种数 t为矩阵的行和列数
bool a[20], b[40], c[40];    //a[i]为true表示第i行上尚未放皇后 b[i]为true c[i]为true 表示第i条 斜对角线 反对角线 上尚未放皇后


void print()                //打印结果
{
 for(int k=1;k<t+1;k++)  //打印坐标1826{

[1] [2] 下一页

C++八皇后问题源码下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。