綜合設計報告87319_第1頁
綜合設計報告87319_第2頁
綜合設計報告87319_第3頁
綜合設計報告87319_第4頁
綜合設計報告87319_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

昆明理工大學《程序設計基礎》課程綜合設計實踐教學課題報告課程名稱:C語言課題名稱:停車場停車及其收費問題組長: 學號201110104132 姓名吳迪組員: 學號201110104136 姓名尚登濤學號201110104140 姓名田超 學院:國土資源工程學院專業(yè)班級:采礦111指導教師:耿值林昆明理工大學計算中心2012年5月

昆明理工大學計算中心《程序設計基礎》課程綜合設計實踐教學課題考核表課題名稱:學院:專業(yè)班級學號姓名小組編號題號承擔及完成的內(nèi)容成績備注小組自評教師評定201110104132吳迪選題,程序總設計95201110104140田超實驗報告的填寫93201110104136尚登濤程序調(diào)適修改93設計說明與功能描述(基本思路及關鍵語句說明)隨著社會的發(fā)展,交通的問題變得日益嚴重,尤其是在各大停車場的管理問題上,針對這一現(xiàn)狀,本小組選擇了比較切實現(xiàn)實生活的停車場管理問題.程序設計的問題包括停車場的停車,占道,開走等問題的研討!它是從鍵盤上輸入一系列關于車輛的信息(如,牌照,),進入停車場的時間,停在那個停車位上或者停在走廊上以及車輛的駛離停車場的時間等一系列信息。并將其在顯示屏上顯示出來。從按照系統(tǒng)提示輸入各個數(shù)據(jù),此系統(tǒng)分為停車,離開,獲取當前停車信息。采用主函數(shù)<stdio.h>控制,其他如<iostream>,<malloc.h>,<string>等函數(shù)進行輔助控制。對于各個函數(shù)計算法的具體應用參照算法程序代碼。定義一個結(jié)構(gòu)體,包括車輛的牌照信息,駛?cè)霑r間,停車位置,駛離時間等信息.如下所示:typedefstruct{ inta; stringb; intc; intd;}Car;組長簽名:吳迪2012年6月3日教師評語教師簽名:201年月日第一部分:系統(tǒng)概述:一:程序功能隨著社會的發(fā)展,交通的問題變得日益嚴重,尤其是在各大停車場的管理問題上,針對這一現(xiàn)狀,本小組選擇了比較切實現(xiàn)實生活的停車場管理問題.程序設計的問題包括停車場的停車,占道,開走等問題的研討!它是從鍵盤上輸入一系列關于車輛的信息(如,牌照,),進入停車場的時間,停在那個停車位上或者停在走廊上以及車輛的駛離停車場的時間等一系列信息。并將其在顯示屏上顯示出來。二:程序算法從按照系統(tǒng)提示輸入各個數(shù)據(jù),此系統(tǒng)分為停車,離開,獲取當前停車信息。采用主函數(shù)<stdio.h>控制,其他如<iostream>,<malloc.h>,<string>等函數(shù)進行輔助控制。對于各個函數(shù)計算法的具體應用參照算法程序代碼。第二部分數(shù)據(jù)結(jié)構(gòu)體設計三:定義結(jié)構(gòu)體定義一個結(jié)構(gòu)體,包括車輛的牌照信息,駛?cè)霑r間,停車位置,駛離時間等信息.如下所示:typedefstruct{ inta; stringb; intc; intd;}Car;四:算法要求

(1)要求以順序棧模擬停車場,以鏈隊列模擬便道。

