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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計說明書</b></p><p>  程序設(shè)計基礎(chǔ)課程設(shè)計任務(wù)書</p><p>  一、題目:學(xué)生管理系統(tǒng)</p><p><b>  二、目的與要求</b></p><p><b>  目的:</b></p><p&g

2、t;  (1)培養(yǎng)學(xué)生綜合利用C++語言進(jìn)行程序設(shè)計的能力,掌握排序算法,使學(xué)生能夠解決信息管理系統(tǒng)中的一些問題。</p><p> ?。?)提高學(xué)生建立程序文檔、歸納總結(jié)的能力。</p><p><b>  基本要求:</b></p><p> ?。?)要求用C++結(jié)構(gòu)化的設(shè)計思想來完成程序的設(shè)計;</p><p> 

3、 (2)要求各個功能分別使用函數(shù)來完成。</p><p> ?。?)源代碼程序要求必要的注釋。</p><p><b>  創(chuàng)新要求</b></p><p>  在基本要求達(dá)到后,請修改代碼,在功能不變的情況下盡可能修改代碼使代碼短小。</p><p><b>  書寫設(shè)計報告的要求</b><

4、/p><p>  設(shè)計報告中包含以下幾個方面:</p><p><b>  設(shè)計題目</b></p><p><b>  總體設(shè)計</b></p><p>  首先設(shè)計結(jié)構(gòu),建立鏈表</p><p>  用自頂而下或自底而上的方法,劃分功能模塊,設(shè)計每個類的成員函數(shù)</p&

5、gt;<p><b>  確定各模塊的算法</b></p><p><b>  根據(jù)算法畫出流程圖</b></p><p>  列出程序清單,并加以必要的注釋</p><p><b>  寫出調(diào)試程序的方法</b></p><p>  指出所設(shè)計問題的不足和改進(jìn)方

6、案</p><p><b>  畫出程序流程圖</b></p><p>  課程設(shè)計材料的裝訂順序為:</p><p><b>  設(shè)計說明書封面</b></p><p><b>  課程設(shè)計任務(wù)書</b></p><p><b>  課程設(shè)

7、計鑒定表</b></p><p><b>  目錄</b></p><p><b>  設(shè)計報告書正文</b></p><p>  三、設(shè)計方法和基本原理</p><p><b>  問題描述:</b></p><p>  計算機(jī)系新招服務(wù)外

8、包方向,招生前學(xué)生人數(shù)并不確定。請根據(jù)以下要求為教務(wù)管理人員設(shè)計一個學(xué)生管理系統(tǒng)。分別管理學(xué)生的相關(guān)信息。信息的詳細(xì)內(nèi)容如下:姓名、學(xué)號、年級、班級、入學(xué)數(shù)學(xué)成績、入學(xué)物理成績、入學(xué)英語成績。</p><p><b>  問題的解決方案:</b></p><p>  根據(jù)問題的描述,可以按照要求的功能采用面向?qū)ο蟮脑O(shè)計思想。</p><p> 

9、 要求使用鏈表實現(xiàn),結(jié)構(gòu)中必須包含題干描述的內(nèi)容。</p><p>  使用排序函數(shù)實現(xiàn)排序功能。</p><p>  四、主要技術(shù)問題的描述</p><p>  計算機(jī)系新招服務(wù)外包方向,招生前學(xué)生人數(shù)并不確定。請根據(jù)以下要求為教務(wù)管理人員設(shè)計一個學(xué)生管理系統(tǒng)。分別管理學(xué)生的相關(guān)信息。信息的詳細(xì)內(nèi)容如下:姓名、學(xué)號、年級、班級、入學(xué)數(shù)學(xué)成績、入學(xué)物理成績、入學(xué)英語

10、成績。系統(tǒng)功能要求如下:</p><p><b>  增加某新學(xué)生的信息</b></p><p><b>  刪除某學(xué)生的信息</b></p><p><b>  修改某學(xué)生的信息</b></p><p>  輸出符合某種特征的學(xué)生信息列表(選做以下任意模塊)。</p&g

