2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  操作系統(tǒng)</b></p><p><b>  課程設(shè)計說明書</b></p><p>  題目: 銀行家算法模擬 </p><p>  2013年 1月 9日</p><p>  課程設(shè)計(論文)任務(wù)書</p>&l

2、t;p>  計算機科學(xué)與工程學(xué)院 計算機科學(xué)與技術(shù)系 </p><p>  2013年 1月 9日</p><p><b>  摘 要</b></p><p>  銀行家算法是一個用來預(yù)防系統(tǒng)進入死鎖狀態(tài)的算法,用它可以判斷系統(tǒng)的安全性,如果系統(tǒng)當(dāng)前處于安全狀態(tài),則可以為申請資源的進程

3、分配資源;如果不是安全狀態(tài),則不能為申請資源的進程分配資源。 銀行家算法執(zhí)行過程中,首先判斷申請資源的進程所申請的資源數(shù)目是否合法,若是合法的,則可以為其進行試分配,再利用安全性算法求出安全序列,如果存在安全序列,則說明可以給申請資源的進程分配資源,分配成功,繼續(xù)為其它進程服務(wù)。如果找不到安全序列,則說明為該進程分配資源后系統(tǒng)會進入不安全狀態(tài),所以不能為該進程分配資源,使該進程進入阻塞狀態(tài)。若申請資源的進程申請的資源數(shù)目不合法,則不需要

4、進行試分配,直接使其進入阻塞狀態(tài),處理其他申請資源的進程。 </p><p>  關(guān)鍵詞:可用資源,最大需求矩陣,分配矩陣,需求矩陣,安全性算法,安全序列</p><p><b>  目 錄</b></p><p><b>  1.緒論1</b></p><p><b>  1.1系統(tǒng)分

5、工1</b></p><p><b>  1.2課題背景1</b></p><p><b>  1.3死鎖1</b></p><p><b>  1.4安全性2</b></p><p>  1.5算法設(shè)計思想2</p><p>&l

6、t;b>  2.需求分析3</b></p><p><b>  2.1基本要求3</b></p><p><b>  2.2模塊劃分3</b></p><p><b>  3.總體設(shè)計4</b></p><p><b>  3.1算法設(shè)計4

7、</b></p><p><b>  3.2模塊設(shè)計5</b></p><p><b>  4.詳細設(shè)計6</b></p><p>  4.1程序流程圖6</p><p>  4.2主要函數(shù)的核心代碼6</p><p><b>  5.程序測試

8、12</b></p><p>  5.1界面設(shè)計12</p><p>  5.2數(shù)據(jù)測試13</p><p>  5.3操作提示14</p><p><b>  6.總結(jié)16</b></p><p><b>  參考文獻17</b></p>

9、<p><b>  1.緒論</b></p><p><b>  1.1系統(tǒng)分工</b></p><p><b>  1.2課題背景</b></p><p>  在多道程序系統(tǒng)中,雖可以借助多個進程的并發(fā)執(zhí)行來改善系統(tǒng)的資源利用率,提高系統(tǒng)吞吐量,但可能發(fā)生一種危險——死鎖,即多個進程在運

10、行過程中因爭奪資源而造成的一種僵局,若無外力作用,將無法再向前推進。如此,尋求一種避免死鎖的方法便顯得有為重要。死鎖的產(chǎn)生一般的原因有兩點:競爭資源和進程間推進順序非法。因此,我們只需在當(dāng)前的有限資源下,找到一組合法的執(zhí)行順序,便能很好的避免死鎖,我們稱它為安全序列。而銀行家算法起源于銀行系統(tǒng)的發(fā)放貸款,和計算機操作系統(tǒng)的資源分配完全符合,因此可以借鑒該算法的思想,設(shè)計出一種有效的算法程序,解決該問題。</p><p

11、><b>  1.3死鎖</b></p><p>  所謂死鎖: 是指兩個或兩個以上的進程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用,它們都將無法推進下去。此時稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。 由于資源占用是互斥的,當(dāng)某個進程提出申請資源后,使得有關(guān)進程在無外力協(xié)助下,永遠分配不到必需的資源而無法繼續(xù)運行,這就產(chǎn)生了一種特

