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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、系 主 任(签字) 年 月 日成 绩 评 定 表作品成绩报告成绩口试(答辩)成绩总评成绩目 录1 课程设计概述 11.1 车厢调度问题功能概述.12 车厢调度问题总体设计.1 2.1 全局变量定义.1 2.2 栈的定义.23.算法设计.2 3.1用到的进出栈算法基础知识.2 3.2程序分析.2 3.2.2 核心算法.4 3.2.3 主程序描述.54.程序实现.5 4.1运行界面.5 4.2不足之处.75.设计体会.76.结束语.8摘要:通过输入车厢系列的编号n,求出所有可能由此输出的长度为n的车厢系列,用入栈出栈的方法,实现车厢调度,并演示每一种出栈序列的过程。任务:假设停在铁路调度站入口处的

2、车厢系列 的编号依次为1,2,3,n。设计一个程序,求出所有可能由此输出的长度为n 的车厢系列。关键字:车厢,调度,栈,递归1. 引言随着人民生活水平的提高,越来越多的人坐火车出去旅游,这也让火车车厢的量大量增大,也随之出现了一个问题,即合理的调度车厢,本课程设计即利用数据结构里的栈的知识,设计一个合理的算法,来解决此问题。2. 需求分析假设停在铁路调度站入口处的车厢序列的编号依次为1,2,3,,n , 设计一个程序,求出所有可能的长度为n 的车厢序列。 实现栈的顺序存储结构SqStack之上实现栈的基本操作,即实现栈类型。程序对栈的基本操作必须借助于基本操作进行。 测试数据取 n=3,4,

3、程序输出的结果应该在屏幕上显示出来。3. 数据结构设计2.1全局变量定义typedefintSElemType;Status;end;/*最后一个车厢的号码*/longtotal=0;/*总的组合方案数目*/2.2栈的定义structstacklistvoidStack_init(SqStack*s)Stack_Push(SqStack*s,SElemTypee)SElemTypeStack_Pop(SqStackStatusStack_Empty(SqStackStack_Full(SqStackStack_printreverse(SqStacks)3.算法设计3.1用到的进出栈算法基础知

4、识(1)根据要求,了解可能要用到的算法:3.1.1进栈(PUSH)算法 若TOP时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作);置TOP=TOP+1(栈指针加,指向进栈地址);S(TOP)=X,结束(X为新进栈的元素);3.1.2退栈(POP)算法若TOP0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作);X=S(SOP),(退栈后的元素赋给X);TOP=TOP-1,结束(栈指针减,指向栈顶)。3.2程序分析3.2.1.栈的数据结构*base;*top;stacksize;SqStack;s-base=(SElemType*)mal

5、loc(end*sizeof(int);if(!base)exit(0);top=s-base;stacksize=end;*(s-top)+=e;if(s-top=s-base)return0;*(-(s-top);1;top-s-base=end)*po;po=s.base;printf(%ld:,total);for(;po!=s.top;)%d,*po+);n);3.2.2 核心算法search(SqStack*inputPoint,SqStack*tempPoint,SqStack*outputPoint)Stack_Empty(inputPoint)Stack_Push(tempP

6、oint,Stack_Pop(inputPoint);search(inputPoint,tempPoint,outputPoint);Stack_Push(inputPoint,Stack_Pop(tempPoint);Stack_Empty(tempPoint)Stack_Push(outputPoint,Stack_Pop(tempPoint);Stack_Push(tem pPoint,Stack_Pop(outputPoint);if(Stack_Full(outputPoint)total+;Stack_printreverse(*outputPoint);3.2.3 主程序描述m

7、ain()SqStackinput,temp,output;i; printf(请输入车厢数(2-30)nscanf(%d,&end);/*初始化三个栈*/Stack_init(&input);temp);output);/*将车厢号码进栈*/for(i=end;i=1;i-)Stack_Push(&input,i);search(&input,&temp,&thetotal:%ldngetch();4.程序实现4.1运行界面(1)运行主界面(2)当输入n的值为3时,屏幕显示(3)当输入n的值为4时,屏幕显示4.2不足之处我这个程序主要通过设置三个栈来实现,核心算法通过两次递归调用实现。可以实

8、现任务书里所要求的功能,但是也存在着不足之处,就是在运行界面,输出n值,按回车键,得到输出结果后,要想继续输入另一数值n,不能返回,只有退出,重新运行,才能输入得到输出结果。5.设计体会看到自己写的程序成功的运行真是种莫大的欣喜!很多时候,总是感觉学到的东西不知何用,总想用学过的语言来写些程序,却一直不知道写些什么。终于,机会来到了,数据结构课程设计,让我一下子回忆起了以前学到的很多语言,于是,就有了运用自己所学的所有语言分别来实现车厢的调度。通过这个星期的课程设计,我的收获还是不少。我的编程水平有了比较大的提高,虽然我做的程序里还有写问题,做的不够深入,但独立完成一个比较大一点的程序的经历也是很宝贵的。6.结束语本课程设计主要是为了实现解决以下问题的程序:假设停在铁路调度站入口处的车厢序列的编号依次为1,2,3N。求出所有由此输出的长度为N的车厢序列。 我在解决这个问题时,用的是Visual C+来做到这点的。参考文献1 严蔚敏。数据结构习题,清华大学出版社2 许卓群,杨冬青。数据结构与算法,高等教育出版社3 张乃孝,裘宗燕。数据结构C+与面向对象的途经(修订版),高等教育出版社.忽略此处.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1