C++课程设计
cout<<\‖ ‖\cout<<\‖ 请选择(1、2,或者0): ‖\
cout<<\‖----------------------------------------‖\ }
int main()//主函数 {
cout<<\‖________________________________________‖\
for(;;) {
menu();
cout< cout<<\请从~中选择一个数:\ int number; cin>>number; switch(number) { case 1: measure1();break; case 2: measure2();break; case 3: measure3();break; case 0: return 0; default: } return 0; 22 cout<<\抱歉,没有该选项,请重新作出选择!!\} C++课程设计 } 5 程序调试分析 1)运行时有些函数的头文件未定义,导致无法进行编译;而且在调试时有些头文件的使用范畴弄混淆了; 2)开始编第一种方法(递归回溯)时,for与if的循环嵌套未能很好掌握,导致几次调试都出现比较严重的错误;且在运用该方法时,未能将八皇后问题的具体思路搞清,没有考虑“如果前次的皇后放置导致后面的放置无论如何都不能满足要求”的问题; 3)在统计方法的个数时,未将累加的那个整型变量进行初始化,导致无法显示,八皇后摆放的是“第X种情况”,也无法统计出八皇后的排列方式是否一定是92种情况。 4)在第三种方法(穷举)编译时,开始我把二维数组定义成整型,但其后在输出棋盘格式时,更本无法调试成功,出现了类型之间的冲突,因为在输出时,我又给那二维数组付成了字符型; 5)未用setw( )函数时,显示的结果相当难看,所定义的标志符都紧靠在一起;多加了一个换行符后,各种情况的间距增大,阅读时舒服多了; 6)如果将92种情形全部打印,则前面的几十种情况将无法显示出,要想看到前面的状态,必须添加一个控制语句,使其能一个一个的输出。 23 C++课程设计 6 运行与测试 开始运行界面,如图6-1所示 输入1时,按enter后如图 6-2所示; 输入2时,按enter后如图6-3所示; 输入3时,按enter后如图6-4所示。 输入0时,按enter后如图6-5所示。 图6-1 八皇后运行界面 (这是把皇后程序进入后的欢迎界面,使用者可以根据需要,选择1,2,3或者0来进行相应的活动) 24 C++课程设计 图 6-2 递归回溯法界面 (这是把皇后第一种方法运行后显示的界面,其中*是棋盘中棋子的位置,@是棋盘中皇后的位置,坐标表示在当前情况下皇后所处位置) 25 C++课程设计 图6-3 非递归界面 (这是把皇后第二种方法运行后显示的界面,其中*是棋盘中棋子的位置,@是棋盘中皇后的位置,坐标表示在当前情况下皇后所处位置) 26