11、t;<p>  按名稱升序(降序)輸出學(xué)生列表</p><p>  按某門成績升序(降序)輸出學(xué)生列表</p><p>  按學(xué)號升序(降序)輸出學(xué)生列表</p><p>  根據(jù)提供的學(xué)生姓名輸出該學(xué)生的信息</p><p>  以下兩個模塊任選一個</p><p>  輸出特定班級的學(xué)生信息列表<

12、;/p><p>  輸出特定學(xué)號范圍的學(xué)生信息列表</p><p>  五、課程設(shè)計時間:第18周(共一周)</p><p>  六、課程設(shè)計的考核方式及評分方法</p><p><b>  1.考核方式</b></p><p>  課程設(shè)計結(jié)束時,在機(jī)房當(dāng)場驗收。</p><p&

13、gt;  教師提供測試數(shù)據(jù),檢查運(yùn)行結(jié)果是否正確。</p><p>  回答教師提出的問題。</p><p>  學(xué)生提交課程設(shè)計文檔(A4紙打?。?lt;/p><p><b>  2.評分方法</b></p><p>  上機(jī)檢查:書面報告 5:5,沒有通過上機(jī)檢查的其成績直接記錄不及格</p><p&

14、gt;  指導(dǎo)教師簽名:         日期:        </p><p>  教研室主任簽名:        日期:        </p><p>  系主任簽名:          日期:        </p><p><b>  摘 要</b></p><p>  請為人力資源部設(shè)計一個新工人的管理

15、系統(tǒng)。分別管理工人的相關(guān)信息如下:姓名、工號、工種(電焊工、電工、鉗工、車工、鑄工)、級別(有的工種有8級有的只有5級)、工資、獎金。</p><p>  要求用C++結(jié)構(gòu)化編程思想來完成程序的設(shè)計。要求各個功能分別使用函數(shù)來完成。</p><p>  源代碼程序要求必要的注釋。培養(yǎng)學(xué)生綜合利用C++語言進(jìn)行程序設(shè)計的能力,掌握排序算法,使學(xué)生能夠解決信息管理系統(tǒng)中的一些問題。提高學(xué)生建立

16、程序文檔、歸納總結(jié)的能力。</p><p>  關(guān)鍵詞:C++ 工人信息管理系統(tǒng) 鏈表。</p><p><b>  目 錄</b></p><p>  1 設(shè)計內(nèi)容與要求 …………………………………………………………………………1</p><p>  2. 設(shè)計說明 ……………………………………………………………

17、……………………1</p><p>  2.1數(shù)據(jù)結(jié)構(gòu)說明…………………………………………………………………1</p><p>  2.2功能設(shè)計及函數(shù)說明………………………………………………………………………2</p><p>  2.3函數(shù)定義………………………………………………………………………………3</p><p>  2.4 界面

18、設(shè)計………………………………………………………………………………3</p><p>  2.5 調(diào)試及運(yùn)行結(jié)果……………………………………………………………………4</p><p>  3 總結(jié)…………………………………………………………………………………………9</p><p>  參考文獻(xiàn) ……………………………………………………………………………………10&l

19、t;/p><p>  附錄 源代碼………………………………………………………………………………11</p><p>  1. 設(shè)計內(nèi)容與要求</p><p>  分別管理工人的相關(guān)信息如下:姓名、工號、工種(電焊工、電工、鉗工、車工、鑄工)、級別(有的工種有8級有的只有5級)、工資、獎金、加班/曠工時數(shù)。系統(tǒng)功能要求如下:</p><p><

20、;b>  新增工人的信息</b></p><p><b>  刪除工人的信息</b></p><p><b>  修改工人的信息</b></p><p>  輸出符合某種特征的工人信息列表(選做以下任意模塊)。</p><p>  按工資升序(降序)輸出工人信息列表</p&g

21、t;<p>  按獎金升序(降序)輸出工人信息列表</p><p>  按加班/曠工時數(shù)升序(降序)輸出工人信息列表</p><p>  根據(jù)提供的工人姓名輸出該工人的信息</p><p>  以下兩個模塊任選一個</p><p>  輸出特定工種的工人信息列表</p><p>  輸出特定工種級別的工人

22、信息列表。</p><p><b>  要求:</b></p><p> ?。?)用C++結(jié)構(gòu)化的設(shè)計思想來完成程序的設(shè)計</p><p>  (2)各個功能分別使用函數(shù)來完成。</p><p>  (3)源代碼程序要求必要的注釋.</p><p><b>  2. 設(shè)計說明</b

