数据结构课程设计任务书马踏棋盘:陈晨.doc.docxVIP

  • 6
  • 0
  • 约3.34千字
  • 约 12页
  • 2018-08-25 发布于上海
  • 举报

数据结构课程设计任务书马踏棋盘:陈晨.doc.docx

数据结构课程设计任务书马踏棋盘:陈晨.doc

课程设计(论文)任务书 软件  学院  软件工程 专业 2009 - 5 班 一、课程设计(论文)题目 数据结构课程设计(A)  二、课程设计(论文)工作自 2010 年 12月 27日起至 2010 年 12月 31 日止。 三、课程设计(论文) 地点: 软件学院机房 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生熟练掌握抽象数据类型的组织和定义; (2)使学生熟练掌握数据类型的定义和实现; (3)培养学生组织和分析数据的能力; (4)培养学生分析和应用基于不同数据结构的算法的能力; (5)提高学生的科技论文写作能力。 2.基本要求: 每位同学在以下题目中任选一题(在方框中打勾),独立完成课程设计: □ 马踏棋盘:参见《数据结构题集》P98。 3.课程设计论文编写要求 (1)要按照书稿的规格打印誊写课设报告; (2)报告分为封面、任务书(本文档)、正文、课程设计体会和参考文献四部分; 学生签名: 年 月 日 课程设计(论文)评审意见 (1)题目分析 (20分):优( )、良( )、中( )、一般( )、差( ); (2)流程分析  (30分):优( )、良( )、中( )、一般( )、差( ); (3)数据定义  (30分):优( )、良( )、中( )、一般( )、差( ); (4)代码编写  (10分):优( )、良( )、中( )、一般( )、差( ); (5)创新能力  (10分):优( )、良( )、中( )、一般( )、差( ); (6)格式规范性、设计态度及考勤是否降等级:是( )、否( ) 评阅人:     职称: 讲 师 年 月 日 PAGE \* MERGEFORMAT8 正 文 数据结构定义 抽象数据类型 本设计中用到的数据结构ADT定义如下: ADT Stack{ 数据对象:D={ ai | ai∈ElemSet,i=1,2,……,n,n≥0} 数据关系:R1={ ai-1,ai | ai-1,ai∈D,i=1,2,……,n } 约定an端为栈顶,a1端为栈底。 InitStack(S) 操作结果:构建一个空栈S。 StackEmpty(S) 初始条件:栈S已存在。 操作结果:若栈S为空栈,则返回TURE,否则FALSE。 Push(S,e) 初始条件:栈S已存在。 操作结果:插入元素e为新的栈顶元素。 Pop(S,e) 初始条件:栈S已存在且非空。 操作结果:删除S的栈顶元素,并用e返回其值。 }ADT Stack 存储结构定义 数据存储结构的C语言定义如下: 位置存储方式 typedef struct qipange { int num; //记录该格是路径中的第几步 int row; //该格的横坐标 int col; //该格的纵坐标 int di[8]; // 记录该格的下一步(8个方向)是否走过,走过为1否则为0 }qipange; 栈的存储方式 基本操作 数据结构的基本操作实现如下: 对栈进行操作的主要函数解释如下: int initstack(sqstack s) //栈的初始化,构造一个空栈s bool stackempty(sqstack s) //判断栈是否为空,若为空,返回0 void push(sqstack s,qipange q) //插入元素q为栈s中新的栈顶元素 void pop(sqstack s,qipange q) //删除栈顶元素 ,用q返回其值 int count(int r,int c) //count函数用以计算并返回下一步某方向可行路线的总数 定义: typedef struct qipange { int num; //记录该格是路径中的第几步 int row; //该格的横坐标 int col; //该格的纵坐标 int di[8]; // 记录该格的下一步(8个方向)是否走过,走过为1否则为0 }qipange; typedef struct sqstack { //定义栈 qipange *base; //栈底指针 qipange *top; //栈顶指针 int stacksize; //栈容量 } sqstack; 解题过程 问题分解 该问题主要应实现以下功能: 能够实现一个国际象棋的马踏棋盘的演示过程将马随机放在国际象棋n×n的棋盘的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘全部的64个方格。编制非递归程序,求出马的行走路线

文档评论(0)

1亿VIP精品文档

相关文档