• 大小: 900KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-23
  • 语言: 其他
  • 标签: C++  停车场  

资源简介

设停车场内只有一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列,若车场内已停满n辆车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,等该辆车开出大门外,其它车辆再按原次序进入停车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交费

资源截图

代码片段和文件信息

#include
using namespace std;

typedef struct Time{
int data;
int hour;
int min;
}Time;//时间节点

typedef struct StackNode{
char mess[15];
int num;
Time reach;
Time leave;
struct StackNode *next;
}CarNode;//入库车辆信息节点

typedef struct Stack{
CarNode *stack[5];
int top;
}CarStack;//模拟车库

typedef struct QueueNode{
char mess[15];
QueueNode *next;
}QueueNode;//便道车辆信息节点

typedef struct Queue{
StackNode *head;
StackNode *rear;
}linkQueue;//模拟便道

void InitStack(CarStack *s);/*初始化栈*/
void InitQueue(linkQueue *road);/*初始化队列*/
void CreatStack(CarNode *CarCarStack *garage);//车进库
void CreatQueue(CarNode *CarlinkQueue *road);//车进便道
void PopStack(CarStack *garageCarStack *TemplinkQueue *road);//车出库
void GetCarNode(CarStack *garagelinkQueue *road);//获取车辆信息
void InfoStack(CarStack *garage);//车库车辆信息
void InfoQueue(linkQueue *road);//便道车辆信息
void Print(CarNode *Car);//打印出库车信息

void main()
{
int i=0j=0k=1;
CarStack garageTemp;
linkQueue road;
InitStack(&garage);
InitStack(&Temp);
InitQueue(&road);

while(k){
i=0;
while(!i){
cout<<“*---------*欢迎光临停车场,本停车场每分钟收费0.01元*---------*“< cout<<“**************************************************************“< cout<<“*   1-存车         2-取车         3-列表        4-退出程序   *“< cout<<“**************************************************************“< cin>>i;
if(i<1||i>4){
cout<<“请重新选择!“< i=0;
}
}
switch(i){
case 1:
GetCarNode(&garage&road);//获取车辆信息
break;
case 2:
PopStack(&garage&Temp&road);//车出库
break;
case 3://查询车辆信息
j=0;
while(!j){
cout< cout<<“********************************************“< cout<<“*   1-车库        2-便道          3-返回   *“< cout<<“********************************************“< cin>>j;
if(j<1||j>3){
cout<<“请重新选择!“< j=0;
}
switch(j){
case 1:
InfoStack(&garage);//车库车辆信息
j=0;
break;
case 2:
InfoQueue(&road);//便道车辆信息
j=0;
break;
case 3:
j=1;
break;
}
}
break;
case 4:
k=0;
break;
}
cout< cin.clear();
}
}

void InitStack(CarStack *s)/*初始化栈*/
{   
int i;
s->top=0;
for(i=0;i<=4;i++)
s->stack[s->top]=NULL;
}

void InitQueue(linkQueue *road)/*初始化队列*/
{
road->head=(StackNode *)malloc(sizeof(StackNode));
if(road->head!=NULL){
road->head->next=NULL;
road->rear=road->head;
}   
}

void GetCarNode(CarStack *garagelinkQueue *road)//获取车辆信息
{
CarNode *Car=(CarNode *)malloc(sizeof(CarNode));

if(garage->top<5&&garage->top>=0){
cout<<“请输入车辆号码 如(冀D6666):“;
cin>>Car->mess;
cout<<“请输入车辆进站时间(日-时:分)“;
scanf(“%d-%d:%d“&(Car->reach.data)&(Car->reach.hour)&(Car->reach.min));

cout<<“车辆进入车库!“< CreatStack(Cargarage);//车进库
}
else{
cout<<“请输入车辆号码 如(冀D6666):“;
cin>>Car->mess;
cout<<“车库已满,车辆停进便道“<

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     271208  2011-05-09 17:50  tingchechang\Debug\main.obj

     文件     565343  2011-05-09 17:50  tingchechang\Debug\tingchechang.exe

     文件     800484  2011-05-09 17:50  tingchechang\Debug\tingchechang.ilk

     文件    2030156  2011-05-09 17:46  tingchechang\Debug\tingchechang.pch

     文件    1115136  2011-05-09 17:50  tingchechang\Debug\tingchechang.pdb

     文件     115712  2011-05-19 17:58  tingchechang\Debug\vc60.idb

     文件     110592  2011-05-09 17:50  tingchechang\Debug\vc60.pdb

     文件       6031  2011-05-09 17:50  tingchechang\main.cpp

     文件       4348  2011-04-30 18:06  tingchechang\tingchechang.dsp

     文件        549  2011-04-30 14:47  tingchechang\tingchechang.dsw

     文件      58368  2011-05-19 17:58  tingchechang\tingchechang.ncb

     文件      53760  2011-05-19 17:58  tingchechang\tingchechang.opt

     文件        258  2011-05-09 17:50  tingchechang\tingchechang.plg

     目录          0  2011-05-09 17:50  tingchechang\Debug

     目录          0  2011-05-19 17:58  tingchechang

----------- ---------  ---------- -----  ----

              5131945                    15


评论

共有 条评论