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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

停车场管理系统课程设计报告 最终版.docx

1、停车场管理系统课程设计报告 最终版 目 录 实习目的 13、 设计基本要求 1、2 停车场管理系统的主要功能 24概要设计4、2函数及功能要求 25详细设计 35、数据结构的设计 35. 算法的设计思想及流程图 45、主要函数的功能说明 5、2停车场管理系统流程图 55、2、 主要模块算法描述66 测试分析6、 测试用例6.1、 第二组测试用例 86、3第三组测试用例96、2 测试结果分析 107 使用说明11 总结1参考文献 4 停车场管理系统 实习目的通过本次课程设计,了解并初步掌握设计、实现系统的完整过程,包括系统分析、编码设计、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方

2、法,为进一步的应用开发打好基础。2 问题描述停车场就是一条可以停放n辆车的狭窄通道,且只有一个大门。汽车停放安到达时间的先后依次由北向南排列(大门在最南端,最先到达的第一辆车停在最北端)若停车场已经停满n辆车,后来的汽车在便道上等候,一旦有车开走,排在便道上的第一辆车可以开入;当停车场的某辆车要离开时,停在她后面的车要先后退为她让路,等它开出后其她车在按照原次序开入车场,每两停在车场的车要安时间长短缴费。3 需求分析停车场就是一条可以停放n辆车的狭窄通道,且只有一个大门。汽车停放按到达时间的先后排列。若停车场已经停满辆车,后来的汽车在便道上等候。一旦有车开走,排在便道上的第一辆车可以开入;当停

3、车场的某辆车要离开时,停在她后面的车要先后退为她让路。等它开出后,其她车再按照原次序开入车场,每辆停在车场的车要按时间长短缴费。3、1 设计基本要求(1) 以栈模拟停车场,以队列模拟车场外的便道,按照从终端输入的数据序列进行模拟管理。每一组数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码、以及到达或离去的时刻。对每一组数据进行操作后的信息为:若就是车辆到达,则输出汽车在停车场的内或便道上的位置:若就是车辆离去则输出汽车在停车场内的停留时间与应缴纳的费用(在便道上的停留时间不收费)。栈以顺序结构实现,队列以链表结构实现。(2) 友好性:界面要友好,输入有提示,尽量展示人性化。(3)

4、可读性:源程序代码清晰、有层次,必要时给出注释。() 健壮性:用户输入非法数据时,系统要及时给出警告信息。(5) 测试数据:要求使用全部合法数据、整体非法数据、局部非法数据进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。3、2停车场管理系统的主要功能()根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。() 该程序设计能够通过车牌号查到该车辆在停车场或便道中的位置。(3) 当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。实现停车场的调度功能。该程序设计可以完整的模拟停车场的管理过程。4概要设计4.1数据库设计()栈的抽象数据类型定义AST Stack

5、数据对象:D=|almSet,i=1,2,.、.,n,数据关系:R1=|ai-1,aiD,i=,、,约定an端为栈顶,a1端为栈底。基本操作:nittack(&S) 操作结果:构造一个空栈。eroyStak(&S) 初始条件:栈S已存在。操作结果:栈S被销毁。CeStack(S) 初始条件:栈S已存在。操作结果:将栈S清为空栈。taEty(S)初始条件:栈S已存在。操作结果:若栈S为空栈,则返回TUE,否则FALE。StacLengt(s)初始条件:栈S已存在。操作结果:返回S的元素个数,既栈的长度。GetTo(S,&e)初始条件:栈已存在且非空。操作结果:用e返回的栈顶元素。Psh(S,e)

