車庫管理系統(tǒng)開發(fā)設(shè)計報告_第1頁
車庫管理系統(tǒng)開發(fā)設(shè)計報告_第2頁
車庫管理系統(tǒng)開發(fā)設(shè)計報告_第3頁
車庫管理系統(tǒng)開發(fā)設(shè)計報告_第4頁
車庫管理系統(tǒng)開發(fā)設(shè)計報告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-.z職業(yè)技術(shù)學(xué)院數(shù)據(jù)構(gòu)造實訓(xùn)報告?數(shù)據(jù)構(gòu)造?課程設(shè)計實訓(xùn)方案實訓(xùn)對象實訓(xùn)班級軟件1001班方案實訓(xùn)周期:5個工作日方案受訓(xùn)人數(shù):50人左右實訓(xùn)目的通過本次實訓(xùn)希望學(xué)生能有以下收獲:(1)掌握數(shù)據(jù)構(gòu)造的根底知識;;(2)數(shù)據(jù)構(gòu)造模型的建立以及存儲構(gòu)造的選擇;(3)掌握C語言文件操作方式;(4)掌握數(shù)據(jù)構(gòu)造中隊列、新建、入隊、出隊。線性表、查詢、更新、插入、刪除、排序等功能;(5)了解數(shù)據(jù)處理的權(quán)限管理;實訓(xùn)內(nèi)容題目:車庫管理系統(tǒng)[問題描述]設(shè)停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列〔大門在最南端,最先到達的第一輛車停放在車場的最北端〕,假設(shè)車場內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。試為停車場編制按上述要求進展管理的模擬程序。以線性表模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進展模擬管理。每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車“到達〞或“〞離去信息、汽車牌照以及到達或離去的時刻。對每一組輸入數(shù)據(jù)進展操作后的輸出信息為:假設(shè)是車輛到達,則輸出汽車在停車場內(nèi)或便道上的停車位置;假設(shè)是車輛離去,則輸出汽車在停車場內(nèi)停留的時間和應(yīng)交納的費用〔在便道上停留的時間不收費〕。線性表以順序構(gòu)造實現(xiàn),隊列以鏈表構(gòu)造實現(xiàn)。[系統(tǒng)要求]〔1〕初始化:初始化線性表、隊列。〔2〕入隊:新車參加隊?!?〕出隊:隊首出隊?!?〕入庫:定位、隊列元素入庫。〔5〕出庫:查找、出庫并計費、記錄流水?!?〕輸出流水帳四摘要詳細內(nèi)容如下:序號實訓(xùn)工程內(nèi)容及要求學(xué)時1數(shù)據(jù)構(gòu)造根底知識數(shù)據(jù)構(gòu)造設(shè)計1〕了解數(shù)據(jù)構(gòu)造中的根本概念2〕數(shù)據(jù)構(gòu)造應(yīng)用設(shè)計過程3〕獨立完成“車庫管理系統(tǒng)〞數(shù)據(jù)構(gòu)造的規(guī)*化設(shè)計;42初始化:初始化線性表、隊列。要求:完成初始化線性表、隊列程序設(shè)計;23入隊:新車參加隊。出隊:隊首出隊。要求:1〕完成入隊出隊程序設(shè)計;44入庫:定位、隊列元素入庫要求:完成定位、隊列元素入庫程序設(shè)計65出庫:查找、出庫并計費、記錄流水。要求:完成查找、出庫并計費、記錄流水保存數(shù)據(jù)〔文件寫操作〕;66輸出流水帳要求:1〕讀入數(shù)據(jù)〔文件讀操作〕;2〕輸出數(shù)據(jù)27完成報告要求:文章構(gòu)造清晰,文字描述準(zhǔn)確;掌握科技應(yīng)用文的寫作;4五實訓(xùn)環(huán)境地點:行知樓506軟件:TurboC2.0六實訓(xùn)進度序號時間實訓(xùn)內(nèi)容方式第一天早上數(shù)據(jù)構(gòu)造根底知識、數(shù)據(jù)構(gòu)造設(shè)計講練第一天下午初始化:初始化線性表、隊列。練習(xí)第二天早上入隊:新車參加隊列講練第二天下午出隊:隊首出隊。練習(xí)第三天早上入庫:隊列元素入庫講練第三天下午出庫:查找、出庫并計費練習(xí)第四天早上記錄流水。講練第四天下午輸出流水帳練習(xí)第五天早上系統(tǒng)聯(lián)調(diào)講練第五天下午完成報告練習(xí)目錄緒論1第一章題目2第二章題目3第三章題目4總結(jié)和體會5參考文獻6緒論本系統(tǒng)是假設(shè)有一個停車場且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列〔大門在最南端,最先到達的第一輛車停放在車場的最北端〕,假設(shè)車場內(nèi)已停滿汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場內(nèi)*輛車要離開時,在它之后進入的車輛必須先退車車場為它讓路,待趕輛車開出大門外,其它車輛在按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短叫納費用的系統(tǒng)。其順序用隊列來實現(xiàn),車輛的車牌、停車時間以及車位號均保持在庫中,在車輛離開停車場時調(diào)用庫**息,查詢車輛信息,計算應(yīng)繳納的費用,并處理后續(xù)車輛。第一章初始化具體內(nèi)容對線性表、隊列的初始化和必要的操作提示,代碼如下:*include"stdio.h"*include"stdlib.h"*include"string.h"*include"conio.h"intMA*;/*定義一個全局變量用來存儲車庫最大容量*/floatprice;/*每車每小時的費用*/typedefstructtime{inthour;intmin;}Time;/*時間結(jié)點*/typedefstructnode{charnum[100];Timereach;Timeleave;}Car;/*車輛信息結(jié)點*/typedefstructNODE{Car*stack[100];inttop;float*;}SqStack;/*停車站*/typedefstructcar{Car*data;//數(shù)據(jù)域名structcar*ne*t;//指針域名}QNode;typedefstructNode{QNode*head;//隊頭指針QNode*rear;//隊尾指針}LinkQueue;/*通道*/voidInitStack(SqStack*);/*初始化棧*/intInitQueue(LinkQueue*);/*初始化便道*/intarrive(SqStack*,LinkQueue*);/*車輛到達*/voidleave(SqStack*,SqStack*,LinkQueue*);/*車輛離開*/voidinfo(SqStack,LinkQueue);/*顯示停車場信息*/voidPRINT(Car*p,introom);//打印詳細信息及賬單voidInitStack(SqStack*s)/*初始化棧*/{inti;s->top=0;//定義初始棧頂下標(biāo)值for(i=0;i<=MA*;i++)s->stack[s->top]=NULL;//建立一個空棧}intInitQueue(LinkQueue*Q)/*初始化便道*/{Q->head=(QNode*)malloc(sizeof(QNode));//為通道開辟一個空間if(Q->head!=NULL)//判斷隊頭是否為空{(diào)Q->head->ne*t=NULL;//隊頭的下一個數(shù)據(jù)元素設(shè)為空Q->rear=Q->head;//把隊頭數(shù)據(jù)元素的值賦給隊尾return(1);}elsereturn(-1);}voidmain(){SqStackIn,Out;LinkQueueWait;intch;InitStack(&In);/*初始化停車站*/InitStack(&Out);/*初始化讓路的臨時棧*/InitQueue(&Wait);/*初始化通道*/while(1){printf("歡送使用停車場管理系統(tǒng)\n");printf("請輸入停車場的容量:");scanf("%d",&MA*);printf("請輸入停車場的收費標(biāo)準(zhǔn)(元/小時):");scanf("%f",&price);printf("您輸入的停車場容量為%d位,費用為%2.1f元/小時。\n",MA*,price);printf("(1)車輛到達\n");printf("(2)車輛離開\n");printf("(3)停車場信息\n");printf("(0)退出系統(tǒng)\n");printf("\n");printf("請選擇\n");while(1){ch=getch();switch(ch){case'1':arrive(&In,&Wait);break;/*車輛到達*/case'2':leave(&In,&Out,&Wait);break;/*車輛離開*/case'3':info(In,Wait);break;/*輸出車站信息*/case'0':{printf("謝謝使用!");e*it(0);}/*退出主程序*/default:printf("\n非數(shù)字鍵,請重新按鍵選擇!");}system("CLS");printf("歡送使用停車場管理系統(tǒng)\n");printf("您輸入的停車場容量為%d位,費用為%2.1f元/小時。\n",MA*,price);printf("\n(1)車輛到達\n(2)車輛離開\n(3)停車場信息\n(4)退出系統(tǒng)\n請選擇\n");}}}第二章車輛到達車場可停放多輛汽車,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序依次排列,假設(shè)車場內(nèi)已停滿汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入代碼如下:intarrive(SqStack*In,LinkQueue*W)/*車輛到達*/{Car*p;QNode*t;p=(Car*)malloc(sizeof(Car));//把開辟成功的空間存入指針p中flushall();//去除所有緩沖區(qū)printf("\n停車場還有%d個停車位(假設(shè)停車位為0,車可先進入便道等待)",MA*-In->top);printf("\n請輸入車牌(例:3454):");gets(p->num);if(In->top<MA*)/*停車場未滿,車進車場*/{In->top++;printf("\n停車的位置:%d號停車位。",In->top);//printf("\n請輸入車到達的時間(格式"**:**"):");printf("\n請輸入車到達的時間:");scanf("%d:%d",&(p->reach.hour),&(p->reach.min));In->stack[In->top]=p;//彈出棧頂數(shù)據(jù)元素值到指針pprintf("請按任意鍵返回");getch();return(1);}else/*停車場已滿,車進便道*/{printf("\n停車位已滿,該車須在便道等待!");t=(QNode*)malloc(sizeof(QNode));t->data=p;//指針t所指向結(jié)點的數(shù)據(jù)元素存入指針p內(nèi)t->ne*t=NULL;//新結(jié)點鏈為空W->rear->ne*t=t;W->rear=t;printf("請按任意鍵返回");getch();return(1);}}第三章車輛離開和查詢當(dāng)停車場內(nèi)*輛車要離開時,在它之后進入的車輛必須先退車車場為它讓路,待趕輛車開出大門外,其它車輛在按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短叫納費用代碼如下:voidleave(SqStack*In,SqStack*Out,LinkQueue*W){//車輛離開introom;char**;intA1,A2,B1,B2;Car*p,*t;QNode*q;//判斷車場內(nèi)是否有車if(In->top>0)//有車{while(1)//輸入離開車輛的信息{ printf("\n請輸入車在停車場的車位號:",In->top);scanf("%d",&room);if(room>=1&&room<=In->top)break; }while(In->top>room)/*車輛離開*/ {Out->top++;Out->stack[Out->top]=In->stack[In->top];In->stack[In->top]=NULL;In->top--;}p=In->stack[In->top];In->stack[In->top]=NULL;In->top--;while(Out->top>=1){printf("請便道車進入");In->top++;In->stack[In->top]=Out->stack[Out->top];Out->stack[Out->top]=NULL;Out->top--;}PRINT(p,room);/*判斷通道上是否有車及車站是否已滿*/if((W->head!=W->rear)&&In->top<MA*)/*便道的車輛進入停車場*/{q=W->head->ne*t;t=q->data;In->top++;printf("\n便道的%s號車進入車場第%d號停車位。",t->num,In->top);//printf("\n請輸入現(xiàn)在的時間(格式"**:**"):");printf("\n請輸入現(xiàn)在的時間:");scanf("%d:%d",&(t->reach.hour),&(t->reach.min));W->head->ne*t=q->ne*t;if(q==W->rear)W->rear=W->head;In->stack[In->top]=t;free(q);//釋放原棧結(jié)點內(nèi)存空間}}elseprintf("\n停車場里沒有車\n");/*沒車*/printf("請按任意鍵返回");getch();}voidinfo1(SqStack*S)/*列表輸出車場信息*/{inti;if(S->top>0)/*判斷停車場內(nèi)是否有車*/{printf("\n車場:");printf("\n位置到達時間車牌號\n");for(i=1;i<=S->top;i++){printf("%d\t",i);printf("%d:%d",S->stack[i]->reach.hour,S->stack[i]->reach.min);puts(S->stack[i]->num);}}elseprintf("\n停車場里沒有車");}voidinfo2(LinkQueue*W)/*顯示便道信息*/{QNode*p;p=W->head->ne*t;if(W->head!=W->rear)/*判斷通道上是否有車*/{printf("\n便道中車輛的為:\n");while(p!=NULL){puts(p->data->num);p=p->ne*t;}}elseprintf("\n便道里沒有車\n");printf("請按任意鍵返回");getch();}voidinfo(SqStackS,LinkQueueW){info1(&S);/*顯示停車場信息*/info2(&W);/*顯示停便道信息*/}voidPRINT(Car*p,introom)//出停車站車的信息{intA1,A2,B1,B2;printf("\n請輸入車離開的時間:");scanf("%d:%d",&(p->leave.hour),&(p->leave.min));printf("\n車牌:");puts(p->num);printf("\n車登記的時間是:%d:%d",p->reach.hour,p->reach.min);printf("車離開的時間是:%d:%d",p->leave.hour,p->leave.min);A1=p->reach.hour;A2=p->reach.min;B1=p->leave.hour;B2=p->leave.min;printf("\n費用為:%2.1f元",((B1-A1)+(B2-A2)/60)*price);free

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論