12、殊現(xiàn)象:死鎖。</p><p>  在計算機系統(tǒng)中,涉及軟件,硬件資源都可能發(fā)生死鎖。例如:系統(tǒng)中只有一臺CD-ROM驅(qū)動器和一臺打印機,某一個進程占有了CD-ROM驅(qū)動器,又申請打印機;另一進程占有了打印機,還申請CD-ROM。結(jié)果,兩個進程都被阻塞,永遠也不能自行解除。</p><p><b>  1.4安全性</b></p><p>  

13、全序列的的實際意義在于:系統(tǒng)每次進行資源分配后,如果對于系統(tǒng)中新的資源狀況,存在一個安全序列,則至少存在一條確保系統(tǒng)不會進入死鎖的路徑。按照該序列,銀行家可以實施一個有效的分配過程使得所有客戶得到滿足,行家算法的核心在于安全序列的產(chǎn)生。安全序列正是一種安全的進程推進順序。</p><p><b>  1.5算法設(shè)計思想</b></p><p>  我們可以把操作系統(tǒng)看

14、作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進程向操作系統(tǒng)請求分配資源相當(dāng)于用戶向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則為進程分配資源,當(dāng)進程首次申請資源時,要測試該進程對資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當(dāng)前的申請量分配資源,否則就推遲分配。當(dāng)進程在執(zhí)行中繼續(xù)申請資源時,先測試該進程已占用的資源數(shù)與本次申請的資源數(shù)之和是否超過了該進程對資源的最大需求量。若超過則拒絕分配資源,若沒有超過則再測試系

15、統(tǒng)現(xiàn)存的資源能否滿足該進程尚需的最大資源量,若能滿足則按當(dāng)前的申請量分配資源,否則也要推遲分配。</p><p><b>  2.需求分析</b></p><p><b>  2.1基本要求</b></p><p>  (1)從鍵盤輸入當(dāng)前系統(tǒng)的資源信息,包括當(dāng)前可用資源,每個進程對各類資源的最大需求量,每個進程當(dāng)前已分配

16、的各個資源量和每個進程尚需要的各個資源量,輸出結(jié)果顯示在界面上。 </p><p> ?。?)輸入進程請求,按照設(shè)計好的安全性算法進行檢查,得到結(jié)果并輸出整個執(zhí)行過程的相關(guān)信息和最終結(jié)果(主要包括資源分配表和安全序列)。 </p><p>  (3)要求要有各種異常的處理,程序的可控制性和可連續(xù)性執(zhí)行。包括對進程的存在有無檢查,請求向量的不合法檢查,試分配失敗后的數(shù)據(jù)恢復(fù)和重新接受進程

17、請求等。</p><p><b>  2.2模塊劃分</b></p><p><b> ?。?)分配模塊</b></p><p>  輸入一組資源及作業(yè)的數(shù)量,分配資源及作業(yè)的各項屬性。再配置作業(yè)的資源最大需求量及已申請的資源屬性。以及資源的添加、修改、刪除和分配功能,此外,還有對作業(yè)的添加。</p><

18、;p><b>  (2)判定模塊</b></p><p>  通過銀行家算法對已經(jīng)分配完畢的資源及作業(yè)的屬性進行判斷,判斷申請是否大于需求,若大于則出錯,則提示出錯信息;判斷申請是否大于當(dāng)前資源,若大于則出錯,則提示出錯信息。</p><p><b> ?。?)檢查模塊</b></p><p>  根據(jù)銀行家算法進行

19、資源分配后,檢查資源分配后的系統(tǒng)狀態(tài)是否處于安全狀態(tài)之中,以避免死鎖的發(fā)生。當(dāng)資源分配可行時,則分配;若安全性算法不能通過,則不予分配,以保證系統(tǒng)的安全和死鎖的不發(fā)生。</p><p><b>  3.總體設(shè)計</b></p><p><b>  3.1算法設(shè)計</b></p><p>  (1)銀行家算法的實現(xiàn),需要用到

20、以下主要數(shù)據(jù):</p><p>  int Max[100][100]={0};//各進程所需各類資源的最大需求</p><p>  int Avaliable[100]={0};//系統(tǒng)可用資源</p><p>  CString name[100]={""};//資源的名稱</p><p>  int Allocati

