c++八皇后问题 课 程 设 计 报 告
- 格式:doc
- 大小:54.00 KB
- 文档页数:6
8皇后问题课程设计一、课程目标知识目标:1. 理解“8皇后问题”的定义,掌握其基本的数学原理;2. 学会使用编程语言解决“8皇后问题”,并理解算法的执行过程;3. 了解“8皇后问题”在计算机科学和人工智能领域的应用。
技能目标:1. 能够运用逻辑思维和分析能力,设计出解决“8皇后问题”的算法;2. 培养编程能力,通过编写代码实现“8皇后问题”的求解;3. 提高问题解决能力,学会将现实问题转化为计算机程序进行处理。
情感态度价值观目标:1. 培养学生对计算机科学和数学问题的兴趣,激发学习热情;2. 培养学生的团队协作精神,鼓励在解决问题时互相交流、共同进步;3. 增强学生的自信心,让他们在解决“8皇后问题”的过程中体验成功的喜悦。
课程性质:本课程为信息技术与数学跨学科的综合课程,旨在培养学生的逻辑思维、编程能力和问题解决能力。
学生特点:学生处于八年级,已具备一定的数学基础和逻辑思维能力,同时对编程有一定了解。
教学要求:教师需结合学生的特点,采用任务驱动法,引导学生主动探究“8皇后问题”的解决方法,并通过实践操作,提高学生的编程能力和问题解决能力。
在教学过程中,注重培养学生的团队协作和自信心。
通过本课程的学习,使学生能够将所学知识应用到实际生活中。
二、教学内容1. 导入新课:通过讲解“8皇后问题”的历史背景和现实意义,激发学生的学习兴趣。
2. 理论知识学习:a. 介绍“8皇后问题”的定义及数学原理;b. 分析“8皇后问题”的约束条件和求解方法;c. 讲解“8皇后问题”在计算机科学和人工智能领域的应用。
3. 编程实践:a. 教学基础的编程语法和逻辑控制结构;b. 引导学生设计并实现解决“8皇后问题”的算法;c. 介绍编程工具和调试方法,帮助学生解决编程过程中遇到的问题。
4. 任务驱动:a. 布置小组任务,要求学生合作完成“8皇后问题”的求解;b. 学生通过讨论、实践,不断优化算法,提高求解效率;c. 教师巡回指导,针对学生遇到的问题给予解答和指导。
八皇后c语言课程设计一、课程目标知识目标:1. 学生能理解“八皇后”问题的背景和数学原理,掌握利用计算机程序解决问题的基本思路。
2. 学生能掌握C语言的基本控制结构,包括循环、选择和函数调用。
3. 学生能运用数组和逻辑判断解决排列组合问题,实现对八皇后问题的所有有效解的搜索。
技能目标:4. 学生能够运用C语言编写程序,实现八皇后问题的算法,并能够调试和优化代码。
5. 学生能够通过分析问题,设计出有效算法,培养逻辑思维能力和问题解决能力。
情感态度价值观目标:6. 学生通过解决八皇后问题,培养对计算机编程的兴趣和热情,增强对信息科学的认识。
7. 学生在学习过程中,培养团队合作意识和探究精神,提高面对复杂问题的耐心和毅力。
8. 学生能够认识到编程在解决实际问题中的应用价值,激发其在未来学习和工作中运用编程技术的积极性。
二、教学内容本课程将依据以下教学内容展开:1. C语言基础知识回顾:变量定义、数据类型、运算符、输入输出、控制结构(循环、选择)。
- 教材章节:第1章 C语言概述,第2章 数据类型与运算符,第3章 控制结构。
2. 数组的应用:一维数组的使用,理解数组在存储多数据时的优势。
- 教材章节:第4章 数组与字符串。
3. 函数的定义与调用:编写和调用自定义函数,理解模块化编程的重要性。
- 教材章节:第5章 函数。
4. 八皇后问题背景介绍:问题的起源、数学原理和解决思路。
- 教材章节:附录 或 课外拓展内容。
5. 八皇后算法设计:回溯法的基本原理,以及其在八皇后问题中的应用。
- 教材章节:算法设计与分析部分。
6. 编程实践:学生动手编写C语言程序解决八皇后问题,包括代码调试和优化。
- 教材章节:编程实践案例。
7. 算法优化:讨论如何提高程序的效率和减少计算时间,引入递归和剪枝的概念。
- 教材章节:算法优化部分。
教学内容将按照上述大纲逐步进行,确保学生能够系统地掌握C语言编程基础,并能将其应用于解决实际问题。
计算机科学与技术专业数据结构课程设计报告设计题目:八皇后问题目录1需求分析 (2)1.1功能分析 (2)1.2设计平台 (3)2概要设计 (3)2.1算法描述 (4)2.2算法思想 (5)2.3数据类型的定义 (5)3详细设计和实现 (6)3.1算法流程图 (6)3.2 主程序 (6)3.3 回溯算法程序 (7)4调试与操作说明 (9)4.1调试情况 (9)4.2操作说明 (9)5设计总结 (11)参考文献 (12)附录 (12)1需求分析1.1功能分析八皇后问题是一个古老而著名的问题,该问题是十九世纪著名的数学家高斯1850年提出的,并作了部分解答。
高斯在棋盘上放下了八个互不攻击的皇后,他还认为可能有76种不同的放法,这就是有名的“八皇后”问题。
在国际象棋中,皇后是最有权利的一个棋子;只要别的棋子在它的同一行或同一列或同一斜线(正斜线或反斜线)上时,它就能把对方棋子吃掉。
所以高斯提出了一个问题:在8*8的格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一列、同一行、或同一条斜线上面,问共有多少种解法。
现在我们已经知道八皇后问题有92个解答。
1、本演示程序中,利用选择进行。
程序运行后,首先要求用户选择模式,然后进入模式。
皇后个数设0<n<11。
选择皇后个数后,进入子菜单,菜单中有两个模式可以选择。
2、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令:相应的输入数据和运算结果显示在其后。
3、程序执行的命令包括:1)进入主菜单。
2)选择皇后问题,输入是几皇后。
3)进入子菜单。
4)选择皇后显示模式。
5)选择结束4、测试数据1)N的输入为4;2)共有2个解答。
3)分别是○●○○○○●○○○○●●○○○●○○○○○○●○○●○○●○○1.2设计平台Windows2000以上操作系统;Microsoft Visual C++ 6.02概要设计问题:N后问题问题描述:国际象棋中皇后可以攻击所在行,列,斜线上的每一个位置,按照此规则要在一个n*n的棋盘上放n个皇后使每一个皇后都不互相攻击问题分析:引入1个数组模拟棋盘上皇后的位置引入3个工作数组行数组[k]=1,表示第k行没有皇后右高左低数组[k]=1,表示第k条右高左低的斜线上没有皇后左高右低数组[k]=1,表示第k条左高右低的斜线上没有皇后观察棋盘找到规律同一右高左低的斜线上的方格,它们的行号和列号之和相等;同一左高右低的斜线上的方格,它们的行号和列号只差相等;开始时,所有行和斜线上都没有皇后,从第一列的第一行配置第一个皇后开始,在第m列的皇后位置数组[m]行放置了一个合理的皇后之后,准备考察第m+1列时,在数组行数组[],右高左低数组[],左高右低数组[]中为第m列,皇后位置数组[m]的位置设定有皇后标志如果按此放置位置得不到结果,则把当前列中的有皇后标记改为无皇后标记。
八皇后问题学2012年 9 月 5 日目录一、选题1.1背景知识 (2)1.2设计目的与要求 (2)二、算法设计2.1问题分析 (3)2.2算法设计 (3)三、详细设计3.1源程序清单 (4)四、调试结果及分析4.1调试结果 (6)4.2调试分析 (7)五、课程设计总结5.1总结及体会 (7)六、答辩6.1答辩记录 (8)6.2教师意见 (8)一、选题及背景知识1.1 背景知识在国际象棋中,皇后是一个威力很大的棋子,她可以“横冲直撞”(在正负或垂直方向走任意步数),也可以“斜刺冲杀”(在正负45度方向走任意步数),所以在8*8的棋盘上要布互相不受攻击的皇后,最多只能布八个,共92种布法,再也不能有别的布法了——这就是著名的八皇后问题在8*8的国际象棋棋盘上,放置八个皇后,使得这八个棋子不能互相被对方吃掉。
也就是说一个皇后可以攻击与之处在同一行或同一列或同一斜线上的其他任何棋子.因此,八皇后问题等于要求八个皇后中的任意两个不能被放在同一行或同一列或同一斜线上。
1.2 设计要求要求:·判断在国际象棋中,能否在空棋盘上摆放8个皇后,并使其中任意两个皇后不能在同一行,同一列或同一对角线上。
·编写完整的摆放八皇后问题的程序·具体要求第一个皇后的起始位置由键盘输入二、算法设计2.1问题分析设计——图形表示下图中,Q代表皇后假设在第k列上找到合适的位置放置一个皇后,要求它与第1——k-1列上的皇后不同行、列、对角线;可以从图上找到规律:不同列时成立,皇后放在第k列上;讨论行时,第j个皇后的位置(a[j] ,j)要与(i,k)位置的皇后不同行;如果同在/斜线上,行列值之和相同;如果同在\斜线上,行列值之差相同;如果斜线不分方向则同一斜线上两皇后的行号之差的绝对值与列号之差的绝对值相同,可表示为(|a[j]-i|=|j-k|)。
2.2 算法设计利用计算机运行速度快的特点,采用枚举法,逐一尝试各种摆放方式,来判断最终摆法。
数据结构课程设计报告设计题目:八皇后问题系(院):数学学院专业:信息与计算科学班级:02班学生姓名王天宇学号:指导教师:设计任务书1. 课题综述1. 1课题的来源及意义八皇后问题是一个古老而着名的问题,该问题是十九世纪着名的数学家高斯1850年提出的。
在国际象棋中,皇后是最有权利的一个棋子;只要别的棋子在它的同一行或同一列或同一斜线(正斜线或反斜线)上时,它就能把对方棋子吃掉。
所以高斯提出了一个问题:在8*8的格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一列、同一行、或同一条斜线上面,问共有多少种解法。
到了现代,随着计算机技术的飞速发展,这一古老而有趣的数学游戏问题也自然而然的被搬到了计算机上。
运用所学计算机知识来试着解决这个问题是个锻炼和提高我自己编程能力和独立解决问题能力的好机会,可以使我增强信心,为我以后的编程开个好头,故我选择了这个有趣的课题。
1. 2 面对的问题1)解决冲突问题:这个问题包括了行,列,两条对角线;列:规定每一列放一个皇后,不会造成列上的冲突;行:当第I行被某个皇后占领后,则同一行上的所有空格都不能再放皇后,要把以I为下标的标记置为被占领状态;2)使用数据结构的知识,用递归法解决问题。
2概要设计本课件学生是用循环递归循环来实现的,分别一一测试了每一种摆法,并把它拥有的92种变化表现出来。
在这个程序中,我的主要思路以及思想是这样的:1)解决冲突问题:这个问题包括了行,列,两条对角线;列:规定每一列放一个皇后,不会造成列上的冲突;行:当第I行被某个皇后占领后,则同一行上的所有空格都不能再放皇后,要把以I为下标的标记置为被占领状态;对角线:对角线有两个方向。
在这我把这两条对角线称为:主对角线和从对角线。
在同一对角线上的所有点(设下标为(i,j)),要么(i+j)是常数,要么(i-j)是常数。
因此,当第I个皇后占领了第J列后,要同时把以(i+j)、(i-j)为下标的标记置为被占领状态。
C语⾔⼋皇后问题解决⽅法⽰例【暴⼒法与回溯法】本⽂实例讲述了C语⾔⼋皇后问题解决⽅法。
分享给⼤家供⼤家参考,具体如下:1.概述:⼋皇后问题是⼀个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置⼋个皇后,使得任何⼀个皇后都⽆法直接吃掉其他的皇后?为了达到此⽬的,任两个皇后都不能处于同⼀条横⾏、纵⾏或斜线上。
2.暴⼒法求解:#include<cstdio>#include<cmath>const int maxn=11;int count=0;//P为当前排列,hashTable记录整数x是否已经在P中int n,P[maxn] ,hashTable[maxn] = {false};//当前处理排列的第index号位void generateP(int index){if(index==n+1)//递归边界,已经处理完排列的1~n位{bool flag=true;//flag为true表⽰当前排列为⼀个合法⽅案for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(abs(i-j)==abs(P[i]-P[j]))//如果在对⾓线上{flag=false;//不合法}}}if(flag) count++;//若当前⽅案合法,count+1return ;}for(int x=1 ; x<=n ; x++)//枚举1~n,试图将x填⼊P[index]{if(hashTable[x]==false)//如果x不在P[0]~P[index-1]中{P[index]=x; //令P的第index位为x,即把x加⼊当前排列hashTable[x]=true;//记x已在P中generateP(index+1);//处理排列的第index+1号位hashTable[x]=false;//已处理完P[index]为x的⼦问题,还原状态}}}int main(){n=8;generateP(1);printf("%d\n",count);return 0;}3.回溯法求解;#include<cstdio>#include<cmath>const int maxn=11;int count=0;//P为当前排列,hashTable记录整数x是否已经在P中int n,P[maxn] ,hashTable[maxn] = {false};//当前处理排列的第index号位void generateP(int index){if(index==n+1){count++;return ;}for(int x=1;x<=n;x++)//第x⾏{if(hashTable[x]==false)//第x⾏还没有皇后{bool flag=true;//flag表⽰当前皇后不会和之前的皇后冲突 for(int pre=1;pre<index;pre++)//遍历之前的皇后{//第index⾏的皇后的⾏号为x,第pre列皇后的⾏号为P[pre] if(abs(index-pre)==abs(x-P[pre])){flag=false;//与之前的皇后在⼀条对⾓线,冲突break;}}if(flag)//如果可以把皇后放在第x⾏{P[index]=x;//令第index列皇后的⾏数为xhashTable[x]=true;//第x⾏已经被占⽤generateP(index+1);//递归处理第index+1⾏皇后hashTable[x]=false;//递归完毕,还原第x⾏为为占⽤状态 }}}}int main(){n=8;generateP(1);printf("%d\n",count);return 0;}希望本⽂所述对⼤家C语⾔程序设计有所帮助。
八皇后问题课程设计1设计背景1.1课程设计的目的本课程设计的目的在于提高学生对数据结构和C++语言课程的运用能力,并能使学生加深对数据结构和编程工作的理解。
书本知识转化成个人能力,最终还是要靠不断地付诸实践,课程设计恰为这种时间提供了一个很好的平台。
1.2课程设计任务与要求程序启动后显示一张8*8的棋盘,然后游戏者可以用坐标输入方式在棋盘上布下棋子。
如果布下的棋子合法,则增加10分并可以继承布下一个棋子。
如果布下的棋子不合法,给出游戏者的得分数。
若无错误布下8颗棋子,则给与满分100分。
(由于本学期我们尚未学习图形界面的有关类容,所以课程设计中的有关图形界面的内容进行了修改。
)游戏规则要求不能在同一行或同一列或同一条对角线上放置二个或二个以上的棋子,但每行都必须放置一个棋子。
2 程序的实现过程2.1设计思想、算法及实现要点程序编写都是由简单到复杂的,接到任务以后,就在脑子里有了一个大概的框架。
一个while(1)的打循环里嵌套一个界面输入程序,通过用户不断地输入来控制游戏的循环的继续和跳出,并且在设计一个自动跳出的判断语句。
这样,玩家就能在循环体里不断布棋,直到玩家想终止游戏或者游戏过关成功。
关于下棋系统,首先要处理的就是棋盘,我把棋盘用赋值为0或1的二维数组来模拟国际象棋棋盘。
0代表无棋子,1代表已下的棋子。
这样就比较方便我以后判断棋盘横竖斜有且只有一个棋子,只需将横竖斜的元素累加,结果等于1即可。
由于没有真正的图形界面,下棋的方法就只能依靠用户输入横竖坐标了,输入坐标后,系统自动将该坐标位置的元素赋值为1。
关于打分细则,我的设计是给一个基准分20分,正确下一个棋就加10分,这样,当游戏过关时恰好是100分。
具体到实际编程时,又考虑到,游戏程序的可玩性问题,我又在之前的的简单框架上补充了悔棋的功能,并且能一次性悔多步棋子,这样,打分细则又改变了:起评分20分下对一颗棋子奖励10分,若要悔棋,悔棋一步扣除15分。
实验报告——八皇后问题求解(递归和非递归)学号:专业年级:姓名:一、需求分析(要实现的功能描述)1.问题描述八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。
八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。
当且仅当n=1或n≥4时问题有解。
八皇后问题最早是由国际国际象棋棋手马克斯·贝瑟尔于1848年提出。
诺克也是首先将问题推广到更一般的n皇后摆放问题的人之一。
2.实现功能八皇后问题实现了在棋盘上摆放八个皇后的功能,这八个皇后任意两个皇后都不能处于同一条横行、纵行或斜线上。
3.测试数据测试数据可以通过手工寻找三组满足需要的值,测试数组(M,N),其中M代表皇后所在的行,N代表皇后所在的列。
例如,第一组测试数据:(1,4)、(2,7)、(3,3)、(4、8)、(5,2)、(6,5)、(7,1)、(8,6);第二组测试数据(1,4)、(2,2)、(3,7)、(4,3)、(5,6)、(6,8)、(7,5)、(8,1)。
最后与编程求得的结果进行比较。
如果这三组数据在最后编程求得的结果中,说明程序的编写基本没有什么问题。
二、概要设计在进行概要设计的过程中,要清楚整个程序包含的功能模块及模块间的调用关系。
对于八皇后问题,整个程序中应该包括主函数模块,摆放皇后的函数模块,以及判断皇后的位置是否摆放正确的判断模块。
对于模块间的关系,在运行主函数的过程中会调用摆放皇后的函数模块,在摆放皇后的函数模块中,又会调用判断皇后位置是否摆放正确的判断模块。
三、详细设计抽象数据类型中定义的各种操作算法实现(用N-S图描述)对于求解八皇后问题的非递归算法,N-S图如下:对于八皇后问题求解的递归算法,N-S图如下:四、调试分析1.程序在调式过程中出现的问题及解决方法由于对于C语言编程问题掌握的并非十分熟练,因而在程序的调试过程中出现了一些问题。
八皇后问题的解决完整 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#淮阴工学院数据结构课程设计报告设计题目:八皇后2008 年 6 月 25 日设计任务书摘要:八皇后问题要求在一个8*8的棋盘上放上8个皇后,使得每一个皇后既攻击不到另外七个皇后,也不被另外七个皇后所攻击.按照国际象棋的规则,一个皇后可以攻击与之处在同一行或同一列或同一斜线上的其他任何棋子.因此,八皇后问题等于要求八个皇后中的任意两个不能被放在同一行或同一列或同一斜线上。
而本课程设计本人的目的也是通过用c++语言平台将一个8*8的棋盘上放上8个皇后,使得每一个皇后既攻击不到另外七个皇后,也不被另外七个皇后所攻击的92种结构予以实现.使用递归方法最终将其问题变得一目了然,更加易懂。
关键词:八皇后 ; c++ ; 递归法目录.1. 课题综述1. 1课题的来源及意义八皇后问题是一个古老而着名的问题,该问题是十九世纪着名的数学家高斯1850年提出的。
在国际象棋中,皇后是最有权利的一个棋子;只要别的棋子在它的同一行或同一列或同一斜线(正斜线或反斜线)上时,它就能把对方棋子吃掉。
所以高斯提出了一个问题:在8*8的格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一列、同一行、或同一条斜线上面,问共有多少种解法。
到了现代,随着计算机技术的飞速发展,这一古老而有趣的数学游戏问题也自然而然的被搬到了计算机上。
运用所学计算机知识来试着解决这个问题是个锻炼和提高我自己编程能力和独立解决问题能力的好机会,可以使我增强信心,为我以后的编程开个好头,故我选择了这个有趣的课题。
1. 2 面对的问题1)解决冲突问题:这个问题包括了行,列,两条对角线;列:规定每一列放一个皇后,不会造成列上的冲突;行:当第I行被某个皇后占领后,则同一行上的所有空格都不能再放皇后,要把以I为下标的标记置为被占领状态;2)使用数据结构的知识,用递归法解决问题。
八皇后问题
一、设计任务与目标
在8行8列的棋盘上放置8个皇后,皇后可吃掉与她处于同行或同列或同一对角线上的其他棋子,要使任一个皇后都不能吃掉其他的7个皇后,则需要同时控制同行,同列,同一条对角线的情况,然后当行,列,以及对角线都无皇后时,记录该点。
并用“Q”表示皇后的位置,“+”表示其它位置。
二、方案设计与论证
定义4个具有全局作用域的数组int LineNum[9]; bool a[9], b[15]分别表示第几列的皇后要放的行位置,第几行上是否未放皇后,“/”斜对角线上是否未放皇后,“\”反斜对角线上是否未放皇后。
通过语句“if ( a[j] && b[i+j-2] && c[i-j+7] ) LineNum[i]=j;”判断并实现一枚皇后是否放置安全。
然而当第一枚皇后位置放置后,则它所在的行,列,以及对角线的记录状态需要改变后,才能进行下一枚皇后的放置。
下一枚皇后判断位置的步骤与第一枚一样,所以可以用递归的方法进行下一枚皇后位置的放置。
当第8枚皇后的位置确定后,就跳出递归。
之后还要对之前每一个位置记录的情况初始化才能进行下一种放置八皇后的情况。
四、全部源程序清单
# include <iostream.h>
#include <stdlib.h>
int LineNum[9]; //第i列的皇后要放的行位置(只用其中的列号1到8)
bool a[9]; //a[i]为1表示第i行上尚未放皇后
bool b[15]; //b[i]为1表示第i条斜对角线上尚未放皇后(斜对角线指的
是"/"状对角线,该对角线上各点的行列号之和i+j为一个常数)
bool c[15]; //c[i]为1表示第i条反斜对角线上尚未放皇后(反斜对角线指的是"\"状对角线,该对角线上各点的行列号之差i-j为一个常数)。
int num=0; //计数器,用于计算方法总数
class bahuanghou
{
int i;
public:
bahuanghou(int x)
{
i=x;
}
void solve(int);
};
void bahuanghou::solve(int i)
{
int j;
for(j=1;j<9;j++)
{
if(a[j]&&b[i+j-2]&&c[i-j+7]) //用于判断并实现:如果在第j行的第i列上放
置皇后安全的话,则将一枚皇后放置到那儿。
{
LineNum[i]=j; //记录皇后位置
a[j]=false;
b[i+j-2]=false;
c[i-j+7]=false;
solve(i+1);
a[j]=true;
b[i+j-2]=true;
c[i-j+7]=true;
}
}
if(i>8) //摆放皇后之后,若i=8即已放满时则递归出口;否
则通过solve(i+1);进行递归调用。
{
num++;
for(int m=1; m<9; m++)
{
for(int n=1; n<9; n++)
{
if(LineNum[m] == n)
cout<<" Q";
else
cout<<" +";
}
cout<<endl;
}
for( m=1; m<9; m++)
{
for(int n=1; n<9; n++)
{
if(LineNum[m] == n)
{
cout<<"("<<m<<","<<n<<")"<<"\t";
}
}
}
cout<<endl;
// system("pause"); //暂停以查看结果
}
}
void main()
{
bahuanghou huanghou(1);
int i;
for(i=0;i<9;i++) //初始化一个"空棋盘" {
a[i]=true;
}
for(i=0;i<15;i++)
{
b[i]=true;
c[i]=true;
}
huanghou.solve(1); //第1列开始的连续8列上均放上皇后
cout<<"一共有"<<num<<"种方法。
"<<endl;
}
五、程序运行的测试与分析
运行结果正确。
六、结论与心得
1.设计中遇到的问题及解决过程
调试过程中出现一些逻辑和语法错误,但是语法错误容易纠正,而
逻辑错误则比较难纠正。
有时会漏掉“,”,“;”,“}”等符号
2.设计体会和收获。
发现自己也能解决有点复杂的问题。
例如如何使用递归函数,以及如何将数据与数据相关的操作关联在一起并封装起来。
七、参考资料
面向对象程序设计Visual C++
八、致谢
真诚地感谢编者,解决了实验上遇到的问题。