八皇后课程设计实验报告 - C++(2)

2019-02-16 17:33

C++课程设计

1.3 八皇后问题课题要求

编写代码,用至少三种方法解决八皇后问题。运行程序后,显现下面的参考界面:

八皇后问题 ============ 1.方法一 2.方法二 3.方法三

请选择(1、2或3,0:退出):

图1-2输出界面实例

选择一个菜单后,要求输入棋盘的阶层,即N。输入后,显示共有多少种布局方

案,并显示每一种方案的具体情况,如下图:

77: (0,2) (1,0) (2,6) (3,4) (4,7) (5,1) (6,3) (7,5) 78: (0,7) (1,1) (2,4) (3,2) (4,0) (5,6) (6,3) (7,5)

图1-3输出样式实例

1.4 面对的问题

需要用三种方法解决八皇后问题,在这里需要查阅大量资料并多加练习,才能成功编写程序。主要要解决下面的问题:

2

C++课程设计

冲突:包括列、行、两条对角线;

1. 列:规定每一列放一个皇后,就不会造成列上的冲突;

2. 行:当第i行被某个皇后占据时,该行所有空格就都不能放置其他皇后; 3. 对角线:对角线有两个方向,在同一对角线上的所有点都不能有冲突。

2 需求分析

2.1 涉及到的知识基础

在本次的课程设计中,用到的知识点主要有:类、函数、选择结构里的条件语句、循环结构里的while语句以及for循环语句、控制语句里的break语句、以及字符串函数的运用等等,并且应用到递归、回溯及穷举等比较经典的算法。

2.1.1 类

2.1.1.1 类定义

类就是用户自定义的数据类型。 类定义的一般形式如下: class 类名 {

};

2.1.1.2 类函数定义

细节;(数据成员,成员函数)

类成员函数类的成员函数通常在类外定义,一般形式如下:

返回类型 类名::函数名(形参表) {

函数体; }

3

C++课程设计

双冒号: :是域运算符,主要用于类的成员函数的定义。

2.1.2 函数

2.1.2.1 函数的定义

定义函数需要指明:函数执行结果返回值的类型、函数名、形式参数(简称形参)和函数体。

一般形式为:

数据类型 函数名(行参表) {

语句序列;

Return 合适类型数值 }

2.1.2.2 2.1.2.3 函数调用

调用一个函数之前必须对该函数进行说明。

函数调用由函数名和函数调用运算符( )组成,( )内有0个或多个逗号分隔的参数(称为实参)。每一个参数是一个表达式,且参数的个数与参数的类型要与被调函数定义的参数(称为形参)个数和类型匹配。

当被调函数执行时,首先计算实参表达式,并将结果值传送给行参,然后执行函数体,返回的返回值被传送到调用函数。

如果函数调用后有返回值,调用表达是可以用在表达式中,而无参函数的调用是一个单独的语句。

2.1.3 选择结构

2.1.3.1 用if语句实现选择结构设计

if语句的基本形式可分为两种: (1) if (表达式) 语句

4

C++课程设计

其执行过程是,首先计算表达式的值,若不为0,条件判断为真,则执行( )后面的语句,否则,if语句中止执行,即不执行( )后面的语句。

(2) if(表达式) 语句1 else 语句2

其执行过程是,首先计算表达式的值,若不为0,条件判断为真,则执行( )后面的语句,否则执行语句2。

2.1.3.2 if语句嵌套

if语句中的任何一个子句可以是任意可执行语句,当然也可以是一条if语句,这种情况称为if语句嵌套。当出现if语句的嵌套时,不管书写格式如何,else格式都将与它前面最靠近的未曾配对的if语句相配对,构成一条完整的if语句。它的格式为:

if(表达式1) 语句1;

else if (表达式2) 语句2; ??

else if (表达式n) 语句n; else 语句n+1;

2.1.3.3 while和do-while语句

while语句用来实现“当型”循环结构,即先判断表达式,然后判断循环条件是否成立。其一般形式为:

do {

语句;//循环体

}while(条件表达式);

其中要注意的是while后面的括号理是表达式而不是语句,表达式是没有分号的;而do-while中最后结束时要有分号。

5

C++课程设计

2.1.4 循环结构

2.1.4.1 for语句

这种循环语句不仅用于循环次数已知的情况,还能用于循环次数预先不能确定只给出循环结束条件的情况下。

for 语句的一般形式:

for (表达式1;表达式2;表达式3) {

语句;//循环体 }

其执行的过程有以下几个步骤: 求解表达式1;

求解表达式2,若其值为真,则执行for语句中指定的循环体语句,然后执行下面的第3)步。若为假,则结束循环;

求解表达式3;

转回上面第2)步继续执行;

循环结束,执行for语句后面的其他语句。

2.1.4.2 Break语句

该语句被限定使用在任一种循环语句和switch语句中,但break语句仅仅退出包含该break语句的那层循环,即break语句不能使程序控制退出一层以上的循环。

2.1.5 字符串处理函数

字符比较函数strcmp

格式:strcmp(字符串1,字符串2)

它的功能是,比较字符串1和字符串2。

如果字符串1小于字符串2,该函数返回一个负整数值;如果字符串1等于字符串2,该函数返回0;如果字符串1大于字符串2,该函数返回一个正整数值。

6


八皇后课程设计实验报告 - C++(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2005年——2011年浙师大《电子商务概论》期末考试题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: