Advertisement

停车场管理系统

阅读量:

链表和队列的简单应用
一、设计内容

[问题描述]模拟停车场如下图所示,停车场是可停放n辆汽车的狭长通道,停车场内只有一条单行线通道可走车,有一个大门可供汽车进出。
在这里插入图片描述

[基本要求]

  1. 进站:若车场内已停满n辆汽车,则后来的汽车只能在门外通道上等候,一旦有车开走,则排在通道上的第一辆车即可开入。
  2. 出站:当停车场内某辆汽车要离开时,必须按它在停车场停留的时间长短缴纳费用;如果通道前面有汽车在缴纳费用,则要在其后面排队等候。
  3. 假设出、入便道上一次只能排m辆汽车,本题按n=7,m=3进行模拟,车位位置为:110、111、112、113、114、115、116,时间格式为xxxx,如1220指的是12点20分,时间计算到分钟,每小时停车费3元。
  4. 假设初始时停车场内停了6辆汽车,没有排队等候进站或出站的汽车。
  5. 以顺序表模拟停车场,以队列模拟车场外的出入通道。

二、设计过程(40%)

1、请给出采用的数据结构类型,及定义的基本操作
数据结构类型:

复制代码
    //(如采用循环单链表,结构定义如何?)
    typedef enum parking{//列举出车位信息
    first=110,second,third,fourth,fifth,sixth,seventh
    }Parking_space;
    typedef struct parking_information{//定义停在停车场一辆车所包含的信息
    //    一辆车的包含信息
    Parking_space space; //所在车位
     int  Parking_time; //停入的时间
    long Car_number;  //车牌号
    bool feel; //缴费标签 false为未缴,true 为己缴费
    bool state; //是否开车标签,即是还在停车场中,true为在停车场,false为不在停车场
    //    停车场中车位数量信息(停车场参数信息)
    int Park_sum; //总车位数为7
    int usedParkSum; //己用车位数量
    int unusedParkSum; //未用车位数量
    }Park_car_information;
    typedef struct LNode
    {//停车场信息
    Park_car_information carInformation;
    	struct LNode *next;		//指向后继结点
    } LinkNode;
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

该结构下实现的基本操作:

复制代码
	void CreateListF(LinkNode *&L,Park_car_information a[],int n)使用头插法建立循环单链表
    2.	void CreateListR(LinkNode *&L,Park_car_information a[],int n)使用尾插法建立循环单链表
    3.	void InitList(LinkNode *&L) 初始化循环链表
    4.	void DestroyList(LinkNode *&L) 对循环单链表进行销毁,释放存储空间
    5.	bool ListEmpty(LinkNode *L) 判断循环单链表是否为空
    6.	void DispList(LinkNode *L) 对循环单链表遍历输出信息
    7.	bool ListDelete(LinkList *&L,int i, ElemType &e),删除循环单链表L第i个元素,用e返回被删除的元素
    
    
      
      
      
      
      
      
      
    

2、请给出计算停车费的具体实现思路(用流程图描述)。
在这里插入图片描述

三、实现截图

请给出实现的截图,按n=7,m=3进行模拟,车位位置为:110、111、112、113、114、115、116,时间格式为xxxx,如1220指的是12点20分,时间计算到分钟,每小时停车费3元。
请按以下顺序给出实现的截图,每次给的截图,均需包括停车场的汽车情况、入通道的排队情况、出通道的排队情况,车离开停车场还需给出停车费。

(1)初始时,假设停车场内停了6辆汽车(空车位为110,车牌号任意,进场时间也随机给),没有排队等候进站或出站的汽车。
在这里插入图片描述

(2)一台汽车进站,车牌号为你的学号,时间为13:30。
在这里插入图片描述

(3)有连续两台汽车进展,车牌号为“你的学号+1”和“你的学号+2”,时间分别为“13:34”和“13:36”。
在这里插入图片描述

(4)有一台汽车即将驶出停车场,当前时间为13:40,请核算出停车费。
在这里插入图片描述

四、额外实现的功能说明及截图
(如没有实现要求之外的功能,请写无)

查询功能
a) 可以查看当前停车场的相关信息
b) 功能有:找空车位,找车(车牌号、车位)、查看在停停车场内所有车辆信息
c) 截图

i. 找空车位
在这里插入图片描述

ii. 找车

复制代码
 * 通过车位号找车  
在这里插入图片描述
复制代码
2. 

能过车牌号找车
在这里插入图片描述

iii. 查看所有车辆信息
在这里插入图片描述

输入的时间范围限制
在这里插入图片描述

五、源代码
码云源代码

全部评论 (0)

还没有任何评论哟~