計算機操作系統(tǒng)課程設計_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1.課程設計內(nèi)容3</p><p>  2.課程設計目的3</p><p><b>  3.開發(fā)環(huán)境3</b></p><p>  4.設計步驟與方法3</p><p>  4.1.程序

2、概要設計3</p><p>  4.2.程序詳細設計4</p><p>  5.設計結果及分析6</p><p><b>  6.設計結論8</b></p><p>  7.對本設計過程及方法、手段的改進建議8</p><p><b>  8.任務分配8</b

3、></p><p><b>  9.參考文獻8</b></p><p>  10.課程設計評價(教師)8</p><p><b>  理發(fā)師問題</b></p><p><b>  課程設計內(nèi)容</b></p><p>  理發(fā)店有一位理發(fā)

4、師,一把理發(fā)椅和n把等候理發(fā)的顧客座位。如果沒有顧客,理發(fā)師便看報紙,有顧客來時,他必須叫理發(fā)師。如果理發(fā)師正在理發(fā)時又有顧客來到,如果等候室有座位,就坐下等待,否則離開。</p><p><b>  課程設計目的</b></p><p>  通過生產(chǎn)者和消費者問題的設計和調(diào)試,使學生掌握進程同步的工作原理,利用信號量的原理和機制去解決同步問題,并培養(yǎng)學生分析和解決實

5、際問題的能力。</p><p><b>  開發(fā)環(huán)境</b></p><p>  系統(tǒng):windows 2000/windows XP </p><p><b>  語言:C#</b></p><p>  軟件開發(fā)工具:visual studio 2008 </p><p>

6、<b>  設計步驟與方法</b></p><p><b>  程序概要設計</b></p><p>  設計一個windows應用窗口來模擬理發(fā)師問題這個實驗,分等候室、工作室兩塊區(qū)域。等候室有5個位置,工作室有理發(fā)師和正在理發(fā)的顧客。人物分顧客和理發(fā)師兩種,理發(fā)師只有一個,顧客初始設定為10人。</p><p><

7、;b>  程序詳細設計</b></p><p><b>  4.2.1界面設計</b></p><p>  首先創(chuàng)建一個C#項目工程并命名為BarberQuestion。在BarberQuestion項目中創(chuàng)建startform.cs,程序開始界面.</p><p><b>  如下圖示:</b><

8、/p><p><b>  圖1:開始窗口</b></p><p>  然后創(chuàng)建一個主界面命名為mainForm.cs.</p><p><b>  如下圖示: </b></p><p><b>  圖2:主窗口</b></p><p><b>

9、  4.2.2代碼設計</b></p><p>  首先創(chuàng)建兩個隊列來裝載顧客分別是:</p><p>  private Queue<int> enqueueIndex = new Queue<int>(); //創(chuàng)建一個存儲隊列</p><p>  private Queue<int> dequeueIndex =

10、 new Queue<int>(); //創(chuàng)建一個離開隊列</p><p>  開始模擬按鈕:實現(xiàn)模擬顧客進入發(fā)廳等候室,當?shù)群蚴覜]有位子時,離開;</p><p>  通知理發(fā)師按鈕:實現(xiàn)當?shù)群蚴矣蓄櫩蜁r,通知理發(fā)師為顧客理發(fā)。</p><p><b>  實現(xiàn)代碼:</b></p><p>  /// &

11、lt;summary></p><p><b>  /// 通知理發(fā)師</b></p><p>  /// </summary></p><p>  private void btnWakeBarber_Click(object sender, EventArgs e)</p><p><b>

12、;  {</b></p><p>  if (dequeueIndex.Count != 0)</p><p><b>  {</b></p><p>  picBaber.Show();</p><p>  this.btnStartBarber.Enabled = true;</p><

13、;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  MessageBox.Show("由于沒有顧客等待理發(fā),所以不必通知理發(fā)師!");</p><p>  picBab

14、er.Hide();</p><p>  this.btnStartBarber.Enabled = false;</p><p><b>  }</b></p><p>  picBaber.Image = Image.FromFile(@"Images\" + 11 + ".bmp");//理發(fā)師的圖

15、片</p><p>  this.btnWakeBarber.Enabled = false;</p><p><b>  }</b></p><p>  開始理發(fā)按鈕:實現(xiàn)模擬理發(fā)師為顧客理發(fā);等候室的顧客減一,顧客進入工作室理發(fā);</p><p>  理發(fā)完成按鈕:模擬理發(fā)過程結束。</p><p

16、><b>  實現(xiàn)代碼:</b></p><p>  /// <summary></p><p><b>  /// 剪發(fā)完成</b></p><p>  /// </summary></p><p>  private void btnEndBarber_Click(

17、object sender, EventArgs e)</p><p><b>  {</b></p><p>  System.Threading.Thread.Sleep(300);</p><p>  this.picBarbering.Hide();</p><p>  this.btnStartBarber.E

18、nabled = true;</p><p>  MessageBox.Show("理發(fā)完成!");</p><p>  this.btnEndBarber.Enabled = false;</p><p><b>  }</b></p><p><b>  設計結果及分析</b>

19、;</p><p>  點擊開始模擬按鈕顧客進入發(fā)廳等候;</p><p>  點擊通知理發(fā)師按鈕;</p><p><b>  點擊開始理發(fā)按鈕;</b></p><p><b>  點擊理發(fā)完成按鈕;</b></p><p><b>  分析:</b>

20、;</p><p>  運行結果基本正確,有時會出現(xiàn)錯誤。程序中顧客為互斥的關系,理發(fā)師和工作室的椅子是臨界資源,采用用兩個隊列來承載顧客,分別為存儲隊列和離開隊列。通過隊列的添加與刪除模擬顧客理發(fā)過程中座位的變化。程序還須進一步優(yōu)化。</p><p><b>  設計結論</b></p><p>  本軟件設計簡單,操作簡單。在顧客的進出以及

21、通知理發(fā)師問題上還不夠完善,。通過本次實例操作,了解到臨界資源及互斥等相關知識,摸了信號量的機制去解決理發(fā)師的問題。一定程度上夠加深了對此環(huán)節(jié)的認識。軟件還有一些問題,會繼續(xù)修改.</p><p>  對本設計過程及方法、手段的改進建議</p><p><b>  暫無</b></p><p><b>  任務分配</b>

22、</p><p><b>  參考文獻</b></p><p>  計算機操作系統(tǒng)(西安電子科技大學出版社)</p><p>  課程設計評價(教師)</p><p>  1.符合設計內(nèi)容,達到設計目的,設計步驟與方法正確,設計結果正確。 </p><p>  是( ) 否( )基本正確

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論