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

下載本文檔

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

文檔簡介

1、<p>  《面向對象程序設計》課程設計報告</p><p>  完成時間: 年 月 日</p><p> 設計題目職工信息管理系統</p><p> 學生姓名</p><p> 學生班級</p><p> 學生學號</p><p> 指導教師</p>&l

2、t;p><b>  目 錄</b></p><p>  1 前言3 1.1項目背景3</p><p>  1.2問題描述42 需求分析4</p><p><b>  2.1要求4</b></p><p><b>  2.2任務4</b></p&g

3、t;<p><b>  2.3運行環境4</b></p><p><b>  2.4開發工具4</b></p><p>  3 概要設計與詳細設計4</p><p>  3.1系統流程圖5</p><p>  3.2運行結果舉例5</p><p>&l

4、t;b>  4 編碼與實現6</b></p><p><b>  4.1分析7</b></p><p>  4.2具體代碼實現7</p><p>  5 課程設計總結20</p><p>  5.1該課程設計的特點和不足20</p><p>  5. 2心得體會....

5、.........................................................................................20</p><p><b>  參考文獻21</b></p><p><b>  1 前言</b></p><p><b>  1.

6、1項目背景</b></p><p>  職工信息管理系統是一個企業單位不可絕少的部分,它的內容對于企業的決策者和管理者來說都是至關重要的,所以職工信息管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來各個公司基本上都是靠傳統的人工方式來管理職工信息,這種管理方式存在著許多缺點,如效率低,保密性差,另外時間一長將產生大量的文件和數據,這對于信息的查找,更新和維護都帶來不少困難。</p

7、><p>  當今社會,信息迅速膨脹,隨著各個公司的規模擴大,有關信息管理工作所涉及的數據量越來越大,職工信息量也大大增加,利用傳統的手工查詢,等登記和修改等方法的處理速度遠遠跟不上公司的需求,有的公司不得不靠增加人力,物力來進行信息管理。</p><p>  隨著計算機級數的不斷提高,計算機作為知識經濟時代的產物,其強大的功能已為人們深刻認識,它已進入人類社會的各個行業和領域并發揮著越來越重

8、要的作用,成為人們工作和生活中不可缺少的一部分。</p><p>  而作為計算機應用的一部分,使用計算機對職工進行信息管理,具有手工管理所無法比擬的優點。例如檢查迅速,查詢方便,可靠性高,存儲量大,保密性好,壽命長,成本低等。這些優點能夠極大地提高職工信息管理的效率,也是公司的科學化,正規化管理與世界接軌的重要條件,職工信息管理系統作為一種管理軟件正在各公司中得到越來越廣泛的應用,且以達到良好的效果。</

9、p><p><b>  1.2問題描述</b></p><p>  編寫一個程序來管理職工信息。通過一個類來存放輸入的每一位職工的記錄(包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等),然后將其信息保存到文件中。通過幾個函數來創建新職工號,并對職工信息進行刪除及修改,輸入一個職工號查詢該職工的信息,并顯示在屏幕上。</p><p><

10、b>  2 需求分析</b></p><p><b>  2.1要求</b></p><p> ?。?)只能使用C++語言實現程序設計;</p><p> ?。?)源程序要有適當的注釋,使程序容易閱讀;</p><p> ?。?)畫出查詢模塊的流程圖;利用類進行相關信息處理;</p>&l

11、t;p> ?。?)系統的各個功能模塊要求用函數的形式實現;</p><p> ?。?)運行界面清晰,功能明確。</p><p><b>  2.2任務</b></p><p> ?。?)定義一個類,輸入每一位職工的信息(包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等),將其信息存入文件中;</p><p>

12、 ?。?)輸入職工號查詢該職工的信息,并顯示在屏幕上;</p><p> ?。?)畫出所有模塊的流程圖;</p><p><b> ?。?)編寫代碼;</b></p><p> ?。?)程序分析與調試。</p><p><b>  2.3運行環境</b></p><p>&l

13、t;b> ?。?)VC6.0</b></p><p><b>  2.4開發工具</b></p><p><b>  C++語言</b></p><p>  3 概要設計與詳細設計</p><p><b>  3.1系統流程圖</b></p>&

14、lt;p><b>  如圖3.1所示。</b></p><p>  圖3.1 系統流程圖</p><p><b>  3.2運行結果舉例</b></p><p> ?。?)職工信息錄入界面</p><p>  (2)職工信息修改界面</p><p><b>

15、  4 編碼與實現</b></p><p><b>  4.1分析</b></p><p>  本系統主要分為WorkerList類、database類、函數menu、函數menu2以及main函數,WorkerList類中包括的數據成員有id、name[10]、sex[10]、age、edu[20]、salary、address[25]、tel[11],

