資源簡介
設(shè)停車場內(nèi)只有一個可停放n輛汽車的長通道,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列,若車場內(nèi)已停滿n輛車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場內(nèi)某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,等該輛車開出大門外,其它車輛再按原次序進入停車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交費

代碼片段和文件信息
#include
using?namespace?std;
typedef?struct?Time{
int?data;
int?hour;
int?min;
}Time;//時間節(jié)點
typedef?struct?StackNode{
char?mess[15];
int?num;
Time?reach;
Time?leave;
struct?StackNode?*next;
}CarNode;//入庫車輛信息節(jié)點
typedef?struct?Stack{
CarNode?*stack[5];
int?top;
}CarStack;//模擬車庫
typedef?struct?QueueNode{
char?mess[15];
QueueNode?*next;
}QueueNode;//便道車輛信息節(jié)點
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
評論
共有 條評論