




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Project1火車車廂重排調(diào)度年級(jí):2014級(jí) 學(xué)院:電子與信息工程學(xué)院 班級(jí):智能科學(xué)與技術(shù)、自動(dòng)化姓名:王金頂 14350046 姓名:王帆 14350045 姓名:張宇航 14350069 【題目要求】1.問(wèn)題:一列火車要將n節(jié)車廂分別送往n個(gè)車站,車站按照n,n-1,1的編號(hào)次序經(jīng)過(guò)車站。假設(shè)車廂的編號(hào)就是其目的地車站的編號(hào)。2.要求:給定一個(gè)任意的車廂排列次序。重新排列車廂,使其按照從1到n的次序排列。規(guī)定重排調(diào)度時(shí)車廂只能從入軌到緩沖鐵軌,或者從緩沖鐵軌到出軌。【數(shù)據(jù)結(jié)構(gòu)與算法】本程序?qū)5目臻g設(shè)為25(可以通過(guò)全局常量maxstack直接修改),棧的最大數(shù)量設(shè)為100(可以直接
2、修改)??梢蕴幚砣我馍儆?00個(gè)任意次序車廂的火車重排調(diào)度問(wèn)題。流程圖如圖1:圖1 總流程圖【測(cè)試數(shù)據(jù)、結(jié)果及分析】實(shí)驗(yàn)1:順序輸入車廂節(jié)數(shù):10車廂順序:1 2 3 4 5 6 7 8 9 10測(cè)試結(jié)果如圖2。圖2 實(shí)驗(yàn)1測(cè)試結(jié)果測(cè)試序列重排成功,使用0個(gè)棧,返回值正常,實(shí)驗(yàn)程序運(yùn)行良好。實(shí)驗(yàn)2:倒序輸入車廂節(jié)數(shù):10車廂順序:10 9 8 7 6 5 4 3 2 1測(cè)試結(jié)果如圖3。圖3實(shí)驗(yàn)2測(cè)試結(jié)果測(cè)試序列重排成功,使用1個(gè)棧,實(shí)驗(yàn)程序運(yùn)行良好。實(shí)驗(yàn)3:亂序輸入車廂節(jié)數(shù):10車廂順序:3 2 4 5 7 8 9 6 1 10測(cè)試結(jié)果如圖4。圖4實(shí)驗(yàn)3測(cè)試結(jié)果測(cè)試序列重排成功,使用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測(cè)試結(jié)果如圖5。圖5 實(shí)驗(yàn)4測(cè)試結(jié)果測(cè)試序列重排成功,使用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測(cè)試結(jié)果如
4、下(由于太長(zhǎng)無(wú)法完全截圖,只能粘貼):請(qǐng)輸入火車車廂的個(gè)數(shù):50請(qǐng)輸入火車車廂次序(中間有間隔):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é)果分析:本程序可對(duì)少于100個(gè)任意次序車廂的火車進(jìn)行調(diào)度。進(jìn)行多次亂序重排,實(shí)驗(yàn)程序均成功運(yùn)行,且結(jié)果全部與人
10、工計(jì)算相符合,實(shí)驗(yàn)程序滿足實(shí)驗(yàn)要求?!痉止?、貢獻(xiàn)%、自我評(píng)分】王金頂:算法設(shè)計(jì),主程序,調(diào)試,實(shí)驗(yàn)報(bào)告 34% 100分王帆:算法設(shè)計(jì),棧程序,測(cè)試,實(shí)驗(yàn)報(bào)告 33% 100分張宇航:算法設(shè)計(jì),流程圖設(shè)計(jì),實(shí)驗(yàn)報(bào)告 33% 100分【項(xiàng)目總結(jié)】本次題目較為簡(jiǎn)單,考察了我們對(duì)棧的學(xué)習(xí)與理解情況,同時(shí)也讓我們復(fù)習(xí)了類的相關(guān)知識(shí)。大家都為終于能夠解決實(shí)際問(wèn)題而感到開心。在算法設(shè)計(jì)中也遇到了很多問(wèn)題,如我們發(fā)現(xiàn)標(biāo)準(zhǔn)庫(kù)中的棧占用內(nèi)存過(guò)大,因此導(dǎo)致程序在處理車廂數(shù)很大時(shí)經(jīng)常崩潰。因此我們自己寫了一個(gè)簡(jiǎn)單的棧,節(jié)省了大量?jī)?nèi)存,因此能夠處理更加復(fù)雜的問(wèn)題。我們也增加了好幾處錯(cuò)誤處理代碼,增加了程序的容錯(cuò)性。如
11、棧滿、棧空現(xiàn)象等。但是該程序在處理不連續(xù)序列時(shí)會(huì)出現(xiàn)問(wèn)題,這也是我們一直在改進(jìn)的地方,但是輸出一直不穩(wěn)定,有時(shí)正確有時(shí)錯(cuò)誤,因此在程序清單中刪除了這一部分??傮w而言,本次的實(shí)驗(yàn)讓我們對(duì)自己有了更大的信心?!境绦蚯鍐巍?.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<<"請(qǐng)輸入火車車廂的個(gè)數(shù):" <<endl; /輸入數(shù)據(jù)并儲(chǔ)存cin>>n;int arrayn;cout<<"請(qǐng)輸入火車車廂次序(中間有間隔):"<<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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年網(wǎng)絡(luò)管理員考試的復(fù)習(xí)大綱探討試題及答案
- 主管工作總結(jié)的結(jié)果評(píng)估計(jì)劃
- 法學(xué)概論中常見法律術(shù)語(yǔ)解讀試題及答案
- 財(cái)務(wù)課程學(xué)習(xí)的重要性計(jì)劃
- 自信面對(duì)2025年法學(xué)概論考試試題及答案
- 2024年南昌航空大學(xué)輔導(dǎo)員考試真題
- 2024年烏什縣人民醫(yī)院招聘筆試真題
- 法學(xué)教育的現(xiàn)狀與未來(lái)試題及答案
- 2024年湖北省生態(tài)環(huán)境廳下屬事業(yè)單位真題
- 法學(xué)概論法律教育政策的研究進(jìn)展試題及答案
- 委托尋找房源協(xié)議書
- 景觀畢業(yè)設(shè)計(jì)
- 法洛四聯(lián)癥的護(hù)理課件
- 2025年佛山市三水海江建設(shè)投資有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 鹵味學(xué)員合同協(xié)議書
- 建設(shè)項(xiàng)目全過(guò)程工程咨詢-第一次形成性考核-國(guó)開(SC)-參考資料
- 2024建安杯信息通信建設(shè)行業(yè)安全競(jìng)賽題庫(kù)(試題含答案)
- (正式版)JBT 14581-2024 閥門用彈簧蓄能密封圈
- 一切才剛剛開始——校長(zhǎng)在高考20天沖刺動(dòng)員大會(huì)上的講話
- 波浪理論基礎(chǔ)要點(diǎn)圖解[精]
- 關(guān)于磷化行業(yè)企業(yè)建設(shè)項(xiàng)目及污染排放有關(guān)問(wèn)題法律適用的復(fù)函
評(píng)論
0/150
提交評(píng)論