16、包括的函數成員有setid()、setname()、setsex()、setage()、setedu()、setsalary()、setaddress()、settel()、getid()、add()、display()。而database類中包括的數據成員有top、 WorkList worker[N],包括的函數成員有rdatabase()、add()、search()、delet()、modify()。</p>&l

17、t;p>  用函數add()實現職工信息的錄入,用函數search()實現對職工信息的查詢,用函數delet()實現對職工信息的刪除,用函數modify()實現對職工信息的修改。</p><p><b>  4.2具體代碼實現</b></p><p>  #include<iostream></p><p>  #includ

18、e<string></p><p>  #include<fstream></p><p>  #define N 100 // N作為最大職工數</p><p>  using namespace std;</p><p>  void menu();//顯示菜單</p><p>  clas

19、s WorkerList</p><p><b>  {</b></p><p><b>  private:</b></p><p><b>  int id;</b></p><p>  char name[10];</p><p>  char s

20、ex[10];</p><p><b>  int age;</b></p><p>  char edu[20];</p><p>  int salary;</p><p>  char address[25];</p><p>  char tel[11];</p><p

21、><b>  public:</b></p><p>  void setid()//以下函數用于職工屬性的輸入</p><p><b>  {</b></p><p>  cout<<"請輸入職工號:"<<endl;</p><p><b&g

22、t;  cin>>id;</b></p><p><b>  }</b></p><p>  void setname()</p><p><b>  {</b></p><p>  cout<<"請輸入職工姓名:"<<endl;&

23、lt;/p><p>  cin>>name;</p><p><b>  }</b></p><p>  void setsex()</p><p><b>  {</b></p><p>  cout<<"請輸入職工性別:"<&

24、lt;endl;</p><p><b>  cin>>sex;</b></p><p><b>  }</b></p><p>  void setage()</p><p><b>  {</b></p><p>  cout<&l

25、t;"請輸入職工年齡:"<<endl;</p><p><b>  cin>>age;</b></p><p><b>  }</b></p><p>  void setedu()</p><p><b>  {</b></p

26、><p>  cout<<"請輸入職工學歷:"<<endl;</p><p><b>  cin>>edu;</b></p><p><b>  }</b></p><p>  void setsalary()</p><p&g

27、t;<b>  {</b></p><p>  cout<<"請輸入職工工資:"<<endl;</p><p>  cin>>salary;</p><p><b>  }</b></p><p>  void setaddress()<

28、/p><p><b>  {</b></p><p>  cout<<"請輸入職工住址:"<<endl;</p><p>  cin>>address;</p><p><b>  }</b></p><p>  void

29、settel()</p><p><b>  {</b></p><p>  cout<<"請輸入職工電話:"<<endl;</p><p><b>  cin>>tel;</b></p><p><b>  }</b>&

30、lt;/p><p>  int getid()//取職工號函數,主要用于判斷輸入的職工號是否已存在</p><p><b>  {</b></p><p>  return id;</p><p><b>  }</b></p><p>  void add()//職工信息錄入&

31、lt;/p><p><b>  {</b></p><p><b>  setid();</b></p><p>  setname();</p><p><b>  setsex();</b></p><p><b>  setage();<

32、;/b></p><p><b>  setedu();</b></p><p>  setsalary();</p><p>  setaddress();</p><p><b>  settel();</b></p><p><b>  }</b&

33、gt;</p><p>  void display()//顯示函數,用于將已有職工的信息輸出</p><p><b>  {</b></p><p>  cout<<"職工工號為:"<<id<<endl;</p><p>  cout<<"職

34、工姓名為:"<<name<<endl;</p><p>  cout<<"職工性別為:"<<sex<<endl;</p><p>  cout<<"職工年齡為:"<<age<<endl;</p><p>  cout<

35、;<"職工學歷為:"<<edu<<endl;</p><p>  cout<<"職工工資為:"<<salary<<endl;</p><p>  cout<<"職工住址為:"<<address<<endl;</p>

36、<p>  cout<<"職工電話為:"<<tel<<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  void menu()//菜單函數</p><p><b&g

