軟件工程課程設(shè)計(jì)_第1頁
軟件工程課程設(shè)計(jì)_第2頁
軟件工程課程設(shè)計(jì)_第3頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)年設(shè)計(jì)課程名稱:軟件工程學(xué)年設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目:停車場(chǎng)收費(fèi)管理系統(tǒng)姓名:XXX專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):XXX學(xué)號(hào):XXXX指導(dǎo)教師XXX計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)教學(xué)中心XXXX年 XX月 XX 日摘要目前,我國(guó)經(jīng)濟(jì)逐漸發(fā)達(dá),自行車王國(guó)逐步向汽車進(jìn)軍。因此,大量的停車場(chǎng)也隨之而至。 雖然某些大型停車場(chǎng)在工作中已經(jīng)開始向計(jì)算機(jī)化靠攏,但仍不夠完善。而中小型停車場(chǎng)更為稀少,陳舊的管理手段給顧客帶來極大的不便,同時(shí)為了提高工作效率及服務(wù)質(zhì)量, 一套完整的停車廠管理系統(tǒng)的出現(xiàn)就十分必要了。本次設(shè)計(jì),僅為一個(gè)簡(jiǎn)單的小型停車場(chǎng)管理系統(tǒng)。采用 C 語言編寫,為 dos 界面。主要強(qiáng)調(diào)車輛的進(jìn)站和出站操作, 以

2、及車場(chǎng)和通道之間的相互關(guān)系。 根據(jù)車場(chǎng)內(nèi)車道狹長(zhǎng)且為一邊開口的特點(diǎn), 將車道用先進(jìn)后出的棧結(jié)構(gòu)來描述。 外面狹長(zhǎng)的通道,為先進(jìn)先出,可采用隊(duì)列結(jié)構(gòu),為方便起見,采用鏈?zhǔn)疥?duì)列結(jié)構(gòu)來描述。本程序中的數(shù)據(jù)對(duì)象是汽車, 為使操作更方便, 將給每輛進(jìn)車道的汽車編號(hào),根據(jù)編號(hào)出場(chǎng)。其中,還包括入場(chǎng)時(shí)間、出廠時(shí)間、收取費(fèi)用等項(xiàng)。關(guān)鍵字:停車場(chǎng)管理系統(tǒng)棧結(jié)構(gòu)隊(duì)列結(jié)構(gòu)軟件工程目錄1 需求分析.引言 .設(shè)計(jì)目的 .任務(wù)概述 .基本要求 .系統(tǒng)用戶分析.用數(shù)據(jù)流程圖描述.2 概要設(shè)計(jì).設(shè)計(jì)思想 .實(shí)現(xiàn)方法 .主要模塊 .各模塊的主要功能及實(shí)現(xiàn).車輛到達(dá)模塊 .車輛離開模塊 .停車場(chǎng)內(nèi)與通道停放車輛的信息模塊.獲取時(shí)

3、間 .函數(shù)間調(diào)用關(guān)系.3 詳細(xì)設(shè)計(jì).界面及各模塊詳細(xì)設(shè)計(jì).4 系統(tǒng)測(cè)試.功能測(cè)試 .車進(jìn)站時(shí)車牌號(hào)的測(cè)試.5 總結(jié) .用戶手冊(cè) .設(shè)計(jì)體會(huì) .錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書

4、簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。錯(cuò)誤 ! 未定義書簽。參考文獻(xiàn).錯(cuò)誤 ! 未定義書簽。附.錯(cuò)誤 ! 未定義書簽。1 需求分析1.1引言1.1.1設(shè)計(jì)目的a.通過課程設(shè)計(jì),加深對(duì)軟件工程思想的理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu)。b. 通過課程設(shè)計(jì),提高程序開發(fā)功能,能運(yùn)用合理的控制流程編寫清晰高效的程序。通過課程設(shè)計(jì),訓(xùn)練C 程序調(diào)試能力,能將一個(gè)中小型各級(jí)組織系統(tǒng)聯(lián)調(diào)通過。c. 通過課程設(shè)計(jì),開發(fā)一個(gè)中小型系統(tǒng),掌握運(yùn)用軟件工程思想研來發(fā)系統(tǒng)全過程。d. 通話課程設(shè)計(jì),培養(yǎng)分析問題、解決實(shí)際問題的能力。1.1.2任務(wù)概述設(shè)有一個(gè)可以停放20

5、 輛汽車的狹長(zhǎng)停車場(chǎng),它只有一個(gè)大門可以供車輛進(jìn)出。車輛按到達(dá)停車場(chǎng)時(shí)間的早晚依次從停車場(chǎng)最里面向大門口處停放 (最先到達(dá)的第一輛車放在停車場(chǎng)的最里面) 。如果停車場(chǎng)已放滿 20 輛車,則后來的車輛只能在停車場(chǎng)大門外的通道上等待, 一旦停車場(chǎng)內(nèi)有車開走, 則排以便道上的第一輛車就進(jìn)入停車場(chǎng)。 停車場(chǎng)內(nèi)如有某輛車要開走, 在它之后進(jìn)入停車場(chǎng)的車都必須先退出停車場(chǎng)為它讓路, 待其開出停車場(chǎng)后, 這些輛再依原來的次序進(jìn)場(chǎng)。 每輛車在離開停車場(chǎng)時(shí), 都應(yīng)根據(jù)它在停車場(chǎng)內(nèi)停留的時(shí)間長(zhǎng)短交費(fèi)。如果停留在便道上的車未進(jìn)停車場(chǎng)時(shí),允許其離去,不收停車費(fèi),并且仍然保持在通道上等待的車輛的次序。編制一程序模擬該停