23、></p><p>  2.1 數(shù)據(jù)結(jié)構(gòu)說明</p><p>  while+switch 選擇執(zhí)行功能(構(gòu)建main函數(shù)、構(gòu)建程序界面)</p><p>  建立鏈表:(申請一個動態(tài)newhead逐個插入head中)首先建立鏈表頭head,再依次建立節(jié)點,通過tail->next=temp.tail=temp將每個節(jié)點連接起來,將輸入的工人信息儲存在每

24、個節(jié)點中</p><p>  遍歷鏈表:(執(zhí)行while(head!=NULL)從鏈?zhǔn)组_始一,依次訪問鏈表中節(jié)點的信息,workers*curnode=head;while(curnode),curnode=curnode->next.再通過cout輸出每個節(jié)點信息</p><p>  輸出鏈表:將已經(jīng)修改、增加、刪除,過了的新鏈表先遍歷,同時依次用outputlist函數(shù)輸出節(jié)點中

25、的信息</p><p>  節(jié)點排序:通過pxlist函數(shù)新建一條空的鏈表把原來鏈表中的工資最小的放在新鏈表的第一個階點,依次把剩下節(jié)點中工資最小的放在后面,最后返回新鏈表的首結(jié)點地址在通過outputlist函數(shù)輸出新鏈表的信息</p><p>  修改鏈表:先遍歷鏈表,找到所需修改的節(jié)點命名為curnode,然后用cin函數(shù)輸入節(jié)點中的信息覆蓋以前的信息,最后返回新的鏈表,通過out

26、putlist函數(shù)輸出來</p><p>  插入節(jié)點:先遍歷鏈表,找要插入指針的節(jié)點,把它賦給結(jié)構(gòu)指針prenode,把prenode->next賦給結(jié)構(gòu)指針curnode,然后新建一個新節(jié)點newhead,把它賦給prenode->next指向的節(jié)點,最后把newhead->next指向的節(jié)點賦給curnode, 最后返回新的鏈表,通過outputlist函數(shù)輸出來</p>&

27、lt;p>  2.2 功能設(shè)計及函數(shù)說明</p><p>  圖1 程序功能模塊圖</p><p><b>  主函數(shù)說明</b></p><p>  主函數(shù)包括一個switch…case選擇結(jié)構(gòu),1代表添加工人信息2代表刪除工人信息3代表修改工人信息4代表按序號升序輸出工人信息5代表按輸入的工人的姓名輸出工人信息6代表輸出特定姓名的工人

28、信息,還有客戶見面目錄,while循環(huán)</p><p>  建立工人信息庫函數(shù)說明</p><p>  用戶先輸入要建立工人信息的工人數(shù)n,再把他建立createlist函數(shù)便構(gòu)成了一個鏈表,把每次輸入的工人信息儲存在不同節(jié)點中,便于以后修改,刪除,查詢</p><p><b>  增加工人信息</b></p><p>

29、  首先提示你要增加的工人數(shù),你在輸入數(shù)目,通過addlist函數(shù)把輸入工人的信息增加到鏈表中,在返回新的鏈表給outputlist函數(shù)輸出來</p><p>  刪除工人信息函數(shù)想說明</p><p>  輸入一個工人的工號通過deletelist函數(shù)找到該結(jié)點釋放該結(jié)點的信息在通過兩個指針把新的鏈表重新連接, 再把新鏈表返回給outputlist函數(shù)輸出來,在返回新的鏈表給主函數(shù),如果

