人事檔案管理課程設(shè)計_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告</p><p> ?。?011/2012學(xué)年第二學(xué)期)</p><p>  題目名稱 人事檔案管理 </p><p&

2、gt;  系 部 機(jī)電動力與信息工程系 </p><p>  專 業(yè) 計算機(jī)科學(xué)與技術(shù)(工業(yè)控制)

3、 </p><p>  班 級 10級計算機(jī)班

4、</p><p>  學(xué) 生 xxx </p><p>  學(xué) 號 </p><p>  完成時間 2012年 6月19日 </p>&

5、lt;p>  指導(dǎo)老師 xxx </p><p><b>  目 錄</b></p><p><b>  引 言3</b></p><p>  1. 課程設(shè)計目的與意義4</p><p>  1.1設(shè)計目的與任務(wù)4</p><

6、;p>  1.1.1本課程設(shè)計的目的4</p><p>  1.1.2本課程設(shè)計的任務(wù)4</p><p>  1.2 選題背景4</p><p><b>  1.2.1選題4</b></p><p>  1.2.2開發(fā)環(huán)境4</p><p><b>  2. 詳細(xì)設(shè)計5

7、</b></p><p><b>  2.1需求描述5</b></p><p><b>  2.2功能描述5</b></p><p>  2.3 程序運(yùn)行說明6</p><p>  2.3.1總體設(shè)計6</p><p>  2.3.2 界面設(shè)計6<

8、/p><p>  2.3.3 設(shè)計內(nèi)容6</p><p>  2.3.4 程序運(yùn)行具體說明21</p><p>  3. 課程設(shè)計總結(jié)28</p><p>  3.1編程日志27</p><p>  3.2 測試報告28</p><p>  4. 心得體會30</p>&

9、lt;p>  5 參考文獻(xiàn)31</p><p><b>  引 言</b></p><p>  隨著人們生活水平的提高,計算機(jī)發(fā)展異常迅速。如今,計算機(jī)已經(jīng)深入到我們社會的各個領(lǐng)域,計算機(jī)的使用也已不再局限于科學(xué)計算,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。通過計算機(jī)對各類問題求解已經(jīng)成為一種高效、快捷的方式。</p><

10、p>  《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計是實(shí)踐性教學(xué)環(huán)節(jié)之一,是《面向?qū)ο蟪绦蛟O(shè)計》課程的輔助教學(xué)課程。該課程設(shè)計要求學(xué)生綜合運(yùn)用在《面向?qū)ο蟪绦蛟O(shè)計》課程中學(xué)到的面向?qū)ο蠹夹g(shù)與實(shí)際編程相結(jié)合,獨(dú)立完成一項較為完整、并具有一定實(shí)際功能的課程設(shè)計任務(wù),同時加深學(xué)生對面向?qū)ο蠛虲++編程技術(shù)的理解和掌握,培養(yǎng)實(shí)際的應(yīng)用程序開發(fā)能力。在課程設(shè)計過程中,使學(xué)生養(yǎng)成良好的程序設(shè)計風(fēng)格,并掌握C++應(yīng)用程序的設(shè)計開發(fā)過程和編程方法、測試方法。&l

11、t;/p><p>  本課程設(shè)計題目為《人事檔案管理》,信息時代的到來和全社會信息化、網(wǎng)絡(luò)化建設(shè)的興起,使得傳統(tǒng)的人員檔案管理系統(tǒng)和操作方法越來越不能滿足用戶的需要,智能化、網(wǎng)絡(luò)化、信息化的人事檔案管理系統(tǒng)應(yīng)用勢在必行。 </p><p>  人事檔案管理主要解決在一個小型企業(yè)中,進(jìn)行公司內(nèi)部人員的分配,調(diào)整和更新的程序設(shè)計。企業(yè)人事檔案管理是企業(yè)管理的一個重要內(nèi)容,隨著時代的進(jìn)步,企業(yè)也逐漸

12、變得龐大起來。如何管理好企業(yè)內(nèi)部員工的信息,成為企業(yè)管理中的一個大的問題。在這種情況下,一個可以規(guī)范化、自動化的企業(yè)人事管理系統(tǒng)就顯得非常必要。</p><p>  最初的人事檔案管理,都是靠人力來完成的。當(dāng)企業(yè)規(guī)模比較小的時候,人力可以完成,隨著企業(yè)的規(guī)模越來越大,企業(yè)的員工人數(shù)也越來越多,依然維持著人力進(jìn)行人事管理,必然會造成工作效率低,工作錯誤增高的問題。</p><p>  人事檔

13、案管理系統(tǒng)就是把分散的企事業(yè)單位的職工信息實(shí)行統(tǒng)一、集中、規(guī)范的收集管理,建立分類編號管理、電腦存儲查詢以及防火、防潮、防蛀、防盜等現(xiàn)代化、專業(yè)化的管理系統(tǒng),為企事業(yè)單位和職工解除后顧之憂。</p><p>  1. 課程設(shè)計目的與意義</p><p>  1.1設(shè)計目的與任務(wù)</p><p>  1.1.1本課程設(shè)計的目的</p><p>

14、  1)通過課程設(shè)計更進(jìn)一步理解C++的基礎(chǔ)知識和面向?qū)ο蟮乃枷搿?lt;/p><p>  2)訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),并在此過程中培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能。</p><p>  3)熟練掌握C++中類及類模板在程序中的應(yīng)用,并熟練了解類中函數(shù)的調(diào)用。</p><p&

15、gt;  1.1.2本課程設(shè)計的任務(wù)</p><p>  使用類實(shí)現(xiàn)編寫一個人事檔案管理系統(tǒng) ,能夠?qū)崿F(xiàn)員工信息增加、刪除、修改、查找、清空、統(tǒng)計,信息的輸入輸出能夠重載輸入與輸出操作符,并且要求有錯誤提示功能,例如輸入日期,輸入錯誤提示重新輸入。</p><p><b>  1.2 選題背景 </b></p><p><b>  1

16、.2.1選題 </b></p><p>  人員檔案管理系統(tǒng)是一個典型的信息管理系統(tǒng),本系統(tǒng)是一個為適應(yīng)當(dāng)前各個行業(yè)</p><p>  對人員檔案管理的迫切需求而設(shè)計開發(fā)的系統(tǒng)。系統(tǒng)分為添加、查找、顯示、刪除、顯示、清空、統(tǒng)計以及主函數(shù)等幾大模塊,其中各模塊分別實(shí)現(xiàn)預(yù)定的功能。</p><p>  1.2.2開發(fā)環(huán)境 </p><p

17、>  編程工具: C-Free 5.0 </p><p><b>  機(jī)型:lenovo</b></p><p>  操作系統(tǒng): Microsoft Windows XP Professional </p><p><b>  2. 詳細(xì)設(shè)計</b></p><p><b>

18、  2.1需求描述</b></p><p>  人事檔案管理系統(tǒng)是針對人事處的大量業(yè)務(wù)處理工作用計算機(jī)進(jìn)行全面現(xiàn)代化管理,主要包括人員基本情況管理,提供人員基本信息的添加、查詢、顯示、刪除、清空、統(tǒng)計等幾個方面的功能,以實(shí)現(xiàn)用戶方便的輸入、查詢、統(tǒng)計、打印相關(guān)報表的業(yè)務(wù)需求。</p><p>  2.2.1.1系統(tǒng)管理</p><p>  系統(tǒng)啟動的時候

19、有一個管理員用戶,使用這個用戶登陸以后,可以添加其他用戶,而且每個用戶都可以更改自己的密碼。</p><p><b>  登陸系統(tǒng)</b></p><p>  用戶設(shè)置:設(shè)置用戶密碼,只有管理員才能創(chuàng)建修改刪除其他用戶。</p><p><b>  退出系統(tǒng)</b></p><p>  2.2.1.

20、2人事檔案管理 </p><p>  添加員工信息:對新增員工的基本信息的輸入,包括編號,姓名,性別,年齡,職位,地址,手機(jī)號,民族,政治面貌,婚姻狀況,畢業(yè)院校,身份證號,郵箱,聘用時間和記錄時間。</p><p>  之后可以對員工信息進(jìn)行刪除、瀏覽、繼續(xù)添加、清空、統(tǒng)計等操作。</p><p><b>  2.2功能描述</b></

21、p><p>  人事檔案管理系統(tǒng)主要包含職工個人自然情況,工作情況,簡歷,政治情況等各方面信息。同時還綜合考慮檔案管理工作的性質(zhì),總結(jié)歸納出所需實(shí)現(xiàn)的功能。主要是為人事檔案進(jìn)行服務(wù),對人事的變動、人事資料、以及人事資料的查詢,統(tǒng)計等功能。</p><p>  總體上說具有編輯,查詢,用戶管理等功能。</p><p>  (1)靈活的數(shù)據(jù)記錄編輯功能,可以隨時對記錄進(jìn)行增

22、加,修改,更新,刪除,瀏覽等編輯操作。并將查詢方式有機(jī)溶入編輯界面,可以實(shí)現(xiàn)對某項記錄定位,再進(jìn)行編輯,修改,更新。</p><p>  (2)具備分級用戶權(quán)限管理設(shè)置,以確保檔案的保密性和安全性。</p><p>  (3)具有比較友好的人機(jī)交互界面,各種操作可以在電腦上直觀的界面上通過人機(jī)交互式進(jìn)行。</p><p>  2.3 程序運(yùn)行說明</p>