21、on[100][100]={0};//系統(tǒng)已分配資源</p><p>  int Need[100][100]={0};//還需要資源</p><p>  int Request[100]={0};//請求資源向量</p><p>  int temp[100]={0};//存放安全序列</p><p>  int Work[100]={0}

22、;//存放系統(tǒng)可提供資源</p><p>  int M=100;//作業(yè)的最大數(shù)為100</p><p>  int N=100;//資源的最大數(shù)為100</p><p>  int dqzysl=3,zysl=0,worksl=0;</p><p><b>  int sign;</b></p><

23、;p>  a)資源及作業(yè)屬性配置:這是對資源和作業(yè)的分配過程,在實現(xiàn)銀行家算法之前,需有資源和作業(yè)的屬性信息,才可以驗證銀行家算法及安全性算法,最終實現(xiàn)銀行家算法。</p><p>  b)銀行家算法:銀行家算法是對資源分配進行判斷,判斷資源分配的可行性,以免導(dǎo)致死鎖的發(fā)生,是避免死鎖的重要一步。</p><p>  c) 安全性算法:安全性算法是對于安全性檢查算法主要是根據(jù)銀行家算

24、法進行資源分配后,檢查資源分配后的系統(tǒng)狀態(tài)是否處于安全狀態(tài)之中。</p><p>  (2) 銀行家算法中用到的主要數(shù)據(jù)結(jié)構(gòu):</p><p>  可利用資源向量 int Available[j] j為資源的種類。</p><p>  最大需求矩陣 int Max[i][j] i為進程的數(shù)量。 </p><p> 

25、 分配矩陣 int Allocation[i][j] </p><p>  需求矩陣 int need[i][j]= Max[i][j]- Allocation[i][j] </p><p>  申請各類資源數(shù)量 int Request i[j] i進程申請j資源的數(shù)量 </p><p>  工作向量 in

26、t Work[x] int Finish[y]</p><p><b>  3.2模塊設(shè)計</b></p><p> ?。?)主要模塊如圖3-1。</p><p><b>  圖3-1主要模塊</b></p><p> ?。?)子模塊如圖3-2。</p><p>&l

27、t;b>  圖3-2子???lt;/b></p><p><b>  4.詳細設(shè)計</b></p><p><b>  4.1程序流程圖</b></p><p><b>  圖4-1系統(tǒng)流程圖</b></p><p>  4.2主要函數(shù)的核心代碼</p>

28、<p><b>  (1)添加資源</b></p><p>  此處代碼的實現(xiàn)的功能是添加資源名稱,資源數(shù)量和作業(yè)數(shù)量,并且在下一步操作后提示資源是否成功添加。由于輸入的資源數(shù)不止一個,輸入的數(shù)據(jù)可能會出錯,因此這里用到了if條件語句和for循環(huán)語句。當(dāng)輸入的數(shù)據(jù)不合法時,彈出對話框提示出錯。</p><p>  void CBank123Dlg::On

29、addzy() </p><p>  {// TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  CString str="";</p><p>  if(dqzysl>0){</

30、p><p><b>  sign=1;</b></p><p>  for(int i=0;i<3;i++){</p><p>  if(name[i]==m_zymc && m_zymc!=""){</p><p><b>  sign=0;</b><

31、;/p><p>  str="該資源已存在!";</p><p><b>  }}</b></p><p>  if(m_zymc!="" && m_zysl!=0 && sign==1 ){</p><p>  Avaliable[3-dqzysl]=

32、m_zysl;</p><p>  name[3-dqzysl]=m_zymc;</p><p><b>  zysl++;</b></p><p>  MessageBox("數(shù)據(jù)輸入成功!若不配置資源,請配置作業(yè)數(shù)量!\n系統(tǒng)現(xiàn)在共有"+conver(4-dqzysl)+"個資源。\n當(dāng)前輸入資源名稱為:&qu

33、ot;+name[3-dqzysl]+"\t數(shù)量為:"+conver(Avaliable[3-dqzysl]),"提示", MB_OK );</p><p>  dqzysl--;}</p><p>  else MessageBox("輸入數(shù)據(jù)不合法!"+str,"提示", MB_OK ); }</p&