30、沒有該工號的工人,則輸去沒有該工人,請重新輸入</p><p><b>  修改工人信息說明</b></p><p>  先輸入工人的工號通過flxlist函數(shù)找到儲存該工人信息的節(jié)點再重新輸入覆蓋原來節(jié)點的信息, 再返回給outputlist函數(shù)輸出來,如果沒有該工號,則返回沒有該工號的工人,請重新輸入</p><p>  按工資升序輸出工人

31、信息說明</p><p>  通過pxlist函數(shù)新建一條空的鏈表把原來鏈表中的工資最小的放在新鏈表的第一個階點,依次把剩下節(jié)點中工資最小的放在后面,最后返回新鏈表的首結(jié)點地址在通過outputlist函數(shù)輸出新鏈表的信息</p><p>  輸出特定特定姓名工人信息說明</p><p>  通過outputname函數(shù)找到該工人的信息,再返回給outputlist

32、函數(shù)輸出來,如果沒有該工人則提示輸入錯誤,請重新輸入。</p><p><b>  2.3函數(shù)定義</b></p><p>  1 addlist(a,headlist) 增加工人信息</p><p>  2 deletelist(b,headlist)刪除工人信息</p><p>  3 fixlist(c,headl

33、ist)修改工人信息</p><p>  4 pxlist(headlist)按工資高到低排序</p><p>  5 outputlist(headlist)輸出修改后的新鏈表</p><p>  6 outputname (char name)按工人名字輸出信息</p><p>  7 outputgzh( e,headlist)輸出特定

34、工種信息數(shù)</p><p><b>  2.4界面設(shè)計</b></p><p>  ************************************</p><p>  ** 請選擇你所需的功能 **</p><p>  ** 0 輸入0結(jié)束程序 **</

35、p><p>  ** 1 增加工人信息 **</p><p>  ** 2 刪除工人信息 **</p><p>  ** 3 修改工人信息 **</p><p>  ** 4 按工資升序輸出工人信息 **</p><p&

36、gt;  ** 5 根據(jù)工人姓名輸出該工人的信息 **</p><p>  ** 6 輸出特定工種的工人信息列表 **</p><p>  *********************************** </p><p><b>  圖2界面</b></p><p><b>  2.5測試<

37、/b></p><p><b>  圖3.添加工人信息</b></p><p><b>  圖3.添加工人信息</b></p><p><b>  圖4.刪除工人信息</b></p><p><b>  圖4.刪除工人信息</b></p>

38、<p><b>  圖5.修改工人信息</b></p><p><b>  圖5.修改工人信息</b></p><p>  圖6.按工資升序輸出工人信息</p><p>  圖7.根據(jù)提供工人姓名輸出工人信息</p><p>  圖8.輸出特定特定工種的工人信息</p>

39、<p><b>  總結(jié)</b></p><p>  在設(shè)計程序的過程中,遇到了很多算法問題,以及函數(shù)的建立問題。剛開始覺得這是我不可能完成的任務(wù),因為我一點思路也沒有,為完成設(shè)計,我們甚至熬夜做程序,在室友們熱情討論和指導(dǎo),查資料下終于完成了課程設(shè)計。盡管很困難很費(fèi)設(shè)計這個程序不但培養(yǎng)了我們綜合利用C++語言進(jìn)行程序設(shè)計的能力,掌握排序算法,解決信息管理系統(tǒng)中的一些問題。而且提高

40、了我們建立程序文檔、歸納總結(jié)的能力。最重要的是增加了我信心,以后遇到再難的問題我不會再畏懼。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 錢能. C++程序設(shè)計教程[M]. 北京:清華大學(xué)出版社,2005:315-324,415-418,423.</p><p>  [2] 劉瑞新. Visual C++面向?qū)ο蟪?/p>

