骑士游历完整课程设计报告

上传人:第** 文档编号:35748540 上传时间:2018-03-19 格式:PDF 页数:17 大小:981.70KB
返回 下载 相关 举报
骑士游历完整课程设计报告_第1页
第1页 / 共17页
骑士游历完整课程设计报告_第2页
第2页 / 共17页
骑士游历完整课程设计报告_第3页
第3页 / 共17页
骑士游历完整课程设计报告_第4页
第4页 / 共17页
骑士游历完整课程设计报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《骑士游历完整课程设计报告》由会员分享,可在线阅读,更多相关《骑士游历完整课程设计报告(17页珍藏版)》请在金锄头文库上搜索。

1、1 目录第一章系统设计的目的及意义 . 21.1系统设计的目的及意义 . 2第二章系统的设计运行说明 . 32.1程序效果图 . 32.2图形界面设计 . 42.3程序结构说明 . 4第三章系统的详细设计. 53.1 主调用程序的设计和开发 . 53.2 部分代码的详细分析 . 6第四章系统运行截图. 8第五章新得体会 . 9第六章文献参考 . 10附录 . 102 第一章 系统设计的目的及意义1.1 系统设计的目的及意义Java 课程设计是计算机科学与技术专业学生必做的集中实践性环节之一,是学习完 Java 程序设计课程后进行的一次全面的综合练习。其目的在于通过课程设计,使学生能够得到较系统

2、的技能训练,从而巩固和加深对Java 编程的基础理论知识的理解, 培养学生综合运用所学理论解决实际问题的能力,使学生成为具有扎实的计算机理论基础和较强的独立动手能力的复合型、应用型人才。骑士游历问题是一个古老而著名的问题,它最初是由大数学家Euler 提出的,问题是这样的 :国际象棋中的棋子 (叫作骑士 )在一个空棋盘内移动 ,问它能否经过64 格中的每一格且只经过一次?(骑士按 L 行移动 ,即在某方向前进两格接着在与原方向垂直的方向上前进一格) 本程序实现了骑士游历问题的求解,并能够演示起始位置在棋盘上任何位置的游历问题的实现 .程序采用动态的图形演示,使算法的描述更形象 ,更生动 ,使教

3、学能产生良好的效果 . 本程序采用 Applet 来编制整个程序 ,这样既可以使大家对算法的实现有了一定的了解 ,也可以熟悉一下 Java图形界面 , Applet 以及 Java语言的命名规范 .作为本书的第一例子 ,希望能让大家熟悉Java的基本语言结构和强大的开发能力. 在骑士游历的课程设计中 ,我们严格按照面向对象的思想进行开发,其中有AccessibleSquare 类,MyPanel类和 KnightsTour 类.读者应注意各个类之间的关系,以便更深入地理解Java中类的思想 . 3 第二章 系统的设计运行说明2.1 程序效果图整个程序界面由三部分组成,上方有一个一个工具栏,可以

4、执行相应的操作。中间是骑士游历的效果显示图,动态演示骑士游历的过程;最下边一排是NextTour 和 NextMoving 两个按钮,单击NextTour 按钮可以重新开始一个新的游历,单击 NextMoving 按钮,则显示骑士要走的下一步。如图 2.1.1所示(这是骑士在第一个格子起始位置进行游历的情况,如果想在其他的位置开始游历,直接单击 NextTour 按钮就可以了,程序实现的骑士的起始位置的方式是按照从第一列第一个开始、直到最后一列、最后一行)。另外,可以由边框的颜色的不同,判断骑士的初始位置、上一步所走的位置和现在所处的位置。单击NextMoving 按钮可以显示骑士游历的下一个