6、車場(chǎng)的管理。要求程序輸出每輛車到達(dá)后的停車位置(停車場(chǎng)或便道上) ,以及某輛車離開停車場(chǎng)應(yīng)交納的費(fèi)用和它在停車場(chǎng)內(nèi)停留的時(shí)間。1.2基本要求要求程序輸出每輛車到達(dá)后的停車位置(停車場(chǎng)),以及某輛車離開停車場(chǎng)應(yīng)交納的費(fèi)用和它在停車場(chǎng)內(nèi)停留的時(shí)間。系統(tǒng)用戶分析“停車場(chǎng)管理系統(tǒng) ”主要是針對(duì)車輛存取工作而開發(fā)的應(yīng)用軟件。通常有系統(tǒng)管理員、停車場(chǎng)車輛管理員和顧客三種用戶,他們的使用權(quán)限如下:系統(tǒng)管理員:計(jì)算機(jī)人員,對(duì)系統(tǒng)進(jìn)行維護(hù)。圖書管理員:對(duì)停車信息進(jìn)行數(shù)據(jù)操作。顧客:僅限于查閱。用數(shù)據(jù)流程圖描述圖 1-1 是根據(jù)操作流程建立的流程圖。表 1-1 是車能否進(jìn)停車場(chǎng)的判定表。圖 1 -1 停車場(chǎng)流程圖

7、表 1-1 進(jìn)站停車判定表車場(chǎng)內(nèi)車數(shù)202020車牌號(hào)位數(shù)52 且552 且5進(jìn)站進(jìn)通道2 概要設(shè)計(jì)2.1設(shè)計(jì)思想此停車場(chǎng)管理系統(tǒng)是在一個(gè)狹長(zhǎng)的通道上的, 而且只有一個(gè)大門可以供車輛進(jìn)出,并且要實(shí)現(xiàn)停車場(chǎng)內(nèi)某輛車要離開時(shí), 在它之后進(jìn)入停車場(chǎng)的車都必須先退出停車場(chǎng)為它讓路,待其開出停車場(chǎng)后,這些輛再依原來的次序進(jìn)場(chǎng)的功能,就可以設(shè)計(jì)兩個(gè)堆棧, 其中一個(gè)堆棧用來模擬停車場(chǎng), 另一個(gè)堆棧用來模擬臨時(shí)停車場(chǎng),該臨時(shí)停車場(chǎng)用來存放當(dāng)有車輛離開時(shí), 原來停車場(chǎng)內(nèi)為其讓路的車輛。至于當(dāng)停車場(chǎng)已滿時(shí), 需要停放車輛的通道可以用一個(gè)鏈隊(duì)列來實(shí)現(xiàn)。 當(dāng)停車場(chǎng)內(nèi)開走一輛車時(shí), 通道上便有一輛車進(jìn)入停車場(chǎng), 此時(shí)只

8、需要改變通道上車輛結(jié)點(diǎn)的連接方式就可以了, 使通道上第一輛車進(jìn)入停車場(chǎng)這個(gè)堆棧, 并且使通道上原來的第二輛車成為通道上的第一輛車, 此時(shí)只需將模擬通道的鏈隊(duì)列的頭結(jié)點(diǎn)連到原來的第二輛車上就可以了。實(shí)現(xiàn)方法對(duì)于此停車場(chǎng)管理系統(tǒng)的實(shí)現(xiàn), 就是用兩個(gè)堆棧來分別模擬停車場(chǎng)以及停車場(chǎng)內(nèi)車輛為其它車輛讓路時(shí)退出停車的臨時(shí)停放地點(diǎn)。 至于通道上車輛的停放則用一個(gè)鏈隊(duì)列來實(shí)現(xiàn),此時(shí),通道上車輛的離開或者進(jìn)入停車場(chǎng)只需改變此鏈隊(duì)列上的結(jié)點(diǎn)而已。對(duì)于要對(duì)停車場(chǎng)內(nèi)的車輛根據(jù)其停放時(shí)間收取相應(yīng)的停車費(fèi)用,可以記錄下車輛進(jìn)入以及離開停車場(chǎng)的時(shí)間,再用時(shí)間差乘以相應(yīng)的單價(jià)并且打印出最后的費(fèi)用就可以實(shí)現(xiàn)了。主要模塊此停車場(chǎng)