41、序設(shè)計教程[M]. 北京:機(jī)械工業(yè)出版社,2005.</p><p><b>  附錄 源代碼</b></p><p>  #include<iostream.h></p><p>  #include<string.h></p><p>  struct workers //鏈表結(jié)構(gòu)&l

42、t;/p><p><b>  {</b></p><p><b>  int num;</b></p><p>  char name[8];</p><p><b>  int jj;</b></p><p><b>  int jb;</

43、b></p><p><b>  int gz;</b></p><p>  int jbsj,kgsj;</p><p>  char gzh[12];</p><p>  workers *next;</p><p><b>  };</b></p>

44、<p>  workers *createlist(int); //要調(diào)用的函數(shù)原型</p><p>  workers *addlist(int ,workers *head);</p><p>  workers *deletelist(int ,workers *head);</p><p>  workers

45、 *fixlist(int ,workers *head);</p><p>  workers *outputname(char *d,workers *head);</p><p>  workers *outputgzh(char*e,workers *head);</p><p>  void outputlist(workers *head);</p

46、><p>  workers *pxlist(workers *head);</p><p>  int main() //主函數(shù)</p><p><b>  {</b></p><p>  int n,a,b,c;</p><p>  char *d, *e;</p><p

47、>  workers *headlist=NULL;</p><p>  cout<<"請輸入所有工人信息:"<<endl;</p><p>  cout<<"請輸入工人人數(shù):"<<endl;</p><p><b>  cin>>n;</b&g

48、t;</p><p>  headlist=createlist(n);</p><p>  while(1) //客戶見面的目錄</p><p><b>  {</b></p><p>  cout<<"************************************"&l

49、t;<endl;</p><p>  cout<<"** 請選擇你所需的功能 **"<<endl;</p><p>  cout<<"** 0 輸入0結(jié)束程序 **"<<endl;</p><p>  cout<&

50、lt;"** 1 增加工人信息 **"<<endl;</p><p>  cout<<"** 2 刪除工人信息 **"<<endl;</p><p>  cout<<"** 3 修改工人信息 **&

51、quot;<<endl;</p><p>  cout<<"** 4 按工資升序輸出工人信息 **"<<endl;</p><p>  cout<<"** 5 根據(jù)工人姓名輸出該工人的信息 **"<<endl;</p><p>  cout<<

52、"** 6 輸出特定工種的工人信息列表 **"<<endl;</p><p>  cout<<"**********************************"<<endl;</p><p><b>  cin>>n;</b></p><p>  

53、switch(n) //供選擇的功能</p><p><b>  {</b></p><p>  case 0:return 0;</p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  cou

54、t<<"請輸入要增加的工人數(shù):"<<endl;</p><p><b>  cin>>a;</b></p><p><b>  if(a>0)</b></p><p>  headlist=addlist(a,headlist);</p><

55、p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  cout<<"請輸入要刪除信息的工人的

56、工號"<<endl;</p><p><b>  cin>>b;</b></p><p>  headlist=deletelist(b,headlist);</p><p><b>  break;</b></p><p><b>  }</b&g

57、t;</p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  cout<<"請輸入要修改信息的工人的工號"<<endl;</p><p><b>  cin>>c; </

58、b></p><p>  headlist=fixlist(c,headlist);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 4:</b></p><p>&l

59、t;b>  {</b></p><p>  headlist=pxlist(headlist);</p><p>  outputlist(headlist);</p><p><b>  break;}</b></p><p><b>  case 5:</b></p>

60、;<p><b>  {</b></p><p>  cout<<"請輸入要輸出工人的姓名:";</p><p>  d=new char;</p><p><b>  cin>>d;</b></p><p>  outputname( d,

61、headlist);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 6:</b></p><p><b>  {</b></p><p>  cout

62、<<"請輸入要查找的工種:";</p><p>  e=new char;</p><p><b>  cin>>e;</b></p><p>  outputgzh( e,headlist);</p><p><b>  break;</b></p

63、><p><b>  }</b></p><p>  default:cout<<"錯誤,重新輸入!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>

64、<b>  return 0;</b></p><p><b>  }</b></p><p>  workers *createlist(int n) //建立鏈表</p><p><b>  {</b></p><p>  workers *temp;</p&g

