欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    停车场管理系统实验报告.docx

    • 资源ID:763420       资源大小:52.48KB        全文页数:20页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    停车场管理系统实验报告.docx

    停车场管理系统实验报告一、需求分析1程序的功能:设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。(1)建立静态数组栈作为模拟停车场,动态链表栈作为模拟便道。(2)车辆到达,停入停车场或者便道,记录车牌号,到达时间。(3)车辆离开,记录离开时间,输出停车时间和收费。将便道内车停入停车场,记录进入时间。(4)列表显示停车场,便道内车辆情况。(5)列表显示历史记录(已经离开车的车牌号,到达离开时间,收费)。2 .输入输出的要求:(1)输入:字符串车牌号,到达时间,离开时间(2)输出:停车时间和收费,停车场和便道的停车情况,历史记录。3 .测试数据:1停车场:车牌号苏Allll到达时间12:20离开时间13:002停车场:车牌号苏Allll到达时间12:20离开时间13:00;车牌号苏A2222到达时间13:00离开时间14:00选择停车场内1号位离开,再选择停车场内2号位离开3停车场:车牌号苏AlIIl到达时间12:20离开时间13:00;车牌号苏A2222到达时间13:00离开时间14:00便道:车牌号苏A3333到达时间12:30离开时间13:00;车牌号苏A4444到达时间13:00离开时间15:00选择停车场内2号位离开,再选择选择停车场内2号位离开4停车场:车牌号苏AllII到达时间12:20离开时间13:00;车牌号苏A2222到达时间13:00高开时间14:00便道:车牌号苏A3333到达时间12:30离开时间13:00;车牌号苏A4444到达时间13:00离开时间15:00输出停车场内和便道的停车情况5停车场:车牌号苏AllII到达时间12:20离开时间13:00;车牌号苏A2222到达时间13:00高开时间14:00便道:车牌号苏A3333到达时间12:30离开时间13:00;车牌号苏A4444到达时间13:00离开时间15:00让苏AIlII和苏A2222高开后,再输出停车场内和便道的停车情况,以及历史记录6选择4退出系统二.概要设计4.本程序所用的抽象数据类型的定义ADTStack数据对象:D=aiai为ElemSe3i为正整数数据关系:Rl=<ai-l,ai>ail,ai都属于D,i为正整数基本操作:InitStack(&S)栈SDestroyStack(&S)StackLength(三)元素个数,即栈的长度。StackEmpty(三)空栈,则返回TRUE,否则FALEoGetTop(S,&e)S的栈顶元素ClearStack(&S)构建一个空/S被销毁返回S的若栈S为用e返回将S清为空栈PUSh(&S, e)入元素e为新的栈顶元素。Pop(&S,&e)/删除S的栈顶元素,并用e返回其值2.主程序的流程及各程序模块之间的层次关系(1)流程:输出菜单“1.车辆达到2.车辆离开3.列表显示4.退出系统”。0先选择1,输入车牌号,输出车在停车场的位置,再输入到达时间。随意选择123,4。若选1,停车场满后停在便道上,输入车牌号。选择2,输入要离开的车辆在停车场的位置和离开时间。输出停车时间和费用。若便道上有车,将一辆车移到停车场,输入现在时间。选择3,输出菜单“L停车场2.便道3.历史记录4.返回”。选择1,23分别显示停车场,便道,历史记录的情况。选择4返回到开始菜单。最后选择4结束程序。二、详细设计1.采用c语言定义相关的数据类型(1) typedefstructtimeinthour;intmin;Time;/*时间结点*/(2) typedefstructnode(charnum10;Timereach;Timeleave;inttime;车停在停车场的总时间CarNode;/*车辆信息结点*/(3) typedefstructNODECarNodestackMAX+l;inttop;SeqStackCar;/*模拟车站*/(4) typedefstructcar(CarNodedata;structcar*next;JQueueNode;(5) typedefstructNodeQueueNode*head;QueueNode*rear;LinkQueueCar;*模拟通道*/2.写出各模块的伪码算法(1)主函数voidmain()SeqStackCarEnter,Temp;1.inkQueueCarWait9Leavecar;intch;InitStaCk(&Enter);*初始化车站*/InitStaCk(&Temp);*初始化让路的临时栈*/InitQUeUe(&Wait);/*初始化通道*/InitQUeUe(&Leavecar);/*初始化离开的车*/while(l)pt"11*1*5C5C5Cjc5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C*,)printf(nl.车辆到达)printf(2.车辆离开”);printf(3.列表显示");printf(4.退出系统n”);printf(*n)while(l)scanf(%dch);if(ch>=1&&ch<=4)break;elseprintf(n请选择:l234.n);)switch(ch)case1:AiTiVal(&Enter,&Wait);break;/*车辆到达*/case2:Leave(&Enter,&Temp,&Wait,&Leavecar);break;*车辆离开*/case3:List(&Enter,&Wait,&Leavecar);break;*列表打印信息*/case4:exit(0);*退出主程序*/default:break;(2)初始化栈voidInitStack(SeqStackCar*carstack)/*初始化栈*/carstack->top=0;)(3)初始化便道intInitQueue(LinkQueueCar*carwait)/*初始化便道*/(carwait->head=carwait->rear=(QueueNode*)malloc(sizeof(QueueNode);if(!carwait->head)exit(OVERFLOW);CarWait->head->next=NULL;/队列初始化为NULLreturnOK;)(4)车辆到达,登记车牌号和到达时间intArrival(SeqStackCar*enter9LinkQueueCar*wait)/*车辆到达*/(if(enter->top<MAX)车辆停入停车场并且登记车牌和到达时间PrintfC请输入车牌号<例如:苏A8888>:”);scanf(%s,enter->stackenter->top.num);PrintfC该车在停车场第d个位置nu,(enter->top)+1);Printf("请输入该车的到达时间例如:12:00:”);scanf(n%d:%dH,&(enter->stackenter->top.reach.hour),&(enter->stackenter->top.reach.min);(enter->top)+;returnOK;)else车辆停在便道上并且登记车牌和到达时间EnQueue(Wait);PrintfC请输入车牌号<例如:苏A8888>:”);scanf(,%s,wait->rear->data.num);Printf("该车停在便道上等待n”);returnOK;)(5)插入新的链表尾voidEnQueue(LinkQueueCar*wait)/*插入新的队尾*/QueueNode*p=wait->rear;wait->rear=(QueueNode*)malloc(sizeof(QueueNode);if(!wait->rear)exit(OVERFLOW);p->next=wait->rear;wait->rear->next=NULL;)(6)车辆离开,登记离开时间,输出停车时间和收费。将便道内车辆intLeave(SeqStackCar*enter,SeqStackCar*temp9LinkQueueCar*wait,LinkQueueCar*leavecar)inti,j=enter->top;QueueNode*q=NULL;if(!enter->top)若停车场内没有车则返回(Printfe停车场内没有车内returnERROR;)Printf(”请输入车在停车场中的位序(l-%d):,j);scanf(n%di);while(i<li>enter->top)Printf("输入错误,请重新输入(l-%d):,j);scanf(,%di);)while(temp->top+i<j)临时停放为给要离去的汽车让路而从停车场退出来的汽车temp->stack(temp->top)+=enter->stack-(enter->top);fee(enter,leavecar);while(temp->top)将临时存放的车再停回停车场enter->stack(enter->top)+÷=temp->stack-(temp->top);if(wait->head!=wait->rear)将便道里的一辆车停入停车场(q=wait->head->next;Printf("便道里的s车进入停车场第d个位置n,q->data.num,MAX);enter->stack(enter->top)+=q->data;PrintfC请输入现在时间<例如:12:00>:“);scanf(u%d:%d",&(enter->stackenter->top-l.reach.hour),&(enter->stackenter->top-l.reach.min);wait->head->next=q->next;if(!q->next)wait->rear=wait->head;free(q);)returnOK;)(7)计算收费,将离开车辆的信息登记入历史记录voidfee(SeqStackCar*enter,LinkQueueCar*leavecar

    注意事项

    本文(停车场管理系统实验报告.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开