37、t;  {</b></p><p>  cout<<endl;</p><p>  cout<<" ★★★★★★★★★★★★★★★★★★"<<endl;</p><p>  cout<<endl;</p><p>  co

38、ut<<" § §"<<endl;</p><p>  cout<<endl;</p><p>  cout<<" ∽∽∽∽∽∽∽∽∽∽歡迎進入職工信息管理系統∽∽∽∽∽∽∽∽∽∽"<&l

39、t;endl;</p><p>  cout<<endl;</p><p>  cout<<" 1.職工信息錄入";</p><p>  cout<<" 2.職工信息查詢"<<endl;</p><

40、;p>  cout<<endl;</p><p>  cout<<" 3.職工信息刪除"; </p><p>  cout<<" 4.職工信息修改"<<endl; </p><p>  cout<&

41、lt;endl;</p><p>  cout<<" ∽∽∽∽∽∽∽∽∽∽∽∽∽謝謝您的使用∽∽∽∽∽∽∽∽∽∽∽∽∽"<<endl;</p><p>  cout<<endl; </p><p><b>  }</b></p><p>  voi

42、d menu2()//修改職工信息顯示的選擇界面</p><p><b>  {</b></p><p>  cout<<" ****************************************************************"<<endl;</p><p> 

43、 cout<<endl;</p><p>  cout<<" ******* 1.修改工號 2.修改姓名 *******"<<endl;</p><p>  cout<<endl;</p><p>  cout<<&quo

44、t; ******* 3.修改性別 4.修改年齡 *******"<<endl;</p><p>  cout<<endl;</p><p>  cout<<" ******* 5.修改學歷 6.修改工資

45、 *******"<<endl;</p><p>  cout<<endl;</p><p>  cout<<" ******* 7.修改地址 8.修改電話 *******"<<endl;</p><p>  cout<

46、;<endl;</p><p>  cout<<" ****************************************************************"<<endl;</p><p>  cout<<endl;</p><p><b>  }</b

47、></p><p>  class database//database類,用于將輸入的職工信息保存在一個txt文檔中及讀取</p><p><b>  {</b></p><p><b>  private:</b></p><p><b>  int top;</b>

48、</p><p>  WorkerList worker[N];</p><p><b>  public:</b></p><p>  void rdatabase()//打開磁盤中相應的文件</p><p><b>  {</b></p><p><b>  t

49、op=-1;</b></p><p>  fstream file;//定義fstream類對象file</p><p>  file.open("c:\\worker.txt ",ios::in|ios::binary);//使文件流與磁盤的worker.txt文件建立關聯,并從中讀取職工信息</p><p>  while(!fi

50、le.eof())</p><p><b>  {</b></p><p><b>  top++;</b></p><p>  file.read((char *)&worker[top],sizeof(worker[top]));</p><p><b>  }</b&g

51、t;</p><p>  file.close();//將關聯的磁盤文件關閉</p><p><b>  top++;</b></p><p><b>  } </b></p><p>  void add()//新添加職工函數</p><p><b>  {<