34、gt;<p>  else MessageBox("錯誤!當(dāng)前系統(tǒng)支持資源數(shù)目為3個!您已經(jīng)分配3個了!請配置作業(yè)數(shù)量!","提示", MB_ICONEXCLAMATION );</p><p>  UpdateData(FALSE);</p><p><b>  }</b></p><p&

35、gt;<b> ?。?)銀行家算法</b></p><p>  a.如果Requestj<Need or Requestj=Need,則轉(zhuǎn)向步驟b;否則,認為出錯,因為它所需要的資源數(shù)已超過它所宣布的最大值。 </p><p>  b如果Request<Available or Request=Available,則轉(zhuǎn)向步驟c;否則,表示系統(tǒng)中尚無足夠的資源,進程必須

36、等待。</p><p>  c.系統(tǒng)試探把要求的資源分配給進程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值: Available=Available-Request[i]; Allocation=Allocation+Request; Need=Need-Request; </p><p>  d.系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。</p

37、><p>  for (j=0;j<zysl;j++){</p><p>  if(Request[j]>Need[i][j]) { //判斷申請是否大于需求,若大于則出錯</p><p>  msg="進程 "+conver(i)+"申請的資源大于它需要的資源\n";</p><p>  ms

38、g+=" 分配不合理,不予分配!\n";</p><p>  MessageBox(msg,"提示",MB_OK);</p><p>  ch='n'; break; }</p><p>  else {if(Request[j]>Avaliable[j]){ //判斷申請是否大于當(dāng)前資源,若//大于則出

39、錯 </p><p>  msg="進程"+conver(i)+"申請的資源大于系統(tǒng)現(xiàn)在可利用的資源\n";</p><p>  msg+=" 分配出錯,不予分配!\n";</p><p>  MessageBox(msg,"提示",MB_

40、OK);</p><p>  ch='n'; break; </p><p><b>  }}</b></p><p><b> ?。?)安全性算法</b></p><p>  a.設(shè)置兩個向量 ①工作向量Work。它表示系統(tǒng)可提供進程繼續(xù)運行所需要的各類資源數(shù)目,執(zhí)行安全算

41、法開始時,Work=Allocation; ②布爾向量Finish。它表示系統(tǒng)是否有足夠的資源分配給進程,使之運行完成,開始時先做Finish[i]=false,當(dāng)有足夠資源分配給進程時,令Finish[i]=true。</p><p>  b.從進程集合中找到一個能滿足下述條件的進程: ①Finish[i]=false ②Need<or=Work 如找到,執(zhí)行步驟c;否則,執(zhí)行步驟d。 </p>

42、;<p>  c.當(dāng)進程P獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行: Work=Work+Allocation; Finish[i]=true; 轉(zhuǎn)向步驟b。 </p><p>  d.如果所有進程的Finish[i]=true,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。 </p><p>  CString safe()//安全性算法&