65、t;<p>  workers *head=NULL;</p><p>  workers *tail=NULL;</p><p>  head=new workers;</p><p>  if(head==NULL)</p><p><b>  {</b></p><p>  c

66、out<<"No memory available!";</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

67、;<p>  cout<<"請輸入工人姓名:";</p><p>  cin>>head->name;</p><p>  cout<<"請輸入工人工號:";</p><p>  cin>>head->num;</p><p> 

68、 cout<<"請輸入工人工種:";</p><p>  cin>>head->gzh;</p><p>  cout<<"請輸入工人工資:";</p><p>  cin>>head->gz;</p><p>  cout<<&q

69、uot;請輸入工人獎金:";</p><p>  cin>>head->jj;</p><p>  cout<<"請輸入工人級別:";</p><p>  cin>>head->jb;</p><p>  cout<<"請輸入工人加班時間:&q

70、uot;;</p><p>  cin>>head->jbsj;</p><p>  cout<<"請輸入工人曠工時間:";</p><p>  cin>>head->kgsj;</p><p>  head->next=NULL;</p><p&

71、gt;  tail=head; </p><p><b>  }</b></p><p>  for(int i=0;i<n-1;i++)</p><p><b>  {</b></p><p>  temp=new workers;</p><p>  if(temp

72、==NULL)</p><p><b>  {</b></p><p>  cout<<"No memory available!"<<endl;</p><p>  return head;</p><p><b>  }</b></p>

73、<p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"請輸入工人姓名:";</p><p>  cin>>temp->name;</p><p>  cout<<&quo

74、t;請輸入工人工號:";</p><p>  cin>>temp->num;</p><p>  cout<<"請輸入工人工種:";</p><p>  cin>>temp->gzh;</p><p>  cout<<"請輸入工人工資:&quo

75、t;;</p><p>  cin>>temp->gz;</p><p>  cout<<"請輸入工人獎金:";</p><p>  cin>>temp->jj;</p><p>  cout<<"請輸入工人級別:";</p>&

76、lt;p>  cin>>temp->jb;</p><p>  cout<<"請輸入工人加班天數(shù):";</p><p>  cin>>temp->jbsj;</p><p>  cout<<"請輸入工人曠工天數(shù):";</p><p> 

77、 cin>>temp->kgsj;</p><p>  temp->next=NULL;</p><p>  tail->next=temp;</p><p>  tail=temp;</p><p><b>  } </b></p><p>  }return he

78、ad;</p><p><b>  }</b></p><p>  workers *addlist(int a,workers *head) //增加工人信息的函數(shù)</p><p><b>  {</b></p><p>  workers *curnode=head;</p>

