1、需求分析
以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數據序列進行模擬管理。每一組輸入數據包括三個數據項:汽車“到達”或“離去”信息、汽車牌照號碼及到達或離去的時刻,對每一組輸入數據進行操作后的輸出數據為:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是車離去;則輸出汽車在停車場內停留的時間和應交納的費用(在便道上停留的時間不收費)。
2、概要設計
1)為了實現上述程序功能,設計了13個模塊(函數):
1.void InitStack(SqStack &S);//初始化棧
2.int StackEmpty(SqStack S);//判棧空
3.int StackFull(SqStack S);//判棧滿
4.void Push(SqStack &S,char *ch,int time);//進棧
5.void Pop(SqStack &S,CarType &eCar);//出棧
6.void InitQueue(LinkQueue &Q);//初始化隊列
7.int QueueEmpty(LinkQueue Q);//隊空
8.void EnQueue(LinkQueue &Q,char *ch);//進隊列
9.void DeQueue(LinkQueue &Q,CarType &eCar);//出隊列
10.void Car_Come(SqStack &S,LinkQueue &Q);//
11.void Car_leave(SqStack &S,LinkQueue &Q);//
12.void seeStack(SqStack S);//查看車場信息
13.void seeQueue(LinkQueue Q);//查看便道信息
3、調試分析
設停車場內只有一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場內已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當停車場內某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。試為停車場編制按上述要求進行管理的模擬程序。