43、lt;/p><p>  {int i,k=0,m,apply,Finish[100]={0};</p><p>  int j;int flag=0;CString str3;</p><p>  Work[0]=Avaliable[0];Work[1]=Avaliable[1];Work[2]=Avaliable[2];</p><p>  f

44、or(i=0;i<worksl;i++){ apply=0;</p><p>  for(j=0;j<zysl;j++){</p><p>  if (Finish[i]==False&&Need[i][j]<=Work[j]){ apply++;</p><p>  if(apply==zysl){for(m=0;m<z

45、ysl;m++)</p><p>  Work[m]=Work[m]+Allocation[i][m];//變分配數(shù)</p><p>  Finish[i]=True;temp[k]=i;i=-1; k++;flag++;</p><p><b>  } }}}</b></p><p>  for(i=0;i<w

46、orksl;i++){</p><p>  if(Finish[i]==False)</p><p>  { CString str2="系統(tǒng)不安全"; return str2;}}</p><p>  str3="系統(tǒng)是安全的!分配的序列:\n";</p><p>  for(i=0;i<wo

47、rksl;i++){//輸出運行進程數(shù)組</p><p>  str3=str3+conver(temp[i])+"\t";</p><p>  if(i<worksl-1) str3=str3+"->";}</p><p>  str3+="\n";return str3;}</p>

48、;<p><b>  (4)修改資源</b></p><p>  輸入的資源可能不符合自己的需要,或者需要用到其他的資源,這時可以不必重新輸入資源數(shù)量,在原有的基礎(chǔ)進行修改即可,此段代碼的作用就是修改資源的名稱和數(shù)量。</p><p>  void CBank123Dlg::Onxgzy() {// TODO: Add your control noti

49、fication handler code here</p><p>  UpdateData(TRUE); </p><p>  int sign=0;</p><p>  if(m_zymc!="" && m_zysl!=0 ){</p><p>  for(int i=0;i<zysl;i++

50、){</p><p>  if(name[i]==m_zymc){</p><p>  Avaliable[i]=m_zysl;</p><p>  MessageBox("資源修改成功!","提示",MB_OK);</p><p><b>  sign=1;</b></p&

51、gt;<p>  CBank123Dlg::Onfinish();</p><p><b>  }}</b></p><p>  if(sign==0) MessageBox("資源不存在!","提示",MB_OK);}</p><p>  else MessageBox("請在

52、資源的名稱和資源數(shù)量輸入合法數(shù)據(jù)!","提示",MB_OK);</p><p>  UpdateData(FALSE);}</p><p><b> ?。?)刪除資源</b></p><p>  資源不需要的時候應(yīng)該刪除,當(dāng)資源名稱不存在和輸入的資源名稱為空時,提示重新進行操作。</p><p&

53、gt;  void CBank123Dlg::Onsczy() {// TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  CString ming;</p><p>  ming=m_zymc;</p><p>

54、;  int i,flag=1,sign=0;</p><p>  if(ming!=""){</p><p>  for(i=0;i<zysl;i++){</p><p>  if(ming==name[i]){ </p><p><b>  flag=0;}</b></p>&

55、lt;p>  else sign++;}</p><p>  if(sign==zysl) MssageBox("該資源名稱不存在,請重新輸入!","提示",MB_OK);</p><p>  if(flag==0){</p><p>  for(int j=i;j<zysl-1;j++){</p>

56、<p>  name[j]=name[j+1];</p><p>  Avaliable[j]=Avaliable[j+1]; }</p><p>  zysl=zysl-1;</p><p>  CBank123Dlg::Onfinish();</p><p>  CBank123Dlg::Onshow();}}</p&

57、gt;<p>  else MessageBox("資源名稱不能為空,請重新輸入!","提示",MB_OK); </p><p>  UpdateData(FALSE);}</p><p>  (6)增加資源和輸出矩陣</p><p>  資源的數(shù)量不夠時,需要再次輸入,增加成功后提示下一步操作。在輸入框里輸入矩

58、陣數(shù)據(jù),然后配置資源最大需求量,可以在系統(tǒng)狀態(tài)顯示區(qū)看到系統(tǒng)狀態(tài)信息。</p><p>  void CBank123Dlg::Onzjwork() {</p><p>  UpdateData(TRUE);worksl++;</p><p>  int flag=2;</p><p>  if(m_data!=""){

59、 CString str=m_data;</p><p>  char *csInput; csInput=str.GetBuffer(str.GetLength()); </p><p>  //提取字符串,把單詞存放在數(shù)組csInput中 </p><p>  char seps[]= ","; //字符串以空

60、格分隔符 </p><p>  char *token; </p><p>  token = strtok( csInput, seps ); </p><p>  char *csEditInput[100];</p><p>  int index=0; //全局變量 </p><p>  wh

61、ile( token != NULL )</p><p>  { //把提取到的單詞存放到數(shù)組csEditIput中 </p><p>  csEditInput[index]=token; /* 把單詞存放在數(shù)組csEditInput中" */ </p><p>  index++; token = strtok( NULL, seps );</p

62、><p>  }/* Get next token: */ </p><p>  int count=0;</p><p>  for(int j=0;j<zysl;j++){</p><p>  Max[worksl-1][j]=atoi(csEditInput[count]); Need[worksl-1][j]=M

63、ax[worksl-1][j]-Allocation[worksl-1][j];</p><p>  count++; }flag=0;</p><p><b>  }</b></p><p>  else MessageBox("請按配置說明在數(shù)據(jù)輸入?yún)^(qū)輸入相關(guān)矩陣數(shù)據(jù)!","提示",MB_OK);if

64、(flag==0)</p><p><b>  {</b></p><p>  MessageBox("增加作業(yè)成功!請點擊【配置信息完成】按鈕。","提示",MB_OK);}UpdateData(FALSE);</p><p><b>  5.程序測試</b></p>

65、<p><b>  5.1界面設(shè)計</b></p><p> ?。?)主界面如圖5-1。</p><p><b>  圖5-1系統(tǒng)主界面</b></p><p> ?。?)系統(tǒng)使用說明如圖5-2。</p><p><b>  圖5-2使用說明</b></p&g

66、t;<p><b>  5.2數(shù)據(jù)測試</b></p><p>  (1)配置資源及作業(yè)屬性如圖5-3。輸入數(shù)據(jù)為:資源名稱n,資源數(shù)量4,作業(yè)數(shù)量2。</p><p><b>  圖5-3資源配置</b></p><p> ?。?)配置資源最大需求量及配置已申請資源如圖5-4和圖5-5。</p>

67、<p>  圖5-4配置資源最大需求量</p><p>  圖5-5配置已申請資源</p><p> ?。?)安全性算法如圖5-6。</p><p><b>  圖5-6安全性算法</b></p><p> ?。?)系統(tǒng)狀態(tài)信息如圖5-7。</p><p><b>  圖5

68、-7系統(tǒng)狀態(tài)</b></p><p><b>  5.3操作提示</b></p><p> ?。?)修改資源操作結(jié)果提示如圖5-8。</p><p><b>  圖5-8修改資源</b></p><p> ?。?)分配資源成功和增加作業(yè)成功如圖5-9和圖5-10。</p>

69、<p>  圖5-9 分配資源成功 圖5-10增加作業(yè)成功</p><p> ?。?)修改資源失敗和刪除資源失敗如圖5-11和圖5-12。</p><p>  圖5-11修改資源失敗 圖5-12刪除資源失敗</p><p><b>  6.總結(jié)</b>&