23、<p><b>  2.3.1總體設(shè)計</b></p><p> ?。?)定義員工(Person)類,其中包括編號,姓名,年齡,職位(“經(jīng)理”、“管理員”、“員工”),地址,手機(jī)號,民族,政治面貌(“群眾”、“團(tuán)員”、“黨員”),婚姻狀況(“已婚”、“未婚”),畢業(yè)院校,身份證號,郵箱,聘用時間和記錄時間。</p><p> ?。?)實(shí)現(xiàn)下面的功能 &l

24、t;/p><p>  a、設(shè)計菜單實(shí)現(xiàn)功能選擇; </p><p>  b、輸入功能:輸入員工的信息,并保存到文件中;</p><p>  c、刪除資料:能夠根據(jù)編號刪除員工的資料;</p><p>  d、查詢功能:能夠根據(jù)編號來查看員工的資料;</p><p>  e、統(tǒng)計功能:能夠統(tǒng)計在職人員、中共黨員、女教職工

25、、高職稱、高學(xué)歷的人數(shù)。</p><p>  f、錯誤提示功能:如果輸入的資料不合法,將會提示錯誤,并給予指導(dǎo)。</p><p>  2.3.2 界面設(shè)計 </p><p>  在用戶界面部分,根據(jù)需求分析結(jié)果,用戶需要一個友善界面。在界面設(shè)計上,應(yīng)</p><p>  做到簡單明了,易于操作,并且要注意到界面的布局,應(yīng)突出的顯示重要以及出錯

26、信息。</p><p>  在界面設(shè)計部分,本系統(tǒng)為用戶提供友好、方便、直觀、簡潔的操作環(huán)境,并且采用柔</p><p>  和的綠色做底色。可供用戶選擇的項目主要有:添加,顯示,查找,刪除,清空等。 </p><p>  2.3.3 設(shè)計內(nèi)容 </p><p><b>  (1)實(shí)現(xiàn)功能 </b></p>

27、<p>  系統(tǒng)主要包括人員檔案的添加、顯示、查詢、刪除、清空等功能。負(fù)責(zé)人員只需進(jìn)</p><p>  入該系統(tǒng)就可以在信息化條件下實(shí)現(xiàn)人員檔案的添加、顯示、查詢、刪除、清空等工作。 </p><p>  (2)概要設(shè)計(涉及類的框圖) </p><p>  符號 名稱 說明

28、 </p><p>  實(shí)體 數(shù)據(jù)的源點(diǎn)/終點(diǎn) </p><p>  輸入/輸出 表示輸入或輸出的報表 </p><p>  處理 能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件 </p><p>  數(shù)據(jù)流 用來

29、連接其他符號,指明數(shù)據(jù)流動方向 </p><p>  存儲 表示任何種類的聯(lián)機(jī)存儲 </p><p><b>  流程圖:</b></p><p>  <1>Person::add()</p><p>  <2>Person::delete()</p>&

30、lt;p>  <3>Person::change()</p><p>  <4>.Person::find()</p><p>  (4)程序注釋與說明</p><p>  /*人事檔案管理系統(tǒng)*/</p><p>  #include<iostream></p><p>  

31、#include<fstream></p><p>  #include<string></p><p>  using namespace std;</p><p>  class person //定義通訊成員類</p><p><b>  {</b></p><

32、;p><b>  public:</b></p><p>  char num[20];//編號</p><p>  char name[30];//姓名</p><p>  char sex[20];//性別</p><p>  char age[20];//年齡</p><p>  ch

33、ar position[20];//職位</p><p>  char address[500];//地址</p><p>  char tel[100];//手機(jī)號</p><p>  char nation[30];//民族</p><p>  char political_status[20];//政治面貌</p><

34、;p>  char marital_status[20];//婚姻狀況</p><p>  char school[200];//畢業(yè)院校</p><p>  char identity[500];//身份證號</p><p>  char email[20];//郵箱</p><p>  char engage_time[100];/

35、/聘用時間</p><p>  char add_time[100];//記錄時間 </p><p>  public: //對其成員函數(shù)的聲明</p><p>  void add_person(int&); //新增通訊成員</p><p>  bool searchnum(); //按編號

36、查找</p><p>  bool searchname(); //按姓名查找</p><p>  void delnum(int&); //按編號刪除</p><p>  void delname(int&); //按姓名刪除</p><p>  void showall(); //統(tǒng)計職員數(shù)</p>

37、<p>  void get_i(); //讀取數(shù)據(jù)文件職員數(shù)</p><p>  friend ostream &operator<<(ostream& out,person& pe);//重載運(yùn)算符"<<"</p><p><b>  };</b></p>

38、<p>  ostream &operator<<(ostream& out,person& pe)//定義重載運(yùn)算符"<<",從而直接輸出類對象</p><p><b>  {</b></p><p>  out<<"編號: "<<pe.n

39、um<<endl;</p><p>  out<<"姓名: "<<pe.name<<endl;</p><p>  out<<"性別: "<<pe.sex<<endl;</p><p>  out<<"年齡:

40、 "<<pe.age<<endl;</p><p>  out<<"職位: "<<pe.position<<endl;</p><p>  out<<"手機(jī)號: "<<pe.tel<<endl;</p><p>

41、;  out<<"民族: "<<pe.nation<<endl;</p><p>  out<<"政治面貌: "<<pe.political_status<<endl;</p><p>  out<<"婚姻狀況:"<<pe.mar

42、ital_status<<endl;</p><p>  out<<"畢業(yè)院校:"<<pe.school<<endl;</p><p>  out<<"身份證號:"<<pe.identity<<endl;</p><p>  out<&l

43、t;"郵箱: "<<pe.email<<endl;</p><p>  out<<"聘用時間: "<<pe.engage_time<<endl;</p><p>  out<<"記錄時間:"<<pe.add_time<<endl;

44、</p><p>  return out;</p><p><b>  }</b></p><p>  int i=0; //定義全局變量,用于記錄人事檔案管理系統(tǒng)中的職員數(shù)</p><p>  void person::get_i()</p><p><b>  {</b>

45、;</p><p>  ifstream file("test.dat",ios::binary|ios::in);//打開用于讀的binary文件</p><p><b>  if(!file)</b></p><p><b>  {</b></p><p>  ofstrea

46、m outfile("test.dat",ios::app|ios::binary);//打開"test.dat"文件,并將指針指向文件尾</p><p>  if(!outfile)</p><p><b>  {</b></p><p>  cerr<<"test.dat 文件打

47、開錯誤!"<<endl;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p>&

48、lt;p>  file.read((char*)(this),sizeof(*this));//讀取一個類對象數(shù)據(jù)放入*this中</p><p>  while(!file.eof())</p><p><b>  {</b></p><p>  i++;//每調(diào)用一次該函數(shù),職員總數(shù)增加1</p><p>  

49、file.read((char*)(this),sizeof(*this));//再讀取一個類對象數(shù)據(jù)放入*this中</p><p><b>  }</b></p><p>  file.close();</p><p><b>  }</b></p><p>  void person::add

50、_person(int& i)//增加人事檔案中職員信息函數(shù)</p><p><b>  {</b></p><p>  string choice="Y";</p><p>  while(choice=="Y"||choice=="y")</p><p&

