

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人事檔案管理課程設(shè)計報告
- 人事檔案管理系統(tǒng)課程設(shè)計
- 人事檔案管理系統(tǒng)課程設(shè)計
- 企業(yè)人事檔案管理系統(tǒng)課程設(shè)計報告
- 人事檔案管理
- 淺論人事檔案管理
- 淺談人事檔案管理
- java人事檔案管理
- 淺論人事檔案管理
- 淺談人事檔案管理
- 人事檔案管理體會
- 淺議人事檔案管理
- 軟件工程概論課程設(shè)計---企業(yè)人事檔案管理系統(tǒng)
- 企業(yè)人事檔案管理表格
- 淺談企業(yè)人事檔案管理
- 人事檔案管理研究探討
- 人事檔案管理研究.pdf
- 人事檔案管理問題研究
- 人事檔案管理辦法
- 人事檔案管理系統(tǒng)畢業(yè)設(shè)計
評論
0/150
提交評論