文档介绍:车厢调度
正文 1
一、数据结构定义 1
1. 抽象数据类型 1
2. 存储结构定义 2
3. 基本操作 2
二、解题过程 5
1. 问题分解 5
2. 模块结构 5
3. 解题思路 7
三、主函数实现 8
四、实验结果 11
1. 实验数据 11
2. 实验结果 11
12
五、实验小结 14
1. 数据结构使用小结 14
2. 需完善之处 14
课程设计体会 15
参考文献 15
课程设计(论文)任务书
软件学院软件工程专业 2013 - 7 班
一、课程设计(论文)题目数据结构课程设计
二、课程设计(论文)工作自 2014 年 12月 22日起至 2014 年 12月 28 日止。
三、课程设计(论文) 地点: 软件测试实验中心
四、课程设计(论文)内容要求:
(1)使学生熟练掌握抽象数据类型的组织和定义;
(2)使学生熟练掌握数据类型的定义和实现;
(3)培养学生组织和分析数据的能力;
(4)培养学生分析和应用基于不同数据结构的算法的能力;
(5)提高学生的科技论文写作能力。
:
每位同学在以下题目中任选一题(在方框中打勾),独立完成课程设计:
□击鼓传花:编号为1,2,……,n的n个人按顺时针方向围坐一圈。一开始第一个人
持有“花”,然后按顺时针方向自1开始顺序传递“花”,经过m个人(m是随机数)后
停止。访问停止时,持有“花”的人必须输出一条信息:“I’m 名字, I got the flower”。随
后从此人开始继续按顺时针方向传递“花”……直到游戏结束。
□全国交通咨询模拟:参见《数据结构题集》P153。
□车厢调度:参见《数据结构题集》P98。
(1)要按照书稿的规格打印誊写课设报告;
(2)报告分为封面、任务书(本文档)、正文、课程设计体会和参考文献四部分;
学生签名:
2014年 12月22日
课程设计(论文)评审意见
(1)题目分析 (20分):优( )、良( )、中( )、一般( )、差( );
(2)流程分析(30分):优( )、良( )、中( )、一般( )、差( );
(3)数据定义(30分):优( )、良( )、中( )、一般( )、差( );
(4)代码编写(10分):优( )、良( )、中( )、一般( )、差( );
(5)创新能力(10分):优( )、良( )、中( )、一般( )、差( );
(6)格式规范性、设计态度及考勤是否降等级:是( )、否( )
评阅人: 职称: 讲师
2014年 12月 31日
正文
数据结构定义
抽象数据类型
本设计中用到的数据结构ADT定义如下:
ADT Stack{
数据对象:D={∈ElemSet,i=1,2,...,n,,n≥0}
数据关系:R1={<∈D,i=2,...,n}
基本操作:
InitStack(&S)
操作结果:构造一个空栈S。
StackEmpty(S)
初始条件:栈S已存在。
操作结果:若栈S是空栈,则返回TRUSE,否则FALSE。
Push:(&S,e)
初始条件:栈S已存在。
操作结果:插入元素e为新的栈顶元素。
Pop(&S,e)
初始条件:栈S已存在且非空。
操作结果:删除S的栈顶元素,并用e返回其值。
存储结构定义
数据存储结构的C语言定义如下:
struct SNode{
int data[45];
int top;
}S; //栈的顺序存储结构
struct pathss{
int paths[45][45];
int number;
}AllPath; //定义一个二维数组来保存所有的输出序列
基本操作
数据结构的基本操作实现如下:
void InitStack() //栈的初始化
{
=-1;
}
void Push(int q) //入栈
{
[++]=q;
}
int Pop() //出栈
{
int temp;
temp=[--];
return temp;
}
int StackEmpty() //判断栈是否为空
{
if(==-1)
return 1;
else
return 0;
}
void Attemper(int pos,int path[],int cur) //调度过程
{
int m,i;
if(pos<n)
{
Push(pos+1); //一个数入栈后,