- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
车库管理实验报告
实验报告
XX班 XX年XX月
姓名 XX学号 XX电话XX
实验题目 停车场管理
程序的功能
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。为停车场编制按上述要求进行管理的模拟程序
(1)输入的形式
每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束
(2)输出的形式
若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
概要设计
给出所用抽象数据类型的逻辑定义
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)/*出队操作*/
画出主程序的流程框图
详细设计
确定存储结构,并给出所用抽象数据类型的数据结构定义
typedef struct{/*每一辆汽车资料*/
int CarCard;
int Time;
}Car;
typedef struct{/*顺序栈表示车站s1和临时存放区s2*/
Car elem[Stack_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)给出其他模块的伪码算法(主要)
car_enter(SeqStack *S1,Car car1,LinkQueue *Q)/*主要*/
{
int number;
如果栈满
{进入队列
number=EnterQueue(Q,car1);
}
否则{进入栈中
number=Push(S1,car1);
}
car_pop(SeqStack *S1,SeqStack *S2,Car car1,LinkQueue *Q){
if(IsEmpty(S1))printf(车站空!\n);
else if(number=checkSeqStack(S1,car1)(检查栈)){
for(i=S1-top;inumber-1;i--){
Pop(S1,car2);
Push(S2,car2);
}
Pop(S1,car2);
for(i=S2-top;i!=-1;i--){
Pop(S2,car2);
文档评论(0)