关键词:
那位高手能给我一个 分就这些 最好有注释
问题描述
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场最里面)。如果停车场已经放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进入停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制程序模拟该停车场的管理。
基本要求
(1) 输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应缴纳的费用和它在停车场内停留的时间。
(2) 汽车模拟输入格式为:(到达/离去,汽车牌照号码,到达/l离去的时刻)
(3) 根据输入命令来决定车辆的进入或离开。
实现提示
停车场只有一个大门,因此可以用栈来模拟,而当栈满后,继续来到的车辆只能停在便道上,可知这可以用一个队列来模拟,先排队的车辆先离开便道进入停车场。由于排在停车场内的车辆可以离开停车场,并且要求在依原来的次序进入停车场,因此在一个栈和一个队列的基础上,还需要有一个地方(车辆规避所)保存为了让路离开停车场的车辆,很显然要用栈来模拟,因此要用到两个栈和一个队列。
具体实现方法是用2个栈(停车场)和1个队列(便道)的操作来实现的,你好好研究一下吧!
#include <stdio.h>
#include <stdlib.h>
#define MaxNum 5
#define WaitingNum 3
#define Price 2
typedef struct
int CarNum[MaxNum]; //车牌号
int CarTime[MaxNum]; //进场时间
int top;
SqStack;
typedef struct
int CarNum[WaitingNum];
int front, rear;
SqQueue;
void InitStack(SqStack * &s)
s = (SqStack *)malloc(sizeof(SqStack));
s->top = -1;
int StackEmpty(SqStack *s)
return(s->top == -1);
int StackFull(SqStack *s)
return(s->top == MaxNum - 1);
int Push(SqStack * &s, int Num, int Time)
if(s->top == MaxNum - 1)
return 0;
s->top++;
s->CarNum[s->top] = Num;
s->CarTime[s->top] = Time;
return 1;
int Pop(SqStack * &s, int &Num, int &Time)
if(s->top == -1)
return 0;
Num = s->CarNum[s->top];
Time = s->CarTime[s->top];
s->top--;
return 1;
void DispStack(SqStack *s)
int i;
for(i = s->top; i >= 0; i--)
printf("%d ", s->CarNum[i]);
printf("\n");
void InitQueue(SqQueue * &q)
q = (SqQueue *)malloc(sizeof(SqQueue));
q->front = q->rear = 0;
int QueueEmpty(SqQueue *q)
return(q->front == q->rear);
int QueueFull(SqQueue *q)
return((q->rear + 1)% WaitingNum == q->front);
int EnQueue(SqQueue *q, int e)
if((q->rear + 1) % WaitingNum == q->front)
return 0;
q->rear = (q->rear + 1) % WaitingNum;
q->CarNum[q->rear] = e;
return 1;
int DeQueue(SqQueue * &q, int &e)
if(q->front == q->rear)
return 0;
q->front = (q->front + 1) % WaitingNum;
e = q->CarNum[q->front];
return 1;
void DispQueue(SqQueue *q)
int i;
i = (q->front + 1) % WaitingNum;
printf("%d", q->CarNum[i]);
while((q->rear - i + WaitingNum) % WaitingNum > 0)
i = (i + 1) % WaitingNum;
printf("%d", q->CarNum[i]);
printf("\n");
void main()
int comm;
int Num, e1, Time, e2;
int i, j;
SqStack *St, *St1;
SqQueue *Qu;
InitStack(St);
InitStack(St1);
InitQueue(Qu);
while(true)
printf("请选择车辆状态:\n1.车辆到达\n2.车辆离开\n3.停车场当前停车情况\n4.候车场当前停车情况\n0.退出程序\n");
scanf("%d", &comm);
if(comm == 1 || comm == 2)
printf("请分别输入(到达或离开的)车辆编号和(进场或入场)时间:\n");
scanf("%d%d", &Num, &Time);
switch(comm)
case 1:
if(!StackFull(St))
Push(St, Num, Time);
printf("此车进入停车场第 %d 号车位\n", St->top + 1);
else
if(!QueueFull(Qu))
EnQueue(Qu, Num);
printf("停车场目前已满,请稍后!");
printf("此车进入候车场第 %d 号\n", Qu->rear);
else
printf("候车场已满,请另寻其他停车场吧!");
break;
case 2:
for(i = 0;i <= St->top && St->CarNum[i] != Num; i++);
if(i > St->top)
printf("停车场没有该编号的车,请确定是否输入正确\n");
else
for(j = i; j <= St->top; j++)
Pop(St, e1, e2);
Push(St1, e1, e2);
Pop(St, e1, e2);
printf("编号%d汽车,停车费用为:%d\n", Num, (Time - e2) * Price);
while(!StackEmpty(St1))
Pop(St1, e1, e2);
Push(St, e1, e2);
if(!QueueEmpty(Qu))
DeQueue(Qu, e1);
Push(St, e1, Time);
break;
case 3:
if(!StackEmpty(St))
printf("停车场现有如下车辆:\n");
DispStack(St);
else
printf("停车场目前没有车辆!\n\n");
break;
case 4:
if(!QueueEmpty(Qu))
printf("候车场现在有如下车辆:\n");
DispQueue(Qu);
else
printf("候车场目前没有车辆!\n\n");
break;
case 0:
exit(0);
break;
default:
printf("你的选择有误,请重新选择!\n\n");
break;
本回答被提问者采纳
谁能帮我解释一下 FBX 格式?
...ananyoneexplaintheFBXformatforme?【发布时间】:2011-12-0521:58:37【问题描述】:我使用notepad++查看FBX模型的数据结构,但我在理解它时遇到了一些问题。这是位于(0,0,0)的立方体(side=10)的一些信息,谁能告诉我这些成员是什么意思?... 查看详情
谁能帮我写个毕业论文(英语翻译)可以的话2000分酬谢
就是翻译3000字左右的文章再加800字心得,本人英语小白心得也是中文,保证会给分数的,毕竟我也是玩了好几年知道一点一点累积的分数。。参考技术AMarketResearchandExportPromotionExportMarketingPlanThemarkingplanisthebasisonwhichalltheoverseasprom... 查看详情
请问谁能帮我解说一下arcgisserverapiforjavascript的发展前景和开发优势?
参考技术Aforsilverlight,forflexesri公司停止跟新了,以后主要发展forjavascript,所以前景是一片大好。优势主要是不需要插件吧,以后还会持续跟新。 查看详情
谁能帮我翻译一下一份计算机专业的英文,谢谢
PrologTheprogramminglanguageProlog(shortforforPROgramminginLOGic)isadeclaractiveprogramminglanguagewhoseunderlyingproblem-solvingalgorithmisbasedonrepeatedresolution.Suchlanguagesarecalledlogicprogramminglanguages.AprograminPrologconsistsofacollectionofinitialstatementstowhichtheunderlyingalgorithma... 查看详情
谁能帮我解决这个问题
】谁能帮我解决这个问题【英文标题】:cananyonehelpmewiththistrigger【发布时间】:2014-04-1202:49:43【问题描述】:我是数据库新手。所以,尽我所能设计一个库存管理系统。我想做以下事情数据库名称是“yh_electronic”表名是-orders属... 查看详情
谁能帮我解决这个 xcode 问题?
】谁能帮我解决这个xcode问题?【英文标题】:Cananyonehelpmewiththisxcodeissue?【发布时间】:2014-04-0310:24:43【问题描述】:我正在尝试让我的应用在iPad上正确显示,就像我在文本位置运行它时一样;label.position=CGPointMake(-180,-135);这是... 查看详情
我在流泪的时候给自己下了个断点,谁能帮我调试一下人生?
...一个应用程序,虽然在运行,缺有致命的缺陷,为了解决问题我临时用了trycatch,下面我描述一下需求: 从小身体就不好,母亲从背到用轮椅,陪我从上学到上班到她患癌去世!我的人生也就从那时开始变了,从无忧无虑到... 查看详情
谁能帮我创建 Jmeter 框架?
...onehelpmetocreateJmeterFramework?【发布时间】:2016-03-0111:57:59【问题描述】:任何可以帮助创建框架的插件/附加组件?从哪里开始创建框架以及如何进行?您的意见很有价值。谢谢,阿美【问题讨论】:这个问题对你有用:***.com/questi... 查看详情
谁能帮我解决《当前页面脚本发生错误》的问题?
谁能帮我解决《当前页面脚本发生错误》的问题,我自己的网站,是asp的,有一个页面是影音播放,只要一开始播放就会出来《当前页面脚本发生错误》的提示在其他的地方,和其他的电脑都是这样,如果把这个地址在ie浏览器... 查看详情
谁能帮我解决我创建的触发器插入问题?
】谁能帮我解决我创建的触发器插入问题?【英文标题】:cananyonehelpmewiththetriggerinsertproblemicreated?【发布时间】:2022-01-1423:19:24【问题描述】:所以我做了一个这样的触发器插入:createorreplacetriggerdiscountafterinsertontransactionforeachro... 查看详情
谁能帮我做要求工作?
...anyonehelpmetomakerequireworking?【发布时间】:2015-07-1120:02:31【问题描述】:所以我有2个php文件,一个是调用函数,另一个是实现函数。在实现我调用的函数的那个中require("shares.php")-share.php是调用函数的文件问题是,它没有看到... 查看详情
我在自己写一个stl,其中的list使用双向链表的,谁能帮我写一个迭代器。
我在自己写一个STL,其中的list使用双向链表的,谁能帮我写一个迭代器,在主函数中能用(++或--)实现指针的移动,还能用*(指针)读取数据。希望能有点注释。谢谢了!classlist_nodepublic: Tdata;//保存数据元素 list_node*prior;//指... 查看详情
nginx反向代理访问很慢,我做了负载均衡,现在几乎无法访问,有谁能帮我解决一下,万分感谢。
参考技术A建议你用专业负载均衡设备 查看详情
部署到 Vercel 时出现错误。谁能帮我解决下面的问题?
】部署到Vercel时出现错误。谁能帮我解决下面的问题?【英文标题】:IamgettingerrorswhendeployingtoVercel.Cananyonehelpmewiththemyissuesbelow?【发布时间】:2022-01-1907:45:51【问题描述】:克隆github.com/gmcnally78/-Final-Data-Driven-FullStack-App2(分支:... 查看详情
谁能帮我理解为啥在“后缀”起作用时“前缀”不起作用以及如何解决这个问题?
...在“后缀”起作用时“前缀”不起作用以及如何解决这个问题?【英文标题】:Cananyonehelpmetounderstandwhy`prefix`doesnotworkwhen`suffix`doesandhowtofixthis?谁能帮我理解为什么在“后缀”起作用时“前缀”不起作用以及如何解决这个问题?【... 查看详情
delphi2010的datasnap,非常非常郁闷的问题,谁能帮我?
...表联合查询,然后得到一个数据集。select在服务层执行没问题,放到SQLServer2008里执行也没问题,得到的数据集有12个字段,比如是A、B、C、D……J、K、L。但是客户端收到的数据集却丢失了字段!!!比如里面的D、E、G、H丢失了... 查看详情
移动视图始终查看宽度为 980 像素。谁能帮我找出问题所在?
】移动视图始终查看宽度为980像素。谁能帮我找出问题所在?【英文标题】:mobileviewalwaysviewwidthas980px.Cananyonehelpmedetectwhatwrong?【发布时间】:2022-01-1307:27:20【问题描述】:我想为我的网站制作一个嵌入版本,网址为https://staging.i... 查看详情
谁能帮我解决与passportjs相关的错误
】谁能帮我解决与passportjs相关的错误【英文标题】:Cananyonehelpmewiththiserrorrelatedtopassportjs【发布时间】:2020-05-1623:07:06【问题描述】:ReferenceError:UserisnotdefinedatStrategy._verify(C:\\Projects\\config\\passport.js:9:5)atStrategy.authenticate 查看详情