52、;/b></p><p><b>  int id;</b></p><p>  cout<<"請輸入職工號以便鑒定"<<endl;</p><p><b>  cin>>id;</b></p><p>  for(int i=0;i&l

53、t;top;i++)</p><p><b>  {</b></p><p>  if(worker[i].getid()==id)</p><p><b>  {</b></p><p>  cout<<"對不起,您輸入的職工號已存在"<<endl;&l

54、t;/p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  worker[top].add();</p><p><b>  top++;</b&g

55、t;</p><p>  outdatabase();</p><p>  cout<<"添加成功!"<<endl;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  v

56、oid outdatabase()//將輸入的職工信息寫入txt文檔</p><p><b>  {</b></p><p>  fstream file;</p><p>  file.open("c:\\worker.txt",ios::out|ios::binary);</p><p>  fo

57、r(int i=0;i<top;i++)</p><p>  file.write((char *)&worker[i],sizeof(worker[i]));//寫入結構體的元素</p><p>  file.close();</p><p><b>  }</b></p><p>  void sear

58、ch()//用于查詢職工的信息</p><p><b>  {</b></p><p><b>  int id2;</b></p><p>  cout<<"請輸入職工號"<<endl;</p><p><b>  cin>>id2

59、;</b></p><p>  for(int i=0;i<top;i++)</p><p><b>  {</b></p><p>  if(worker[i].getid()==id2)</p><p><b>  {</b></p><p>  wor

60、ker[i].display();</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"對不起,該職工不存在"<<end

61、l;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  void delet()//實現對職工信息的刪除</p><p><b>  {</b></p><p><b>  int

62、id,j;</b></p><p>  cout<<"請輸入職工號"<<endl;</p><p><b>  cin>>id;</b></p><p>  for(int i=0;i<top;i++)</p><p><b>  {&l

63、t;/b></p><p>  if(worker[i].getid()==id)</p><p><b>  {</b></p><p>  for(j=i;j<top;j++)</p><p><b>  {</b></p><p>  worker[j]=w

64、orker[j+1];</p><p><b>  }</b></p><p>  cout<<"該職工信息已刪除"<<endl;</p><p>  outdatabase();</p><p><b>  return;</b></p>

65、<p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"對不起,該職工不存在"<<endl;</p><p><b>  return;</b></p><p><

66、b>  }</b></p><p>  void modify()//對職工信息進行修改</p><p><b>  {</b></p><p><b>  int id;</b></p><p>  cout<<"請輸入要修改的職工號"<&l

67、t;endl;</p><p><b>  cin>>id;</b></p><p>  for(int i=0;i<top;i++)</p><p><b>  {</b></p><p>  if(worker[i].getid()==id)</p><p&

68、gt;<b>  {</b></p><p><b>  int g;</b></p><p><b>  menu2();</b></p><p><b>  cin>>g;</b></p><p><b>  switch(g)&

69、lt;/b></p><p><b>  {</b></p><p>  case 1:worker[i].setid();break;</p><p>  case 2:worker[i].setname();break;</p><p>  case 3:worker[i].setsex();break;<

70、;/p><p>  case 4:worker[i].setage();break;</p><p>  case 5:worker[i].setedu();break;</p><p>  case 6:worker[i].setsalary();break;</p><p>  case 7:worker[i].setaddress();br

71、eak;</p><p>  case 8:worker[i].settel();break;</p><p><b>  }</b></p><p>  outdatabase();</p><p>  cout<<"修改成功"<<endl;</p><p

72、><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"對不起,該職工不存在"<<endl;</p><p><b>  

73、return;</b></p><p><b>  }</b></p><p><b>  };</b></p><p>  void main()</p><p><b>  {</b></p><p>  int choice;</

74、p><p>  database a;</p><p><b>  menu();</b></p><p>  cin>>choice;</p><p>  while(choice)</p><p><b>  {</b></p><p> 

75、 switch(choice)</p><p><b>  {</b></p><p>  case 1:a.rdatabase();</p><p>  a.add();break;</p><p>  case 2:a.rdatabase();</p><p>  a.search();bre

76、ak;</p><p>  case 3:a.rdatabase();</p><p>  a.delet();break;</p><p>  case 4:a.rdatabase();</p><p>  a.modify();break;</p><p><b>  }</b></p&

77、gt;<p><b>  menu();</b></p><p>  cin>>choice;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5 課程設計總結</b>&

78、lt;/p><p>  5.1該課程設計的特點和不足</p><p>  這個程序設計有很多不足,并不能將所有職工的相關信息輸出,這個問題暫時還未能實現,不過以后我會努力學習逐漸加以改善爭取完善它的功能。</p><p>  該程序所存信息不足,有待改善,但該程序適合現階段面向對象技術初學者的練習作業,能有效的反映出學生的學習情況及其動手能力,也能讓學生自己檢測出本學期

79、自己所獲得的知識掌握情況,是一向很好的課程設計項目。</p><p><b>  5.2心得體會</b></p><p>  通過這次對職工信息管理系統的課程設計,我獲益頗多。長時間的思索這個課程設計使得我對函數和類的理解及其運用更加透徹與深刻。</p><p>  在設計程序的過程中,我也曾遇到令人頭疼的難題,令自己百思不得其解。職工信息管理

80、系統的設計需要對職工的信息進行存儲,但是如何將信息真正的存儲到文件中呢?這個難題曾一度難倒了我。慶幸的是,在老師和同學的幫助下,我尋到了解決問題的方法,將信息保存到文件中需要查閱C++面向對象程序設計教科書。在書上第9章C++的輸入輸出流里有對信息進行文件2進制存儲的相關內容,通過問老師和自己進一步深入學習,這個大難題最終得以解決。</p><p>  然而當所有的程序完成的時候,并沒想象中那么容易運行,總有一些

81、零零碎碎的錯誤隱藏在一個個“陰暗”的角落里,研究修改了很久,仍有錯誤找不出來,于是就只好求助別人幫忙了。</p><p>  在本系統的開發設計中,由于我是初次開發軟件,在知識,經驗方面都存在著不足。另外這個開發的過程比較倉促,因此留下了一些不足與缺陷,因為對職工信息管理的流程不太熟悉,在分析時未能做到完善。</p><p>  盡管如此,我還是學到了很多東西。通過開發這個系統,我掌握了項

82、目基本開發過程,用到的知識鞏固了我對C++語言的學習,但在這次設計中的最大收獲并不是掌握這幾門開發工具的應用,而是學習了設計系統的思維方法,以及同學們之間相互幫助的精神。</p><p>  這次課程設計也同時讓我個人認識到了自己知識的不足,并讓我對C++有了全新的認識,也對其產生了濃厚的興趣,要好好學習C++,充實自己。為自己加油!為老師加油!為父母加油!</p><p><b&g

溫馨提示

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

評論

0/150

提交評論