版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 第一章 課程設(shè)計(jì)目的和要求1</p><p> 1.1 課程設(shè)計(jì)目的1</p><p> 1.2 課程設(shè)計(jì)要求1</p><p> 第二章 課程設(shè)計(jì)任務(wù)內(nèi)容3</p><p> 2.1課程設(shè)計(jì)任務(wù)3</p&g
2、t;<p> 2.2 課程設(shè)計(jì)原理3</p><p> 2.3 課程設(shè)計(jì)內(nèi)容4</p><p> 第三章 詳細(xì)設(shè)計(jì)說(shuō)明5</p><p> 3.1 模塊描述5</p><p> 3.2 性能描述5</p><p><b> 3.3 輸入項(xiàng)6</b></p
3、><p><b> 3.4 輸出項(xiàng)6</b></p><p> 3.5 數(shù)據(jù)結(jié)構(gòu)7</p><p> 3.6 算法介紹7</p><p><b> 3.7 流程圖8</b></p><p> 3.7.1 主程序流程圖8</p><p>
4、 3.7.2 算法流程圖9</p><p> 3.8 接口描述11</p><p> 3.9 限制條件13</p><p> 第四章 件使用說(shuō)明13</p><p> 4.1 系統(tǒng)開發(fā)與運(yùn)行環(huán)境13</p><p> 4.2系統(tǒng)的運(yùn)行說(shuō)明13</p><p> 4.3
5、運(yùn)行結(jié)果13</p><p> 第五章 課程設(shè)計(jì)心得體會(huì)19</p><p> 附錄1:參考文獻(xiàn)20</p><p> 附錄2:程序清單21</p><p><b> 交通信號(hào)燈模擬</b></p><p> 第一章 課程設(shè)計(jì)目的和要求</p><p>
6、 1.1 課程設(shè)計(jì)目的</p><p> 根據(jù)學(xué)院課程安排,在大三的第一個(gè)學(xué)期我們開設(shè)了操作系統(tǒng)這門課程,操作系統(tǒng)可以說(shuō)是是計(jì)算機(jī)系統(tǒng)的核心和靈魂,是計(jì)算機(jī)系統(tǒng)必不可少的組成部分。通過(guò)學(xué)習(xí),對(duì)于操作系統(tǒng)的運(yùn)行方式以及設(shè)計(jì)理念有了較清楚的認(rèn)識(shí)。</p><p> 要想真正學(xué)好并理解操作系統(tǒng)這門課程,不但需要理解操作系統(tǒng)的概念和原理,還需要加強(qiáng)操作系統(tǒng)實(shí)驗(yàn),上機(jī)進(jìn)行編程實(shí)踐,現(xiàn)在一學(xué)期的課
7、程已經(jīng)結(jié)束,本次課程設(shè)計(jì)在同學(xué)們掌握理解該課程的基礎(chǔ)上,對(duì)操作系統(tǒng)內(nèi)部的一些具體項(xiàng)目的實(shí)現(xiàn)方法進(jìn)行實(shí)戰(zhàn)演練,通過(guò)實(shí)踐將知識(shí)徹底掌握。</p><p> 操作系統(tǒng)課程設(shè)計(jì)是該課程重要的實(shí)踐教學(xué)環(huán)節(jié)。通過(guò)這次課程設(shè)計(jì),一方面可以使學(xué)生更透徹地理解操作系統(tǒng)的基本概念和原理,擺脫抽象的理解,從實(shí)踐中將理論具體化;另一方面,通過(guò)課程設(shè)計(jì)還可以加強(qiáng)學(xué)生的實(shí)踐能力,培養(yǎng)學(xué)生獨(dú)立分析問(wèn)題、解決問(wèn)題、應(yīng)用知識(shí)的能力和創(chuàng)新精神。&
8、lt;/p><p> 本次課程設(shè)計(jì)的題目為交通信號(hào)燈模擬,在熟練掌握課本所講解的計(jì)算機(jī)的P操作和V操作的原理的基礎(chǔ)上,利用C++程序設(shè)計(jì)語(yǔ)言在windows操作系統(tǒng)下模擬實(shí)現(xiàn)交通信號(hào)燈的模擬,一方面加深對(duì)原理的理解,另一方面提高根據(jù)已有原理通過(guò)編程解決實(shí)際問(wèn)題的能力,為進(jìn)行系統(tǒng)軟件開發(fā)和針對(duì)實(shí)際問(wèn)題提出高效的軟件解決方案打下基礎(chǔ)。</p><p> 1.2 課程設(shè)計(jì)要求</p>
9、<p> 在深入理解操作系統(tǒng)基本原理和充分理解課題的基礎(chǔ)上,對(duì)于選定的題目,獨(dú)立自主思考,通過(guò)查閱相關(guān)資料,先確定設(shè)計(jì)方案,設(shè)計(jì)程序的運(yùn)行流程,分析程序所需的模塊及各個(gè)模塊所包含的功能,之后設(shè)計(jì)每個(gè)模塊的處理流程,并畫出相應(yīng)的流程圖,要求設(shè)計(jì)合理,利用VC++6.0編程實(shí)現(xiàn),并且程序要擁有可視化的運(yùn)行界面,界面應(yīng)清楚地反映出系統(tǒng)的運(yùn)行結(jié)果,之后個(gè)人確定好測(cè)試方案,選擇測(cè)試用例,對(duì)系統(tǒng)進(jìn)程測(cè)試,運(yùn)行程序并截圖,截圖要能充分
10、說(shuō)明結(jié)果,說(shuō)明系統(tǒng)的使用方法和特點(diǎn),并提交課程設(shè)計(jì)報(bào)告。</p><p> 對(duì)于模擬交通信號(hào)燈的情況,要求在掌握P、V操作的基礎(chǔ)上,能夠進(jìn)行合理的調(diào)度,并利用各種算法來(lái)實(shí)現(xiàn)車輛通行、控制、記錄等功能。</p><p> 第二章 課程設(shè)計(jì)任務(wù)內(nèi)容</p><p><b> 2.1課程設(shè)計(jì)任務(wù)</b></p><p>
11、 一個(gè)十字路口,共有四組紅綠燈,每個(gè)路口的車輛都遵循"紅燈停,綠燈行"的原則,假設(shè)將每一臺(tái)汽車都作為一個(gè)進(jìn)程,請(qǐng)?jiān)O(shè)計(jì)良好的機(jī)制,展示出合理的"十字路口交通管理"情況.</p><p> 車輛通行設(shè)定:路口寬度不限,對(duì)一個(gè)路口而言,只有當(dāng)一輛車通過(guò)路口(越過(guò)對(duì)面路口的交通燈后)后,其后續(xù)車輛才能繼續(xù)通過(guò)交通燈,車輛通過(guò)路口的時(shí)間可以固定,可以自行計(jì)算。</p>
12、<p> 進(jìn)程的互斥:交通燈進(jìn)程實(shí)際上是互斥的,即不能同時(shí)為紅或者同時(shí)為綠.</p><p> 進(jìn)程的消息通信或其他通信方式:對(duì)車輛進(jìn)程而言,每一個(gè)車輛在通過(guò)路口前,必須確認(rèn)前面的車輛已經(jīng)通過(guò)了路口.</p><p> 進(jìn)程的調(diào)度:停留在一個(gè)路口的車輛,決定其前進(jìn)或等候的因素是交通燈和前面車輛的狀態(tài),需要設(shè)計(jì)一個(gè)良好的進(jìn)程調(diào)度機(jī)制來(lái)控制所有車輛的通行。</p>
13、;<p> 2.2 課程設(shè)計(jì)原理</p><p> 本實(shí)驗(yàn)利用P、V操作進(jìn)行設(shè)計(jì)。</p><p> 信號(hào)量S是一個(gè)整數(shù),S大于等于零時(shí)代表可供并發(fā)進(jìn)程使用的資源實(shí)體數(shù),但S小于零時(shí)則表示正在等待使用臨界區(qū)的進(jìn)程數(shù)。</p><p> P原語(yǔ)操作的動(dòng)作是:</p><p><b> (1)S減1;</b
14、></p><p> (2)若S減1后仍大于或等于零,則進(jìn)程繼續(xù)執(zhí)行;</p><p> ?。?)若S減1后小于零,則該進(jìn)程被阻塞后進(jìn)入與該信號(hào)相對(duì)應(yīng)的隊(duì)列中,然后轉(zhuǎn)進(jìn)程調(diào)度。</p><p> V原語(yǔ)操作的動(dòng)作是:</p><p><b> ?。?)S加1;</b></p><p>
15、?。?)若相加結(jié)果大于零,則進(jìn)程繼續(xù)執(zhí)行;</p><p> ?。?)若相加結(jié)果小于或等于零,則從該信號(hào)的等待隊(duì)列中喚醒一等待進(jìn)程,然后再返回原進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。</p><p> PV操作對(duì)于每一個(gè)進(jìn)程來(lái)說(shuō),都只能進(jìn)行一次,而且必須成對(duì)使用。在PV原語(yǔ)行期間不允許有中斷的發(fā)生。</p><p> 本課題利用P操作和V操作來(lái)模擬車輛的出發(fā)和到達(dá)。<
16、/p><p> 2.3 課程設(shè)計(jì)內(nèi)容</p><p> 假設(shè)在一個(gè)十字路口,共有四組紅綠燈,每個(gè)路口的車輛都遵循"紅燈停,綠燈行"的原則,假設(shè)將每一臺(tái)汽車都作為一個(gè)進(jìn)程,要求設(shè)計(jì)良好的調(diào)度機(jī)制,展示出合理的"十字路口交通管理"情況.</p><p> 對(duì)于本程序,對(duì)于車輛通行,設(shè)定為路口的寬度不限,對(duì)一個(gè)路口而言,只有當(dāng)一輛
17、車通過(guò)路口(越過(guò)對(duì)面路口的交通燈后)后,其后續(xù)車輛才能繼續(xù)通過(guò)交通燈,車輛通過(guò)路口的時(shí)間可以固定,并且可以自行計(jì)算。交通燈的進(jìn)程實(shí)際上是互斥的,即不能同時(shí)為紅或者同時(shí)為綠.對(duì)車輛進(jìn)程而言,每一個(gè)車輛在通過(guò)路口前,必須確認(rèn)前面的車輛已經(jīng)通過(guò)了路口.</p><p> 同時(shí),停留在一個(gè)路口的車輛,決定其前進(jìn)或等候的因素是交通燈和前面車輛的狀態(tài),需要設(shè)計(jì)一個(gè)良好的進(jìn)程調(diào)度機(jī)制來(lái)控制所有車輛的通行。</p>
18、<p> 在模擬車輛運(yùn)行的進(jìn)程中,要求可以按要求捕捉所需要的車輛的出發(fā)時(shí)間。在進(jìn)程程序設(shè)計(jì)的過(guò)程中要保證程序運(yùn)行的流暢度,合理模擬車輛遇到紅綠燈變換是黃燈的暫停情況。</p><p> 對(duì)于結(jié)果的分析要能夠得到具有代表性的數(shù)據(jù),比如可以根據(jù)用戶需要捕獲特定的某輛車的情況等。</p><p> 第三章 詳細(xì)設(shè)計(jì)說(shuō)明</p><p><b>
19、; 3.1 模塊描述</b></p><p> 對(duì)于交通信號(hào)燈模擬程序,其功能模塊圖如下圖3-1所示:</p><p> 圖3-1 交通信號(hào)燈模擬程序功能模塊圖</p><p> 對(duì)于交通信號(hào)燈模擬程序,系統(tǒng)需要實(shí)現(xiàn)的功能包括:</p><p> 1、模擬車輛駛出十字路口的一端。</p><p>
20、 2、模擬車輛到達(dá)路十字路口的另一端。</p><p> 3、可以記錄需要的車輛的出發(fā)時(shí)間和編號(hào)。</p><p> 4、利用有效的調(diào)度程序?qū)囕v的行進(jìn)進(jìn)行相應(yīng)的控制。</p><p> 5、要能對(duì)車輛是否能行進(jìn)進(jìn)行合理的判斷。</p><p> 6、要能合理的進(jìn)行紅綠燈的變換操作。 </p><p>&
21、lt;b> 3.2 性能描述</b></p><p> 交通信號(hào)燈模擬程序,要求能模擬出交通信號(hào)燈處的車輛運(yùn)行狀況,要求能進(jìn)行合理的調(diào)度和紅綠燈切換,不考慮車輛在十字路口中間行駛的過(guò)程,視為離開后下一時(shí)刻直接到達(dá)對(duì)面。要求能記錄想要記錄的車輛的運(yùn)行時(shí)間以及車輛編號(hào)。</p><p> 車輛的運(yùn)行通過(guò)P操作和V操作執(zhí)行,P操作進(jìn)行車輛駛出的操作,V操作進(jìn)行車齡到達(dá)的操
22、作。</p><p> 車輛運(yùn)行調(diào)度通過(guò)ETW和STN執(zhí)行,分別判斷南北向和東西向是否有車,由此來(lái)控制是否能進(jìn)行通車。</p><p> 紅綠燈的變換用來(lái)調(diào)整南北和東西是否有車的狀態(tài),同時(shí)進(jìn)行輸出,報(bào)告紅綠燈切換狀態(tài)并暫停2秒。</p><p><b> 3.3 輸入項(xiàng)</b></p><p> 對(duì)于交通信號(hào)燈模
23、擬程序,需要的輸入項(xiàng)包括:</p><p> 東、西、南、北四個(gè)方向的車輛數(shù)量,需要記錄的車兩的駛來(lái)方向和需要記錄的車輛的編號(hào),如表3-1所示。</p><p> 表3-1 自行輸入數(shù)據(jù)表</p><p> 需要在定義里定義的數(shù)據(jù),可自行更改,如下:</p><p> 綠燈持續(xù)時(shí)間,如表3-2所示。</p><p&
24、gt; 表3-2 初始定義數(shù)據(jù)表</p><p><b> 3.4 輸出項(xiàng)</b></p><p> 對(duì)于交通信號(hào)燈模擬程序,需要的輸出項(xiàng)包括:</p><p> 車輛行駛的方向、車輛編號(hào)、車輛出發(fā)時(shí)間,如表3-3所示:</p><p><b> 表3-3 輸出項(xiàng)表</b></p&g
25、t;<p><b> 3.5 數(shù)據(jù)結(jié)構(gòu)</b></p><p> 為了實(shí)現(xiàn)題設(shè)的要求,在VC++6.0環(huán)境下編譯實(shí)現(xiàn),整個(gè)系統(tǒng)的主要流程設(shè)計(jì)為如下步驟:</p><p> 1.定義全局變量用來(lái)存放實(shí)驗(yàn)所需基本信息</p><p> 2.change函數(shù)實(shí)現(xiàn)交換無(wú)車標(biāo)志的功能</p><p> 3.
26、P函數(shù)模擬P原語(yǔ)的功能</p><p> 4.V函數(shù)模擬V原語(yǔ)的功能</p><p> 5.ETW函數(shù)實(shí)現(xiàn)東西方向的車輛調(diào)度</p><p> 6.STN函數(shù)實(shí)現(xiàn)南北方向的車輛調(diào)度</p><p> 7.main函數(shù)實(shí)現(xiàn)程序的輸入接口以及模擬演示</p><p><b> 3.6 算法介紹</
27、b></p><p> 設(shè)計(jì)P(int i)函數(shù)用來(lái)實(shí)現(xiàn)從i(東西南北)方向等待車輛中挑出當(dāng)前的第一個(gè)并讓其通行,同時(shí)記錄此車的編號(hào),輸出此車的發(fā)車時(shí)間。</p><p> 設(shè)計(jì)V(int i)函數(shù)實(shí)現(xiàn)時(shí)間的流逝,紅綠燈的轉(zhuǎn)換以及無(wú)車標(biāo)志的轉(zhuǎn)換,同時(shí)輸出上一時(shí)刻調(diào)用P函數(shù)車輛的到達(dá)時(shí)間。</p><p> 設(shè)計(jì)東西調(diào)度函數(shù)ETW()以及南北調(diào)度函數(shù)STN
28、()在互斥方向無(wú)車且綠燈狀態(tài)下循環(huán)調(diào)用P、V函數(shù)實(shí)現(xiàn)單方向隊(duì)列上車輛的循環(huán)調(diào)度。</p><p> 設(shè)計(jì)main()函數(shù)用來(lái)提供程序的輸入接口,并實(shí)現(xiàn)南北東西方向函數(shù)的交叉調(diào)度,以及預(yù)測(cè)車輛出發(fā)時(shí)間的輸出顯示。</p><p><b> 3.7 流程圖</b></p><p> 3.7.1 主程序流程圖</p><p
29、> 交通信號(hào)燈模擬程序,運(yùn)行開始時(shí)顯示制作人信息,確定后按要求輸入各個(gè)方向的車輛數(shù)量,之后輸入初始紅綠燈狀況并輸入要記錄的車輛的來(lái)向和車輛編號(hào)。組程序的流程圖如圖3-2所示。</p><p> 圖3-2 交通信號(hào)燈模擬主程序流程圖</p><p> 3.7.2 算法流程圖</p><p> P(int i)函數(shù)用來(lái)實(shí)現(xiàn)從i(東西南北)方向等待車輛中挑出
30、當(dāng)前的第一個(gè)并讓其通行,同時(shí)記錄此車的編號(hào),輸出此車的發(fā)車時(shí)間,P操作算法流程圖如圖3-3所示。</p><p> 圖3-3 P操作算法流程圖</p><p> V(int i)函數(shù)實(shí)現(xiàn)時(shí)間的流逝,紅綠燈的轉(zhuǎn)換以及無(wú)車標(biāo)志的轉(zhuǎn)換,同時(shí)輸出上一時(shí)刻調(diào)用P函數(shù)車輛的到達(dá)時(shí)間,V操作算法流程圖如圖3-4所示:</p><p> 圖3-4 V操作算法流程圖</p
31、><p><b> 3.8 接口描述</b></p><p> int Max[4]</p><p> 說(shuō)明:記錄東、西、南、北四個(gè)方向的車數(shù)量。</p><p><b> int Time</b></p><p> 說(shuō)明:記錄當(dāng)前行進(jìn)時(shí)間。</p>&l
32、t;p><b> int R[30]</b></p><p> 說(shuō)明:記錄當(dāng)前車輛的編號(hào)。</p><p><b> int PS</b></p><p> 說(shuō)明:用來(lái)存儲(chǔ)東西南北的數(shù)字編號(hào)。</p><p><b> int PN</b></p>
33、<p> 說(shuō)明:存儲(chǔ)預(yù)測(cè)車輛編號(hào)。</p><p><b> int PT</b></p><p> 說(shuō)明:用來(lái)存儲(chǔ)測(cè)車輛出發(fā)時(shí)間。</p><p><b> int SN</b></p><p> 說(shuō)明:東西有無(wú)車(1無(wú)車,0有車)</p><p>&
34、lt;b> int EW</b></p><p> 說(shuō)明:南北有無(wú)車(1無(wú)車,0有車)</p><p><b> int T</b></p><p> 說(shuō)明:紅綠燈變幻時(shí)間。</p><p><b> int L[2]</b></p><p>
35、說(shuō)明:東西方向紅綠燈狀態(tài),0時(shí)為紅燈,1時(shí)為綠燈。</p><p> char FX[4]</p><p> 說(shuō)明:用來(lái)存儲(chǔ)東西南北四個(gè)方向的名字,分別為E、W、S、N。</p><p><b> 3.9 限制條件</b></p><p> 交通信號(hào)燈模擬程序限制條件如下:</p><p>
36、; 1、每個(gè)方向的車輛數(shù)量不能超過(guò)100;</p><p> 2、車輛按照先后次序進(jìn)行排號(hào),不能自定義編號(hào);</p><p> 3、必須指定程序開始執(zhí)行時(shí)的紅綠燈狀況。</p><p> 第四章 軟件使用說(shuō)明</p><p> 4.1 系統(tǒng)開發(fā)與運(yùn)行環(huán)境</p><p> 代碼實(shí)現(xiàn):C++語(yǔ)言程序</
37、p><p> 開發(fā)工具:Microsoft Visual C++ 6.0</p><p> 運(yùn)行環(huán)境:windows XP或更高版本操作系統(tǒng)</p><p> 執(zhí)行方式:文件打開后直接執(zhí)行</p><p> 窗口界面:MS-DOS窗口界面</p><p> 操作方式:全鍵盤控制</p><p&
38、gt; 操作需要相關(guān)專業(yè)技能:無(wú)</p><p> 4.2系統(tǒng)的運(yùn)行說(shuō)明</p><p> 交通信號(hào)燈模擬程序的運(yùn)行說(shuō)明如下:</p><p> 1、按照系統(tǒng)提示一步一步向下走即可順利執(zhí)行程序。</p><p> 2、輸入數(shù)據(jù)的過(guò)程中一定要盡量保證數(shù)據(jù)的正確性,防止因數(shù)據(jù)不正確而造成程序的崩潰等問(wèn)題。</p><
39、p> 3、在所有數(shù)據(jù)都輸入之后,程序會(huì)自動(dòng)直接開始運(yùn)行,運(yùn)行過(guò)程中程序會(huì)自動(dòng)執(zhí)行到最后,而不會(huì)運(yùn)行一步停下來(lái)等待用戶的指示,因此為了保證用戶檢驗(yàn)數(shù)據(jù),請(qǐng)?jiān)谶\(yùn)行之前做好充分的數(shù)據(jù)記錄,以便與理論值進(jìn)行對(duì)照。</p><p> 本系統(tǒng)是一款多功能,操作方便,界面友好的軟件。軟件所提供的所有功能都可以通過(guò)鍵盤操作實(shí)現(xiàn),簡(jiǎn)單易行,會(huì)給用戶的相關(guān)操作帶來(lái)很大方便。</p><p><
40、b> 4.3 運(yùn)行結(jié)果 </b></p><p> 系統(tǒng)初始界面如圖4-1所示。</p><p> 圖4-1系統(tǒng)初始界面</p><p> 如果這里輸入錯(cuò)誤,會(huì)顯示如圖4-2所示的界。</p><p><b> 圖4-2 錯(cuò)誤報(bào)警</b></p><p> 當(dāng)輸入正確
41、后,會(huì)顯示如圖4-3所示的內(nèi)容。</p><p> 圖4-3 輸入正確顯示</p><p> 選擇紅綠燈狀態(tài)后會(huì)出現(xiàn)圖4-4的界面。</p><p> 圖4-4 選擇紅綠燈</p><p> 依次輸入四個(gè)方向的車的數(shù)量之后出現(xiàn)如圖4-5所示的畫面。</p><p> 圖4-5 輸入車輛數(shù)</p>
42、<p> 選擇預(yù)測(cè)方向之后會(huì)出現(xiàn)如果4-6所示的畫面。</p><p> 圖4-6 選擇預(yù)測(cè)方向</p><p> 輸入預(yù)測(cè)的車輛編號(hào)之后會(huì)直接開始執(zhí)行,出現(xiàn)如圖4-7所示的畫面。</p><p> 圖4-7 輸入編號(hào)開始執(zhí)行</p><p> 在運(yùn)行過(guò)程中遇到紅綠燈切換的狀態(tài),如圖4-8所示。</p>&
43、lt;p> 圖4-8 紅綠燈切換文字及延時(shí)</p><p> 最終運(yùn)行完畢后,程序會(huì)給出相應(yīng)預(yù)測(cè)的結(jié)果,內(nèi)容如圖4-9所示。</p><p><b> 圖4-9 預(yù)測(cè)結(jié)果</b></p><p> 第五章 課程設(shè)計(jì)心得體會(huì)</p><p> 三周的課程設(shè)計(jì)結(jié)束了,我的課程設(shè)計(jì)題目是交通信號(hào)燈模擬,通過(guò)課程
44、設(shè)計(jì)我 對(duì)P操作和V操作又有了更深入的認(rèn)識(shí),同時(shí)更加熟練的掌握了利用VC++6.0去解決這類模擬問(wèn)題的方法。</p><p> 這次課程設(shè)計(jì)的題目不難,應(yīng)該說(shuō)是比較簡(jiǎn)單的,實(shí)現(xiàn)的過(guò)程也比較的順利,沒有特別大的難點(diǎn),雖然比較簡(jiǎn)單,但是依然能從中學(xué)到不少程序設(shè)計(jì)的方法,雖然是在windows平臺(tái)上進(jìn)行設(shè)計(jì),但也能從一定的程度上對(duì)Linux系統(tǒng)的設(shè)計(jì)方法得到了更深入的了解,加深了自己對(duì)課本上知識(shí)的認(rèn)識(shí)。</p&
45、gt;<p> 最后,感謝老師對(duì)我的學(xué)習(xí)的指導(dǎo)!</p><p><b> 附錄1:參考文獻(xiàn)</b></p><p> [1] 胡志剛,譚長(zhǎng)庚等,《計(jì)算機(jī)操作系統(tǒng)》,中南大學(xué)出版社2005年</p><p> [2] 羅宇,鄒鵬等,《操作系統(tǒng)》(第二版),電子工業(yè)出版社2007年4月</p><p>
46、; [3] 湯子瀛,哲風(fēng)屏,湯小冉等,《計(jì)算機(jī)操作系統(tǒng)》,西安電子科技大學(xué)出社,2001年8月</p><p> [4] 張堯?qū)W,史美林,《計(jì)算機(jī)操作系統(tǒng)課程》,清華大學(xué)出版社,2000年</p><p> [5] 龐麗萍,《操作系統(tǒng)原理》,華中理工大學(xué)出版社,2000年</p><p> [6] 馬季蘭等Linux操作系統(tǒng),電子工業(yè)出版社2002年<
47、/p><p> [7] 任愛華,李鵬,劉方毅,操作系統(tǒng)實(shí)驗(yàn)指導(dǎo),清華大學(xué)出版社,2004年</p><p> [8] 譚浩強(qiáng)著.C程序設(shè)計(jì),清華大學(xué)出版社,1999年12月第2版</p><p> [9] 譚浩強(qiáng)著.C++程序設(shè)計(jì)實(shí)踐指導(dǎo),清華大學(xué)出版社,2005年7月底1版</p><p> [10]【美】D.C.Malik:C++編程
48、——從問(wèn)題分析到程序設(shè)計(jì),電子工業(yè)出版社,2003年7月第1版</p><p><b> 附錄2:程序清單</b></p><p><b> 交通信號(hào)燈模擬:</b></p><p> #include <iostream></p><p> #include <windo
49、ws.h></p><p> #include <string></p><p> #include <stdio.h></p><p> using namespace std;</p><p> int Max[4];</p><p> int Time=0;</p&g
50、t;<p> int R[30];</p><p> int PS=1,PN=1,PT=1,SN=0,EW=1;</p><p><b> int T=30;</b></p><p><b> int L[2];</b></p><p> char FX[4];</p&
51、gt;<p> void P(int);</p><p> void V(int);</p><p> void change();</p><p> void STN();</p><p> void ETW();</p><p> void P(int i) //P函數(shù),i為方向判斷標(biāo)志&
52、lt;/p><p><b> {</b></p><p> if(Max[i]>0)</p><p><b> {</b></p><p> Max[i] = Max[i]-1;//i方向上的車輛等待數(shù)目減一</p><p> R[i]++;//當(dāng)前車輛編號(hào)<
53、;/p><p> if((PS-1)==i&&R[i]==PN)</p><p> PT=Time;//保存預(yù)測(cè)時(shí)間</p><p> cout<<Time<<"時(shí)刻向"<<FX[i]<<"方向行駛的第"<<R[i]</p><p
54、> <<"輛車開始出發(fā)!"<<endl;</p><p><b> }</b></p><p> if(Max[++i]>0)</p><p><b> {</b></p><p> Max[i] = Max[i]-1;</p&
55、gt;<p><b> R[i]++;</b></p><p> if((PS-1)==i&&R[i]==PN)</p><p> PT = Time;</p><p> cout<<Time<<"時(shí)刻向"<<FX[i]<<"方向
56、行駛的第"<<R[i]</p><p> <<"輛車開始出發(fā)!"<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> void V(int i) //V函數(shù),i為方向判斷
57、標(biāo)志</p><p><b> {</b></p><p> Time=Time+4;//時(shí)間流逝</p><p> if(Max[i]>=0)</p><p><b> {</b></p><p> if(Max[i]==0)</p><
58、p> Max[i]=-1;</p><p> cout<<Time<<"時(shí)刻向"<<FX[i]<<"方向行駛的第"<<R[i]</p><p> <<"輛車到達(dá)對(duì)面!"<<endl;</p><p><b&
59、gt; }</b></p><p> if(Max[++i]>=0)</p><p><b> {</b></p><p> if(Max[i]==0)</p><p> Max[i]=-1;</p><p> cout<<Time<<&quo
60、t;時(shí)刻向"<<FX[i]<<"方向行駛的第"<<R[i]<<"輛車到達(dá)對(duì)面!"<<endl;</p><p><b> }</b></p><p> T=T-4;//綠燈時(shí)間減少</p><p><b> if(T&l
61、t;=0)</b></p><p><b> {</b></p><p><b> change();</b></p><p> int temp;//換燈</p><p> temp = L[0];</p><p> L[0] = L[1];</
62、p><p> L[1] = temp;</p><p> T = 30-Time%30;//修正紅綠燈時(shí)間</p><p><b> }</b></p><p><b> }</b></p><p> void ETW()//東西調(diào)度函數(shù)</p><
63、p><b> {</b></p><p> if(L[0]==0)//若為紅燈則交換</p><p><b> change();</b></p><p> while(T>0&&L[0]==1&&EW==1)//綠燈有時(shí)間且南北無(wú)車</p><p&g
64、t;<b> {</b></p><p> int b = 0;</p><p><b> P(b);</b></p><p><b> V(b);</b></p><p><b> }</b></p><p><b
65、> }</b></p><p> void STN()//南北調(diào)度函數(shù)</p><p><b> {</b></p><p> if(L[1]==0)</p><p><b> change();</b></p><p> while(T>
66、0&&L[1]==1&&SN==1)//綠燈有時(shí)間且東西無(wú)車</p><p><b> {</b></p><p> int a = 2;</p><p><b> P(a);</b></p><p><b> V(a);</b><
67、/p><p><b> }</b></p><p><b> }</b></p><p> void change()</p><p><b> {</b></p><p> cout<<"紅綠燈變換,所有未通過(guò)車輛停止運(yùn)行。
68、"<<endl;</p><p><b> int ss;</b></p><p><b> ss=SN;</b></p><p><b> SN=EW;</b></p><p><b> EW=ss;</b></p&g
69、t;<p> Sleep(2000);</p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p><b> int a;</b></p><p><b
70、> char b;</b></p><p><b> for(;;)</b></p><p><b> {</b></p><p> cout<<"******************交通信號(hào)燈模擬*********************"<<endl
71、</p><p> <<"* 班級(jí):網(wǎng)絡(luò)工程102001班*"<<endl</p><p> <<"* 學(xué)號(hào):201020030103 *"<<endl</p><
72、;p> <<"* 制作人:崔雷 *"<<endl</p><p> <<"*****************************************************"<<endl</p><p> &l
73、t;<"輸入Y繼續(xù):";</p><p><b> cin>>b;</b></p><p> if(b=='Y'||b=='y')</p><p><b> break;</b></p><p><b> els
74、e</b></p><p> cout<<"您的輸入有誤,請(qǐng)重新輸入"<<endl;</p><p><b> }</b></p><p> system("cls");</p><p><b> while(1)</b&
75、gt;</p><p><b> {</b></p><p> cout<<"歡迎進(jìn)入模擬信號(hào)燈系統(tǒng)"<<endl;</p><p> cout<<"請(qǐng)選擇東西方信號(hào)燈狀態(tài):"<<endl;</p><p> cout<
76、<"\t1.紅燈 \n";</p><p> cout<<"\t2.綠燈 \n";</p><p><b> int a;</b></p><p><b> cin>>a;</b></p><p><b> if
77、(a==1)</b></p><p><b> {</b></p><p><b> L[0] = 0;</b></p><p><b> L[1] = 1;</b></p><p><b> break;</b></p>
78、<p><b> }</b></p><p><b> if(a==2)</b></p><p><b> {</b></p><p><b> L[0] = 1;</b></p><p><b> L[1] = 0;<
79、;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> cout<<"請(qǐng)依次輸入東、西、南、北等待的車輛數(shù):"<<endl;
80、</p><p> cin>>Max[0]>>Max[1]>>Max[2]>>Max[3];//輸入各方位車輛數(shù)量</p><p> cout<<"請(qǐng)輸入選擇預(yù)測(cè)的方向:"<<endl;</p><p> cout<<"\t1.E-東\n&q
81、uot;;</p><p> cout<<"\t2.W-西\n";</p><p> cout<<"\t3.S-南\n";</p><p> cout<<"\t4.N-北\n";</p><p><b> cin>>P
82、S;</b></p><p> cout<<"請(qǐng)輸入預(yù)測(cè)車輛的編號(hào):"<<endl;</p><p><b> cin>>PN;</b></p><p><b> Time = 0;</b></p><p><b>
83、 T =32;</b></p><p><b> EW = 1;</b></p><p><b> SN = 1; </b></p><p> FX[0]='E';</p><p> FX[1]='W';</p><p>
84、 FX[2]='S';</p><p> FX[3]='N';</p><p> while(Max[0]!=-1&&Max[1]!=-1&&Max[2]!=-1&&Max[3]!=-1)//表示四個(gè)方向有車循環(huán),無(wú)車就停止循環(huán)</p><p><b> {</b
85、></p><p> if(L[0]==0)</p><p><b> {</b></p><p><b> STN();</b></p><p><b> ETW();</b></p><p><b> }</b>
86、</p><p><b> else</b></p><p><b> {</b></p><p><b> ETW();</b></p><p><b> STN();</b></p><p><b> }&l
87、t;/b></p><p><b> }</b></p><p> cout<<"向"<<FX[PS-1]<<"行駛編號(hào)為"<<PN<<"的車輛預(yù)測(cè)出發(fā)時(shí)間為:"<<PT<<endl;</p><
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通信號(hào)燈課程設(shè)計(jì)---交通信號(hào)燈系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)交通信號(hào)燈
- 交通信號(hào)燈課程設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)
- 課程設(shè)計(jì)--- 交通信號(hào)燈系統(tǒng)設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)--交通信號(hào)燈控制電路的設(shè)計(jì)
- 交通信號(hào)燈課程設(shè)計(jì)7
- 交通信號(hào)燈控制課程設(shè)計(jì)
- 交通信號(hào)燈控制課程設(shè)計(jì)
- 課程設(shè)計(jì)---交通信號(hào)燈控制
- 交通信號(hào)燈課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告---信號(hào)燈模擬程序
- 交通信號(hào)燈課程設(shè)計(jì)--交通指揮信號(hào)燈控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---交通信號(hào)燈控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--模擬交通信號(hào)燈
- 信號(hào)燈課程設(shè)計(jì)---簡(jiǎn)易交通信號(hào)燈控制器
- 數(shù)電交通信號(hào)燈課程設(shè)計(jì)---交通信號(hào)燈控制器仿真設(shè)計(jì)
- 數(shù)電交通信號(hào)燈課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論