資源簡介
基本要求
以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數據序列進行模擬管理。每一組輸入數據包括三個數據項:汽車“到達”或“離去”信息、汽車牌照號碼以及到達和離去的時刻。對每一組輸入數據進行操作后的輸出信息為:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是車輛離去,則輸出汽車在停車場內停留的時間和應繳納的費用(在便道上停留的時間不收費)。棧以順序結構實現,隊列以鏈表結構實現。
實現提示
需另設一個棧,臨時停放為給要離去的汽車讓路而從停車場退出來的汽車,也用順序存儲結構實現。輸入數據按到達或離去的時刻有序。棧中每個元素表示一輛汽車,包含兩個數據項:汽車的牌照號碼和進入停車場的時刻。
代碼片段和文件信息
#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
評論
共有 條評論