版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第C語言課程設計之停車場管理問題1.問題描述
停車場內(nèi)只有一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在停車場的最北端),若車場內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當停車場內(nèi)某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。試為停車場編制按上述要求進行管理的模擬程序。
2.基本要求
(1)以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進行模擬管理。
(2)每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車到達或離去信息、汽車牌照號碼及到達或離去的時刻,對每一組輸入數(shù)據(jù)進行操作后的輸出數(shù)據(jù)為:若是車輛到達,則輸出汽車在停車場內(nèi)或便道上的停車位置;若是車離去;則輸出汽車在停車場內(nèi)停留的時間和應交納的費用(在便道上停留的時間不收費)。
(3)棧以順序結(jié)構(gòu)實現(xiàn),隊列以鏈表結(jié)構(gòu)實現(xiàn)。
(4)按照題意要求獨立進行設計,設計結(jié)束后按要求寫出設計報告。
一、代碼塊
#includestdio.h
#includemalloc.h
#includestdlib.h
typedefintElemType;
#defineMaxSize100
#defineQNODEstructQNode
typedefstructNode
//車輛信息
charAL;
intNO;
inttime;
}Node;
typedefstructStack
//棧定義
structNode
data[MaxSize];
inttop;
intnum;
}SqStack;
QNODE
//隊列節(jié)點
structNodedata;
QNODE*next;
typedefstructlinkqueue
//隊列結(jié)構(gòu)體定義
QNODE*front,*rear;
intnum;
}LinkQueue;
SqStack*Init_SeqStack()
//置空棧
SqStack*s;
s=(SqStack*)malloc(sizeof(SqStack));
s-top=-1;
s-num=0;
returns;
LinkQueue*Init_LQueue()
//創(chuàng)建空隊列
LinkQueue*q;
QNODE*p;
q=(LinkQueue*)malloc(sizeof(LinkQueue));
p=(QNODE*)malloc(sizeof(QNODE));
p-next=NULL;
q-front=q-rear=p;
q-num=0;
returnq;
intISEmpty_SeqStack(SqStack*s)
//判斷棧是否為空,棧為空返回1
if(s-top==-1)
return1;
else
return0;
int
ISFULL_SeqStack(SqStack*s,intn)
//判斷棧是否已滿,若棧滿返回1
if(s-top==n-1)
return1;
else
return0;
intISEmpty_LQueue(LinkQueue*q)
//判斷隊列是否為空,隊列為空返回1
if(q-front==q-rear)
return1;
else
return0;
voidIN_Lqueue(
LinkQueue*q,structNodes)
//入隊
QNODE*p;
p=(QNODE*)malloc(sizeof(QNODE));
p-data=s;
q-num++;
p-next=NULL;
q-rear-next=p;
q-rear=p;
voidPush_SeqStack(SqStack*p,structNodes)
//入棧
p-top++;
p-data[p-top]=s;
p-num++;
intPOP_SeqStack(SqStack*s,structNodecar)//出棧
SqStack*p;
intt;
p=Init_SeqStack();
while(s-data[s-top].NO!=car.NO)//找到車牌號為P.NO的車,
{
Push_SeqStack(p,s-data[s-top]);
s-top--;
s-num--;
}
t=car.time-s-data[s-top].time;
s-top--;
s-num--;
while(ISEmpty_SeqStack(p)==0)
{
Push_SeqStack(s,p-data[p-top]);
p-top--;
p-num--;
}
returnt;
structNodeOut_LQueue(LinkQueue*q)
//出隊
QNODE*p;
p=q-front-next;
q-front-next=p-next;
q-num--;
if(
q-front-next==NULL)
q-rear=q-front;
returnp-data;
free(p);
intmain()
SqStack*parkstack;
//parkstack為表示停車場的棧
LinkQueue*parkqueue;
//parkqueue為表示便道的隊列
structNodecar;
intn,a=0,t;
//n為停車場棧的最大容量
floatf;
//f為每小時收費
parkstack=Init_SeqStack();
parkqueue=Init_LQueue();//初始界面
printf("***************停車場信息查詢***************\n");
printf("請輸入停車場最大容量n=");
scanf("%d",
printf("\n請輸入每分鐘收取費用f=");
scanf("%f",
printf("\n請輸入車輛信息\n");
scanf("%c,%d,%d",car.AL,car.NO,car.time);
while(car.AL!='Q')
{
if(car.AL=='A')
{
//
汽車到達的情況
if(ISFULL_SeqStack(parkstack,n)==1)
//棧滿的情況
{
IN_Lqueue(parkqueue,car);
//進入隊列等待
printf("這輛車在門外便道上第%d個位置\n",parkqueue-num);
printf("\n");
printf("請輸入車輛信息\n");
}
else
{
Push_SeqStack(parkstack,car);
//入棧
printf("這輛車在停車場內(nèi)第%d個位置\n",parkstack-num);
printf("\n");
printf("請輸入車輛信息\n");
}
}
if(car.AL=='L')
//汽車離開的情況
{
t=POP_SeqStack(parkstack,car);//出棧
printf("這輛車停留時間為%d,收費為%f。\n",t,f*t);
printf("\n");
printf("請輸入車輛信息\n");
if(ISEmpty_LQueue(parkqueue)==0)
//隊列不為空需要進棧
Push_SeqStack(parkstack,Out_LQueue(parkqueue));
}
if(car.AL=='P'car.NO==0car.time==0)//顯示停車場的車數(shù)
{
printf("停車場的車數(shù)為%d\n",parkstack-num);
printf("\n");
printf("請輸入車輛信息\n");
}
if(car.AL=='W'car.NO==0car.time==0)//顯示候車場的車數(shù)
{
printf("候車場的車數(shù)為%d\n",parkqueue-num);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省哈爾濱市德強高級中學2025-2026學年高二(上)期末物理試卷(Ⅱ卷)(含答案)
- 甘肅省武威市2025-2026學年高三(上)期末物理試卷(含答案)
- 2025~2026學年山東濟南市天橋區(qū)八年級語文第一學期期末考試試題(含答案)
- 危險化學品試題及答案
- 部編人教版六年級數(shù)學上冊期末考試題含答案
- 2022~2023民政行業(yè)職業(yè)鑒定考試題庫及答案第256期
- 2023年房屋建筑學考試復習題及參考答案
- 2022~2023糧油食品檢驗人員考試題庫及答案解析第101期
- 變頻器應用技術(shù)要點
- 三峽新能源考試題及答案
- 數(shù)字孿生方案
- 金融領(lǐng)域人工智能算法應用倫理與安全評規(guī)范
- 機動車駕校安全培訓課件
- 2025年役前訓練考試題庫及答案
- 2024VADOD臨床實踐指南:耳鳴的管理課件
- 2025廣東潮州府城文化旅游投資集團有限公司下屬企業(yè)副總經(jīng)理崗位招聘1人筆試歷年備考題庫附帶答案詳解2套試卷
- 城市軌道交通服務與管理崗位面試技巧
- 2025年公務員多省聯(lián)考《申論》題(陜西A卷)及參考答案
- 《允許一切發(fā)生》讀書感悟
- 續(xù)保團購會活動方案
- 產(chǎn)品設計需求與評審表
評論
0/150
提交評論