ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:96.46KB ,
资源ID:15015910      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15015910.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(车厢调度问题课程设计报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

车厢调度问题课程设计报告.docx

1、车厢调度问题课程设计报告南逋理工爭院I课程设计报告课程名称数据结构课程设计选题名称车厢调度班级A1401 姓名 王蓉学号02实验组别同组实验者完成时间2016年1月4日至2016年1月15日1、数据结构课程设计任务书错误! 未定义书签。、题目.错误! 未定义书签。、要求.错误! 未定义书签。2、总体设计错误! 未定义书签。、功能模块设计 .错误! 未定义书签。、所有功能模块的流程图错误! 未定义书签。3、详细设计错误! 未定义书签。、程序中所采用的数据结构及存储结构的说明错误! 未定义书签。、算法的设计思想错误! 未定义书签。4、调试与测试错误! 未定义书签。5、源程序清单错误! 未定义书签。

2、6、C 程序设计总结错误! 未定义书签。7、致谢错误! 未定义书签。8、参考文献错误! 未定义书签。1、数据结构课程设计任务书、题目 车厢调度、要求 假设在铁路调度站(如教科书图(b)所示)入口处的车厢序列的编号依次为1,2,3,n 。设计一个程序,求出所有可能由此输出的长度为n的车厢序列。首先在教科书上提供的栈的顺序存储结构 Seqstack之上实现栈的基本操作,即实现栈类型。程序对栈的任何存取 (即更改,读取和状态判别等操作)必须借助于基本操作进行。2、总体设计、功能模块设计 根据课程设计题目的功能要求,各个功能模块的组成框图如下:、所有功能模块的流程图n3、详细设计、程序中所采用的数据结

3、构及存储结构的说明1)栈类型;typ edef struct stacklistSEIemT ype *base;SEIemT ype *top;int stacksize;SqStack;栈的基本操作设置如下:void Stack_init(SqStack *s) 义栈2. 初始化三个栈 input,temp,output循环控制输出语句,车厢号依次进栈4.调用函数 Stack_Push(&input,i);search(&input,&temp,&output); 输出所有情况基本操作:InitStack(&S)操作结果:构造一个空栈 S。DestroyStack(&S)初始条件:栈 S

4、已存在。操作结果:销毁栈 S。ClearStack(&S)初始条件:栈S已存在。操作结果:将栈S清为空栈。StackLength(S)初始条件:栈S已存在。操作结果:返回栈 S 的长度。StackEmpty(S)GetTop(S,&e)Push( &S, &e)Pop(&S,&e)操作结果:删除S的栈顶元素,并以e返回其值。StackTraverse ( S,visit () 初始条件:栈 S 已存在。操作结果:从栈底到栈顶依次对 S 中的每个元素调用函数 visit ()。核心算法void search(SqStack *input,SqStack *temp,SqStack *output

5、) if(!Emptystack(input) / 一个数进栈后 , 有两种处理方式:要么立 刻出栈, 要么进行下一个数的进栈Push(temp,Pop(input);search(input,temp,output);Push(input,Pop(temp);if(!Emptystack(temp) / 一个数出栈后 , 有两种处理方式: 要么继续 出栈, 要么继续下一个数的进栈Push(output,Pop(temp);search(input,temp,output);Push(temp,Pop(output);if(Fullstack(output) / 栈满时输出序列产生,输出tot

6、al+;PrintStack(*output);主函数描述void main()SqStack input,temp,output;int i;printf(nntttt 车厢调度 n);printf(nt 请输入车厢长度 : );scanf(%d,&final);printf(nt 车厢序列为: n);/ 将栈初始化Initstack(&input);Initstack(&temp);Initstack(&output);/ 将车厢号码进栈for(i=final;i=1;i-)Push(&input,i);search(&input,&temp,&output); / 输出所有可能出现的情况

7、4、调试与测试、调试方法与步骤 运行该程序 输入车厢长度 3,显示结果输入车厢长度 5,显示结果程序运行成功、测试结果的分析与讨论测试要写出测试用例及每个用例结果的的截图) 运行该程序当车厢长度为3时当车厢长度为5时RU|F :利舒就t TiLrabT ir 皿跆 匚册巧1尋 惟.:. iT罕s萍却丸.M 1= i- -4 J T riHfP: 4 ) F I m; ar i ? * 1(1= 1431 i ? r I Mai:ill laN?i= lifIM = |J=I料和117 = 3 Mf J =詔*iiI-IVIEI2Z hlIVeft-t、测试过程中遇到的主要问题及采取的解决措施

8、车厢长度过长的话程序运行需要等待较长的时间,但程序本身是没有错的,因此就通过取小一点的车厢长度来测试,例如 n=ia5、源程序清单#in elude #in elude typ edef int SEIemT ype;typ edef int Status;int total=0; / 车厢序列的总个数typedef structSElemType *base; / 栈底指针SElemType *top; / 栈顶指针int stacksize; / 栈大小/ 构造一个空栈SqStack; / 顺序栈Status Initstack(SqStack *s) s-base=(SElemType

9、*)malloc(final*sizeof(int);if(!s-base) exit(0);s-top=s-base;s-stacksize=final; / 若栈为空,存储分配失败Status Push(SqStack *s,SElemType e) / 插入元素 e 为新的栈顶元素*(s-top)+=e;SElemType Pop(SqStack *s) / 若栈不为空,则删除 s 的栈顶元素if(s-top=s-base) return 0;else return *(-(s-top);Status Emptystack(SqStack *s) / 判断是否栈空if(s-top=s-b

10、ase) return 1;else/ 判断是否栈满return 0;Status Fullstack(SqStack *s) if(s-top-s-base=final) return 1;elsereturn 0;int *p;p=;printf(t%ld: ,total);for(;p!=;) printf(%d ,*p+);printf(n);void search(SqStack *input,SqStack *temp,SqStack *output) if(!Emptystack(input) / 一个数进栈后 , 有两种处理方式:要么立 刻出栈, 要么进行下一个数的进栈Push

11、(temp,Pop(input);search(input,temp,output);Push(input,Pop(temp);if(!Emptystack(temp) / 一个数出栈后 , 有两种处理方式: 要么继续 出栈, 要么继续下一个数的进栈Push(output,Pop(temp);search(input,temp,output);Push(temp,Pop(output);if(Fullstack(output) / 栈满时输出序列产生,输出total+;PrintStack(*output);/ 主函数void main()SqStack input,temp,output;i

12、nt i;printf(nt 请输入车厢长度 : );scanf(%d,&final);printf(nt 车厢序列为: n);/ 将栈初始化Initstack(&input);Initstack(&temp);Initstack(&output);/ 将车厢号码进栈for(i=final;i=1;i-)Push(&input,i);search(&input,&temp,&output); / 输出所有可能出现的情况6、C程序设计总结该程序设计的初期我只知道顺序栈的实现,通过图书馆以及网络资源 的共享,我知道了递归的使用,更加利于有车厢调度的实现。虽然能 够有效运行车厢的所有序列,但只针对车厢长度较小的车厢长度,一 旦车厢长度过大,程序的运行任然需要一定的时间,此方面还要深入 研究。7、致谢能够完成这次课程设计必须感谢数据结构课程老师卫丽华,在她的帮 助下我抓住了该课程设计的核心, 能够理解并实现了代码的成功运行。8、参考文献1 严蔚敏。数据结构习题,清华大学出版社2 管致锦。数据结构,清华大学出版社

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2