- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验(停车场问题)
《数据结构》课程实验
实 验 报 告
题目: 停车场管理
专业: 计算机科学与几技术
班级:
姓名:
学号:
完成日期:
一、试验内容
设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已经停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出场为它让路,待该辆车开出大门外,其他车辆再按次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,试为停车场编制按上述要求进行管理的模拟程序。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
二、试验目的
(1)深入了解栈和队列的特性,掌握栈和队列的存储方法。
(2)掌握栈和队列的基本操作,如初始化、入栈(队列)、出栈(队列)等,并能在实际问题背景下灵活运用。
三、流程图
四、源程序代码
#includestdio.h
void main()
{
struct cc1
{
int hm1,sk1;
}a[5];//停车场
struct bd
{
int hm2,sk2;
}b[5];//便道
struct cc2
{
int hm3,sk3;
}c[4];//存放从停车场内退出的车
int p=0,q=0,x=0,n,y,t,r,i,j,g,h,z;
char m;
printf(输入停车场容量和每分钟收费\n);
scanf(%d%d,n,y);
printf(输入数据:\n);
for(;;)
{
scanf(%c,m);
//判断输入数据
if(m==e||m==E)
break;
scanf(%d%d,t,r);//t表示车牌号,r表示时间
//车到达
if(m==a||m==A)
{
if(pn)
{//n表示停车场容量,p表示场内车的数量
a[p].hm1=t;
a[p].sk1=r;
printf(车停在停车厂内%d号位置.\n,p+1);
p++;
}
//车停在便道内
else
{
b[q].hm2=t;
b[q].sk2=r;
printf(车停在便道上%d号位置.\n,q+1);
q++;
}
}
//车离开
if(m==d||m==D)
{h=p;
for(i=0;ip;i++,g=i)
if(a[i].hm1==t)
{//判断车是否停在场内
p--;
if(i==p)//如果车停在场内最后一位
printf(%d号车在停车厂内停留了%d分钟,应交纳%d元钱.\n,t,r-a[i].sk1,y*(r-a[i].sk1));
else
{//在它之后进入的车辆先退出场为它让路
for(j=p;ji;j--)
{
c[x].hm3=a[j].hm1;
c[x].sk3=a[j].sk1;
x++;
}
printf(%d号车在停车厂内停留了%d分钟,应交纳%d元钱.\n,t,r-a[i].sk1,y*(r-a[i].sk1));
for(j=i;x-1=0;x--,j++)
{//退出的车再进入停车场内
a[j].hm1=c[x-1].hm3;
a[j].sk1=c[x-1].sk3;
文档评论(0)