如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
课设题目:五子棋游戏⒈需求分析:⑴程序所能达到的功能1)输出棋盘界面菜单及图像2)开始进入控制3)黑白棋正确输入格式控制4)判断黑白输赢控制5)正确计数对羿步数及下一步所要走的棋盘界面⑵输出的形式以20行20列的坐标的形式输出⑶输入的形式和输入值的范围用坐标方位确定所要输入棋子的准确位置(先输入横坐标,再输入纵坐标)输入值的范围都比须在20行20列的正方形中(0<=x<=20,0<=y<=20)⒉系统设计⑴本系统的主要结构和类结构1)五子棋功能实现的主要结构函数voidgetpointxy();//白棋出子函数voidgetpointmn();//黑棋出子函数voidshowqipan();//实现20行20列正方形界面输出voidprint();//输出下一棋盘界面及计数boolIsxyWin();//白棋获胜boolIsmnWin();//黑棋获胜voidmenu();//显示开始菜单界面2)五子棋类的结构classfive{private:intx;inty;intm;intn;intnum_xy;intnum_mn;charqipan[20][20];//定义20行20列的数组public:five(intX=0,intY=0,intM=0,intN=0,intNum_xy=0,intNum_mn=0)//构造函数初始化{x=X;y=Y;m=M;n=N;num_xy=Num_xy;num_mn=Num_mn;for(inti=0;i<20;i++)//输出20行20列的棋盘界面{for(intj=0;j<20;j++)qipan[i][j]='+';}}};⑵本系统所设计的主要技术简介;1)通过输出流实现五子棋美化的开始菜单界面2)图像处理技术控制界面的颜色3)在主函数中通过定义类的对象实现对功能函数的调用4)通过for循环语句实现20行20列的坐标界面的输出⑶系统工作流程介绍。⑷类的介绍:该类完成了对输入棋子坐标的初始化,通过for循环实现了一个20行20列的坐标,在公有成员中定义了相应的功能函数voidgetpointxy();//白棋出子及计数voidgetpointmn();//黑棋出子及计数voidshowqipan();//实现20行20列正方形界面输出voidprint();//输出下一棋盘界面boolIsxyWin();//白棋获胜boolIsmnWin();//黑棋获胜voidmenu();//显示开始菜单界面⒊调试与测试:⑴调试过程中所遇到的问题及解决方法;1)在我负责的部分中,在输出20行20列的坐标界面中开始设想用特殊字符代表坐标平面的位置,这样设计出版面效果会更好,但运行时,却出现如下的乱码错误最后只好用键盘上常见字符+代替,2)因为当输入的横坐标和纵坐标中值为二位数则与一位的数值之间存在间距的不同,为了正确输出20行20列正方形坐标,因此在当输入值小于10时,必须在结尾时输出一个空格3)在判断棋子的输赢的过程中,通过四种情况的判断,只要其中的一种情况满足其累积值大于等于5,则获胜,但开始时却忽略了其中的一种情况,因为运行时没有报错,所以一直到后来,进入游戏操作中才被发现有问题,设计不完全⑵测试数据:包括正确的输入输出结果和错误的输入及其输出结果如下是正确输出的结果:错误的输入:(3)经验与体会1)通过课设,首先让我生产对编程的兴趣,尤其是当我真正把那程序运行出来时,那种兴奋劲,无法比拟。2)在这次课设的过程中当然也让我学到了很多东西,让我学到了很多课外的相关C++高层次的东西,当然其中也复习到了,这学期刚学的C++知识,尤其是通过类的运用,更让我体会面向对象在编程的过程中的作用,3)另外,通过这次课设也让我体会到合作的重要性,通过我和我搭档(邱超)的分工合作,我们解决很多问题,让我真正认识到团队的力量⒋用户使用说明:说明如何使用你的程序,详细列出每一步操作步骤在整个程序中我负责三个版块:1)类的实现:包括对数据成员的赋值和成员函数的初始化还有通过for循环实现对20行20列坐标的定义:源代码如下classfive{intx;inty;intm;intn;intnum_xy;intnum_mn;charqipan[20][20];//定义20行20列的数组public:five(intX=0,intY=0,intM=0,intN=0,intNum_xy=0,intNum_mn=0)//构造函数初始化{x=X;y=Y;m=M;n=N;num_xy=Nu