棋盘数据结构课程设计马踏棋盘

棋盘密码  时间:2021-02-14  阅读:()

前言

学习数据结构的最终目的是解决实际的应用问题 特别是非数值计算类型的应用问题数据结构课程设计就是为此目的一次实际训练。 要求我们在对题目进行独立分析的基础上完成设计和开发并最终接受严格的测试考核。以深化对数据结构课程中基本概念、理论和方法的理解提升综合运用所学知识处理实际问题的能力使我们的的程序设计能力与调试水平有一个明显的提升。

课程设计所安排的题目都有一定的难度和深度从抽象数据类型的提炼、 数据结构选择到算法的设计均由我们每个人自主完成。在一周的时间内历经查找参考资料、使用技术手册、设计编码和撰写文档的实践进一步升华对软件工程师和程序员人格素质的认识和理解。

本课程设计的主要设计内容是 设计一个马踏棋盘问题的演示程序。

即将马随机地放在国际象棋的8*8棋盘的某个方格中然后令马按走棋规则开始进行移动。要求马将棋盘上的每个方格进入且只进入一次走遍全部64个方格。要求编制非递归程序求出马的行走路线将数字1  2,… 64依次填入一个8*8的方阵在屏幕上显示输出。

针对该问题本课程设计采用的是面向对象的开发语言J a va,在

Windows7,myecl ipse8.5.0的平台上开发出来并有图形界面。 最终较好的实现了全部要求达到了预期效果。从中我也学到了很多不仅仅是课堂外的新知识还有那种会查资料会学习新知识的能力。

这个课程设计的顺利完成离不开胡老师的指导和帮助在他的细心指导和帮助下我对马踏棋盘程序开发的整个流程有了深刻地了解和系统地掌握 在这里学生表示真诚地感谢。另外也谢谢这次课程设计提供给我帮助的同学们。 此外 本课程设计还参考了一些文献资料在此向这些文献资料的作者深表谢意。

本课程设计可作为数据结构和Java课程教学的参考案例。

由于时间仓促和本人水平所限设计中难免有不当和欠妥之处敬请老师不

吝批评指正。

笔者

2016.6

目录

摘要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-'

第一章需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-

第二章概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-

2.1系统描述。 。 。 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.2运行环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .: :-

2.3马踏棋盘流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.4算法设计

第三章详细设计

3.1 Jisuan类实现

3.2

3.3

3.4

Disizha ng

4.1

4.2

4.3

D iwu

5.1

5.2

Can kaowe nxia n

Fulu

摘要

本课程设计中的程序实现了马踏棋盘问题的求解 并能够演示起始位置在棋盘上任何位置的问题的实现•程序采用图形演示 使算法的描述更形象 更生动 使教学更能

产生良好的效果。对于该程序我严格按照面向对象的思想进行开发其中有Jsuan类,Shuchu类,Jframe类和Ma in四个类。其中Jsuan类主要是初始化各点的可走路径并且删除不合法的点 Shuchu类主要最优算法的实现 Jframe类为图形用户界面的设计 主要完成棋盘的绘制和结果的打印 Main类主要是负责整个程序的控制。最终调试运行通过实现了全部要求取得了理想效果。

关键词数据结构 马踏棋盘 J ava图形界面

Abstract

This course design of the program real ization horses on board the solution,and to dem on stratethe starti ng positi on on the board of the real izati on of the problem any positi on.The program usinggraphical prese ntati on, the method of more image, the more vivid description,and make the teachingmore can produce good effect.Forthe program, I in strict accorda nee with the object-orie nted ideas ofdevelopme nt, in clud ing Jisua n class,Shuchu class, Jframe classes and Main four classes.Amongthem Jisua n kind basical ly is the in itial points of walk path,and remove not legal point;Shuchu mainkinds of the real izati on of the optimal algorithm; Jframe class for the graphical user in terface desig n,the main finish drawing the board and results of the print;Main kinds of major is responsible for theentire process control . Final test and operation, real ize the requirements through al l ,make the idealeffect.

Key words:data structure horse on board Java graphical in terface

第一章需求分析

数据结构课程设计是计算机科学与技术专业学生必做的集中实践性环节之一是学习完《数据结构》课程后进行的一次全面的综合练习。其目的在于通过课程设计使学生能够得到较系统的技能训练从而巩固和加深对数据结构的基础理论知识的理解培养学生综合运用所学理论知识解决实际问题的能力使学生成为具有扎实的计算机理论基础和较强的独立动手能力的复合型、应用型人才。

马踏棋盘问题是一个古老而著名的问题 它最初是由大数学家Euler提出的.问题是这样的国际象棋中的棋子叫作马在一个空棋盘内移动 问它能否经过64格中的每一格且只经过一次 马按L行移动 即在某方向前进两格接着在与原方向垂直的方向上前进一格

本程序实现了马踏棋盘问题的求解并能够演示起始位置在棋盘上任何位置的问题的实现.程序采用图形演示 使算法的描述更形象 更生动 使教学更能产生良好的效果。

第二章概要设计

2.1系统描述

本程序采用myecl ipse8.5.0来编制整个程序 这样既可以使大家对算法的实现有了一定的了解也可以熟悉一下J ava图形界面以及J ava语言的命名规范。作为数据结构的课程设计本人希望同时也能让大家顺便熟悉一下 Java的基本语言结构和强大的开发能力。

在马踏棋盘的课程设计中我们严格按照面向对象的思想进行开发其中有Jisuan类Shuchu类 Jframe类和Main类。读者应注意各个类之间的关系 以便也能顺道理解Java中类的思想。

2.2运行环境

