logo

您所在位置网站首页 > 海量文档  > 办公文档 > 课程设计

马踏棋盘课程设计实验报告.doc 10页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
特别说明: 下载前务必先预览,自己验证一下是不是你要下载的文档。
  • 内容提供方 文档分享(上传创作收益人)
  • 发布时间:2019-02-04
  • 需要金币150(10金币=人民币1元)
  • 浏览人气
  • 下载次数
  • 收藏次数
  • 文件大小:191.5 KB
下载过该文档的会员
你可能关注的文档:
... WORD格式可编辑版 《数据结构》 课 程 设 计 实 验 报 告 课程名称: 《数据结构》课程设计 课程设计题目: 马踏棋盘 姓名: 邱可昉 院系: 计算机学院 专业: 计算机科学与技术 班级: 学号: 指导老师: 王立波 2012年5月18日 目录 课程设计的目的………………………………………………………3 问题分析………………………………………………………………3 课程设计报告内容……………………………………………………3 概要设计………………………………………………………3 详细设计………………………………………………………3 测试结果………………………………………………………5 程序清单………………………………………………………6 个人小结 ……………………………………………………………10 1.课程设计的目的 《数据结构》是计算机软件的一门基础课程,计算机科学各领域及有关的应用软件都要用到各种类型的数据结构。学好数据结构对掌握实际编程能力是很有帮助的。为了学好《数据结构》,必须编写一些在特定数据结构上的算法,通过上机调试,才能更好地掌握各种数据结构及其特点,同时提高解决计算机应用实际问题的能力。 2.问题分析 *问题描述:将马随机放在国际象棋的8X8棋盘Bo阿rd[0..7,0..7]的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线 ,并按求出的行走路线,将数字1,2,…,64依次填入8X8的方阵输出之。 *测试数据:由读者指定,可自行指定一个马的初始位置。 *实现提示:每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。并探讨每次选择位置的“最佳策略”,以减少回溯的次数。 3.课程设计报告内容 (1)概要设计 定义一张棋盘,定义一个栈保存马走的路径的点坐标和来自方向,用函数计算周围可走坐标,并检查正确性,当周围没有可走格子时退栈到最优位置,继续进行,然后将路径输出。 详细设计 定义结构体,方向数组和Qioan类 struct Point { int x; //记录横坐标 int y; //记录纵坐标 int from; //前一个位置的方向 }; Point side[8]={0,0,0}; //记录可能的方向坐标 class Qipan{ public: Qipan(); ~Qipan(); void Setside(Point); //设置方向坐标 bool Getside(int,Point &); //将指定方向的坐标给特定指针 bool HorseVisit(Point); //输入开始点运行棋盘 bool Pass(Point); //输出路径 private: int **gezi; //棋盘格子 }; 然后对每个函数进行定义 Qipan::Qipan(){ //构造函数构建棋盘 …… } Qipan::~Qipan(){ //销毁棋盘 …… } void Qipan::Setside(Point cur){ //根据输入的当前点设置下一个点的可能方向坐标 …… } bool Qipan::Getside(int i,Point &next ) { //根据方向把将坐标赋给下一个点 …… } bool Qipan::HorseVisit(Point begin){ //棋盘运行 …… } 最后是主函数,设计一些用户界面 int main(){ bool s=true; while(s){ int count=0; int gezi[8][8]={0}; Point begin; cout<<"请输入马的初始位置x和y:"; cout<<endl; cout<<"其中1<=x,y<=8,如:1 1 "<<endl; cout<<"输入:" ; cin>>begin.x>>begin.y; //输入起始点,并判断正确性 while(begin.x>8||begin.x<1||begin.y>8||begin.y<1){ cout<<"输入有误

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

“原创力文档”前称为“文档投稿赚钱网”,本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556