数据结构实验报告模拟停车场管理(含代码).docVIP

数据结构实验报告模拟停车场管理(含代码).doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验报告模拟停车场管理(含代码)

模拟停车场管理 班级:物联网 姓名:XXX 学号:XXXXXXX 日期:4月9日 一、需求分析 1、程序的功能描述 按照从终端输入的数据序列进行模拟管理。 1)狭道停车用栈来实现,并且用的顺序栈,等车位的便道用队列来实现,并用链 式存储。 2)每一组输入信息包含三个数据项,汽车的“到达”和“离去”的信息,汽车牌 照号码,汽车“到达”或“离去”的时刻。 3)对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出车辆在停车场内或便道上的停车位置;若是车子离去,则输出车辆在停车场内停留的时间和缴纳的费用。(假设在便道等车的时间不收费) 4)选作内容:(1)便道也是要收费的,仅仅比狭道收费便宜点。 (2)狭道上的车可以直接开走。 输入/输出的要求 首先选择操作的模块,根据提示输入车牌和到达时间,程序会告知是否停满或者停车车位。车牌为10个字符以内的字符串,时间的输入中间有冒号把时分隔开。 测试数据 1 苏D543 1:10 1 苏Q123 1:20 1 苏D145 1:30 二、概要设计 1、本程序所用的抽象数据类型的定义 typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar;//狭道的堆栈顺序存储 typedef struct car{ CarNode *data; struct car *next; }QueueNode;//队列的链式存储 typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar;//便道上等候的队列定义 主模块的流程及各子模块的主要功能 车辆到达:int Arrival(SeqStackCar *Enter,LinkQueueCar *W)首先定义一个栈和队列的结构体指针为:*p , *t 。然后申请一个车辆信息的内存空间,并把它赋给栈指针。 车辆到达时就输入车牌号,并通过if(Enter-topMAX)来判断该车是进车场内还是进便道上,如果是进车场内就把top 加1,显示 在车场内的位置,还要输入进车场的时间,然后把该节点进栈。如果是else 就显示该车要停在便道上,并进行进队列的操作。 车辆离开: void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) 定义一个整型变量room 记录要离开车辆的位置,定义两个栈指针和一个队列指针, 用个if(Enter-top0) 确保栈不空,然后用个while(1) 确保输入的车辆离开位置的合法 性。如果不和法,显示输入有误,要重新输入。通过while(Enter-toproom) 判断离开车辆的位置,如果是中间位置,就要再用一个栈前面临时开出来的车,等要开出的车开出后,再把临时栈的车看进 车场内,并要调用PRINT(p,room); 这个函数计算显示费用。然后还要用 if((W-head!=W-rear)Enter-topMAX) 语句判断便道上有没有车,如果有车就要显示进车场的车的车牌号,并登记进入时间。 模块之间的层次关系 主函数中包含着各个函数模块,各模块也在互相调用。比如,离开函数中要计算停车费,故要调取价格函数。价格函数计算要用到离开和进入的时间,又要调用进入和离开函数。 三、详细设计 1、采用C语言定义相关的数据类型 #define MAX 3 // 停车场最大容量为3辆,便于观察 #define price 0.05 typedef struct time{ // 定义时间结构体 int hour; int min; }Time; typedef struct node{ // 定义车辆信息结构体 char num[10]; Time reach; Time leave; }CarNode; 写出各模块的伪码算法 void PRINT(CarNode *p,int room){ // 车辆收费 int A1,A2,B1,B2; printf(\n车辆离开的时间:); scanf(%d:%d,(p-leave.hour),(p-leave.min)); printf(\n离开

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档