70、lt;/p><p>  操作系統(tǒng)的基本特征是并發(fā)與共享。系統(tǒng)允許多個進程并發(fā)執(zhí)行,并且共享系統(tǒng)的軟、硬件資源。為了最大限度的利用計算機系統(tǒng)的資源,操作系統(tǒng)應(yīng)采用動態(tài)分配的策略,但是這樣就容易因資源不足,分配不當(dāng)而引起“死鎖”。而我本次課程設(shè)計就是得用銀行家算法來避免“死鎖”。銀行家算法就是一個分配資源的過程,使分配的序列不會產(chǎn)生死鎖。</p><p>  課程設(shè)計過程中我學(xué)到了很多實用性的知識

71、,除了加深自己對這個算法的理解,而且對以前的知識也做到了溫故而知新。在和同學(xué)做MFC時,發(fā)現(xiàn)自己已經(jīng)忘了好多東西,因此開始時花了很久才弄明白操作的基本步驟。在做課程設(shè)計的這段日子里,我深刻感受到唯有自己去動手,才能了解更多的東西。在此感謝給予我?guī)椭睦蠋熀屯瑢W(xué)。</p><p><b>  參考文獻</b></p><p>  [1]湯小丹,梁紅兵,哲鳳屏,湯子瀛.計

72、算機操作系統(tǒng).第三版.西安:西安電子科技大學(xué)出版社,2007</p><p>  [2] 譚浩強. C程序設(shè)計.第三版.北京:清華大學(xué)出版社,2005</p><p>  [3]張海藩.軟件工程導(dǎo)論.第五版.北京:清華大學(xué)出版社,2008</p><p>  [4] 馮博琴.Visual C++與面向?qū)ο蟪绦蛟O(shè)計教程.第三版. 高等教育出版社; 2010</p

溫馨提示

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

評論

0/150

提交評論