欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程方案设计书停车场管理.docx

    • 资源ID:13080592       资源大小:32.48KB        全文页数:18页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程方案设计书停车场管理.docx

    1、数据结构课程方案设计书停车场管理课程设计任务书及成绩评定课题名称停车场管理、题目的目的和要求: 设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。、设计进度及完成情况日 期内 容12.29-12.30熟悉设计任务,查阅有关文献资料,确定所采用的数

    2、据结构,初步制定解决问题的方法,完成课程设计说明书内容1-3部分12.311.4选择合适的存储结构,明确解决问题的算法,上机编写并调试源程序1.41.5整体调试程序并记录调试中的问题,完成课程设计说明书第4-6部分。1.81.9演示设计成果,考核成绩。整理课程设计报告。、主要参考文献及资料1 严蔚敏,吴伟民主编. 数据结构(C语言版).清华大学出版社. 2002 2 殷人昆等著. 数据结构(C+版). 清华大学出版社. 20013 金远平著. 数据结构(C+描述). 清华大学出版社. 2005 4 许卓群等著. 数据结构与算法. 高等教育出版社. 20045 Frank M.Carrano 等

    3、著. 数据结构与+高级教程.清华大学出版社. 20046 严蔚敏、吴伟民. 数据结构习题集(C语言版).清华大学出版社. 2002学科部主任_(签字)、成绩评定:设计成绩: (教师填写)指导老师: (签字)二九 年 一 月 五 日目 录第一章 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1第二章 系统分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4、. . . 2第三章 概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3第四章 详细设计与源程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6第五章 调试过程中的问题及系统测试情况. . . . . . . . . . . . . . . . . . 11第六章 结束语. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    5、. . . . . . . . . . . . . .12参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13第一章 概述一、本课程设计意义 课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和

    6、物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。二、本课程设计任务及目的停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。停车场内已停了n辆汽车,后来的汽车只能在门外的便道上等候,一旦有车开走,排在通道上的第一辆车即可开入;当停车场内每辆车要离开时,在它之后进入的车辆必须先退出停车场为其让路,待该辆车开出大门,其他车辆再按原次序进入停车场。为停车场编写按上述要求进行管理的模拟程序。第二章 系统分析一、问题描述设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门

    7、可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停了n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,排在便道上的第一辆车即可开入;当停车场内每辆车要离开时,在它之后进入的车辆必须先退出停车场为其让路,待该辆车开出大门,其他车辆再按原次序进入停车场,每辆停放在停车场的车在它离开停车场时必须按它停留在停车场内的时间长短交纳停车费。试为停车场编写按上述要求进行管理的模拟程序。二、基本要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽

    8、车到达或离去信息,汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。三、测试数据 设n=2,输入数据(A,1,5),(A,2,15),(D,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(arrival);D表示离去(departure);E表示输出(end)。四、实现思路需要另设一个栈,临时停放为离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。栈中每个元素表示一辆汽车,

    9、包含两个数据项:汽车的牌照号码和进入停车场的时刻。第三章 概要设计一、栈的抽象数据类型 ADT stack数据对象:D=aiaicharset,I=1,2,,n,n=0数据关系:R1=ai-1,aiai-1,aiD,I=2,n基本操作:Initstack(&S)操作结果:构造一个空栈S。DestroyStack(&S)初始条件:栈S已经存在。操作结果:操作结果:销毁栈S。ClaerStack(&S)初始条件:栈S已经存在。操作结果:将S清空为空栈。StackLength(&S)初始条件:栈S已经存在。操作结果:返回栈S的长度。StackEmpty(&S)初始条件:栈S已经存在。操作结果:若S为

    10、空栈,则返回TURE,否则返回FALSE。GetTop(S,&e)初始条件:栈S已经存在。操作结果:若栈S不空,则以e返回栈顶元素。Push(&S,e)初始条件:栈S已经存在。操作结果:在栈S的栈顶插入新的栈顶元素e。Pop(&S,&e)初始条件:栈S已经存在。操作结果:删除S的栈顶元素,并以e返回其值。StackTraverse(S,visit()初始条件:栈S已经存在。操作结果:从栈底到栈顶依次对S中的每个元素调用函数visit( )。ADT stack二、链式队列的抽象数据类型typedef struct Qnode QelemType data; Struct Qnode next;Q

    11、node,QueuePtr;typedef structQueuePtr front; 队头指针QueuePtr rear; 队尾指针ADT Queue数据对象:D=aiaiElemSet,i=1,2,n,n=0数据关系:R1=ai-1,aiai-1,aiD,i=2,n 约定中端为队列头,后端为队列尾。基本操作:InitQueue(&Q)操作结果:构造一个空队列Q。DestroyQueue(&Q)初始条件:队列Q已经存在。操作结果:队列Q被销毁,不再存在。ClearQueue(&Q)初始条件:队列Q已经存在。操作结果:将Q清为空队列。QueueEmpty(Q)初始条件:队列Q已经存在。操作结果

    12、:若Q为空队列,则返回TRUE,否则FALSE。QueueLength(Q)初始条件:队列Q已经存在。操作结果:返回Q的元素个数,即队列的长度。GetHead(Q,&e)初始条件:Q为非空队列。操作结果:用e返回的e队头元素。EnQueue(&Q,e)初始条件:队列Q已经存在。操作结果:插入元素e为Q的新的队尾元素。DeQueue(&Q,&e)初始条件:Q为非空队列。操作结果:删除Q的队头元素,并用e返回其值。QueueTraverse(Q,visit()初始条件:Q已经存在且非空。操作结果:从队头到队尾,依次对Q的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。ADT

    13、 Queue三、模块划分1、主程序模块main()初始化while(重复条件) 接受命令; switch(调用条件)Case调用条件A 到达处理;break;Case调用条件D 离开处理;break;Case调用条件E 退出处理; 2、2个栈模块-实现栈抽象数据类型3、队列模块-实现队列抽象数据类型 四、模块调用关系 图3-1 模块调用关系栈模块1-模拟停车场栈模块2-模拟倒车场队列模块-模拟车道第四章 详细设计与源程序一、详细设计以栈模拟停车场,以队列模拟停车场外的便道,按照从终端读入的输入数据序列进行模拟管理。另设一个栈,临时停放为离去的汽车让路而从停车场退出来的汽车。栈以顺序存储结构实现

    14、,队列以链表存储结构实现。停车场栈park模拟停车场。临时栈Aux-park模拟倒车场。便道队列Road模拟停车场外便道。程序运行后,先设定停车时间单位和计费单位,再设定停车场容量(测试数据设定停车场容量n=2)。继续输入车辆数据:车辆属性(到达A或离开D)、车牌号、时间(到达时间或离开时间)。程序根据输入数据中的“车辆属性”进入该属性程序模块。输出车辆停放位置或离开时的收据。然后循环,继续输入车辆数据。当输入车辆数据为E时,程序自动退出。二、源程序可执行程序文件名:停车问题.exe停车场问题管理程序代码如下:#include/定义输入输出函数#include/数据流输入输出#include/

    15、字符串处理#include/定义数学函数 #include /定义杂项函数及内存分配函数 #define size 2 /停车场位置数/模拟停车场的堆栈的性质typedef struct zanlind int number; /汽车车号 int ar_time; /汽车到达时间 zanInode;typedef struct zanInode *base; /停车场的堆栈底 zanInode *top; /停车场的堆栈顶 int stacksize_curren;stackhead;/堆栈的基本操作;void initstack(stackhead &L) /构造一个空栈 L.base=(z

    16、anInode*)malloc(size*sizeof(zanlind);if(!L.base)exit(0); /存储分配失败 L.top=L.base; L.stacksize_curren=0;void push(stackhead &L,zanInode e) /把元素e压入L栈成为新的栈顶元素 *L.top+=e; L.stacksize_curren+;void pop(stackhead &L,zanInode &e) /把元素e弹出L栈 if(L.top=L.base) coutnext=NULL; q.length=0;void enqueue(linkqueue &q,in

    17、t number,int ar_time) /把元素插入队列成为新的队尾元素(属性为number,ar_time) queueptr p; p=(queueptr)malloc(sizeof(duilie); if(!p) exit(0); p-number=number; p-ar_time=ar_time; p-next=NULL; q.rear-next=p; q.rear=p; q.length+;void popqueue(linkqueue &q,queueptr &w) /把元素插入队列(属性为number,ar_time) queueptr p; if(q.front=q.re

    18、ar) cout停车场的便道为空 ! !next; w=p; q.front-next=p-next; q.length-; if(q.rear=p) q.front=q.rear;void jinru(stackhead &st,linkqueue &q) /对进入停车场的汽车的处理; int number,time_a; coutnumber; couttime_a; if(st.stacksize_curren2) zanInode e; e.number=number; e.ar_time=time_a; push(st,e); cout 该车已进入停车场在: st.stacksize

    19、_curren 号车道endlendl; else enqueue(q,number,time_a);/插入元素time_a为q的新的队尾元素 cout停车场已满,该车先停在便道的第q.length个位置上endl; void likai(stackhead &st,stackhead &sl,linkqueue &q) /对离开的汽车的处理 /st堆栈为停车场,sl堆栈为倒车场 int number,time_d,flag=1,money,arrivaltime; /q为便道队列 coutnumber; couttime_d; zanInode e,q_to_s; queueptr w; w

    20、hile(flag) /找到要开出的车,并弹出停车场栈 pop(st,e); push(sl,e); if(e.number=number) flag=0; money=(time_d-e.ar_time)*2; arrivaltime=e.ar_time; pop(sl,e); /把临时堆栈的第一辆车(要离开的)去掉; while(sl.stacksize_curren) /把倒车场的车倒回停车场 pop(sl,e); push(st,e); if(st.stacksize_currennumber; push(st,q_to_s); cout车牌为q_to_s.number的车已从通道进入

    21、停车场,所在的停车位为:st.stacksize_currenendlendl; cout 收 据endl; cout = 车牌号: numberendl; cout=endl; cout|进车场时刻 | 出车场时刻 | 停留时间 | 应付(元)|endl; cout=endl; cout| arrivaltime | time_d | time_d-arrivaltime | money |endl;cout-endlendl;int main()/主函数int m=100;char flag; /进入或离开的标识;stackhead sting,slinshi; /停车场和临时倒车场堆栈的

    22、定义;linkqueue line; /队列的定义;initstack(sting); /构造停车场堆栈stinginitstack(slinshi); /构造倒车场堆栈slinshiinitqueue(line); /构造便道队列linewhile(m) coutn * 停车场管理程序 *endl; cout=endl; cout* *endl; cout* A - 汽车 进 车场 D - 汽车 出 车场 *endl; cout* *endl; cout* E - 退出 程序 *endl; cout=endl; coutflag; switch(flag) case A: jinru(sti

    23、ng,line);break; /汽车进车场 case D: likai(sting,slinshi,line);break; /汽车出车场 case E: exit(0); m-;return 0; 第五章 调试过程中的问题及系统测试情况一、出现的问题1、编程过程中忽略头文件的作用,导致漏掉了一个头文件,以致产生下列错误提示。错误提示:error C2065: malloc : undeclared identifier error C2065: exit : undeclared identifier 执行 cl.exe 时出错.在代码中加上#definestdlib.h,解决此问题。2、

    24、没有良好的编程习惯,没有合适的缩进及换行,给程序的调试带来了比较多的困难。3、编程过程中比较粗心,一些程序结束的分号和成对出现的大括号忘记写。第六章 结束语 通过这次数据结构课程设计,我认识到从课本上学到的知识是远远不够的。本次设计使我深入的了解了栈与队列的建立、插入、删除和在实际问题下灵活运用它们,另一方面使我对栈和队列的抽象数据类型有了进一步的认识。虽然经过努力终于把该系统完成,可是该系统还是不完善,程序中的一些算法还不是很清楚,只不过把简单的功能实现了出来,这些缺憾归根结底都是因为我的C+语言和数据结构的水平还不是很高 ,还需要经过不懈的努力才能做出比较完善的系统。这次课程设计让我明白要

    25、真正的掌握一门编程语言需要的不仅仅是课本上的东西,还要在实际的编程过程中慢慢的掌握其中的奥妙。同时我明白了,要成为一名优秀的编程人员所要具备的各种条件(坚实的编程语言基础、熟练的调试程序的技能、重要的是要有耐心、同时细心也是不可缺少的)。所以为了自己的梦想,在以后的学习过程中,我要不断的充实自己,努力的学习。通过这次课程设计,对数据结构的特点以及存储表示方式的认识有了明显的提高,同时还对在具体应用中选择合适的数据结构和存储结构的能力有了进一步的提升。熟悉了软件开发的基本过程;初步掌握了软件开发过程的问题分析、系统设计、程序编码、测试等阶段的基本任务和技能方法;培养了我的算法设计和算法分析的能力

    26、;提高了综合运用所学的理论知识和方法以及独立分析和解决问题的能力。通过课程设计,我明白,数据结构就是要培养我们的数据抽象能力,它用规范的数学语言来描述数据结构的定义,以突出这门课程的特性。总之,数据结构是计算机专业的一门不可缺少的专业课。虽然课程设计的过程是艰辛的,但是当看着自己的程序能够运行的瞬间,无限的满足感会让自己感到从未有过的兴奋。参考文献1 严蔚敏,吴伟民主编. 数据结构(C语言版).清华大学出版社. 2002 2 殷人昆等著. 数据结构(C+版). 清华大学出版社. 20013 金远平著. 数据结构(C+描述). 清华大学出版社. 2005 4 许卓群等著. 数据结构与算法. 高等教育出版社. 20045


    注意事项

    本文(数据结构课程方案设计书停车场管理.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开