版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一 设计课题名称. 1二 设计目的与意义. 1三 系统描述. 1四 运行环境. 1五 系统的分析与设计. 1 六 运行结果. 14七 总结 . 16八 参考文献. 19一 设计课题名称骑士游历程序的开发二 设计目的与意义Java 是目前最流行的软件开发语言之一,有 Sun Microsystem 公司推出,成为网络上的“世界语”。Java 适合开发基于多媒体、与平台无关、面向对象的方法进行的基于 Internet、Extranet 的 Applet和应用程序。Java 课程设计是计算机科学与技术专业学生必做的集中实践性环节之一,是学习完Java生能够得到较系统的技能训练,从而巩固和加深对
2、 Java 编程的基础理论知识的计算机理论基础和较强的独立动手能力的复合型、应用型人才。三 系统描述骑士游历问题是一个古老而著名的问题,它最初是由大数学家Euler提出的.问题是这样的:国际象棋中的棋子叫作骑士)在一个空棋盘内移动,问它能否经过64格中的每一格且只经过一次?(骑士按 L行移动,即在某方向前进两格接着在与原方向垂直的方向上前进一格)本程序实现了骑士游历问题的求解,并能够演示起始位置在棋盘上任何位置的游历问题的实现.程序采用动态的图形演示,使算法的描述更形象,更生动,使教学能产生良好的效果.本程序采用 Applet 来编制整个程序,这样既可以使大家对算法的实现有了一定的了解,也可以
3、熟悉一下 Java 图形界面, Applet 以及 Java 语言的命名规范.作为本书的第一例子,希望能让大家熟悉 Java 的基本语言结构和强大的开发能力.在骑士游历的课程设计中,我们严格按照面向对象的思想进行开发,其中有AccessibleSquare 类,MyPanel类和KnightsTour类.读者应注意各个类之间的关系,以便更深入地理解 Java中类的思想.四 运行环境本程序是在 windows xp,JBuild 9 的环境下运行的.五 系统的分析与设计1此次骑士游历问题,在 JBuild 9集成开发环境下完成编写调试等工作.JBuilder 是 Borland公司开发的针对 j
4、ava JBuilder 将可 java JDK 与 sun 公司标准的JDK 不同, Delphi应用那样开发 java应用。JBuilder 的核心有一部分采用了 VCL技术,使得程序的条理非常清晰,JBuilder 另一个特点是简化了团队合 Jbuilder 9 是功能强大的可视化Java 杂企业级应用系统的各种 Java 程序,包括独立运行程序、Applet程序、Servlet、JSPWeb Service Jbuilder 9版本支持Sun的J2SE 1.4和J2EE 1.4。使用可视化工具开发程序有很多好处,其中最显著的是能够快速生成程序框架、 Jbuilder 9 内置了对一些企
5、业级服务器的支持,包括 Borland服务器、Bea公司的 WebLogic 服务器、IBM的 WebSphere服务器和 iPlanet 服务器。Jbuilder 9在以前版本的基础上,增强和增加了许多功能。JBuilder9 的代码预览功能(CodeInsight)可以在编辑器中显示一个与上下文相关的弹出窗口。它可以帮助用户快速、准确地编写 Java 代码。例如,单击一表(MemberInsight)、当前代码中要使用的方法的参数列表(ParameterInsight)、可以通过当前类路径访问的类列表(ClassInsight)、结构窗口中的错误(ErrorInsight)以及在调试时显示
6、变量值及表达式的值。5.1创建骑士游历程序在对 Jbuilder9 序了。创建过程如下:(1)单击桌面图标,启动 Jbuilder9 开发平台进入一个新的工程界面。2(2)命名新的工程并保存文件,方法是单击菜单File New Project,出现一个对话框窗口,将工程名为 Knighttour,选择保存工程文件目录之后,单击Finish按钮完成骑士游历工程的创建。5.2 程序的基本组成程序运行的界面上主要包括 6 个按钮:(1):帮助信息。(2)Start:开始游历。(3)Stop:停止游历。(4)Exit:退出游历。(5)NextTour:重新开始一个新的游历。(6)NextMoving:
7、骑士要走的下一步5.3 程序结构说明 StartStop 和 Exit 四个按钮历的过程;最下边一排是 Next Tour 和 Next Moving两个按钮,单击 Next Tour按钮,可重新开始一个新的游历,单击Next Moving按钮,可显示骑士要走的下一步。如图 5-1 所示。(这是骑士在第一个格子起始位置进行游历的情况,如果想在其他位置开始游历,直接单击Next Tour按钮就可以了,程序实现的骑士骑士位置的方式是按照顺序从第一列第一个开始、直到组后一列、最后一行)。另外,可以由边框颜色的不同,判断骑士初始的位置、上一步所走的位置 Next Moving 击直到 64 个格子全部
8、走完,可以清晰地显示整个游历的过程。图 5-2 显示的是何位置开始,操作者可以自己运行程序,以获得更深的认识。3图5-1 骑士在第一个格子的请况图5-2 骑士在第一个格子游历的中间状态本程序由三个类组成一个工程文件.其中KnightsTour是主类,或者说是控制类, AccessibleSquare类主要是算法实现, MyPanel 实现图形化显示结果.程序的运行关系如图 5-3.图 5.4 AccessibleSquare算法实现AccessibleSquare类主要是算法实现,采用启发式算法.先把八个可能走的方向用两个数组(horizontal 和 vertical ,选择走哪个方向就在原
9、坐标上进行相应的加法,表示骑士到了一个新的位置.horizontal 和vertical 表示骑士8个方向走 L形状所需的X坐标和 Y坐标的变化量: horizontal = 2,1,-1,-2,-2,-1,1,2, vertical = -1,-2,-2,-1,1,2,2,1. 坐标图如下:47812图由于程序采用启发式算法 ,应考察每一方格的可到达性 .使用数组(1)accessibility 表示可达到数,并当骑士游历时,程序动态修正剩余格子的可达到数. accessibility arrayPos = 0 表明格子已经被占据.使用冒泡法来查询最小数. 冒泡排序的基本概念是:依次比较相邻
10、的)两个数,将大数放在前面,小数放在后面。即首先比较第1 个和第 2个数,将 2 个数和第 3 如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束,为可能由于第 2 个数和第 3 个数的交换,使得第 1 个数不再大于第 2个数),将大数放前,小数放后,一直比较到最小数前的一对相邻数,将大数放前,小数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。5.5 图形化界面由于目前用户对界面的要求逐步提高,因此,现在的可视化编程已经取代了传统的用户界面的设计方法。而在可视化编
11、程中,人机之间的直接联系主要是通过一些窗口和对话框来实现。JBuilder9 也不例外,它也是通过这些窗口和对话框来实现窗体。用户需要的控件则可以直接放置在窗体上,利用这些控件来实现复杂的功能。面设计时,只需单击文件视图标签中的 Design 页,就会出现该用户界面设计5 JBuilder JBuilder9 还为这些界面自动生成了相应的代码,为用户提供了程序的环境。接下来,就要由用户设置属性,来编写一些实现用户特定功能的代码。这在很加强功能上来。本程序是 Applet 的图形界面以及如何利用图形用户界面的控件接受用户信息,并用图形或图像显示结果.MyPanel函数实现图形化显示结果, MyP
12、anel类就是画图类.首先用两)种不同颜色的方块(WHITE 和 BIACK)显示出棋盘 ,还有其他两种方块(WKNIGHT和BKNIGHT),这两种方块上都有骑士,但颜色不一样.在骑士游历过程中不断用后来两种有骑士的方块代替前两种方块 ,其中需要注意的是保持棋盘的颜色一致性.如 5-3 图所示.将其设置为静态变量,方便使用,防止修改时出错. 其次就是要显示骑士起始位置,刚走过的步的位置和现在的位置,用边)框的不同来加以区别,采用函数 刚走过的步显示为绿色)和 g.setColor(Color.biue)(当步显示为蓝色 )实现.这个类的对象在主类KnightsTour中被实例化.5.6 主调
13、用程序的设计和开发KnightsTour类是控制类,它完成对算法类和画图类的调用.由于 J 的 GUI编程是事件驱动的,因此在 KnightsTour 类中,通过监听前面介绍的几个 Button的事件相应,完成程序的调用过程.采用二维数组表示初始位置位于某个位置的可达到数 , 即以棋盘任意一点为初试位置,骑士游历完整个棋盘的路径数.利用 access数组来表示这个二维数组. 2, 3, 4, 4, 4, 4, 3, 2 ,6 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
14、, 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类中添加了两个按钮JButton nextMoving = new JButton( 下一步 );JButton nextTour = new JButton( 新起点重新开始 );用于用户对游戏进行操作,这两个按钮分别有事件响应.5.7 程序的源程序 = =(); =; = Y = =-1; ; ;= ( 7;) = ;= ;=;= = ;= ; ( , () ; ;( = ( =0
15、;) = ; ( ) = ( =0;) ( =0;) = 8( ) ( =0;8;) ( =0;8;) =0; ) =0,0 =;= ;=0;8( =0;8;=;= ;=;=;=( ; =(); =(); =0; = 00; = = ( e) ; 9 ( e)( -1) ; =0; ( , g) g 8LXY = = X y ; ; ; x, y = 8X = 8= 8=0; =x; =y;= xyi=0;i;=x+i=y+ i(0)&(8)&0)&(0); =0) =;+1 (+1) ; &= ; ( =0;-1;( i=+ ii i 11 ( i, j ;= i i= j j= i i=
16、j j=ii=j j=( i=0;i;i ; =0;( i=0;i;i ; =; =0 =1; =2 =3; ; ; ; ; ; ),=88= ;= 12 =4 0= 1= 2= 3= ( =; =;=0;8( =0;8;1=(+)%2; ( =0;)=;=; =0; 2; ( -1 ; 2; (g)=0;8( =0;0= -= -= = * -1+* -1+ 13 * +2,* + * * ( -)+1)*( -)+1)* (*0+*0+ ); 六 运行结果程序能正常运行,并得出正确的结果,其运行结果如下.图 14图 图 15图 七 总结这一周的 java 课程设计,我收获了很多,学到了很多
17、知识,同时也发现了自己许多的不足。通过骑士游历程序的设计,初步熟悉了 Jbuilder 集成卡发环境的使用,让那个我熟悉了如何在 Jbuilder 下开发应用程序、程序设计的基本步骤等,另外熟悉了 Java 环境下图形用户界面的编程,为后续工作打下了基础。虽然这个课题是所有的课题中最简单的 ,按照参考书上的程序可以得出正确结果.能的时候,突然发现在菜单栏内的四个按钮不能更改,而且程序中也没有相关代码控制它,于是开始千方百计的对程序进行修改.但到最后仍没收获,请教了老师后才知道问题出在哪里.在JBuild9的开发环境中,在建立Application类型的文件时,如果其最后一项中的Create a runtime configuration没被选中的话见图 7-1),则不会出现菜单16栏中的”,和Exit四个按钮见图 7-2).图 图 不找出问题的根本,就无法理解自己获得的是什么
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版办公区域智能化安防系统合同3篇
- 二零二五年高校学生营养餐供应合同3篇
- 二零二五年度农产品加工货物质押融资合同样本3篇
- 二零二五年精装公寓装修工程承包合同2篇
- 二零二五年餐厅委托经营与顾客满意度提升合同3篇
- 2024版建筑施工劳动合同模板
- 2024年版北京劳动合同解析3篇
- 2025年度幼儿园二零二五年度学生营养餐供应合同协议3篇
- 个人法律咨询服务合同(2024版)3篇
- 二零二五版吊车销售与租赁一体化服务合同3篇
- 2025年湖北武汉工程大学招聘6人历年高频重点提升(共500题)附带答案详解
- 【数 学】2024-2025学年北师大版数学七年级上册期末能力提升卷
- GB/T 26846-2024电动自行车用电动机和控制器的引出线及接插件
- 辽宁省沈阳市皇姑区2024-2025学年九年级上学期期末考试语文试题(含答案)
- 妊娠咳嗽的临床特征
- 2024年金融理财-担保公司考试近5年真题附答案
- 三创赛获奖-非遗文化创新创业计划书
- 封条模板A4直接打印版
- 眼内炎患者护理查房
- 电工维修培训资料 维修电工技术学习 维修电工常识 电工培训ppt课件
- 扑克牌24点练习题大全
评论
0/150
提交评论