课程设计报告

发布 2022-10-01 05:52:28 阅读 3439

数据结构课程设计报告。

题目:马踏棋盘。

学院__ 计算机___

专业___网络工程___

年级班别 2009级01班。

学号___3109006480___

学生姓名___林秋鹏___

指导教师___李小妹___

成绩。2024年 7 月6 日

一.需求分析。

1.问题描述。

设计一个国际象棋的马踏遍棋盘的演示程序。

2.基本要求。

将马随机放在国际象棋的8x8棋盘board[8][8]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,。。

64依次填入一个8x8的方阵,输出之。

3.测试数据。

由读者指定。可自行指定一个马的初始位置。1<=i<=8, 1<=j<=8.即输入行数和列数。

4.选作内容。

(1)求出从某一起点出发的多条以至全部行走路线。

(2)**每次选择位置的“最佳策略”,以减少回溯的次数。(本程序完成)

(3)演示寻找行走路线的回溯过程。(本程序完成)

二.概要设计。

1.总体思路以及改进算法。

a.前期想法以及遇到困难:

一开始,我是按照题目要求,用最基本的算法,就是每次走一步都将其信息放进栈中,以便回溯的时候调用其它出口。而每次走的下一步都是没有经过一定的挑选,而是固定着8个位置中的某个位置开始绕。以至造成回溯次数超多,当马初始位置为某个位置时甚至无法运行,于是宣告了这个算法的失败。

b.后期算法改进:

在前面的基础上,我认识到了,这个算法改进的关键就在于对出口的挑选,才能更多的减少回溯次数,于是有了这个完美的‘贪婪法’。即每次都走下一个位置**口数最少的那个位置,实现过程基本不用回溯。

2.本程序中用到的函数。

void initarray

操作结果:初始化棋盘,将棋盘内的空格置为0

int nextgo(int i,int j

操作结果:计算出某个位置的出口数。

int nextplace(int i,int j)

操作结果:找出当前位置的所有下一个位置**口数最少的位置。

void print

操作结果: 输出棋盘

3.主函数流程以及各模块间的关系。

三.详细设计。

每个操作的伪码算法。

1.void initarray()

if 是棋盘内的格子。

相应数组的元素数值为0

2.int nextgo(int i,int j)

for(p=0;p<8;p++)

if 下一个出口不超出棋盘的范围。

if 下一个出口的数值是0

它的出口数++

3.int nextplace(int i,int j)

for(p=0;p<8;p++)

if下一个出口不超出棋盘的范围。

if下一个出口的数值是0

调用计算出口数函数,计算它的下一个位置哪个的出口最少。

return 出口数最少的那个位置的步数。

4.void print()

输出棋盘。5.主程序。

t =1;while(t) 设置循环,以便多次调用马踏棋盘。

初始化棋盘。

由读者分别输入行号和列号。

if 行号或者列号超出棋盘范围。

请重新输入。

i=i-1计算出棋盘的行数,列数在马位置的数组中的相应下标*/

j=j-1;

board[i][j]=n;

while(n<64)

自定义函数。

void initarray初始化棋盘,将棋盘内的空格置为0 */

int i,j;

for(i=0;i<8;i++)

for(j=0;j<8;j++)

board[i][j]=0;

int nextgo(int i,int j计算出某个位置的出口数 */

int count=0,p;

for(p=0;p<8;p++)

return count;

int nextplace(int i,int j找出当前位置的所有下一个位置**口数最少的位置*/

int step=8,p,min=9,temp;

for(p=0;p<8;p++)

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...