5、位置。连续单击直到 64 个格子全部都走完, 可以清晰的显示整个游历的过程。 图 2.1.2显示的是骑士游历起始位置在第一个格子的游历的一个中间状态。当然,骑士可以在棋盘的任何位置开始。图 2.1.1 骑士在第一个格子的情况图 2.1.2 骑士在第一个格子的游历的中间状态4 2.2 图形界面设计本程序是 Applet 的图形界面以及如何利用图形用户界面的控件接受用户信息, 并用图形或图像显示结果 . (1) MyPanel函数实现图形化显示结果, MyPanel类就是画图类 . 首先用两种不同颜色的方块 (WHITE和 BIACK)显示出棋盘 , 还有其他两种方块 (WKNIGHT 和BKNI

6、GHT), 这两种方块上都有骑士 , 但颜色不一样 . 在骑士游历过程中不断用后来两种有骑士的方块代替前两种方块, 其中需要注意的是保持棋盘的颜色一致性.如 5-3 图所示 . 将其设置为静态变量 , 方便使用 , 防止修改时出错 . 2.2.1 骑士游历游戏中的棋盘用图(2) 其次就是要显示骑士起始位置, 刚走过的步的位置和现在的位置, 用边框的不同来加以区别, 采用函数g.setColor(Color.green)(刚走过的步显示为绿色 ) 和 g.setColor(Color.biue)(当步显示为蓝色 ) 实现. 这个类的对象在主类 KnightsTour 中被实例化 . 2.3 程序

7、结构说明本程序由三个类组成一个工程文件。其中 KinghtsTour 是主类,或者说是控制类, AccessibleSquare 类主要是算法的实现, MyPanel类实现图形化显示结果。程序的运行关系图如图2.3.1 所示。Accessible Square类KinghtsTour 主类MyPanel类图 2.3.1 程序运行关系图5 第三章 系统的详细设计3.1 主调用程序的设计和开发KnightsTour类是控制类 ,它完成对算法类和画图类的调用.由于 JAVA的 GUI编程是事件驱动的 ,因此在 KnightsTour类中,通过监听前面介绍的几个Button 的事件相应 ,完成程序的调

8、用过程 . 采用二维数组表示初始位置位于某个位置的可达到数, 即以棋盘任意一点 为初试位置,骑士游历完整个棋盘的路径数.利用 access数组来表示这个二维 数组. 2, 3, 4, 4, 4, 4, 3, 2 , 3, 4, 6, 6, 6, 6, 4, 3 , 4, 6, 8, 8, 8, 8, 6, 4 , 4, 6, 8, 8, 8, 8, 6, 4 , 4, 6, 8, 8, 8, 8, 6, 4 , 4, 6, 8, 8, 8, 8, 6, 4 , 3, 4, 6, 6, 6, 6, 4, 3 , 2, 3, 4, 4, 4, 4, 3, 2 ; 本程序中在 KnightsTour

9、类中添加了两个按钮JButton nextMoving = new JButton( “ NextMoving“ ); JButton nextTour = new JButton( “ NextTour“ ); 用于用户对游戏进行操作,这两个按钮分别有事件响应. nextMoving.addActionListener( / 匿名内部类 , 定义了 actionPerformed函数 , 调用 showNext函数响应 Next Moving Button事件new ActionListener() publicvoid actionPerformed ( ActionEvent e ) m

10、yPanel.showNext() ; );/end call to addActionListenernextTour.addActionListener( / 内部类定义了actionPerformed函数 , 响应 Next Tour Button事件new ActionListener() publicvoid actionPerformed ( ActionEvent e ) if ( recordCount 0 ) lastxpos = xrecord displayCount - 1; lastypos = yrecord displayCount - 1; 8 nextxpos

11、 = xrecord displayCount ; nextypos = yrecord displayCount ; g.setColor( Color.green); g.drawRect( 40 * xrecord displayCount - 1 + 2, 40 * yrecord displayCount - 1 + 2, 36, 36 ); g.setColor( Color.green); / 刚走过的步显示为绿色g.drawRect( 40 * xrecord displayCount + 2 , 40 * yrecord displayCount + 2, 36, 36 ); g.setColor( Color.blue); / 当前步显示为蓝色g.drawRect( 40 * Math.min( nextxpos , l

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号