51、gt;<b>  {</b></p><p>  cout<<"-----新建人事檔案職員信息-----"<<endl;</p><p>  cout<<"請輸入職員的的編號:(1000-9999)"<<endl;</p><p><b>  ci

52、n>>num;</b></p><p>  cout<<"請輸入職員姓名:"<<endl;</p><p>  cin>>name;</p><p>  cout<<"請輸入性別:"<<endl;</p><p><

53、;b>  cin>>sex;</b></p><p>  while((string)sex!="男"&&(string)sex!="女")</p><p><b>  {</b></p><p>  cout<<"您輸入的性別有誤,請核

54、對后再輸入:"<<endl;</p><p><b>  cin>>sex;</b></p><p><b>  }</b></p><p>  cout<<"請輸入年齡:"<<endl;</p><p><b>

55、;  cin>>age;</b></p><p>  cout<<"請輸入該職員的職位:(經(jīng)理,管理員,員工)"<<endl;</p><p>  cin>>position;</p><p>  while((string)position!="經(jīng)理"&&a

56、mp;(string)position!="管理員"&&(string)position!="員工")</p><p><b>  {</b></p><p>  cout<<"您輸入的職工職位有誤,請核對后再輸入:"<<endl;</p><p&g

57、t;  cin>>position;</p><p><b>  }</b></p><p>  cout<<"請輸入該職員的家庭地址:"<<endl;</p><p>  cin>>address;</p><p>  cout<<&quo

58、t;請輸入該職員的民族:"<<endl;</p><p>  cin>>nation;</p><p>  cout<<"請輸入職員的政治面貌:(群眾,團(tuán)員,黨員)"<<endl;</p><p>  cin>>political_status;</p><

59、p>  while((string)political_status!="群眾"&&(string)political_status!="團(tuán)員"&&(string)political_status!="黨員")</p><p><b>  {</b></p><p>  

60、cout<<"您輸入的職工政治面貌有誤,請核對后再輸入:"<<endl;</p><p>  cin>>political_status;</p><p><b>  }</b></p><p>  cout<<"請輸入職員的婚姻狀況(未婚,已婚)"<

61、<endl;</p><p>  cin>>marital_status;</p><p>  while((string)marital_status!="未婚"&&(string)marital_status!="已婚")</p><p><b>  {</b><

62、;/p><p>  cout<<"您輸入的職工的婚姻狀況有誤,請核對后再輸入:"<<endl;</p><p>  cin>>marital_status;</p><p><b>  }</b></p><p>  cout<<"請輸入職員的畢業(yè)

63、學(xué)校:"<<endl;</p><p>  cin>>school;</p><p>  cout<<"請輸入職員的身份證號:"<<endl;</p><p>  cin>>identity;</p><p>  cout<<"請輸

64、入職員的手機(jī)號:"<<endl;</p><p><b>  cin>>tel;</b></p><p>  cout<<"請輸入職員的郵箱:"<<endl;</p><p>  cin>>email;</p><p>  cout

65、<<"請輸入職員的聘用時間:"<<endl;</p><p>  cin>>engage_time;</p><p>  cout<<"請輸入此次記錄的添加時間:"<<endl;</p><p>  cin>>add_time;</p>&l

66、t;p>  cout<<endl;</p><p>  ofstream outfile("test.dat",ios::app|ios::binary);//打開"test.dat"文件,并將指針指向文件尾</p><p>  if(!outfile)</p><p><b>  {</b&

67、gt;</p><p>  cerr<<"test.dat 文件打開錯誤!"<<endl;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  outfile.write((char*)(this

68、),sizeof(*this));//將所輸入的信息追加到文件尾部</p><p>  outfile.close();</p><p>  cout<<"信息建立成功!"<<endl;</p><p>  i++; //每調(diào)用一次該函數(shù),職員總數(shù)增加1</p><p>  cout<&

69、lt;"您還想繼續(xù)添加嗎?(y/n)"<<endl;</p><p>  cin>>choice;</p><p>  while(choice!="Y"&&choice!="y"&&choice!="N"&&choice!="n

70、")</p><p><b>  {</b></p><p>  cout<<"請按要求鍵入(y/n)"<<endl;</p><p>  cin>>choice;</p><p><b>  }</b></p><

71、;p>  if(choice=="N"||choice=="n")</p><p><b>  {</b></p><p>  outfile.close();</p><p><b>  break;</b></p><p><b>  }&

72、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void person::showall()//定義顯示人事檔案管理系統(tǒng)中所有職員信息的函數(shù)</p><p><b>  {</b></p>&

73、lt;p>  if(i==0)//人事管理系統(tǒng)中無此職員,請先增加職員信息信息</p><p>  cout<<"人事管理系統(tǒng)數(shù)據(jù)為空,請先增加職員信息!"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p>

74、;<p>  ifstream infile("test.dat",ios::binary);//打開用于讀的binary文件</p><p>  infile.read((char*)(this),sizeof(*this));//讀取一個類對象數(shù)據(jù)放入*this中</p><p>  cout<<"所有職員的信息如下:"

75、<<endl;</p><p>  while(!infile.eof())//沿未到達(dá)文件尾,繼續(xù)處理</p><p><b>  {</b></p><p>  cout<<(*this);//輸出當(dāng)前對象的各數(shù)據(jù)成員</p><p>  cout<<"*********

76、**********************"<<endl;</p><p>  infile.read((char*)(this),sizeof(*this));//再讀取一個類對象數(shù)據(jù)放入*this中</p><p><b>  }</b></p><p>  infile.close();</p>&l

77、t;p><b>  }</b></p><p><b>  }</b></p><p>  bool person::searchnum()//定義按編號查找職工信息函數(shù)</p><p><b>  {</b></p><p>  char number[10];<

78、/p><p>  cout<<"-----按編號查找信息-----"<<endl;</p><p>  cout<<"請輸入要檢索的編號:(1000-9999)"<<endl;</p><p>  cin>>number;</p><p>  if

79、stream infile("test.dat",ios::binary);</p><p>  infile.read((char*)(this),sizeof(*this));//讀取一個類對象數(shù)據(jù),放入*this中</p><p>  while(!infile.eof())</p><p><b>  {</b>&l

80、t;/p><p>  if(strcmp(num,number)==0)</p><p><b>  {</b></p><p>  cout<<"該編號的職工信息如下:"<<endl;</p><p>  cout<<(*this)<<endl;</

81、p><p>  infile.close();</p><p>  return true;</p><p><b>  }</b></p><p>  infile.read((char*)(this),sizeof(*this));//文件指針沒到達(dá)文件尾,循環(huán)讀取數(shù)據(jù)</p><p><b

82、>  }</b></p><p>  infile.close();</p><p>  cout<<"對不起,沒有該編號的職工信息!"<<endl;</p><p>  return false;</p><p><b>  }</b></p>

83、<p>  bool person::searchname()//定義按姓名查找信息函數(shù)</p><p><b>  {</b></p><p>  char na[20];</p><p>  cout<<"-----按姓名查找信息!-----"<<endl;</p>&l

84、t;p>  cout<<"請輸入要檢索的職工姓名:"<<endl;</p><p><b>  cin>>na;</b></p><p>  ifstream infile("test.dat",ios::binary);</p><p>  infile.rea