9、管理系統(tǒng),主要分為以下若干模塊:首先定義用來模擬停車場(chǎng)的堆棧以及用來模擬通道的鏈隊(duì)列為全局變量,然后編寫主函數(shù),在此主函數(shù)中實(shí)現(xiàn)對(duì)其它各個(gè)模塊的調(diào)用。在主函數(shù)中首先打印出此停車場(chǎng)管理系統(tǒng)選擇頁面,在用戶的選擇過程中,程序又分別調(diào)用車輛的到達(dá)、車輛的離開、停車場(chǎng)內(nèi)與通道停放車輛的信息以及獲取時(shí)間這四個(gè)函數(shù)模塊。其中,在車輛的離開那個(gè)模塊函數(shù)中又調(diào)用了打印離開車輛信息的函數(shù),在停車場(chǎng)內(nèi)停放車輛信息的那個(gè)模塊函數(shù)中,又分別調(diào)用了顯示停車場(chǎng)上車輛信息的函數(shù)以及顯示便道上車輛信息的函數(shù)。最后,從調(diào)用的這四個(gè)函數(shù)中回到主函數(shù)結(jié)束整個(gè)程序的運(yùn)行。2.4各模塊的主要功能及實(shí)現(xiàn)2.2.1車輛到達(dá)模塊此模塊主要實(shí)

10、現(xiàn)車輛進(jìn)入停車場(chǎng)功能,通過判斷合法性決定車輛能否進(jìn)入停車場(chǎng)。實(shí)現(xiàn)偽碼:If 車場(chǎng)內(nèi)車數(shù) 2 and di.num);printf(%st,ime);printf( 共 %d 輛 ,s-top+1);if(s-top=Maxsize-1)printf( 已滿 )n);elseprintf( 還能放 %d 輛)n,Maxsize-1-s-top);printf(n);void printout(struct car *x)um)flg=1;while(1)if(flg=1)printf( 車牌號(hào)已存在! n);gets;elsebreak;gettime(nowtime1);str

11、cpy,nowtime1);/fprintf(fp, 車牌號(hào)%s時(shí)間:%sn,;if (!isfullstack(s)&isemptyq(q)/ 若車站不滿,而且過道上沒有車,則直接進(jìn)入車站=(s-top)+2;push(s,k);printstack(s);elseif(isfullstack(s)|!isemptyq(q)/ 若過道上還有車,則必須放在過道上printf(*警告*n車站已滿,請(qǐng)暫時(shí)放在過道。n 現(xiàn)在情況如下:n);=Maxsize;addq(q,k);/ 放在過道上printstack(s);/ 輸入車站情況printq(q);/ 同時(shí)輸入當(dāng)時(shí)過道上的情況printf(*n

12、);void outcar(SeqStack *s,linkq *q)/ 車出站SeqStack p; / 申請(qǐng)臨時(shí)放車的地方init(&p);char nowtime10;int i,pos;long cost;int hour,min,sec;struct car x,b,y1,y2,z;if(isemptystack(s)printf( 車站是空的,不能再出站了!n);printf(a);elseprintf( 現(xiàn)在車站的情況是: n);printstack(s);printf( 你要出站的車的序號(hào)是 :n);scanf(%d,&pos);if(pos0&postop+1)for(i=s

13、-top+1;ipos;i-)x=pop(s);=;push(&p,x);b=pop(s);gettime(nowtime);strcpy,nowtime);hour=0-0)*10+1-0)-(0-0)*10+1-0);min=3-0)*10+4-0)-(3-0)*10+4-0);sec=6-0)*10+7-0)-(6-0)*10+7-0);=hour*3600+min*60+sec;cost=;=cost;printout(&b);/ 輸出車出站時(shí)的情況 -進(jìn)入時(shí)間,出站時(shí)間,原來位置,花的費(fèi)用等while(!isemptystack(&p)/ 車出來后把剛才退出的車重新放回z=pop(&

14、p);push(s,z);if(!isfullstack(s)&!isemptyq(q)y1=delq(q);strcpy,nowtime);push(s,y1);while(!isfullstack(s)&!isemptyq(q)y2=delq(q);push(s,y2);elseprintf( 有沒有你要的車號(hào) n);printf(a);int main()SeqStack park;linkq q;init(&park);initq(&q);char mess10;/fp=fopen(,w);printf(ttt車場(chǎng)管理系統(tǒng)ntttn*nn);printf( 提示:車站內(nèi)最多只能放Max

15、size(由系統(tǒng)中定義)輛車,多余的暫時(shí)放在過道上。n車站內(nèi)收費(fèi)標(biāo)準(zhǔn):1 角 / 秒,過道上不收費(fèi)。n);printf(n你想進(jìn)行什么操作nIN-車進(jìn)站 nOUT-車出站 nLIST-查看車站及過道中的情況nHELP-獲取幫助nEND-退出系統(tǒng) n);printf(n操作 :);gets(mess);while(1)if(strcmp(mess,END)=0)printf(ttt歡迎下次再來,再見! n);break;else if(strcmp(mess,HELP)=0)printf(n 你想進(jìn)行什么操作 nIN-車進(jìn)站 nOUT-車出站 nLIST- 查看車站及過道中的情況 nHELP-獲取幫助 nEND-退出系統(tǒng) nn);printf( 操作: );cl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論