79、<p>  workers *prenode=NULL;</p><p>  workers *newhead=NULL;</p><p>  while(curnode!=NULL){</p><p>  prenode=curnode;</p><p>  curnode=curnode->next;</p>

80、<p><b>  }</b></p><p>  for(int i=0;i<a;i++)</p><p><b>  {</b></p><p>  newhead=new workers;</p><p>  if(newhead==NULL)</p><

81、p><b>  {</b></p><p>  cout<<"No memory available!";</p><p>  return head;</p><p><b>  }</b></p><p>  cout<<"請輸入工人姓

82、名:";</p><p>  cin>>newhead->name;</p><p>  cout<<"請輸入工人工號:";</p><p>  cin>>newhead->num;</p><p>  cout<<"請輸入工人工種:"

83、;;</p><p>  cin>>newhead->gzh;</p><p>  cout<<"請輸入工人工資:";</p><p>  cin>>newhead->gz;</p><p>  cout<<"請輸入工人獎金:";</p&

84、gt;<p>  cin>>newhead->jj;</p><p>  cout<<"請輸入工人級別:";</p><p>  cin>>newhead->jb;</p><p>  cout<<"請輸入工人加班天數(shù):";</p><

85、;p>  cin>>newhead->jbsj;</p><p>  cout<<"請輸入工人曠工天數(shù):";</p><p>  cin>>newhead->kgsj;</p><p>  newhead->next=NULL;</p><p>  prenod

86、e->next=newhead;</p><p>  prenode=newhead;</p><p><b>  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  workers *deletelis

87、t(int b,workers *head) //刪除工人信息的函數(shù)</p><p><b>  {</b></p><p>  workers *curnode=head;</p><p>  workers *prenode=NULL;</p><p>  while(curnode->num!=b){&l

88、t;/p><p>  prenode=curnode;</p><p>  curnode=curnode->next;</p><p><b>  }</b></p><p>  if(curnode==NULL)</p><p><b>  {</b></p>

89、;<p>  cout<<"沒有該工號的工人"<<endl;</p><p>  return head;</p><p><b>  }</b></p><p>  if(prenode==NULL)</p><p>  head=head->next;&

90、lt;/p><p><b>  else</b></p><p>  prenode->next=curnode->next;</p><p>  delete curnode;</p><p>  cout<<"已經(jīng)刪除該工人信息!"<<endl;</p>

91、<p>  return head;</p><p><b>  }</b></p><p>  workers *fixlist(int c,workers *head) //修改工人信息的函數(shù)</p><p><b>  {</b></p><p>  workers *cu

92、rnode=head;</p><p>  workers *prenode=NULL;</p><p>  while(curnode!=NULL&&curnode->num!=c){</p><p>  prenode=curnode;</p><p>  curnode=curnode->next;</

93、p><p><b>  } </b></p><p>  if(curnode==NULL)</p><p><b>  {</b></p><p>  cout<<"沒有該工號的工人"<<endl;</p><p>  return

94、head;</p><p><b>  }</b></p><p>  cout<<"重新輸入該工號工人的信息:";</p><p>  cout<<"請輸入工人姓名:";</p><p>  cin>>curnode->name;<

95、/p><p>  cout<<"請輸入工人工號:";</p><p>  cin>>curnode->num;</p><p>  cout<<"請輸入工人工種:";</p><p>  cin>>curnode->gzh;</p>

96、<p>  cout<<"請輸入工人工資:";</p><p>  cin>>curnode->gz;</p><p>  cout<<"請輸入工人獎金:";</p><p>  cin>>curnode->jj;</p><p> 

97、 cout<<"請輸入工人級別:";</p><p>  cin>>curnode->jb;</p><p>  cout<<"請輸入工人加班天數(shù):";</p><p>  cin>>curnode->jbsj;</p><p>  cout

98、<<"請輸入工人曠工天數(shù):";</p><p>  cin>>curnode->kgsj;</p><p>  cout<<"成功修改該工號工人信息!"<<endl;</p><p>  return head;</p><p><b> 

99、 }</b></p><p>  workers *outputname(char *d,workers *head) //根據(jù)工人姓名輸出該工人信息的函數(shù)</p><p><b>  {</b></p><p>  workers *curnode=head;</p><p>  workers *

100、prenode=NULL;</p><p>  while(curnode!=NULL&&strcmp(curnode->name,d))</p><p><b>  {</b></p><p>  prenode=curnode;</p><p>  curnode=curnode->nex

101、t;</p><p><b>  }</b></p><p>  if(curnode==NULL)</p><p><b>  {</b></p><p>  cout<<"不能找到該工人!"<<endl;</p><p>  r

102、eturn head;</p><p><b>  }</b></p><p>  cout<<"重新輸入該工號工人的信息:"<<endl;</p><p>  cout<<"請輸入工人姓名:"<<curnode->name<<endl;&

103、lt;/p><p>  cout<<"請輸入工人工號:"<<curnode->num<<endl;</p><p>  cout<<"請輸入工人工種:"<<curnode->gzh<<endl;</p><p>  cout<<&quo

