已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计,课程设计有困难? 加QQ929486211一、设计要求(1)只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读;(2)至少采用文本菜单界面(如果能采用图形菜单界面更好);(3)学生可自动增加新功能模块(视情况可另外加分);(4)写出课程设计报告,具体要求见相关说明文档。1、 问题描述:将马随机放在国际象棋的8*8棋盘的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线 ,并按求出的行走路线,将数字1,2,64依次填入这个8*8的方阵,输出之。请用C/C+编写一系统,模拟运动会分数统计过程,软件应包括如下几个方面:2、设计要求(1) 程序的输入:设计程序按要求输入马的初始位置。(2) 程序的输出:程序的设计完成后应给出马从初始位置走遍棋盘的过程,并按照求出的行走路线的顺序,将1,2,3,4,64依次填入8*8棋盘方阵,并输出之。3、数据结构与实现提示每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。二、概要设计1、主界面设计课程设计报告。2、系统功能设计图1 系统功能结构图三、模块设计1.系统子程序及功能设计(1)判断空栈 bool empty_stack(sqstack &s) /判断栈是否为空 if(s.top=s.base) return 0; else return 1; (2)入栈和出栈void push(sqstack &s,huaqipan &q) /插入元素为新的栈顶元素*s.top=q;s.top+; void pop(sqstack &s,huaqipan &q) /删除栈顶元素 ,q返回其值s.top-; q=*s.top;(3)计算可走的路线 int count(int r,int c) /count函数用以计算并返回下一步某方向可行路线的总数 int di_n=0,k,e,f;for(k=0;k-1&e-1&fn&!signef)di_n+;return di_n; /返回下一步某方向可行路线的总数四、详细设计1、数据类型定义(1)定义一个结构体,用来画一个8*8的棋盘格typedef struct huaqipan int num; /记录该格是路径中的第几步 int heng; /该格的横坐标 int zong; /该格的纵坐标 int di8; / 记录该格的下一步(8个方向)是否走过,走过为1否则为0 huaqipan;huaqipan q,p;(2)定义一个栈的结构体其实现代码如下: typedef struct sqstack /定义栈 huaqipan *base; /栈底指针 huaqipan *top; /栈顶指针 int stacksize; /栈容量 sqstack; sqstack s,sp;2.主函数void main( )是主函数。列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。其实现代码如下: int main()system(color 9E);int choice, s;cout请选择,1开始,2退出choice;switch(choice)case 1:dochess();cout 继续输入 , 0 - 跳出s;while(s=1);case 2: break;return 0;五、测试分析运行程序,进入系统主菜单。用户可以选择开始或退出系统,界面如图所示。(输入1,1的结果)用户可以按1再次输入,也可按0推出系统。(4)退出系统在主菜单下输入0可以退出系统,并有中文提示,如图所示。 退出系统六、用户使用手册1.输入信息,横坐标和纵坐标(依照提示,确保输入的信息在规定的范围之内)0.退出系统。七源代码其实现代码如下: #include#include#include#includeint qipan88; /棋盘方阵,存放各点走的次序 int r,c,i,j,total,n=8,max=64; /r,c分别表示横纵坐标;total 进入路径栈的元素个数;n是棋盘行列数;max是总格数 int dir82=-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2,-2,-1; /定义8个方向的操作int sign88; /标记该格是否已走过,是为1,否为0 typedef struct huaqipan int num; /记录该格是路径中的第几步 int heng; /该格的横坐标 int zong; /该格的纵坐标 int di8; / 记录该格的下一步(8个方向)是否走过,走过为1否则为0 huaqipan;huaqipan q,p;typedef struct sqstack /定义栈 huaqipan *base; /栈底指针 huaqipan *top; /栈顶指针 int stacksize; /栈容量 sqstack; sqstack s,sp; int make_stack(sqstack &s) /构造一个空栈s s.base=new huaqipanmax;/分配栈的内存空间 s.top=s.base; /空栈,栈底、栈顶指针指向一处 s.stacksize=max; /栈的最大容量等于max=64 return 1; bool empty_stack(sqstack &s) /判断栈是否为空 if(s.top=s.base) return 0; else return 1; void push(sqstack &s,huaqipan &q) /插入元素为新的栈顶元素*s.top=q;s.top+; void pop(sqstack &s,huaqipan &q) /删除栈顶元素 ,q返回其值s.top-; q=*s.top; int count(int r,int c) /count函数用以计算并返回下一步某方向可行路线的总数 int di_n=0,k,e,f;for(k=0;k-1&e-1&fn&!signef)di_n+;return di_n; /返回下一步某方向可行路线的总数 void chess()/过程函数 int nextr,nextc,min,nr,nc; /nextr和nextc分别记录选中的最少可通方向的下一格横纵坐标 total=0; /入栈数个数初值为0 if(make_stack(s)/空栈构造成功,输入起始坐标 cout (*_*) 欢迎使用endlendl; coutr; cinc; if(r8|c8)/判断是否越界 cout过界 请重新输入r; cinc; while(total-1&r-1&c8&!signrc) /未过界且未曾走过的点,压入栈 q.heng=r; /存储行坐标 q.zong=c; /存储列坐标 push(s,q); /当前点压入栈 signrc=1; /标记为已走过 total+; /入栈数加一 nextr=r; nextc=c; min=8; for(i=0;i-1&nr-1&ncn&!signnrnc) /若该点的下一步可继续往下走 ,则改变行列数 if(count(nr,nc)min) nextr=nr;nextc=nc;min=count(nr,nc); if(total=max) break; /入栈数满总格数,跳出循环 if(nextr!=r) r=nextr; c=nextc; /* else /没地方走, 悔棋(回溯)到上一步 pop(s,q); signrc=0; total-; pop(s,q); r=q.heng; c=q.zong; push(s,q); */ if (!empty_stack(s)/栈为空 cout没有通路endl; break; while(empty_stack(s) /栈不为空 s.top-; q=*s.top; r=q.heng; c=q.zong; qipanrc=max-; / 准备输出棋盘格结构体,一个一个出栈,qipanrc数组记录其路径序号 coutendl; cout毕业设计,课程设计有困难? 加QQ929486211endlendl; cout endl; for(i=0;in;i+) for(j=0;jn;j+) coutsetw(4)qipanij; coutendl; cout ; coutendl; coutendl; cout 程序结束
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出版工作制度
- 万华工作制度
- 人普办工作制度
- 危险源工作制度
- 三班制工作制度
- 农耕地工作制度
- 协会工作制度
- 区人才工作制度
- 制作工作制度
- 专栏部工作制度
- 2024版前列腺癌药物去势治疗随访管理中国专家共识课件
- 2026年基于责任区的幼儿园联片教研活动设计方案
- 国家事业单位招聘2023中国地质调查局昆明自然资源综合调查中心第二批招聘拟聘用人员云笔试历年参考题库典型考点附带答案详解
- 2026年宁夏工业职业学院单招职业技能考试题库含答案详解(完整版)
- 代理记账内部交接制度
- GB/T 8175-2025设备及管道绝热设计导则
- 2025年山东省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解(5卷)
- GB/T 9966.16-2021天然石材试验方法第16部分:线性热膨胀系数的测定
- FZ/T 54131-2021弹性涤纶牵伸丝/涤纶预取向丝空气变形丝(EDY/POY ATY)
- 篮球场改造工程施工组织设计方案
- 中石油公司油库管理制度与工作流程汇编
评论
0/150
提交评论