本程序是在windows7,myecl ipse8.5.0的环境下运行的。

2.3马踏棋盘流程

将马随机地放在国际象棋的8*8棋盘B o a rd[8][8]的某个方格中然后令马按走棋规则开始进行移动。要求马将棋盘上的每个方格进入且只进入一次 走遍全部64个方格。

2.4算法设计

2.4.1设计思想

①利用某种算法直接找到最优解算出最优路径而不是一步步尝试遇到错误回溯。

②设一数组与棋盘坐标-------对应1  1 到8 8 存放每个棋盘格上应算出的路径数字。

③路径从1〜64存放到与棋盘数组中对应的数组中将数组当形参传到图形用户界面利用Graphics绘制棋盘并打印数组。

④ 建立主函数调用计算路径类和绘制棋盘类。

2.4.2程序结构说明

程序的运行关系如图2-1.

图2-1程序运行关系图

2.4.3算法结构设计

①最优算法设计

准备阶段

(a)按国际象棋马的走法最多有8种可能创建数组intpath[][]={{0,0,0},{1,1,2},{2,1,-2},{3,-1,2},{4,-1,-2},{5,2,1},{6,2,-1},{7,-2,1},{8,-2,-1}}存放8中可能为了满足与棋盘--------------对应故用 3 X8数组。

(b)创建数组int [][]way=new int[9][9]存放棋盘每点可走的路径数。

(c)创建数组int [][]output=new int[9][9]存放最终绘制棋盘格中输出的数字 即行走路线。

(d)计算出棋盘上每点的可走路径数存入 way数组超出棋盘边界的点被舍弃让数组与棋盘--------对应。

计算阶段

(a)从用户输入起始点坐标存入m n。

(b)先假设每个点最小可走路径数为 min=8。

(c)根据way数组中已经存放的值与假设的最小可走路径数为8比较若小于8则存入min如此循环最多8次找出使min值最小的点设为下次要走的点依次类推直至找出64个点 即最优路径。

②用户输入

利用java提供的Scanner函数从操作台进行输入。

③图形用户界面

利用Jframe窗体建立图形用户界面编写构造函数用Graph ics()函数绘制矩形并填充颜色画出棋盘表格并利用drawStri ng()在相应的棋盘坐标中打印出output数组中数字。

第三章详细设计

3.1 Jisuan类实现publ ic classjisuan{ //计算棋盘中各点可走路径publ icvoid in it(i nt[][]way){int i ,j,k,x,y;in tpath[][]={{0,0,0},{1,1,2},{2,1,-2},{3,-1,2},{4,-1,-2},{5,2,1},{6,2,-1},{7,-2,1},{8,-2,-1}}; //存放马的行走规则 为了使坐标和棋盘一一对应定义8X3数组

fo r(i=1; i<=8; i++) //先初始各点可走路径为

fo r(j=1;j<=8;j++)way[i][j]=O;fo r(i=1; i<=8; i++) //计算各点可走路径如果合法便存储fo r(j=1;j<=8;j++)fo r(k=1;k<=8;k++)

{x=i ;y=j;x=x+path[k][1];y=y+path[k][2]; //x,y代表走下一步后的坐标通过k的增长改变行走的方向if(x>=1&&x<=8&&y>=1 //判断是否落在棋盘内否则不存储way[i][j]++ ; }

}//init

}//jisua n

注释

此类主要初始化各点的可走路径并且删除不合法的点

wordpress高级跨屏企业主题 wordpress绿色企业自适应主题

wordpress高级跨屏企业主题,通用响应式跨平台站点开发,自适应PC端+各移动端屏幕设备,高级可视化自定义设置模块+高效的企业站搜索优化。wordpress绿色企业自适应主题采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时支持移动终端的常用浏览器应...

bluehost32元/月,2核2G/20GB空间,独立ip,新一代VPS美国云主机!

bluehost怎么样?bluehost推出新一代VPS美国云主机!前几天,BlueHost也推出了对应的周年庆活动,全场海外虚拟主机月付2.95美元起,年付送免费的域名和SSL证书,通过活动进入BlueHost中文官网,购买虚拟主机、云虚拟主机和独立服务器参与限时促销。今天,云服务器网(yuntue.com)小编给大家介绍的是新一代VPS美国云主机,美国SSD云主机,2核2G/20GB空间,独立...

DiyVM:50元/月起-双核,2G内存,50G硬盘,香港/日本/洛杉矶机房

DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...

棋盘密码为你推荐
行业关键词怎么挖掘关键词呢,都有哪些方法外网和内网什么是内网,和外网有什么区别深圳公交车路线深圳公交车路线查询吴晓波频道买粉罗辑思维,晓松奇谈,鸿观,吴晓波频道,财经郎眼哪个更有深度畅想中国20年后中国会变成什么样?--畅想一下未来的中国!!xp系统停止服务xp系统停止服务怎么办安装迅雷看看播放器怎样安装迅雷看看播放器如何快速收录如何做到让百度快速收录网管工具网管软件好用吗?什么样的网管软件好呢?我想管理二十台电脑,让其中的四五台可以上网,其它的只能上局域网,谁能推荐一款软件吗?如果出钱买也可以!谢谢了!发邮件怎么发怎样发邮件?
线路工具 中国特价网 hnyd tna官网 免费申请网站 web服务器安全 爱奇艺会员免费试用 国外视频网站有哪些 空间登录首页 宏讯 starry 阿里云手机官网 电信宽带测速软件 卡巴斯基试用版下载 服务器托管价格 fatcow 最新优惠 什么是dns asp简介 卡巴斯基免费下载 更多