1、 JAVAJAVA 程序设计程序设计 课程设计报告课程设计报告 课课 题题: 骑士游历骑士游历程序的开发程序的开发 姓姓 名:名: 学学 号:号: 同组姓名:同组姓名: 专业班级:专业班级: 指导教师:指导教师: 设计时间:设计时间: 2013.06.10 评阅意见: 评定成绩: 指导老师签名: 年 月 日 1 目目 录录 一一 系统描述系统描述 2 2 二二 设计目的与意义设计目的与意义 2 2 三三 分析与设计分析与设计 3 3 3 3.1 .1 创建骑士游历程序创建骑士游历程序 3 3 3 3.2 .2 功能模块划分功能模块划分 3 3 3 3. .3 3 系统详细设计文档系统详细设计文
2、档 5 5 3 3.3.3.1.1 类的划分及相互关系类的划分及相互关系 5 5 3 3. .3.23.2 系统或模块的流程图系统或模块的流程图 5 5 3 3. .4 4 各个模块的实现方法描述各个模块的实现方法描述 6 6 3 3. .4.14.1 AccessibleSquareAccessibleSquare 算法实现算法实现 6 6 3 3. .4.24.2 图形化界面图形化界面 9 9 3 3. .4.34.3 主调用程序的设计和开发主调用程序的设计和开发 1010 3 3. .5 5 测试数据及期望结果测试数据及期望结果 1111 四四 系统测试系统测试 1111 五五 总结或心
3、得体会总结或心得体会 1515 六六 参考文献参考文献 错误!未定义书签。 七七 附录附录 1616 2 一一 系统描述系统描述 骑士游历问题是一个古老而著名的问题,它最初是由大数学家 Euler 提出 的. 问题是这样的:国际象棋中的棋子(叫作骑士)在一个空棋盘内移动,问它能 否经过64格中的每一格且只经过一次?(骑士按L行移动,即在某方向前进两格接 着在与原方向垂直的方向上前进一格) 即:有一个 n*m 的棋盘(2n50,2m50),在棋盘(x1,y1)点即第 x1 行第 y1 列有一个中国象棋马,马走的规则为: (1)马走日字; (2)马只能向右走 任务:求出从起始点到棋盘最右边的所有路
4、径。 本程序实现了骑士游历问题的求解,并能够演示起始位置在棋盘上任何位 置的游历问题的实现.程序采用动态的图形演示,使算法的描述更形象,更生动, 使教学能产生良好的效果。 本程序采用 Applet 来编制整个程序,这样既可以使大家对算法的实现有了 一定的了解,也可以熟悉一下Java图形界面, Applet以及Java语言的命名规范, 让大家熟悉 Java 的基本语言结构和强大的开发能力。 在骑士游历的课程设计中,严格按照面向对象的思想进行开发,其中有 AccessibleSquare 类,MyPanel 类和 KnightsTour 类.我们应注意各个类之间的 关系,以便更深入地理解 Java
5、 中类的思想。 二二 设计目的与意义设计目的与意义 Java 课程设计是计算机科学与技术专业学生必做的集中实践性环节之一, 是学习完Java 程序设计课程后进行的一次全面的综合练习。其目的在于通 过课程设计,使学生能够得到较系统的技能训练,从而巩固和加深对 Java 编程 的基础理论知识的理解,培养学生综合运用所学理论解决实际问题的能力,使学 生成为具有扎实的计算机理论基础和较强的独立动手能力的复合型、应用型人 才。 3 三三 分析与设计分析与设计 解决本程序的问题的关键在于如何让骑士按日字行走, 如何计算骑士从开始 位置到结束位置所走的步数以及如何保证所得的步数为骑士从开始位置到结束 位置所
6、需要的最小的步数,并且可以输入多组数据测试多组最小的步数。 骑士行走路径为“L”型,即下图所示: 图 3.1 马走的规则 当 n,m 给出之后,同时给出马起始的位置和终点的位置,试找出从起点到 终点的所有路径的数目所有路径的数目。例如:(n=10,m=10),(1,5)(起点),(3,5)(终点)。 应输出 2(即由(1,5)到(3,5)共有 2 条路径,如下图): 图 3.2 马走的所有路径 如此,骑士每走一步都按照此方式步进,直至整个棋盘都被“游走”一遍则 完成。 3.1 创建骑士游历程序创建骑士游历程序 在对 eclipse 的基本常识有了初步的了解后,就可以起步创建骑士游历程序 了。 创建过程如下: (1)单击桌面图标,启动 eclipse 开发平台进入一个新的工程界面。 (2)命名新的工程并保存文件,方法是单击