车库管理实验报告.doc_第1页
车库管理实验报告.doc_第2页
车库管理实验报告.doc_第3页
车库管理实验报告.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告XX班 XX年XX月姓名 XX学号 XX电话XX实验题目 停车场管理 程序的功能设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。为停车场编制按上述要求进行管理的模拟程序(1)输入的形式每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,A表示到达;D表示离去,E表示输入结束(2)输出的形式若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。概要设计(1) 给出所用抽象数据类型的逻辑定义 InitStack(SeqStack *S) /*建汽车站栈*/ IsEmpty(SeqStack *S)/*判断栈空*/ IsFull(SeqStack *S)/*判断栈满*/ Push(SeqStack *S,Car x)/*入栈*/ PopSeqStack(SeqStack *s,Car *x)/*出栈*/ InitQueue(LinkQueue *Q)/*链队初始化*/ EnterQueue(LinkQueue *Q,Car x)/*入队操作*/ IsEmptyQueue(LinkQueue *Q)/*判断队空*/ DeleteQueue(LinkQueue *Q,Car *x)/*出队操作*/(2) 画出主程序的流程框图main()程序结束car_pop()car_enter()checkstack()push()EnterQueue()checkqueue()详细设计(3) 确定存储结构,并给出所用抽象数据类型的数据结构定义 typedef struct/*每一辆汽车资料*/ int CarCard; int Time; Car; typedef struct/*顺序栈表示车站s1和临时存放区s2*/ Car elemStack_Size; int top; SeqStack; typedef struct Node/*便道中汽车存放结点*/ int CarCard; struct Node *next; LinkQueueNode; typedef struct/*链队列*/ int number; LinkQueueNode *front; LinkQueueNode *rear; LinkQueue;(4)给出主程序的伪码算法 先输入你是要进还是离开还是退出,输入你的车牌号码 进入的时间 while(flag)switch(English) 如果是进入:car_enter(&S1,car1,&Q);break; 如果是离开:car_pop(&S1,&S2,car1,&Q);break; 如果是退出: flag=0; printf(输入结束 n); (5)给出其他模块的伪码算法(主要)(4)(5) car_enter(SeqStack *S1,Car car1,LinkQueue *Q)/*主要*/ (6) (7) int number;(8) 如果栈满(9) 进入队列(10) number=EnterQueue(Q,car1);(11) (12) (13) 否则进入栈中(14) number=Push(S1,car1);(15) (16) (17) car_pop(SeqStack *S1,SeqStack *S2,Car car1,LinkQueue *Q)(18)(19) (20) if(IsEmpty(S1)printf(车站空!n);(21) else if(number=checkSeqStack(S1,car1)(检查栈)(22) for(i=S1-top;inumber-1;i-)(23) Pop(S1,&car2);(24) Push(S2,car2);(25) (26) Pop(S1,&car2);(27)(28) for(i=S2-top;i!=-1;i-)(29) Pop(S2,&car2);(30) Push(S1,car2);(31) (32)(33) printf(队中有车进入车站,请输入此时时间:n);(34) scanf(%d,&time);(35) car2.Time=time;(36) Push(S1,car2);(37) (38) else if(!checkSeqStack(S1,car1)(39) printf(车库中无此车检查便道n);(40) if(number=checkQueue(Q,car1)(41) for(i=0;inumber-1;i+)(42) DeleteQueue(Q,&car2);(43) EnterQueue(Q,car2);(44) (45) DeleteQueue(Q,&car2);调试分析(1) 调试过程中主要遇到哪些问题?是如何解决的? 调试过程中主要出现的问题是接口,最后依靠反复修改和明确传参来解决。 使用说明列出每一个操作步骤,说明每一步的具体操作要求和注意事项。输入E的时候被迫输入0 0必须按照指定输入的形式输入测试结果列出典型输入及对应的输出结果。典型输入: 设n=2,输入数据为:(A,1,5),(A,2,10),(D,1,15),(A,3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论