85、d((char*)(this),sizeof(*this));//打開文件,讀取數(shù)據(jù)</p><p>  while(!infile.eof())</p><p><b>  {</b></p><p>  if(strcmp(name,na)==0)</p><p><b>  {</b><

86、/p><p>  cout<<"該職工的個人信息如下:"<<endl;</p><p>  cout<<(*this);</p><p>  infile.close();</p><p>  return true;</p><p><b>  }<

87、/b></p><p>  infile.read((char*)(this),sizeof(*this));//文件指針未到文件尾,循環(huán)讀取數(shù)據(jù)</p><p><b>  }</b></p><p>  infile.close();</p><p>  cout<<"對不起,沒有您所要檢

88、索的職工信息!"<<endl;</p><p>  return false;</p><p><b>  } </b></p><p>  void person::delnum(int& i)//定義按編號刪除信息函數(shù)</p><p><b>  {</b><

89、/p><p><b>  char b;</b></p><p>  int delmark=0; //用于標(biāo)記該編號信息是否已找到</p><p>  char delnumber[10];</p><p>  cout<<"-----按編號刪除個人信息-----"<<endl;

90、</p><p>  cout<<"請輸入要刪除的編號:"<<endl;</p><p>  cin>>delnumber;</p><p>  ofstream outfile("tmp.dat",ios::binary);//打開用于寫的二進(jìn)制文件"tmp.dat"&

91、lt;/p><p>  ifstream infile("test.dat",ios::binary);//打開用于讀的二進(jìn)制文件"test.dat"</p><p>  infile.read((char*)(this),sizeof(*this));//從"test.dat"中讀取一個類對象數(shù)據(jù)放入*this中</p>

92、<p>  while(!infile.eof())</p><p><b>  {</b></p><p>  if(strcmp(num,delnumber)==0)</p><p><b>  {</b></p><p>  cout<<"該編號的個人信息如

93、下:"<<endl;</p><p>  cout<<(*this);</p><p>  cout<<endl<<"你確定要刪除該編號的信息?y/n"<<endl;</p><p><b>  cin>>b;</b></p>&

94、lt;p>  if(b=='y'||b=='Y')</p><p><b>  {</b></p><p>  delmark=1; //將刪除標(biāo)記置為1,表示已刪除信息</p><p>  i--; //確定刪除信息,人事檔案管理系統(tǒng)中成員總數(shù)減1</p>&

95、lt;p>  cout<<"信息已刪除!"<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p>  delmark=-1;</p><p><b>  }</b>&

96、lt;/p><p><b>  else</b></p><p>  outfile.write((char*)(this),sizeof(*this));//將讀得的數(shù)據(jù)寫入"tmp.dat"</p><p>  infile.read((char*)(this),sizeof(*this));//再次讀取一個類對象數(shù)據(jù),放于

97、*this中</p><p><b>  }</b></p><p>  infile.close();</p><p>  outfile.close();</p><p>  if(delmark==1)//若找到了刪除對象,就用"tmp.dta"文件內(nèi)容去充當(dāng)"test.dat&quo

98、t;</p><p><b>  {</b></p><p>  ofstream outfile("test.dat",ios::binary);//打開用于寫的二進(jìn)制文件"test.dat"</p><p>  ifstream infile("tmp.dat",ios::bina

99、ry);//打開用于讀的二進(jìn)制文件"tmp.dat"</p><p>  infile.read((char*)(this),sizeof(*this));//讀取一個類對象數(shù)據(jù)放入*this中</p><p>  while(!infile.eof())</p><p><b>  {</b></p><

100、;p>  outfile.write((char*)(this),sizeof(*this));//將從"tmp.dat"中讀取的數(shù)據(jù)寫入" test.dat"中</p><p>  infile.read((char*)(this),sizeof(*this));//再從"tmp.dat"中讀取一個類對象數(shù)據(jù)放入*this中</p>

101、<p><b>  }</b></p><p>  infile.close(); //關(guān)閉文件"tmp.dat"</p><p>  outfile.close();//關(guān)閉文件"test.dat"</p><p><b>  }</b></p><

102、;p>  if(delmark==0)</p><p>  cout<<"欲刪除的職工的編號尚不存在!"<<endl;</p><p><b>  }</b></p><p>  void person::delname(int& i)//定義按姓名刪除信息函數(shù)</p>&

