• 大小: 21KB
    文件类型: .cpp
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: C/C++
  • 标签: 数据结构  C语言  

资源简介

基本要求 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达和离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 实现提示 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。

资源截图

代码片段和文件信息

#include
#include 

#define LOT_MAX 50

typedef struct
{
        int number;
        int arrivetime[6];
        int leavetime[6];
        int state; 
}vehicle;

typedef struct
{
   vehicle car[LOT_MAX];
   int top;
}parking;

typedef struct routeway
{
         vehicle car;
         struct routeway *next;
}RouteWay;
       
typedef struct
{
        RouteWay *front;
        RouteWay *rear;
}LiRouteWay;


int initRouteWay(LiRouteWay *&r);
int ClearRouteWay(LiRouteWay *&r);
int deParking(parking *&p LiRouteWay *&rint &m);
int RouteEmpty(LiRouteWay *r);
int bianli(parking *pint numint &addressvehicle &a);
int initParking(parking *&p);
int ClearParking(parking *&p);
int ParkingLength(parking *p);
int ParkingEmptyORFull(parking *p);
int PushParking(parking *&p LiRouteWay *&rint &m);
int PopParking(parking *&Lotparking *&TempLiRouteWay *&r int numint &n int &m);
int PrintVehicle(vehicle a);
int gettime(int *yearint *monthint *dayint *hourint *minuteint *second );
int pop(parking *&Avehicle &a);
int push(parking *&Bvehicle &b);

int main(void)
{
    int i=1;
    int m=0;/*现今停车总量*/
    int n=0;/*总收入*/
    int num; /*车牌号*/
    int b;
    int address;
    LiRouteWay *r;
    parking *ParkingLot*ParkingTemp;
    vehicle a;
    
    initRouteWay(r); /*创建通道*/
    initParking(ParkingLot);/*创建停车场*/
    initParking(ParkingTemp);/*停车暂存地*/
    for(;i>=0;)
    {
               printf(“************************************************************\n\n“);
               printf(“****                    1、停车总量                     ****\n\n“);
               printf(“****                    2、进入停车场                   ****\n\n“);
               printf(“****                    3、出停车场并计费               ****\n\n“);
               printf(“****                    4、搜索车辆信息                 ****\n\n“);
               printf(“****                    5、总收入                       ****\n\n“);
               printf(“****                如想关闭此程序,请输入-1            ****\n\n“);
               printf(“************************************************************\n“);
               printf(“                  现在车库中停的车数:%d                    \n\n“ParkingLength(ParkingLot));
               printf(“                    车库中剩余车位:%d                      \n\n\n\n“(LOT_MAX-ParkingLength(ParkingLot)));
               printf(“现在您要执行操作几?“);
               scanf(“%d“&i);
               switch(i)
               {
                   case(1):{
                               printf(“现今为止停车总量为:%d\n“m);
                            }
                            break;
                   case(2):{
                               PushParking(ParkingLotrm);
                            }
                            break;
                   case(3):{
                              printf(“请输入出停车场的车牌号:“);
                              scanf(“%d“&num);
                              b=PopParking(Pa

评论

共有 条评论