(2)從終端讀入汽車到達或離去的數(shù)據(jù),每組數(shù)據(jù)包括三項:①是“到達”還是“離去”;②汽車牌照號碼;③“到達”或“離去”的時刻。與每組輸入信息相應的輸出信息為:如果是到達的車輛,則輸出其在停車場中或便道上的位置;如果是離去的車輛,則輸出其在停車場中停留的時間和應交的費五:函數(shù)定義定義了對個函數(shù),以便于可以處理各種情況,并增強程序的健壯性,一邊可以抵御可以遇到的非法輸入。主流程示意圖主函數(shù)入口↓用戶可視化操作↓輸入信息↓停車查詢駛離↓輸出信息(時間,費用)六:程序的操作性測試主界面:駛?cè)胲囕v(1)駛?cè)胲囕v(2)駛?cè)胲囕v(3)由于此系統(tǒng)設計為了便于進行程序操作實驗,所以,此停車場只有兩個車位,進入的第三輛車只能??吭诒愕郎稀q傠x操作。此程序可以進行持續(xù)操作,所以退出系統(tǒng)只需關閉操作窗口。第四部分:總結(jié)和體會5、總結(jié)和體會重點寫明本次設計以及該課程學習、應用過程中的收獲和體會組長:通過本次的綜合作業(yè)的程序設計,我們小組大家一起努力,反復調(diào)試,經(jīng)過不斷地改正錯誤的程序,終于調(diào)試出來了,心中充滿了成就感,讓我首次體會到了團隊協(xié)作的力量,C語言這門課程起初真的很難學進去,看著一個個的字母,一個個的程序語言,感到頭皮發(fā)麻,可是后來學進去了,其實還是挺有趣的,看著程序成功的運行,心中的喜悅感是別人無法體會的。通過這門課程我也收獲到了很多,從開始看著天書一般的課本,到現(xiàn)在可以編出簡單的程序了,我覺得這就是我的收獲,這就是我這個學期學到的知識,這就是成功,這就是我不斷努力地結(jié)果,一分耕耘一分收獲,我相信只要努力,無論再難的事,我們也能成功。世上無難事只怕有心人!組員:我們在組長的帶領下,在課余時間,三次一起來到計算中心,一起研究這份綜合程序設計,開始有點丈二的和尚摸不到頭腦,不知從何下手,后來我們選擇了這個題目之后就朝著這個方向不斷調(diào)試,終于功夫不負有心人,我們調(diào)試出來了。我們都十分高興,畢竟是我們自己設計出來的,很有成就感。這門課程剛開始學覺得很枯燥,密密麻麻的字符看著就頭痛,可是后來靜下心來學習,感覺越不算太難,可以學懂??傊?,這也算是一門比較有意思的課程吧,我們每個人都可以學好的。五:程序代碼#include<stdio.h>#include<string>#include<iostream>#include<malloc.h>usingnamespacestd;typedefstruct{ inta; stringb; intc; intd;}Car;typedefstruct{ Carelem[2]; inttop;}SeqStack;typedefstructNode{ Card; intn; structNode*next;}LQNode;typedefstruct{ LQNode*front; LQNode*rear;}LinkQueue;//------------------------------------------voidinitstack(SeqStack*S){ S->top=-1;}intpush(SeqStack*S,Carx){ if(S->top==1)return(0); S->top++; S->elem[S->top]=x; return(1);}intpop(SeqStack*S,Car*x){ if(S->top==-1)return(0); else { *x=S->elem[S->top]; S->top--; return(1); }}//------------------------------------------intinitQueue(LinkQueue*Q){ Q->front=(LQNode*)malloc(sizeof(LQNode)); if(Q->front!=NULL) { Q->rear=Q->front; Q->front->next=NULL; Q->rear->n=0; return(1); } elsereturn(0);}intenterQueue(LinkQueue*Q,CarX){ LQNode*NewNode=newLQNode; //NewNode=(LQNode*)malloc(sizeof(LQNode));//不知道為什么,用malloc會出錯。 if(NewNode!=NULL) { NewNode->d=X; NewNode->next=NULL; Q->rear->next=NewNode; Q->rear->next->n=Q->rear->n+1;//用當前的Q->rear->n來存放編導車輛數(shù)目信息。 Q->rear=NewNode; return(1); } elsereturn(0);}intdeletQueue(LinkQueue*Q,Car*X){ LQNode*p; if(Q->front==Q->rear) { return(0); } p=Q->front->next; Q->front->next=p->next; Q->rear->n--; if(Q->rear==p) { Q->rear=Q->front; Q->rear->n=0; } *X=p->d; deletep; return(1);}intin(SeqStack*S,LinkQueue*Q,CarX){ if(S->top<1) { push(S,X); cout<<"車輛"<<X.b<<"已經(jīng)存在停車場"<<S->top<<"號車位,存車時間為"<<X.c<<":"<<X.d<<"。\n"; } else { enterQueue(Q,X); cout<<"車輛"<<X.b<<"已經(jīng)存在便道"<<Q->rear->n<<"號車位,存車時間為"<<X.c<<":"<<X.d<<"\n"; } return(1);}intout(SeqStack*S,SeqStack*L,LinkQueue*Q,CarA){ CarX; floatmoney; if(S->top==-1) { cout<<"車場已空,沒有您的車。\n"; return(0); } else { pop(S,&X); if(X.b!=A.b&&S->top==-1)push(L,X); while(X.b!=A.b&&S->top!=-1) { pop(S,&X); push(L,X); } } if(X.b==A.b) { if(A.c<X.c)cout<<"時間輸入錯誤\n"; elsemoney=(A.c-X.c)*6+(A.d-X.d)*0.1; cout<<"車輛"<<A.b<<"存車時間為"<<X.c<<":"<<X.d<<",離開時間為"<<A.c<<":"<<A.d<<","; cout<<"停車費用為"<<money<<"元,祝您一路順風!\n"; while(L->top!=-1) { pop(L,&X); push(S,X); } if(Q->rear->n!=0) { deletQueue(Q,&X); X.c=A.c;X.d=A.d;//將離開車輛的時間賦給從便道進入車場車輛的時間。 if(push(S,X)==1) {cout<<"車輛"<<X.b<<"已由便道開進車場"<<S->top<<"號車位,"; cout<<"存車時間從"<<X.c<<":"<<X.d<<""<<"算起。\n";} } return(1); } else { intl=Q->rear->n;//便道出車會打亂車次,將存有編導車輛數(shù)目信息的Q->rear->n備份。 LinkQueueE;//定義臨時便道幫助遍歷便道上車輛。 initQueue(&E); while(deletQueue(Q,&X)!=0&&X.b!=A.b) {enterQueue(&E,X);} if(X.b!=A.b) printf("輸入錯誤,沒有您的車。\n\n"); if(X.b==A.b) { l--;//有車離開,則l=l-1。 cout<<"車輛"<<X.b<<"已從便道離開,停車費用為0元。\n"; } while(deletQueue(&E,&X)!=0) { enterQueue(Q,X); } Q->rear->n=l;//將l的值及便道車輛數(shù)目信息付給新的Q->rear->n。 }}intmain(){ cout<<"************************歡迎來到停車場***************************\n"; cout<<"停車費用每小時6元\n\n"; CarA; SeqStackS,L; initstack(&S); initstack(&L); LinkQueueQ; initQueue(&Q); while(1) { cout<<"輸入1停車,輸入0離開,輸入-1可獲取當前停車信息:"; cin>>A.a; if(A.a!=1&&A.a!=0&&A.a!=-1) { cout<<"輸入錯誤,請重新輸入。\n"; continue; } if(A.a!=-1) { cout<<"請輸入車牌號:";cin>>A.b

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論