103、lt;p><b>  {</b></p><p><b>  char b;</b></p><p>  int delmark=0; //用于標(biāo)記該編號信息是否已找到</p><p>  char delname[20];</p><p>  cout<<"----

104、-按姓名刪除個人信息-----"<<endl;</p><p>  cout<<"請輸入要刪除的姓名:"<<endl;</p><p>  cin>>delname;</p><p>  ofstream outfile("tmp.dat",ios::binary);/

105、/打開用于寫的二進(jìn)制文件"tmp.dat"</p><p>  ifstream infile("test.dat",ios::binary);//打開用于讀的二進(jìn)制文件"test.dat"</p><p>  infile.read((char*)(this),sizeof(*this));//從"test.dat&q

106、uot;中讀取一個類對象數(shù)據(jù)放入*this中</p><p>  while(!infile.eof())</p><p><b>  {</b></p><p>  if(strcmp(name,delname)==0)</p><p><b>  {</b></p><p&g

107、t;  cout<<"該人的個人信息如下:"<<endl;</p><p>  cout<<(*this);</p><p>  cout<<endl<<"你確定要刪除該編號的信息?y/n"<<endl;</p><p><b>  cin>

108、;>b;</b></p><p>  if(b=='y'||b=='Y')</p><p><b>  {</b></p><p>  delmark=1; //將刪除標(biāo)記置為1,表示已刪除信息</p><p>  i--; //確定刪除信息,人事檔案

109、管理系統(tǒng)中成員總數(shù)減1</p><p>  cout<<"信息已刪除!"<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p>  delmark=-1;</p><p>

110、;<b>  }</b></p><p><b>  else</b></p><p>  outfile.write((char*)(this),sizeof(*this));//將讀得的數(shù)據(jù)寫入"tmp.dat"</p><p>  infile.read((char*)(this),sizeof(

111、*this));//再次讀取一個類對象數(shù)據(jù),放于*this中</p><p><b>  }</b></p><p>  outfile.close();</p><p>  infile.close();</p><p>  if(delmark==1)//若找到了刪除對象,就用"tmp.dta"文

112、件內(nèi)容去充當(dāng)"test.dat"</p><p><b>  {</b></p><p>  ofstream outfile("test.dat",ios::binary);//打開用于寫的二進(jìn)制文件"test.dat"</p><p>  ifstream infile("

113、;tmp.dat",ios::binary);//打開用于讀的二進(jìn)制文件"tmp.dat"</p><p>  infile.read((char*)(this),sizeof(*this));//讀取一個類對象數(shù)據(jù)放入*this中</p><p>  while(!infile.eof())</p><p><b>  {&

114、lt;/b></p><p>  outfile.write((char*)(this),sizeof(*this));//將從"tmp.dat"中讀取的數(shù)據(jù)寫入" test.dat"中</p><p>  infile.read((char*)(this),sizeof(*this));//再從"tmp.dat"中讀取一個

115、類對象數(shù)據(jù)放入*this中</p><p><b>  }</b></p><p>  infile.close();//關(guān)閉文件"tmp.dat"</p><p>  outfile.close();//關(guān)閉文件"test.dat"</p><p><b>  }<

116、;/b></p><p>  if(delmark==0)</p><p>  cout<<"欲刪除的職員姓名不存在!"<<endl;</p><p><b>  }</b></p><p>  int delall(int& i)//定義清空人事管理系統(tǒng)數(shù)據(jù)的

117、函數(shù)</p><p><b>  {</b></p><p><b>  char b;</b></p><p>  cout<<"你真的要清空人事管理系統(tǒng)數(shù)據(jù)嗎?y/n"<<endl;</p><p><b>  cin>>b;&l

118、t;/b></p><p>  if(b=='y'||b=='Y')</p><p><b>  {</b></p><p>  ofstream outfile("test.dat",ios::trunc);//刪除文件"test.dat"中所有數(shù)據(jù)</p&g

119、t;<p>  i=0; //將人事管理系統(tǒng)中職員數(shù)置為0</p><p>  cout<<"人事檔案管理系統(tǒng)數(shù)據(jù)已清空!"<<endl;</p><p><b>  }</b></p><p><b>  return i;</b></p><

120、p><b>  }</b></p><p>  void total()//定義輸出人事檔案管理系統(tǒng)中職員數(shù)的函數(shù)</p><p><b>  {</b></p><p>  cout<<"人事檔案管理系統(tǒng)中的職員總數(shù)為:"<<ends<<ends;</p

121、><p>  cout<<i<<endl;</p><p><b>  }</b></p><p>  void menu() //定義菜單函數(shù)</p><p><b>  { </b></p><p>  cout<<endl; <

122、;/p><p>  cout<< "---------------------------人事檔案管理系統(tǒng)------------------------------------"<<endl<<endl; </p><p>  cout<< "-------------------------此系統(tǒng)由【李林】完成-

123、-----------------------"<<endl<<endl; </p><p>  cout<<"\t\t\t 1:添加職員具體信息"<<endl; </p><p>  cout<<"\t\t\t 2:按姓名查找職員信息"<<endl; <

124、/p><p>  cout<<"\t\t\t 3:按編號查找職員信息"<<endl; </p><p>  cout<<"\t\t\t 4:按姓名刪除職員信息"<<endl; </p><p>  cout<<"\t\t\t 5:按編號刪除職員信息"