104、t;請輸入工人工資:"<<curnode->gz<<endl;</p><p>  cout<<"請輸入工人獎金:"<<curnode->jj<<endl;</p><p>  cout<<"請輸入工人級別:"<<curnode->jb&l

105、t;<endl;</p><p>  cout<<"請輸入工人加班天數(shù):"<<curnode->jbsj<<endl;</p><p>  cout<<"請輸入工人曠工天數(shù):"<<curnode->kgsj<<endl;</p><p>

106、  cout<<endl;</p><p>  return head;</p><p><b>  }</b></p><p>  workers *outputgzh(char *e,workers *head) //輸出特定工種的工人信息列表的函數(shù)</p><p><b>  {<

107、/b></p><p>  workers *curnode=head;</p><p>  workers *prenode=NULL;</p><p>  while(curnode!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(curno

108、de->gzh,e))</p><p><b>  {</b></p><p>  cout<<"正在查找..."<<endl; </p><p><b>  }</b></p><p><b>  else</b></

109、p><p><b>  {</b></p><p>  cout<<endl;</p><p>  cout<<"名字:"<<curnode->name<<endl;</p><p>  cout<<"工號:"<&

110、lt;curnode->num<<endl;</p><p>  cout<<"工種:"<<curnode->gzh<<endl;</p><p>  cout<<"級別:"<<curnode->jb<<endl;</p><p&

111、gt;  cout<<"工資:"<<curnode->gz<<endl;</p><p>  cout<<"獎金:"<<curnode->jbsj<<endl;</p><p>  cout<<"曠工天數(shù):"<<curnod

112、e->kgsj<<endl;</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  prenode=curnode;</p><p>  curnode=curnode->next;</p><p><b&

113、gt;  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  void outputlist(workers *head) //遍歷鏈表輸出的函數(shù)</p><p><b>  {</b></p><

114、p>  cout<<"工人信息如下所示:"<<endl;</p><p>  workers *curnode=head;</p><p>  while(curnode!=NULL)</p><p><b>  {</b></p><p>  cout<<&

115、quot;工人姓名、工號、工種、工資、獎金、級別、加班天數(shù)、曠工天數(shù)依次為:"<<endl;</p><p>  cout<<curnode->name<<"\t"<<curnode->num<<"\t"<<curnode->gzh<<"\t"

116、<<curnode->gz<<"\t"<<curnode->jj<<"\t"<<curnode->jbsj<<"\t"<<curnode->kgsj<<"\t"<<endl;</p><p>  curn

117、ode=curnode->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  workers *pxlist(workers *head) //按工資升序排序的函數(shù)</p><p><b>  {</b>

118、</p><p>  workers *tail,*min,*n,*newf=NULL,*e_min;</p><p>  while(head!=NULL){</p><p>  for(n=head,min=head;n->next!=NULL;n=n->next)</p><p><b>  {</b>

119、</p><p>  if(min->gz>n->next->gz)</p><p><b>  {</b></p><p><b>  e_min=n;</b></p><p>  min=n->next;</p><p><b> 

120、 }</b></p><p><b>  }</b></p><p>  if(min==head)</p><p><b>  {</b></p><p>  head=head->next;</p><p><b>  }</b>&

121、lt;/p><p><b>  else</b></p><p><b>  {</b></p><p>  e_min->next=min->next;</p><p><b>  }</b></p><p>  if(newf==NULL)

122、</p><p><b>  {</b></p><p><b>  newf=min;</b></p><p><b>  tail=min;</b></p><p><b>  }</b></p><p><b>  

123、else</b></p><p><b>  {</b></p><p>  tail->next=min;</p><p><b>  tail=min;</b></p><p><b>  }</b></p><p><b&g

124、t;  }</b></p><p>  if(newf!=NULL)</p><p><b>  {</b></p><p>  tail->next=NULL;</p><p><b>  }</b></p><p>  head=newf;</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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論