版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
—??---------------------數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告----------------------??—
目錄
一、實(shí)訓(xùn)目的...............................................-2-
二、實(shí)訓(xùn)內(nèi)容...............................................-2-
1.實(shí)驗(yàn)題目:停車場管理..........................................-2-
2.具體內(nèi)容........................................................-2-
3.功能.............................................................-2-
三、算法分析...............................................-2-
1.主模塊圖.........................................................*2-
2.程序要點(diǎn)與說明....................................................-3-
四、程序代碼設(shè)計(jì)...........................................-3-
五、程序運(yùn)行結(jié)果...........................................-7-
六、本次實(shí)訓(xùn)的總結(jié)與心得................................-11-
數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告?
一、實(shí)訓(xùn)目的
了解順序棧的結(jié)構(gòu)特點(diǎn)及有關(guān)概念,掌握順序棧的建立、入棧及出棧的基本操
作算法
二、實(shí)訓(xùn)內(nèi)容
1.實(shí)驗(yàn)題目:停車場管理
2.具體內(nèi)容
設(shè)停車場是一個(gè)可停放M輛汽車的狹長通道,且惟獨(dú)一個(gè)大門可供汽車進(jìn)出。汽車
在停車場內(nèi)按車輛到達(dá)時(shí)間的先后順序,挨次由北向南羅歹此大門在最南端,最先到
達(dá)的第一輛車停放在車場的最北端),若車場內(nèi)已停滿n輛汽車,則顯示停車場已滿;
當(dāng)停車場內(nèi)某輛車要離開時(shí),在它之后進(jìn)入的車輛必須先退出車場為它讓路,待該
輛車開出大門外,其他車輛再按原次序進(jìn)入車場,每輛停放在車場的車在它離開停
車場時(shí)必須按它停留的時(shí)間長短交納費(fèi)用。
3.功能
(1)汽車在停車場內(nèi)按車輛到達(dá)時(shí)間的先后順序,挨次停入停車場,輸入車輛
的車牌號及駛?cè)霑r(shí)間;
(2)若車場內(nèi)已停滿M輛汽車,則顯示停車場已滿;
(3)若車牌號重復(fù),則重新輸入車牌號;
(4)車輛離開,輸入離開車輛的車牌號,在它之后進(jìn)入的車輛退出車場進(jìn)入臨
時(shí)棧為它讓路,待該輛車開出后,其他車輛再按原次序進(jìn)入車場;
(5)如果無此車牌號,說明庫中無此車輛,選擇其它指令;
(6)車輛離開,輸入車輛離開時(shí)間,并按它停留的時(shí)間長短交納費(fèi)用;
(7)顯示停車場內(nèi)所有車輛的信息。
三、算法分析
1.主模塊圖
-2-
-----數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告?
2.程序要點(diǎn)與說明
⑴結(jié)構(gòu)體:本程序共有兩個(gè)結(jié)構(gòu)體。Carinfo存儲車輛信息,StackSq存儲停車
場信息,二者定義如下。
typedefstruct〃車輛信息
(
intCarNo;//車牌號
intlnTime;〃進(jìn)場時(shí)間
JCarlnfo;
structStackSq{
Carinfostack[M];〃存儲信息
inttop;〃指向棧頂位置的整型變量
};
(2)函數(shù)設(shè)計(jì):本程序共有六個(gè)函數(shù)及一個(gè)主函數(shù),具體定義和作用如下
voidInitStack(structStackSq*S)初始化停車場
voidPush(structStackSq*s,Carinfox)往存儲停車場的棧內(nèi)插入車輛信
息x,被函數(shù)Reach引用
CarinfoPop(structStackSq*s)刪除棧頂元素,被函數(shù)Leave引用
voidDisplay(structStackSq*s)顯示所有車輛信息
voidReach(structStackSq*s)車輛到達(dá)
voidLeave(structStackSq*s)車輛離開
voidmain()
(3)其它設(shè)計(jì):定義M=3,規(guī)定停車場內(nèi)最多的停車數(shù);Price=2,規(guī)定每小時(shí)
停車的價(jià)格為2元/小時(shí)。其具體應(yīng)用如下:
if(s->top==M-1)〃停車場已滿
停車場已滿,無法停車
>>停車費(fèi)用:卻元(%01元/小時(shí)
四、程序代碼設(shè)計(jì)
#include<stdio.h>
include<stdlib.h>
#defineM3〃停車場內(nèi)最多的停車數(shù)
#definePrice2//每小時(shí)停車的價(jià)格(單位:元)
typedefstruct〃車輛信息
(
intCarNo;〃車牌號
intlnTime;〃進(jìn)場時(shí)間
-3-
數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告?
JCarlnfo;
〃停車場信息(順序棧類型)
structStackSq{
Carlnfostack[M];〃存儲信息
inttop;//指向棧頂位置的整型變量
);
//初始化停車場
voidlnitStack(structStackSq*S)
(
S->top=-1;
)
〃往存儲停車場的棧內(nèi)插入車輛信息x,被函數(shù)Reach引用
voidPush(structStackSq*s,Carlnfox)
(
if(s->top==M-1)〃停車場已滿
停車場已滿,無法停車
else
(
s->top++;
s->stack[s->top]=x;
)
)
〃刪除棧頂元素,被函數(shù)Leave引用
CarinfoPop(structStackSq*s)
(
if(s->top<=-1)
(
停車場內(nèi)無任何車輛
)
s->top
returns->stack[s->top+1];
)
//顯示所有車輛信息
voidDisplay(structStackSq*s)
(
inti;〃循環(huán)控制變量i
》》車牌號停車時(shí)間《《
for(i=0;i<=s->top;i++)〃挨次輸出車輛的信息
%4d
-4-
數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告?
[i].InTime);
)
〃車輛到達(dá)
voidReach(structStackSq*s)
(
Carinfocar;//car用于存儲駛?cè)胲囕v的信息
inti,flag=O;//i為循環(huán)控制變量,flag為控制循環(huán)
的標(biāo)記
歡迎進(jìn)入!請輸入車牌號:
do//do-while循環(huán),保證車牌號無重復(fù)
(
for(i=0;i<=s->top;i++)
(
if(car.CarNo==s->stack[i].CarNo)
>>車庫中已有此車輛,請重新輸入車牌號
flag=1;〃如果有重復(fù),則flag=1
)
else
flag=O;//如果無重復(fù),則flag=O
)
}while(flag==1);//如果flag=1,輸入車牌號,直到車牌號無重復(fù)
請輸入進(jìn)場時(shí)間:
Push(s.car);//將車輛car的信息輸入到存儲停車場信息的棧中
>>停車場已有車輛數(shù)
〃車輛離開
voidLeave(structStackSq*s)
{
structStackSqs1;〃暫時(shí)棧s1,存儲從停車場中導(dǎo)出的信息
Carinfocar,t;//car,存儲要離開的車的編號和離開時(shí)間;
t作為媒介,實(shí)現(xiàn)停車場棧和暫時(shí)棧的數(shù)據(jù)交換
inti=O,j=O;〃i,j同為循環(huán)控制變量
intx=0;〃存儲停車場內(nèi)元素個(gè)數(shù)
lnitStack(&s1);//初始化暫時(shí)棧s1
請輸入要離開的車牌號
-5-
數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告?
〃輸入要離開的車牌號
x=s->top;
for(i=0;i<=s->top&&s->stack[i].CarNo!=car.CarNo;i++);
〃循環(huán),當(dāng)找到車輛時(shí),住手循環(huán)
if(i>s->top)//如果沒有此車輛,i大于棧頂指針指向的位置
>>未找到該編號的汽車
else
(
>>停車場中位置為
請輸入離開時(shí)間
//輸入車輛離開時(shí)間
for(j=i+1;j<=x;j++)
(
t=Pop(s);〃導(dǎo)出車輛信息
Push(&s1,t);//將車輛信息導(dǎo)入暫時(shí)棧s1中
)
Display(s);
Display(&s1);
t=Pop(s);〃該汽車離開
>>車牌號為%d的汽車停車時(shí)
間
?停車費(fèi)用:刈元(%€1元/小
時(shí)
do//暫時(shí)棧s1中的車輛重新回到停車場中
(
t=Pop(&s1);
Push(s,t);
}while(s1.top!=-1);/**/
voidmain()
(
structStackSqCar;〃生成一個(gè)停車場
intchoice;
lnitStack(&Car);//初始化停車場
主菜單
-6-
-----?數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告
(1)車輛到達(dá)
(2)車輛離開
(3)顯示停車場中所有車輛的信息
(0)退出系統(tǒng)
請輸入指令
if(choice<0&&choice>4)continue;
switch(choice)
(
case1:Reach(&Car);break;//車輛至U達(dá),調(diào)用Reach函數(shù)
case2:Leave(&Car);break;//車輛離開,調(diào)用Leave函數(shù)
case3:Display(&Car);break;〃顯示車輛信息,調(diào)用Display函數(shù)
case。:函t(0);〃退出系統(tǒng)
default:break;//如果指令不正確重新循環(huán)
)
}while(1);
五、程序運(yùn)行結(jié)果
1.原始界面
-7-
-------數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告
2.車輛1001于7:00駛?cè)?;車輛1002于8:00駛?cè)?/p>
3j,G:\D.bug\停車場管理系統(tǒng)?
主菜單-----------------------
<1〉車輛到達(dá)
<2〉車輛離開
<3〉顯示停車場中所有車輛的信息
<?!低顺鱿到y(tǒng)
情輸入指令:[
鶻瀛醯然牌號'
1001
>>停車場已有車輛數(shù):1
請
輸入
父令
號
車
歡
迎
牌
—
關(guān)
進(jìn)
請
輸1002
場8
>>停車場己有車輛數(shù):2
請竄人指令:
I’
2.輸入錯(cuò)誤車牌號碼1001,停車場中已有此車,無法駛?cè)?;重新輸入正確車牌號2001U
<1〉年輛到達(dá)
<2>牛輛離開
<3>顯示停半場中所有半輛的信息
<。>瓜出系統(tǒng)
褊情輸般入雅指入令〃手、牌當(dāng)一
1001
>>停車場已有車輛數(shù):1
請入
令
輸
指
歡
人
入
號
迎
車牌
:1事
關(guān)
或1
進(jìn)
請
輸?8
>>停車場己有車輛數(shù):2
「舲好褊入車牌號,
1001
鬲播人進(jìn)場時(shí)間?8>>車庫中己有此車輛,請重新輸入車牌號:2001
>>停車場己有車輛數(shù):3
㈤
L主
-8-
,數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告
3.車輛2022要停車,但停車場已滿
,G:\D.bu<\停車場管■系統(tǒng).e?e*
入
指令
人:1
卦
制
關(guān)
加入車牌號,LI
進(jìn)
?7
》>停車場已有車輛數(shù):[
入陰令”
1002
>>停車場己有車輛數(shù):2
請錨入車牌號,1001
>>主庫中己有此車輛,請重新輸入車牌號:2001
?8
>>停車場己有車輛數(shù):3
前頓零號'2012
已滿,無也停左
>>停車場己有車輛數(shù):3
睛人指令、
4.車輛1002于12點(diǎn)駛出停車場。輸出其停車位置,及停車費(fèi)用
及迎進(jìn)人!環(huán)卷人?車牌號,1002
精瓶關(guān)關(guān)場阡胤8
>>停年場己華年刷數(shù):2
慎輸入小令:1
F迎進(jìn)入請鋪入車牌號,
?1001
I輸入進(jìn)場時(shí)間I8>>主庫中己有此車輛,調(diào)重新輸入車牌號:2001
>>停斗場己有斗輛數(shù),3
入
請
H招令
號
入
牌
入
車
歡>1
—
賈it-
進(jìn)
請
曾2012
9主
,
場ff?t
己
法停
停
>>停車場已有車輛數(shù):3
晴輸入指令:2
情輸入要離開的主牌號:1?2
a
>〉停車場中位置為2
請?zhí)敫唛_時(shí)間:12
>>主牌號為10空的汽車停主時(shí)間:4
>>停車費(fèi)用?8元(2元/小可>
-(j1-1
-9-
數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告,
5.顯示停車場所有車輛信息
]G?pG:\Debut\停車場管短不統(tǒng).e?e"
1001
>>主庫B已有此車輛.清南新輸入車牌號:2001
>>停車場已有車輛數(shù):3
入
今
—
婁
進(jìn)您2012
場
己
>>停¥場已有車輛數(shù)
入更離開的*牌號,,002
>>停車場中位置為2
入離開時(shí)間:12
>>套牌號為,迪汽車停定時(shí)間:4
>>停車費(fèi)用,8元<2兀/小Bf>
入指令:3
》》車牌號停車時(shí)間《《
10017
20018
7日廿
6.退出程序
性斗"G:\D6bu<\停車場修,系統(tǒng).e?e*-I可x|
>>主庫口已有此生輛,請?bào)蛐螺斎塑嚺铺?2001Ld
入拼場時(shí)間,8
>>停車場己有車輛數(shù):3
入
推令
人
關(guān)
—入車牌號,U
進(jìn)
翼2012
場
已.9
法停車
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學(xué)通關(guān)題庫(附帶答案)
- 2024年度山西省高校教師資格證之高等教育法規(guī)題庫練習(xí)試卷A卷附答案
- 2024年度年福建省高校教師資格證之高等教育學(xué)能力測試試卷B卷附答案
- 2024年企業(yè)金融項(xiàng)目投資申請報(bào)告代可行性研究報(bào)告
- 2024年防霧涂料項(xiàng)目投資申請報(bào)告代可行性研究報(bào)告
- 山東省臨沂一中2024-2025學(xué)年高三11月測試語文試題含答案
- 第六章 社區(qū)營養(yǎng)管理和營養(yǎng)干預(yù)課件
- 五年級數(shù)學(xué)(小數(shù)除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 2024年期房屋建筑施工協(xié)議范例大全
- 2024電力供應(yīng)與消費(fèi)合規(guī)協(xié)議樣式
- 《變壓器有載分接開關(guān)振動(dòng)聲學(xué)現(xiàn)場測試方法》
- 管桁架施工方案
- 全國高考物理高考題說題比賽一等獎(jiǎng)?wù)n件物理說題李煥景
- 華為MA5800配置及調(diào)試手冊
- 汽車坡道玻璃雨棚施工方案
- 二輪復(fù)習(xí)微專題湖泊專題
- 2024年德陽發(fā)展控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 餐前檢查表(標(biāo)準(zhǔn)模版)
- 重大風(fēng)險(xiǎn)管控方案及措施客運(yùn)站
- 陜西方言的文化價(jià)值與保護(hù)策略
- (2024年)剪映入門教程課件
評論
0/150
提交評論