125、<<endl; </p><p>  cout<<"\t\t\t 6:顯示人事管理系統(tǒng)中所有職員信息"<<endl; </p><p>  cout<<"\t\t\t 7:清空人事管理系統(tǒng)中所有職員信息"<<endl;</p><p>  cout<<&q

126、uot;\t\t\t 8:統(tǒng)計人事管理系統(tǒng)中的職員總數(shù)"<<endl;</p><p>  cout<<"\t\t\t 0:退出人事檔案管理系統(tǒng)"<<endl; </p><p>  cout<<"****************************************************

127、****************************"<<endl; </p><p><b>  } </b></p><p>  void password()</p><p><b>  {</b></p><p>  string password;</p&

128、gt;<p>  int j=1; //密碼出錯次數(shù)</p><p>  cout<<"欲使用本系統(tǒng),請輸入本系統(tǒng)的密碼:"<<endl;</p><p>  cin>>password;</p><p>  while(password!="lilin"&&j

129、<=3)</p><p><b>  {</b></p><p>  if(j==3&&password!="lilin")</p><p><b>  {</b></p><p>  cout<<"您連續(xù)三次輸入密碼有誤,系統(tǒng)自動退出

130、"<<endl;</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  cout<<"您輸入的密碼有誤,請再次輸入:"<<endl;</p><p>  cin>>

131、;password;</p><p><b>  j++;</b></p><p><b>  }</b></p><p>  if(password=="lilin"&&j<=3)</p><p><b>  {</b></p&

132、gt;<p>  cout<<endl<<"歡迎進(jìn)入人事檔案管理系統(tǒng)\n請根據(jù)系統(tǒng)功能列表選擇相應(yīng)的功能(請輸入選項對應(yīng)的數(shù)字)"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void

133、 manage()//定義控制函數(shù)</p><p><b>  { </b></p><p>  person per;</p><p>  per.get_i();</p><p>  int choice,k=1;</p><p><b>  menu();</b>&l

134、t;/p><p>  password();</p><p><b>  while(k)</b></p><p><b>  {</b></p><p>  cin>>choice;</p><p>  switch(choice) </p><

135、;p><b>  { </b></p><p><b>  case 1:</b></p><p>  per.add_person(i);//調(diào)用增加人事檔案中職員信息函數(shù)</p><p><b>  break; </b></p><p><b>  

136、case 2:</b></p><p>  per.searchname();//調(diào)用按姓名查找職工信息函數(shù)</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  per.searchnum();//調(diào)用按編號查找職工信

137、息函數(shù)</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  per.delname(i);//調(diào)用按姓名刪除職工信息函數(shù)</p><p><b>  break;</b></p><p&g

138、t;<b>  case 5:</b></p><p>  per.delnum(i);//調(diào)用按編號刪除職工信息函數(shù)</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  per.showall();//調(diào)用

139、顯示人事檔案管理系統(tǒng)中所有職員信息的函數(shù)</p><p><b>  break;</b></p><p><b>  case 7:</b></p><p>  delall(i);//調(diào)用清空人事檔案管理系統(tǒng)中所有數(shù)據(jù)的函數(shù)</p><p><b>  break;</b>

140、</p><p><b>  case 8:</b></p><p>  total();//調(diào)用輸出人事檔案管理系統(tǒng)中職員數(shù)的函數(shù)</p><p><b>  break;</b></p><p><b>  case 0:</b></p><p> 

141、 cout<<endl<<"謝謝本次使用由 【李林】開發(fā)的人事檔案管理系統(tǒng),再見!"<<endl<<endl;</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  defau

142、lt:</b></p><p>  cout<<"您輸入的選項有錯,請重新選擇!";</p><p><b>  }</b></p><p><b>  if(k!=0)</b></p><p><b>  {</b></p&g

143、t;<p><b>  menu();</b></p><p>  cout<<"請根據(jù)系統(tǒng)功能列表選擇相應(yīng)的功能(請輸入選項對應(yīng)的數(shù)字)"<<endl;</p><p><b>  }</b></p><p><b>  }</b></

144、p><p><b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  system("color");//設(shè)置背景和前景顏色 </p><p><b>  manage();<

145、/b></p><p><b>  }</b></p><p>  2.3.4 程序運(yùn)行具體說明</p><p><b> ?。?)涉及知識點(diǎn) </b></p><p>  類封裝、面向?qū)ο蟪绦蛟O(shè)計、數(shù)組的應(yīng)用、循環(huán)語句的使用、過程化設(shè)計的思想等。 </p><p> 

146、 (2)系統(tǒng)運(yùn)行(主要運(yùn)行界面抓圖) </p><p>  <1>編譯首頁截圖: </p><p>  <2>輸入系統(tǒng)密碼(lilin)之后的頁面截圖:</p><p>  <3>選擇功能列表1(添加職工具體信息)的頁面截圖: </p><p>  <4>

溫馨提示

  • 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

提交評論