車廂排程問題 課程設計報告

2022-03-13 06:22:27 字數 2223 閱讀 2020

山東交通學院

資料結構課程設計

車廂排程問題

院(系)別資訊工程系

班級計算133

學號 130811341

姓名閆琛

指導教師王成

時間 2015-03-09—2015-03-20

課程設計任務書

題目車廂排程問題

系 (部資訊科學與電氣工程學院

專業電腦科學與技術

班級計算133

學生姓名閆琛

學號130811341

3 月 9 日至 3 月 20 日共 2 周

指導教師(簽字

系主任(簽字

年月日成績評定表

目錄1 課程設計概述 1

1.1 車廂排程問題功能概述1

2 車廂排程問題總體設計1

2.1 全域性變數定義1

2.2 棧的定義2

3.演算法設計2

3.1用到的進出棧演算法基礎知識2

3.2程式分析2

3.2.2 核心演算法4

3.2.3 主程式描述5

4.程式實現5

4.1執行介面5

4.2不足之處7

5.設計體會7

6.結束語8

車廂排程問題

摘要:通過輸入車廂系列的編號n,求出所有可能由此輸出的長度為n的車廂系列,用入棧出棧的方法,實現車廂排程,並演示每一種出棧序列的過程。任務:

假設停在鐵路排程站入口處的車廂系列的編號依次為1,2,3,…n。設計乙個程式,求出所有可能由此輸出的長度為n 的車廂系列。

關鍵字:車廂,排程,棧,遞迴

1. 引言

隨著人民生活水平的提高,越來越多的人坐火車出去旅遊,這也讓火車車廂的量大量增大,也隨之出現了乙個問題,即合理的排程車廂,本課程設計即利用資料結構裡的棧的知識,設計乙個合理的演算法,來解決此問題。

2. 需求分析

假設停在鐵路排程站入口處的車廂序列的編號依次為1,2,3,……,n , 設計乙個程式,求出所有可能的長度為n 的車廂序列。

實現棧的順序儲存結構sqstack之上實現棧的基本操作,即實現棧型別。程式對棧的基本操作必須借助於基本操作進行。

測試資料取 n=3,4, 程式輸出的結果應該在螢幕上顯示出來。

3. 資料結構設計

2.1全域性變數定義

typedefintselemtype;

typedefintstatus;

intend;/*最後乙個車廂的號碼*/

longtotal=0;/*總的組合方案數目*/

2.2棧的定義

typedefstructstacklist

voidstack_init(sqstack*s)

voidstack_push(sqstack*s,selemtypee)

selemtypestack_pop(sqstack*s)

statusstack_empty(sqstack*s)

statusstack_full(sqstack*s)

voidstack_printreverse(sqstacks)

3.演算法設計

3.1用到的進出棧演算法基礎知識

(1)根據要求,了解可能要用到的演算法:

3.1.1進棧(push)演算法

①若top≥n時,則給出溢位資訊,作出錯處理(進棧前首先檢查棧是否已滿,滿則溢位;不滿則作②);

②置top=top+1(棧指標加1,指向進棧位址);

③s(top)=x,結束(x為新進棧的元素);

3.1.2退棧(pop)演算法

①若top≤0,則給出下溢資訊,作出錯處理(退棧前先檢查是否已為空棧, 空則下溢;不空則作②);

②x=s(sop),(退棧後的元素賦給x);

③top=top-1,結束(棧指標減1,指向棧頂)。

3.2程式分析

3.2.1.棧的資料結構

typedefstructstacklist

sqstack;

voidstack_init(sqstack*s)

voidstack_push(sqstack*s,selemtypee)

selemtypestack_pop(sqstack*s)

statusstack_empty(sqstack*s)

statusstack_full(sqstack*s)

voidstack_printreverse(sqstacks)

八皇后問題課程設計報告

課程設計題目 名稱 八皇后問題 內容 設計程式完成如下要求 在8 8的西洋棋棋盤上,放置8個皇后,使得這8個棋子不能互相被對方吃掉。要求 1 依次輸出各種成功的放置方法。2 最好能畫出棋盤的圖形形式,並在其上動態地標註行走的過程。3 程式能方便地移植到其他規格的棋盤上。一 問題分析和任務定義 八皇后...

球閥課程設計報告 ProE課程設計

一.課題名稱 球閥班級 12機自a1 小組成員 李軍帥 組長 李軍帥 二.球閥的功能和工作原理描述 1.球閥的工作原理 球閥的主要驅動原件是裝配於閥杆上端的扳手,球閥的啟閉元件是位於閥桿下端的球體。球閥的主要工作原理是 當給扳手施加某一轉矩,扳手驅動閥桿旋轉,閥桿將扳手的轉矩傳遞給位於閥桿下端的球體...

課程設計報告

數位電路課程設計報告 題目姓名 班級學號 同組人報告得分 南京航空航天大學金城學院 目錄一 課設內容及要求 1 設計任務 2 設計指標 二 設計方案 1 總體設計方案說明 2 模組結構與方框圖 三 電路設計與器件選擇 1 功能模組一 實際名 1 模組電路及引數計算 2 工作原理和功能說明 3 器件說...