車廂調(diào)度問題課程設(shè)計_第1頁
車廂調(diào)度問題課程設(shè)計_第2頁
車廂調(diào)度問題課程設(shè)計_第3頁
車廂調(diào)度問題課程設(shè)計_第4頁
車廂調(diào)度問題課程設(shè)計_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄目 錄- 1 -正 文1一、題目分析1二、概要設(shè)計1三、詳細(xì)設(shè)計3四、運(yùn)行結(jié)果8五、課程設(shè)計體會9六、參考文獻(xiàn)9正 文一、題目分析課程設(shè)計題目車廂調(diào)度:假設(shè)停在鐵路調(diào)度站的車廂序列的編號依次為1,2.,3,.n。 設(shè)計一個程序,求出所有可能輸出的長度為n的車廂序列?;疽笫紫仍诮炭茣?.1.2節(jié)中提供的棧的順序結(jié)構(gòu)SqStack之上實現(xiàn)棧的基本操作,即實現(xiàn)棧類型。程序?qū)5娜魏未嫒。锤模x取和狀態(tài)判別等操作)必須借助于基本操作進(jìn)行。二、概要設(shè)計1設(shè)定棧的抽象數(shù)據(jù)類型定義:ADT Stack 數(shù)據(jù)對象:D=CharSet,i=1,2,.,n,n0數(shù)據(jù)關(guān)系:R1=D,i=2,.,n基本

2、操作:InitStack(&S)操作結(jié)果:構(gòu)造一個空棧S。DestroyStack(&S)初始條件:棧S已存在。操作結(jié)果:銷毀棧S。ClearStack(&S)初始條件:棧S已存在。操作結(jié)果:將棧S清為空棧。StackLength(S)初始條件:棧S已存在。操作結(jié)果:返回棧S的長度。StackEmpty(S)初始條件:棧S已存在。操作結(jié)果:若S為空棧,則返回TURE,否則返回FALSE。GetTop(S,&e)初始條件:棧S已存在。操作結(jié)果:若S不空,則e返回棧頂元素。Push(&S,&e)初始條件:棧S已存在。操作結(jié)果:在s的棧頂插入新的棧頂元素e。Pop(&S,&e)初始條件:棧S已存在。

3、操作結(jié)果:刪除S的棧頂元素,并以e返回其值。StackTraverse(S,visit()初始條件:棧S已存在。操作結(jié)果:從棧底到棧頂依次對S中的每個元素調(diào)用函數(shù)visit()。ADT Stack2.本程序包含兩個模塊1)主程序模塊:Void main()初始化;For循環(huán)2)棧模塊實現(xiàn)棧的抽象數(shù)據(jù)類型各模塊之間的調(diào)用關(guān)系如下:主程序模塊棧模塊三、詳細(xì)設(shè)計1)棧類型;typedef struct stacklistSElemType *base;SElemType *top;int stacksize;SqStack;棧的基本操作設(shè)置如下:void Stack_init(SqStack *s)

4、/初始化,設(shè)s為空棧void Stack_Push(SqStack *s,SElemType e)/若分配空間成功,則在s的棧頂插入新的元素e,并返回TRUE/若棧不變,并返回FALSESElemType Stack_Pop(SqStack *s)Status Stack_Empty(SqStack *s)Status Stack_Full(SqStack *s)void Stack_printreverse(SqStack s)void search(SqStack *inputPoint,SqStack *tempPoint,SqStack *outputPoint)2)代碼#includ

5、e using namespace std;typedef int SElemType;typedef int Status;int end;/*最后一個車廂的號碼*/long total=0;/*總的組合方案數(shù)目*/typedef struct stacklistSElemType *base;SElemType *top;int stacksize;SqStack;void Stack_init(SqStack *s)s-base=(SElemType *)malloc(end*sizeof(int);if(!s-base) exit(0);s-top=s-base;s-stacksize

6、=end;void Stack_Push(SqStack *s,SElemType e)*(s-top)+=e;SElemType Stack_Pop(SqStack *s)if(s-top=s-base)return 0;return *(-(s-top);Status Stack_Empty(SqStack *s)if(s-top=s-base)return 1;return 0;Status Stack_Full(SqStack *s)if(s-top-s-base=end)return 1;return 0;void Stack_printreverse(SqStack s)int *

7、po;po=s.base;printf(t%ld: ,total);for(;po!=s.top;) printf(%d ,*po+);printf(n);void search(SqStack *inputPoint,SqStack *tempPoint,SqStack *outputPoint)if(!Stack_Empty(inputPoint)Stack_Push(tempPoint,Stack_Pop(inputPoint);search(inputPoint,tempPoint,outputPoint);Stack_Push(inputPoint,Stack_Pop(tempPoi

8、nt);if(!Stack_Empty(tempPoint)Stack_Push(outputPoint,Stack_Pop(tempPoint);search(inputPoint,tempPoint,outputPoint);Stack_Push(tempPoint,Stack_Pop(outputPoint);if(Stack_Full(outputPoint)total+;Stack_printreverse(*outputPoint);主函數(shù):void main()SqStack input,temp,output;int i;printf(nntttt車廂調(diào)度n);printf(n

9、t請輸入車廂長度: );scanf(%d,&end);/*初始化三個棧*/Stack_init(&input);Stack_init(&temp);Stack_init(&output);/*將車廂號碼進(jìn)棧*/for(i=end;i=1;i-)Stack_Push(&input,i);search(&input,&temp,&output);3)主函數(shù)流程圖開始提示輸入輸出初始化表達(dá)式2表達(dá)式3函數(shù)調(diào)用結(jié)束表達(dá)式1 1.棧的數(shù)據(jù)定義,輸出操作信息民,并輸入數(shù)據(jù) 2. 初始化三個棧input,temp,output3.for循環(huán)控制輸出語句,車廂號依次進(jìn)棧判斷循環(huán)結(jié)束條件 4. 調(diào)用函數(shù)Stac

10、k_Push(&input,i); search(&input,&temp,&output);輸出所有情況四、運(yùn)行結(jié)果輸入3,結(jié)果如下:輸入4,結(jié)果如下:五、課程設(shè)計體會 通過對本學(xué)期的數(shù)據(jù)結(jié)構(gòu)和課程的學(xué)習(xí),我完成了本次的課程設(shè)計報告,其中得到了很多的體會,也了解到很多的知識點。我明白了課程設(shè)計是大學(xué)教育中一個重要的實踐教學(xué)環(huán)節(jié)。在課程設(shè)計過程中,我根據(jù)具體設(shè)計題目,運(yùn)用自己所學(xué)的知識,獨立地進(jìn)行設(shè)計和實驗。除了鞏固、加深和融合自己所學(xué)的數(shù)據(jù)結(jié)構(gòu)專業(yè)課程知識外,更重要的是培養(yǎng)了我多方面的能力,如獨立思考能力、綜合設(shè)計能力、實踐動手能力、開拓創(chuàng)新能力、自學(xué)能力、文獻(xiàn)檢索能力等等。通過這次的課程設(shè)計,我也了解到自己所學(xué)的一些不足之處,以及一些

溫馨提示

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

最新文檔

評論

0/150

提交評論