6、初始条件:栈S已存在。操作结果:插入元素e为新的栈顶元素。Pp(S,&e)初始条件:栈已存在且非空。操作结果:删除S的栈顶元素,并用e返回其值。StakTraverse(,vit()初始条件:栈S已存在且非空。操作结果:从栈底到栈顶依次对的每个数据元素调用函数visit()。一旦visit()失败,则操作失效。ADTStack (2)队列的抽象数据类型定义T Quue数据对象:D=ai|aiEmet,i=,2,、,n,n0数据关系:1=|i-1,aD,i=2,、,n约定其中a1端为队列头,an为队列尾。基本操作:itQuue(&Q) 操作结果:构造一个空队列Q。DetoyQuee(&Q)初始条

7、件:队列已存在。操作结果:队列被销毁,不再存在。ClarQu(&Q)初始条件:队列Q已存在。操作结果:将Q清为空队列。ueuEmpt(Q)初始条件:队列已存在。操作结果:若Q为空队列,则返回TR,否则FASE。QueueLn(Q)初始条件:队列Q已存在。操作结果:返回Q的元素个数,即队列的长度。GeHed(,&e)初始条件:Q为非空队列。操作结果:用e返回的队头元素。Enueue(&Q,e)初始条件:队列Q已存在。操作结果:插入元素e为Q的新的队尾元素。DQueue(&Q,e)初始条件:Q为非空队列。操作结果:删除的队头元素,并用e返回其值。QueueTraverse(Q,ist()初始条件:

8、已存在且非空。操作结果:从队头到队尾,依次对Q的每个数据元素调用函数isit()。一旦visit()失败,则操作失败。ADTQueu4.函数及功能要求(1)此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先调用oton()函数,出现欢迎用户使用的主界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的界面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场内停放车辆的信息以及退出程序这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆

9、信息的函数,在停车场内停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。最后,从调用的这四个函数中回到主函数结束整个程序的运行。(2)在以上各个模块中,出现的调用的函数为:vod IntSack(SeStacCar *s);int Iniu(LinkQeuear*Q);ption();i rrival(StackC Er,inkQueuCar *W);void Leave(qStacka *ner,SeqSackar *Temp,LinkQueua W);void RINT(Caroe *p);vodLis(SeqtckCar S,LinQeeC

10、arW);oid List1(SetackCar*S);void List2(LnQueueCar*W); 详细设计、1 数据结构的设计程序中使用了一个类,五个结构体,两个栈(模拟停车场,其中一个为临时栈),一个队列(模拟便道)。 (1)车辆信息的表示车辆可瞧成就是一个节点,设计成一个结构体,车辆信息包括:车牌号码,车辆的进站时间与离开停车场的时间,定义如下:typdef trct noe cha num10; /车牌号码 Timeeh; /到站时间 Time leve; /离开时间CarNode;()时间、栈与队列的定义时间就是由小时与分钟表示的,有两部分数据,设计两个变量分别存储小时与分钟

11、,定义如下:typeestructient ou; int mn;me;停车场内用栈表示:typdef struc NODE CaN *staMAX+1; /栈用顺序表示 it o;SeqStck;eqStacCar Enr,m; niack(&Tem)在车辆离开时,应用te临时栈把将要离开的车辆后续车辆压入,等车辆离开后压回原栈sack。便道上的车辆表示:typedef struc car CarNde*dta;/ 便道上的车用链表表示 tut car *nxt;QueueN;tpdef trct ode ueNo ea;/设置头指针、尾指针 uueNo *re;LinQueueCar;、2

12、 算法的设计思想及流程图 5.2.主要函数的功能说明(1)vid InitSack(SeqStaCa *);/车辆节点进栈。即当栈未满时,就把到达的车辆进栈。(2)ntInitQueue(LikQueCar *);/车辆节点进队列。即当栈已满时,车辆就进入便道上的队列中(3)itArrival(eqStakCar ,LnkQueueCa *);/车辆到达登记。即车辆到达时,先登记车辆车牌号码。然后再判断停车场有没有停满,没停满就进栈,停满了就停在便道上,即进队列。(4)oid Leav(SqStackCa *,SeqSaCr ,LinkQueCa*);/车辆离开处理。即通过输入离开车辆的位置处

13、理,然后调用PRIT(aNode p,introm);函数进行收费。然后再判断便道上有没有车,如果有,就把便道上的车进停车场内。(5)void ist(Sqacr,LinkQueueCa);/显示车场内与便道上的车辆情况。利用swtc();函数选择显示车场内或就是便道上的车辆情况,包括对下面两个子函数的调用: void List1(SeqStakCar *S);voiit(keCa *W);/分别用来显示车场与便道上的车辆情况()void PRIN(CaNoe*p,it rom);/车辆离开时的收费。即这个函数由车辆离开的函数调用,以分钟计时算费,但只能计算当天之内的费用,如果第二天的话会导致

14、计费为负或减少。即只能当天停,当天开走。5.2.2 停车场管理系统流程图 经过对车辆的进出分析以及对该系统的详细设计,绘制停车场管理系统流程图 图1 停车场管理系统流程图523 主要模块算法描述 本程序最主要的算法就就是车辆到达登记的与车辆离开时的登记。 (1)车辆到达:int Arivl(eqStakCar *Entr,LnkQeu *W)/首先定义一个栈与队列的结构体指针为:* , * 。然后申请一个车辆信息的内存空间,并把它赋给栈指针。车辆到达时就输入车牌号,并通过i(Entepo0) 确保栈不空,然后用个 whle(1) 确保输入的车辆离开位置的合法性。如果不合法,显示输入有误,要重新

15、输入。通过whi(Ente-topro) 判断离开车辆的位置,如果就是中间位置,就要再用一个临时栈放置前面临时开出来的车,等要开出的车开出后,再把临时栈内的车开进停车场内,并调用PRIN(p,room);这个函数计算显示费用。然后还要用 i(W-ed!=W-ear)&nter-tX)语句判断便道上有没有车,如果有车就要显示进停车场的车的车牌号,并登记进入时间。并要进行相应的出队列与进栈操作。6测试分析6.1测试用例说明:测试用例要合理并且足够,既要有正确用例,也要有错误用例,同时检验程序的正确性与强壮性。6.1. 第一组测试用例(1)测试输入:停车场的车辆离开,如表1所示: 表1:车辆离开测试

16、服务选择车牌号/车位到达/离开时间1京21212:121津12212:131鲁D11212:1411:12225:5(错误)(2)测试目的:测试离开方法时间格式控制以及费用计算就是否正确。(3)正确输出:第一次离开的就是京A122,应交费2、4元。第二次时,当在输入65时,应该提示输入错误,重输。(4)实际输出:图2 测试离开方式时间格式及费用计算图图3 测试车辆离开错误图(5)错误原因:第一个正确,第二个错误,原因就是没有对时间格式控制。(6)当前状态:已改正.1. 第二组测试用例(1)测试输入:连续辆车到达,如表2所示: 表2:连续辆车到达测试服务选择车牌号/车位到达时间1京A11 12:

17、121津121212:131鲁D11212:141豫12112:51沪G1121:16214:(2)测试目的:测试到达方法与列表显示方法能否正确完成。(3)正确输出:先到达的三辆车先进入停车场,最后到达的两辆在便道等候。(4)实际输出:表4 车辆到达方式测试图 车辆进入提示图()错误原因:没有错误。()当前状态:通过。6.3第三组测试用例(1)测试输入:接上一步输入离开信息,如表3所示: 表3:接上一步离开信息测试服务选择离开车位离开时间便道车进入时间2114:214:13(2)测试目的:测试离开方法功能就是否成功以及便道进入车场就是否正确。()正确输出:输出号车位的车辆离开信息清单,便道1号

18、车进入停车场。()实际输出:图6 测试离开方法功能就是否成功图(5)错误原因:没有错误。()当前状态:通过、2 测试结果分析经过我们小组一天的调试,我们终于把各模块整合起来了。在这过程中,我们遇到了很多问题,像数据不匹配、括号不配对、赋值重复等。因为C语言的语法限制不太严格,对变量的类型约束不严格,对数组下标越界不做检查等原因,所以,我们的修改工作难度加大。但经过我们这小组共同的努力。此停车管理系统可以基本实现一个小的停车场的管理,其“到达”与“离开”方法都相对比较完整,费用结算清单直观。在输入数据时,要按照严格的格式输入,否则有可能出现死去或崩溃。若本系统能加上保存功能就更好了,因为一个系统

19、在使用过程中总会关机等,而此系统的缺点却就是没有保存功能,关闭之后数据丢失。现受限于各种条件,又因为要求中并未提及,所以本程序暂时没有加入保存功能。7 使用说明(1)运行程序,首先出现主界面。主界面包括四个选项:选项1:车辆到达登记,选择该项可进行车辆到达停车场情况登记;选项2:车辆离开登记,选择该项可进行车辆离开停车场情况登记;选项3:车辆列表显示,选择该项可查瞧车辆列表显示的所有信息,包括停车场列表与便道列表的全部信息;选项4:退出系统,选择该项将退出程序。图 程序初始界面图(2)车辆列表显示界面包括个选项:选项1:停车场列表,选择该项可以查瞧停车场列表的所有车辆的全部信息;选项2:便道列

20、表,选择该项可以查瞧便道列表显示的全部信息;选项3:返回主菜单,可返回主界面。图8 车辆列表显示界面图8总结总体来说,这次的课程设计比去年的c语言的课程设计稍难。我这次的课程设计题目:停车场问题。相比其她课题来说,这个题目还就是比较简单的,主要就是运用了数据结构中栈与队列的知识与操作。程序能够实现基本的车辆到达、离开、收费、遍历显示等主要功能。但我觉得这个程序还有很多小的地方就是可以完善的,比如:在计算收费时如果离开时间就是到了第二天,这样就会导致收费就是负的或减少很多。也就就是说,该程序限制于只能规定当天停,当天开走。至于加算天数的功能我改了几次改不好,又鉴于程序要求中也没有提及并且时间紧张

21、,所以也就没再去研究实现。只要能实现主要的功能就好了。 当然,这次的课程设计、编程实践还就是收获颇丰的。通过实习我的收获如下:(1)我知道了怎样去简化程序,减少她的时间复杂度与空间复杂度。还知道了怎样去完善程序,使其更具健壮性。(2)巩固与加深了对数据结构相关知识的理解,提高综合运用本课程所学知识的能力。(3)培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考、深入研究、分析问题、解决问题的能力。()通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法。()通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念与全局观念。根据我在实习中遇到的问题,我将在以后

22、的学习过程中注意以下几点:(1)认真上好专业实验课,多在实践中锻炼自己。更让我懂得实践就是检验与掌握真理的最好办法。(2)写程序的过程中要考虑周到、严密。需求分析需要反复思考修正。(3)在做课程设计的时候要有信心、有耐心,切勿浮躁。(4)认真学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。(5)在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。总之,本次课程设计不仅加深了我们对栈与队列等数据结构的理解与掌握,同时一定程度上提高了我们程序设计与阅读程序的能力。本次课程设计提高了我们的专业知识,使自己所学的内容运用到实际中来,也增强了实际操作能

23、力,为以后的工作学习提供了一个良好的铺垫。参考文献1 严蔚敏,吴伟民、数据结构.北京:清华大学出版社,204、2 李春葆.数据结构解析M、北京:清华大学出版社,201、3 谭浩强、C语言程序设计.北京:清华大学出版社,2005、4 朱战立,张选平、数据结构学习指导与典型题解M、西安:西安交通大学出版社,202. 张玲,席德春,刘晓杰、C语言上机实践指导教程M、北京:机械工业出版社,20、 罗文劼,王苗,石强、数据结构习题解答与实验指导M、北京:中国铁道出版社,204、7 殷人昆,陶永雷,谢若阳等、数据结构M、北京:清华大学出版社,005、附录/系统说明:本系统适应于小型停车场,且停车时间在一天

24、之内的短期停放停车场。/在此系统中,车库容量设置为3,便于测试。在实际使用中可以对容量大小按实际情况设置。#incld#nludestdlb、h#inludnet;*/栈的初始化voi Inittck(SeqackCar *) iti; -t0; or(i=0;istacks-top=NULL;队列的初始化n Iitee(LinkQeeCr *)Q-head=(Queueoe *)malloc(izo(QueeNde); f(Q-had!=UL) Q-head-netUL; -rear=-had; retu(1); ese retr(-1);/车辆收费vod PRNT(arNoe p, om)

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

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