




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Project1火車車廂重排調(diào)度年級:2014級 學(xué)院:電子與信息工程學(xué)院 班級:智能科學(xué)與技術(shù)、自動(dòng)化姓名:王金頂 14350046 姓名:王帆 14350045 姓名:張宇航 14350069 【題目要求】1.問題:一列火車要將n節(jié)車廂分別送往n個(gè)車站,車站按照n,n-1,1的編號次序經(jīng)過車站。假設(shè)車廂的編號就是其目的地車站的編號。2.要求:給定一個(gè)任意的車廂排列次序。重新排列車廂,使其按照從1到n的次序排列。規(guī)定重排調(diào)度時(shí)車廂只能從入軌到緩沖鐵軌,或者從緩沖鐵軌到出軌?!緮?shù)據(jù)結(jié)構(gòu)與算法】本程序?qū)5目臻g設(shè)為25(可以通過全局常量maxstack直接修改),棧的最大數(shù)量設(shè)為100(可以直接
2、修改)??梢蕴幚砣我馍儆?00個(gè)任意次序車廂的火車重排調(diào)度問題。流程圖如圖1:圖1 總流程圖【測試數(shù)據(jù)、結(jié)果及分析】實(shí)驗(yàn)1:順序輸入車廂節(jié)數(shù):10車廂順序:1 2 3 4 5 6 7 8 9 10測試結(jié)果如圖2。圖2 實(shí)驗(yàn)1測試結(jié)果測試序列重排成功,使用0個(gè)棧,返回值正常,實(shí)驗(yàn)程序運(yùn)行良好。實(shí)驗(yàn)2:倒序輸入車廂節(jié)數(shù):10車廂順序:10 9 8 7 6 5 4 3 2 1測試結(jié)果如圖3。圖3實(shí)驗(yàn)2測試結(jié)果測試序列重排成功,使用1個(gè)棧,實(shí)驗(yàn)程序運(yùn)行良好。實(shí)驗(yàn)3:亂序輸入車廂節(jié)數(shù):10車廂順序:3 2 4 5 7 8 9 6 1 10測試結(jié)果如圖4。圖4實(shí)驗(yàn)3測試結(jié)果測試序列重排成功,使用7個(gè)棧,實(shí)
3、驗(yàn)程序運(yùn)行良好。實(shí)驗(yàn)4:亂序輸入車廂節(jié)數(shù):25車廂順序:25 2 6 4 5 3 7 23 9 19 11 12 16 14 15 13 17 18 10 22 21 20 8 24 1測試結(jié)果如圖5。圖5 實(shí)驗(yàn)4測試結(jié)果測試序列重排成功,使用13個(gè)棧,實(shí)驗(yàn)程序運(yùn)行良好。實(shí)驗(yàn)五:亂序輸入車廂節(jié)數(shù):50車廂順序:46 47 50 38 32 29 21 39 1 37 12 22 2 30 11 31 41 3 20 36 19 23 5 14 44 4 45 1335 8 24 40 7 28 43 16 27 34 6 42 15 26 10 17 9 33 18 25 49 48測試結(jié)果如
4、下(由于太長無法完全截圖,只能粘貼):請輸入火車車廂的個(gè)數(shù):50請輸入火車車廂次序(中間有間隔):46 47 50 38 32 29 21 39 1 37 12 22 2 30 11 31 41 3 20 36 19 23 5 14 44 4 45 1335 8 24 40 7 28 43 16 27 34 6 42 15 26 10 17 9 33 18 25 49 48將第46車廂移動(dòng)到緩沖軌道1將第47車廂移動(dòng)到緩沖軌道2將第50車廂移動(dòng)到緩沖軌道3將第38車廂移動(dòng)到緩沖軌道1將第32車廂移動(dòng)到緩沖軌道1將第29車廂移動(dòng)到緩沖軌道1將第21車廂移動(dòng)到緩沖軌道1將第39車廂移動(dòng)到緩沖軌道2
5、將第1車廂從入站軌道移動(dòng)到出站軌道將第37車廂移動(dòng)到緩沖軌道2將第12車廂移動(dòng)到緩沖軌道1將第22車廂移動(dòng)到緩沖軌道2將第2車廂從入站軌道移動(dòng)到出站軌道將第30車廂移動(dòng)到緩沖軌道3將第11車廂移動(dòng)到緩沖軌道1將第31車廂移動(dòng)到緩沖軌道4將第41車廂移動(dòng)到緩沖軌道5將第3車廂從入站軌道移動(dòng)到出站軌道將第20車廂移動(dòng)到緩沖軌道2將第36車廂移動(dòng)到緩沖軌道5將第19車廂移動(dòng)到緩沖軌道2將第23車廂移動(dòng)到緩沖軌道3將第5車廂移動(dòng)到緩沖軌道1將第14車廂移動(dòng)到緩沖軌道2將第44車廂移動(dòng)到緩沖軌道6將第4車廂從入站軌道移動(dòng)到出站軌道將第45車廂移動(dòng)到緩沖軌道7將第5車廂從緩沖軌道1移動(dòng)到出站軌道將第13車
6、廂移動(dòng)到緩沖軌道2將第35車廂移動(dòng)到緩沖軌道5將第8車廂移動(dòng)到緩沖軌道1將第24車廂移動(dòng)到緩沖軌道4將第40車廂移動(dòng)到緩沖軌道6將第7車廂移動(dòng)到緩沖軌道1將第28車廂移動(dòng)到緩沖軌道5將第43車廂移動(dòng)到緩沖軌道7將第16車廂移動(dòng)到緩沖軌道3將第27車廂移動(dòng)到緩沖軌道5將第34車廂移動(dòng)到緩沖軌道6將第6車廂從入站軌道移動(dòng)到出站軌道將第42車廂移動(dòng)到緩沖軌道7將第7車廂從緩沖軌道1移動(dòng)到出站軌道將第15車廂移動(dòng)到緩沖軌道3將第8車廂從緩沖軌道1移動(dòng)到出站軌道將第26車廂移動(dòng)到緩沖軌道5將第10車廂移動(dòng)到緩沖軌道1將第17車廂移動(dòng)到緩沖軌道4將第9車廂從入站軌道移動(dòng)到出站軌道將第33車廂移動(dòng)到緩沖軌道
7、6將第10車廂從緩沖軌道1移動(dòng)到出站軌道將第18車廂移動(dòng)到緩沖軌道5將第11車廂從緩沖軌道1移動(dòng)到出站軌道將第25車廂移動(dòng)到緩沖軌道6將第12車廂從緩沖軌道1移動(dòng)到出站軌道將第49車廂移動(dòng)到緩沖軌道8將第13車廂從緩沖軌道2移動(dòng)到出站軌道將第48車廂移動(dòng)到緩沖軌道8將第14車廂從緩沖軌道2移動(dòng)到出站軌道將第15車廂從緩沖軌道3移動(dòng)到出站軌道將第16車廂從緩沖軌道3移動(dòng)到出站軌道將第17車廂從緩沖軌道4移動(dòng)到出站軌道將第18車廂從緩沖軌道5移動(dòng)到出站軌道將第19車廂從緩沖軌道2移動(dòng)到出站軌道將第20車廂從緩沖軌道2移動(dòng)到出站軌道將第21車廂從緩沖軌道1移動(dòng)到出站軌道將第22車廂從緩沖軌道2移動(dòng)到
8、出站軌道將第23車廂從緩沖軌道3移動(dòng)到出站軌道將第24車廂從緩沖軌道4移動(dòng)到出站軌道將第25車廂從緩沖軌道6移動(dòng)到出站軌道將第26車廂從緩沖軌道5移動(dòng)到出站軌道將第27車廂從緩沖軌道5移動(dòng)到出站軌道將第28車廂從緩沖軌道5移動(dòng)到出站軌道將第29車廂從緩沖軌道1移動(dòng)到出站軌道將第30車廂從緩沖軌道3移動(dòng)到出站軌道將第31車廂從緩沖軌道4移動(dòng)到出站軌道將第32車廂從緩沖軌道1移動(dòng)到出站軌道將第33車廂從緩沖軌道6移動(dòng)到出站軌道將第34車廂從緩沖軌道6移動(dòng)到出站軌道將第35車廂從緩沖軌道5移動(dòng)到出站軌道將第36車廂從緩沖軌道5移動(dòng)到出站軌道將第37車廂從緩沖軌道2移動(dòng)到出站軌道將第38車廂從緩沖軌道
9、1移動(dòng)到出站軌道將第39車廂從緩沖軌道2移動(dòng)到出站軌道將第40車廂從緩沖軌道6移動(dòng)到出站軌道將第41車廂從緩沖軌道5移動(dòng)到出站軌道將第42車廂從緩沖軌道7移動(dòng)到出站軌道將第43車廂從緩沖軌道7移動(dòng)到出站軌道將第44車廂從緩沖軌道6移動(dòng)到出站軌道將第45車廂從緩沖軌道7移動(dòng)到出站軌道將第46車廂從緩沖軌道1移動(dòng)到出站軌道將第47車廂從緩沖軌道2移動(dòng)到出站軌道將第48車廂從緩沖軌道8移動(dòng)到出站軌道將第49車廂從緩沖軌道8移動(dòng)到出站軌道將第50車廂從緩沖軌道3移動(dòng)到出站軌道共用8個(gè)緩沖軌道結(jié)果分析:本程序可對少于100個(gè)任意次序車廂的火車進(jìn)行調(diào)度。進(jìn)行多次亂序重排,實(shí)驗(yàn)程序均成功運(yùn)行,且結(jié)果全部與人
10、工計(jì)算相符合,實(shí)驗(yàn)程序滿足實(shí)驗(yàn)要求?!痉止?、貢獻(xiàn)%、自我評分】王金頂:算法設(shè)計(jì),主程序,調(diào)試,實(shí)驗(yàn)報(bào)告 34% 100分王帆:算法設(shè)計(jì),棧程序,測試,實(shí)驗(yàn)報(bào)告 33% 100分張宇航:算法設(shè)計(jì),流程圖設(shè)計(jì),實(shí)驗(yàn)報(bào)告 33% 100分【項(xiàng)目總結(jié)】本次題目較為簡單,考察了我們對棧的學(xué)習(xí)與理解情況,同時(shí)也讓我們復(fù)習(xí)了類的相關(guān)知識。大家都為終于能夠解決實(shí)際問題而感到開心。在算法設(shè)計(jì)中也遇到了很多問題,如我們發(fā)現(xiàn)標(biāo)準(zhǔn)庫中的棧占用內(nèi)存過大,因此導(dǎo)致程序在處理車廂數(shù)很大時(shí)經(jīng)常崩潰。因此我們自己寫了一個(gè)簡單的棧,節(jié)省了大量內(nèi)存,因此能夠處理更加復(fù)雜的問題。我們也增加了好幾處錯(cuò)誤處理代碼,增加了程序的容錯(cuò)性。如
11、棧滿、棧空現(xiàn)象等。但是該程序在處理不連續(xù)序列時(shí)會(huì)出現(xiàn)問題,這也是我們一直在改進(jìn)的地方,但是輸出一直不穩(wěn)定,有時(shí)正確有時(shí)錯(cuò)誤,因此在程序清單中刪除了這一部分??傮w而言,本次的實(shí)驗(yàn)讓我們對自己有了更大的信心?!境绦蚯鍐巍?.stack.h/*文件名:stack.h作用:棧的類定義*/#ifndef STACK_H#define STACK_Hconst int maxstack=25;class Stackpublic:Stack();bool empty() const;bool full() const;int top() const;void push(int item);void pop(
12、);private:int count;int entrymaxstack;#endif2.stack.cpp/*文件名:stack.cpp作用:棧的類成員函數(shù)的實(shí)現(xiàn) */#include<iostream>#include"stack.h"using namespace std;void Stack:push(int item)if (count<maxstack)entrycount+=item;void Stack:pop()if (count>0)-count;int Stack:top() constif (count>0)retur
13、n entrycount-1;else return 0;bool Stack:empty() constif(count>0) return false;return true;bool Stack:full() constif(count=maxstack) return true;return false;Stack:Stack()count=0;3.train.cpp/*文件名:train.cpp作用:主程序*/#include<iostream>#include"stack.h"using namespace std;int main()int
14、n, now_out=1;int stack_count=0;cout<<"請輸入火車車廂的個(gè)數(shù):" <<endl; /輸入數(shù)據(jù)并儲(chǔ)存cin>>n;int arrayn;cout<<"請輸入火車車廂次序(中間有間隔):"<<endl;for (int i=0; i<n; i+)cin>>arrayi;/輸入部分Stack stack_array100;for (int i=0; i<n; i+)if (arrayi=now_out) /判斷當(dāng)前車廂數(shù)是否恰好滿足輸出條件c
15、out<<"將第"<<now_out<<"車廂從入站軌道移動(dòng)到出站軌道"<<endl; /如果滿足直接輸出now_out+;continue;else /不滿足則將數(shù)壓入合適的棧 for (int j=0; j<stack_count+1; j+)if (stack_arrayj.empty() cout<<"將第"<<arrayi<<"車廂移動(dòng)到緩沖軌道"<<j+1<<endl; stack_arra
16、yj.push(arrayi); if (j=stack_count) stack_count+; break; else if (stack_arrayj.full() /棧滿時(shí)另找新棧 continue; else if(arrayi<stack_arrayj.top() cout<<"將第"<<arrayi<<"車廂移動(dòng)到緩沖軌道"<<j+1<<endl; stack_arrayj.push(arrayi); break; else ;for (int s=0; s<stack
17、_count; s+)/遍歷各個(gè)棧頂是否有滿足輸出條件的數(shù) if (stack_arrays.top()=now_out)cout<<"將第"<<now_out<<"車廂從緩沖軌道"<<s+1<<"移動(dòng)到出站軌道"<<endl;stack_arrays.pop();now_out+;break;for (int m=now_out; now_out<=n; m+)for (int s=0; s<stack_count; s+)/遍歷各個(gè)棧頂是否有滿足輸出條件的數(shù) if (stack_arr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)隱私保護(hù)與網(wǎng)絡(luò)設(shè)計(jì)的結(jié)合試題及答案
- 藥劑學(xué)基礎(chǔ)知識試題及答案
- 葡萄糖作用2025年臨床執(zhí)業(yè)醫(yī)師考試試題及答案
- 自主復(fù)習(xí)2025年初級會(huì)計(jì)師試題及答案
- 高三政治《國家與國際組織常識》專題練習(xí)西方政治體制的模式
- 電氣銷售面試題及答案
- 瞄準(zhǔn)目標(biāo)衛(wèi)生管理證書考試試題及答案
- 縉云招聘面試題及答案
- 系統(tǒng)規(guī)劃與管理師考試準(zhǔn)備規(guī)劃試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)中的綠色計(jì)算理念試題及答案
- 全國統(tǒng)一卷試題及答案
- 銀行防搶防暴課件
- 水電工程驗(yàn)收單
- 蘭州2025年中國農(nóng)業(yè)科學(xué)院蘭州畜牧與獸藥研究所招聘16人筆試歷年參考題庫附帶答案詳解
- 2025年第三屆天揚(yáng)杯建筑業(yè)財(cái)稅知識競賽題庫附答案(701-800題)
- 《哈哈鏡笑哈哈》名師課件2022
- 傳統(tǒng)皮影戲在小學(xué)藝術(shù)教育的應(yīng)用與創(chuàng)新實(shí)踐
- 2025年國家會(huì)展中心上海有限責(zé)任公司招聘筆試參考題庫含答案解析
- 《大數(shù)據(jù)時(shí)代對會(huì)計(jì)行業(yè)產(chǎn)生的影響探究》10000字【論文】
- 保險(xiǎn)精算師述職報(bào)告
- 2022浪潮英政服務(wù)器CS5260H2用戶手冊
評論
0/150
提交評論