版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p><b> 目 錄</b></p><p><b> 一 概述2</b></p><p> 二 總體方案設(shè)計(jì)3</p><p><b> 三 詳細(xì)設(shè)計(jì)3</b></p
2、><p><b> 程序流程圖7</b></p><p> 四 程序的調(diào)試與運(yùn)行結(jié)果說(shuō)明8</p><p><b> 4.1調(diào)試方法8</b></p><p> 4.2運(yùn)行的主要功能界面及分析9</p><p> 4.3測(cè)試中的問(wèn)題12</p>
3、<p> 五 課程設(shè)計(jì)總結(jié)13</p><p> 5.1程序的效果描述13</p><p> 5.2優(yōu)點(diǎn)與不足13</p><p> 5.3個(gè)人體會(huì)13</p><p><b> 參考文獻(xiàn)14</b></p><p><b> 附錄:14</b&g
4、t;</p><p><b> 一 概述</b></p><p><b> 課程設(shè)計(jì)的目的</b></p><p> 1.理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方法。</p><p> 2.培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題的能力。</p><p> 3.培
5、養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。</p><p> 4.掌握從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問(wèn)題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。</p><p><b> 課程設(shè)計(jì)的要求</b></p><p><b> 1.需求
6、分析:</b></p><p> ①能夠輸入職工的綜合情況的輸入、修改以及刪除;</p><p> ?、谀軌?qū)崿F(xiàn)對(duì)職工信息的瀏覽;</p><p> ?、勰軌?qū)崿F(xiàn)對(duì)職工進(jìn)行查詢;</p><p> ④設(shè)計(jì)系統(tǒng)封面并由計(jì)時(shí)器控制;</p><p><b> 系統(tǒng)性能要求:</b>&
7、lt;/p><p><b> ?、傧到y(tǒng)安全、可靠;</b></p><p><b> ②功能齊全;</b></p><p> ③操作方便、界面友好;</p><p><b> ?、芤子诰S護(hù)和擴(kuò)充。</b></p><p> 系統(tǒng)的功能分析: 資料維護(hù):
8、系統(tǒng)維護(hù)包括對(duì)各種表記錄的修改、刪除、添加等操作。</p><p> 資料維護(hù):對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽。</p><p> 系統(tǒng)查詢:可以按職工編號(hào)、姓名等相關(guān)信息進(jìn)行詳細(xì)或模糊查詢。</p><p> 報(bào)表統(tǒng)計(jì):包括統(tǒng)計(jì)職工編號(hào)、職工姓名、職工性別、所在部門、職工年齡、工作日期、基本工資、職稱、職務(wù)和簡(jiǎn)歷等字段。</p><p>
9、 其它操作:系統(tǒng)封面、計(jì)時(shí)器控制與人性化提示信息。</p><p><b> 系統(tǒng)功能模塊</b></p><p> 人事管理系統(tǒng)有:數(shù)據(jù)查找與瀏覽、數(shù)據(jù)修改、報(bào)表顯示和系統(tǒng)封面構(gòu)成。</p><p><b> 5.功能的實(shí)現(xiàn):</b></p><p> 1“數(shù)據(jù)查找與瀏覽”模塊:</
10、p><p><b> (1)數(shù)據(jù)查找:</b></p><p> 對(duì)職工的編號(hào)、職工姓名、職工性別、所在部門、職工年齡、工作日期、</p><p> 基本工資、職稱、職務(wù)和簡(jiǎn)歷等字段進(jìn)行精確或模糊查找。</p><p> (2)數(shù)據(jù)瀏覽:可以對(duì)數(shù)據(jù)表中的數(shù)據(jù)實(shí)現(xiàn),上一項(xiàng)、下一項(xiàng)、首相、尾項(xiàng)等操作。</p>
11、<p> ?。?)其他信息:設(shè)置字體、顏色屬性和一些提示信息。</p><p> 2“數(shù)據(jù)修改”模塊:</p><p> ?。?)添加數(shù)據(jù):增加一個(gè)新的記錄</p><p> (2)修改數(shù)據(jù):修改原有記錄。</p><p><b> 二 總體方案設(shè)計(jì)</b></p><p>
12、 整體設(shè)計(jì)為數(shù)據(jù)輸入模塊、數(shù)據(jù)添加模塊、數(shù)據(jù)刪除模塊、數(shù)據(jù)查詢模塊、數(shù)據(jù)修改模塊、數(shù)據(jù)統(tǒng)計(jì)模塊、數(shù)據(jù)排序模塊。</p><p> 數(shù)據(jù)輸入模塊把員工信息逐一寫入人事檔案文件。數(shù)據(jù)添加模塊用追加的方式把新增員工信息寫入人事檔案文件。數(shù)據(jù)刪除模塊根據(jù)人員編號(hào)查找要?jiǎng)h除的人員,從文件中讀一條記錄,查看編號(hào)是否要?jiǎng)h除,如果是,則舍棄。數(shù)據(jù)查詢模塊把編號(hào)和姓名作為查詢字段,用基本查找算法查找人事檔案文件,把符合查找要求的
13、記錄輸出。數(shù)據(jù)輸出模塊通過(guò)菜單選擇年齡或者來(lái)時(shí)時(shí)間,把數(shù)據(jù)從文件中讀出來(lái),任意選擇一種排序算法對(duì)記錄進(jìn)行排序,輸出排序結(jié)果。這些模塊中我負(fù)責(zé)數(shù)據(jù)查詢和刪除兩個(gè)部分。</p><p><b> 三 詳細(xì)設(shè)計(jì)</b></p><p> 數(shù)據(jù)結(jié)構(gòu)采用成員類:</p><p> class person //定義通訊成員類</p
14、><p><b> {</b></p><p><b> public:</b></p><p> char num[20];//編號(hào)</p><p> char name[30];//姓名</p><p> char sex[20];//性別</p>&
15、lt;p> char age[20];//年齡</p><p> char position[20];//職位</p><p> char address[500];//地址</p><p> char tel[100];//手機(jī)號(hào)</p><p> char nation[30];//民族</p><p&
16、gt; char political_status[20];//政治面貌</p><p> char marital_status[20];//婚姻狀況</p><p> char school[200];//畢業(yè)院校</p><p> char identity[500];//身份證號(hào)</p><p> char email[20
17、];//郵箱</p><p> P ublic: //對(duì)其成員函數(shù)的聲明</p><p> void add_person(int&); //新增通訊成員</p><p> bool searchnum(); //按編號(hào)查找</p><p> bool searchname(); //
18、按姓名查找</p><p> void delnum(int&); //按編號(hào)刪除</p><p> void delname(int&); //按姓名刪除</p><p> void showall(); //統(tǒng)計(jì)職員數(shù)</p><p> void get_i(); //讀取數(shù)據(jù)文件職員數(shù)<
19、;/p><p> friend ostream &operator<<(ostream& out,person& pe);//重載運(yùn)算符"<<"</p><p><b> };</b></p><p><b> 數(shù)據(jù)輸入模塊</b></p>
20、<p> 把員工信息逐一寫入人事檔案文件。</p><p><b> 數(shù)據(jù)添加模塊</b></p><p> 用追加的方式把新增員工信息寫入人事檔案文件。</p><p> cout<<"請(qǐng)輸入職員的的編號(hào):(1000-9999)"<<endl;</p><p&
21、gt;<b> cin>>num;</b></p><p> cout<<"請(qǐng)輸入職員姓名:"<<endl;</p><p> cin>>name;</p><p> cout<<"請(qǐng)輸入性別:"<<endl;</p&g
22、t;<p><b> cin>>sex;</b></p><p> while((string)sex!="男"&&(string)sex!="女")</p><p><b> {</b></p><p> cout<<&
23、quot;您輸入的性別有誤,請(qǐng)核對(duì)后再輸入:"<<endl;</p><p><b> cin>>sex;</b></p><p><b> }</b></p><p> cout<<"請(qǐng)輸入年齡:"<<endl;</p>&
24、lt;p><b> cin>>age;</b></p><p> cout<<"請(qǐng)輸入該職員的職位:(經(jīng)理,管理員,員工)"<<endl;</p><p> cin>>position;</p><p> while((string)position!="
25、;經(jīng)理"&&(string)position!="管理員"&&(string)position!="員工")</p><p><b> {</b></p><p> cout<<"您輸入的職工職位有誤,請(qǐng)核對(duì)后再輸入:"<<endl;<
26、;/p><p> cin>>position;</p><p><b> }</b></p><p> cout<<"請(qǐng)輸入該職員的家庭地址:"<<endl;</p><p> cin>>address;</p><p>
27、cout<<"請(qǐng)輸入該職員的民族:"<<endl;</p><p> cin>>nation;</p><p> cout<<"請(qǐng)輸入職員的政治面貌:(群眾,團(tuán)員,黨員)"<<endl;</p><p> cin>>political_status;
28、</p><p> while((string)political_status!="群眾"&&(string)political_status!="團(tuán)員"&&(string)political_status!="黨員")</p><p><b> {</b></p&
29、gt;<p> cout<<"您輸入的職工政治面貌有誤,請(qǐng)核對(duì)后再輸入:"<<endl;</p><p> cin>>political_status;</p><p><b> }</b></p><p> cout<<"請(qǐng)輸入職員的婚姻狀況(
30、未婚,已婚)"<<endl;</p><p> cin>>marital_status;</p><p> while((string)marital_status!="未婚"&&(string)marital_status!="已婚")</p><p><b>
31、 {</b></p><p> cout<<"您輸入的職工的婚姻狀況有誤,請(qǐng)核對(duì)后再輸入:"<<endl;</p><p> cin>>marital_status;</p><p><b> }</b></p><p> cout<&l
32、t;"請(qǐng)輸入職員的畢業(yè)學(xué)校:"<<endl;</p><p> cin>>school;</p><p> cout<<"請(qǐng)輸入職員的身份證號(hào):"<<endl;</p><p> cin>>identity;</p><p> cout
33、<<"請(qǐng)輸入職員的手機(jī)號(hào):"<<endl;</p><p><b> cin>>tel;</b></p><p> cout<<"請(qǐng)輸入職員的郵箱:"<<endl;</p><p> cin>>email;</p>
34、<p> cout<<"請(qǐng)輸入職員的聘用時(shí)間:"<<endl;</p><p> cin>>engage_time;</p><p> cout<<"請(qǐng)輸入此次記錄的添加時(shí)間:"<<endl;</p><p> cin>>add_tim
35、e;</p><p> cout<<endl;</p><p> ofstream outfile("test.dat",ios::app|ios::binary);//打開(kāi)"test.dat"文件,并將指針指向文件尾</p><p><b> (3)數(shù)據(jù)刪除模塊</b></p&g
36、t;<p> 根據(jù)人員編號(hào)查找要?jiǎng)h除的人員,從文件中讀一條記錄,查看編號(hào)是否要?jiǎng)h除,如果是,則舍棄</p><p> 如:"test.dat"</p><p><b> {</b></p><p> ofstream outfile("test.dat",ios::binary);/
37、/打開(kāi)用于寫的二進(jìn)制文件"test.dat"</p><p> ifstream infile("tmp.dat",ios::binary);//打開(kāi)用于讀的二進(jìn)制文件"tmp.dat"</p><p> infile.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中&
38、lt;/p><p> while(!infile.eof())</p><p><b> {</b></p><p> outfile.write((char*)(this),sizeof(*this));//將從"tmp.dat"中讀取的數(shù)據(jù)寫入" test.dat"中</p><
39、p> infile.read((char*)(this),sizeof(*this));//再?gòu)?quot;tmp.dat"中讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p><b> }</b></p><p> 不再寫入文件;否則重新寫入文件。</p><p><b> ?。?)數(shù)據(jù)查詢模塊</b&g
40、t;</p><p> 把編號(hào)和姓名作為查詢字段,用基本查找算法查找人事檔案文件,把符合查找要求的記錄輸出。</p><p><b> (5)數(shù)據(jù)修改模塊</b></p><p> 查找要修改的記錄,修改之。先讀記錄,若是要修改的記錄,則修改信息,把修改后的信息寫入文件;否則直接寫入文件。例如按姓名修改:if(delmark==1)//若
41、找到了刪除對(duì)象,就用"tmp.dta"文件內(nèi)容去充當(dāng)</p><p><b> (6)數(shù)據(jù)輸出模塊</b></p><p> 通過(guò)菜單選擇年齡或者來(lái)時(shí)時(shí)間,把數(shù)據(jù)從文件中讀出來(lái),任意選擇一種排序算法對(duì)記錄進(jìn)行排序,輸出排序結(jié)果。</p><p> if(i==0)//人事管理系統(tǒng)中無(wú)此職員,請(qǐng)先增加職員信息信息<
42、/p><p> cout<<"人事管理系統(tǒng)數(shù)據(jù)為空,請(qǐng)先增加職員信息!"<<endl;</p><p><b> else</b></p><p><b> {</b></p><p> ifstream infile("test.dat&q
43、uot;,ios::binary);//打開(kāi)用于讀的binary文件</p><p> infile.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p> cout<<"所有職員的信息如下:"<<endl;</p><p> while(!inf
44、ile.eof())//沿未到達(dá)文件尾,繼續(xù)處理</p><p><b> {</b></p><p> cout<<(*this);//輸出當(dāng)前對(duì)象的各數(shù)據(jù)成員</p><p><b> 程序流程圖</b></p><p><b> 4.1具體函數(shù)</b>
45、</p><p> per.get_i();</p><p><b> menu();</b></p><p> password();</p><p> per.add_person();//調(diào)用增加人事檔案中職員信息函數(shù)</p><p> per.searchname();//調(diào)用按
46、姓名查找職工信息函數(shù)</p><p> per.searchnum();//調(diào)用按編號(hào)查找職工信息函數(shù)</p><p> per.delname();//調(diào)用按姓名刪除職工信息函數(shù)</p><p> per.delnum();//調(diào)用按編號(hào)刪除職工信息函數(shù)</p><p> per.showall();//調(diào)用顯示人事檔案管理系統(tǒng)中所
47、有職員信息的函數(shù)</p><p> delall();//調(diào)用清空人事檔案管理系統(tǒng)中所有數(shù)據(jù)的函數(shù)</p><p> total();//調(diào)用輸出人事檔案管理系統(tǒng)中職員數(shù)的函數(shù)</p><p> 四 程序的調(diào)試與運(yùn)行結(jié)果說(shuō)明</p><p><b> 4.1調(diào)試方法</b></p><p>
48、; 將已經(jīng)編好的程序放在VC++6.0的環(huán)境中進(jìn)行調(diào)試與測(cè)試,發(fā)現(xiàn)程序中的錯(cuò)誤,在提示的情況下進(jìn)行改正。</p><p> 4.2運(yùn)行的主要功能界面及分析</p><p><b> (1)、菜單界面</b></p><p><b> 圖2-1菜單</b></p><p> (2)、輸入信息
49、界面</p><p><b> 圖2-2 信息輸入</b></p><p> 、按姓名查找信息界面</p><p><b> 圖2-3 姓名查找</b></p><p> ?。?)、編號(hào)查找信息界面</p><p> 圖2-4 編號(hào)查找信息</p>&
50、lt;p> ?。?)、按姓名刪除信息界面</p><p> 2-5 按姓名刪除信息</p><p> ?。?)、按編號(hào)刪除信息界面</p><p> 2-6按編號(hào)刪除信息</p><p> ?。?)、顯示人事檔案管理系統(tǒng)中所有職員信息界面</p><p> 圖2-7(由于前面兩步將系統(tǒng)中唯有的2租數(shù)據(jù)刪除了
51、 需哦億顯示員工信息需重新添加新的員工信息</p><p> (8)統(tǒng)計(jì)人事管理系統(tǒng)中職員人數(shù)</p><p><b> 圖2-8 </b></p><p> ?。?)、清空人事管理系統(tǒng)中的數(shù)據(jù)</p><p><b> 圖2-9 </b></p><p><b
52、> (10)、退出界面</b></p><p> 圖2-10 退出程序</p><p> (11)、程序運(yùn)行分析</p><p> 測(cè)試是將在屏幕上出來(lái)有關(guān)人事檔案需要填寫的東西,輸入需要填寫的信息,然后逐步操作添加信息,刪除信息,查詢信息,修改信息等操作來(lái)實(shí)現(xiàn)程序的功能。</p><p><b> 4.
53、3測(cè)試中的問(wèn)題</b></p><p> 注意聲明函數(shù)時(shí),各函數(shù)之間的調(diào)用關(guān)系。</p><p><b> 五 課程設(shè)計(jì)總結(jié)</b></p><p> 5.1程序的效果描述</p><p> 該程序主要實(shí)現(xiàn)人事管理的功能。利用14個(gè)函數(shù)的組合組成程序,然后通過(guò)該程序輸入人事信息,然后利用各個(gè)函數(shù)的調(diào)用
54、,實(shí)現(xiàn)信息輸入,信息添加,信息查詢,信息刪除,信息修改等功能。</p><p><b> 5.2優(yōu)點(diǎn)與不足</b></p><p> 優(yōu)點(diǎn):使用結(jié)構(gòu)使程序的輸入輸出更簡(jiǎn)潔</p><p> 使用函數(shù)可以使程序更簡(jiǎn)便;</p><p> 不足:輸入的內(nèi)容比較多;</p><p> 用文件儲(chǔ)
55、存信息不能用結(jié)構(gòu)輸入;</p><p> 讀取文件中的信息也不能用結(jié)構(gòu)讀?。?lt;/p><p> 程序比較大,各部分之間的關(guān)系繁瑣;</p><p><b> 5.3個(gè)人體會(huì)</b></p><p> 學(xué)習(xí)C++要切忌浮躁,要明白欲速則不達(dá)。如果想要學(xué)好C++就要多看多寫,而最關(guān)鍵的是要上課聽(tīng)老師分析。</p
56、><p> 通過(guò)一個(gè)學(xué)期的學(xué)習(xí),我更了解計(jì)算機(jī)編程了,同時(shí)也更喜歡計(jì)算機(jī)了。并且我也知道了如何學(xué)好C++,學(xué)C++靠的不是上課的那點(diǎn)兒時(shí)間,而是課前的預(yù)習(xí)工作及課后的復(fù)習(xí)工作,還有對(duì)寫程序的及時(shí)練習(xí),練習(xí)寫程序不僅是對(duì)知識(shí)的復(fù)習(xí)也是對(duì)知識(shí)的熟練從而也能更深刻的理解程序,理解C++。我們學(xué)習(xí)C++不僅要看課本,更重要的是看學(xué)習(xí)資料,從而使掌握的知識(shí)更廣闊。只有擁有豐富的知識(shí)以及掌握對(duì)編程的熟練度,才能對(duì)程序靈活書(shū)寫。
57、</p><p> C++是比C語(yǔ)言更高級(jí)的一門語(yǔ)言,我們也可以通過(guò)學(xué)習(xí)C語(yǔ)言來(lái)學(xué)習(xí)C++,這樣就可以減少學(xué)習(xí)中遇到的困難。想要學(xué)好C++,讓我們一起努力吧。</p><p><b> 參考文獻(xiàn)</b></p><p> 【1】譚浩強(qiáng),C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版),北京,清華大學(xué)出版社,2000年9月。</p><
58、;p> 【2】《C++程序設(shè)計(jì)語(yǔ)言(特別版)》,機(jī)械工業(yè)出版社。</p><p> 【3】袁志祥、秦鋒主編 ,《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)例題詳解與課程設(shè)計(jì)指導(dǎo)》第二版 中國(guó)科學(xué)技術(shù)大學(xué)出版社出版 </p><p><b> 附錄:</b></p><p> /*人事檔案管理系統(tǒng)*/</p><p> #inc
59、lude<iostream></p><p> #include<fstream></p><p> #include<string></p><p> using namespace std;</p><p> class person //定義通訊成員類</p><
60、;p><b> {</b></p><p><b> public:</b></p><p> char num[20];//編號(hào)</p><p> char name[30];//姓名</p><p> char sex[20];//性別</p><p>
61、 char age[20];//年齡</p><p> char position[20];//職位</p><p> char address[500];//地址</p><p> char tel[100];//手機(jī)號(hào)</p><p> char nation[30];//民族</p><p> char
62、 political_status[20];//政治面貌</p><p> char marital_status[20];//婚姻狀況</p><p> char school[200];//畢業(yè)院校</p><p> char identity[500];//身份證號(hào)</p><p> char email[20];//郵箱<
63、;/p><p> char engage_time[100];//聘用時(shí)間</p><p> char add_time[100];//記錄時(shí)間 </p><p> public: //對(duì)其成員函數(shù)的聲明</p><p> void add_person(int&); //新增通訊成員</
64、p><p> bool searchnum(); //按編號(hào)查找</p><p> bool searchname(); //按姓名查找</p><p> void delnum(int&); //按編號(hào)刪除</p><p> void delname(int&); //按姓名刪除</p><p
65、> void showall(); //統(tǒng)計(jì)職員數(shù)</p><p> void get_i(); //讀取數(shù)據(jù)文件職員數(shù)</p><p> friend ostream &operator<<(ostream& out,person& pe);//重載運(yùn)算符"<<"</p>&
66、lt;p><b> };</b></p><p> ostream &operator<<(ostream& out,person& pe)//定義重載運(yùn)算符"<<",從而直接輸出類對(duì)象</p><p><b> {</b></p><p>
67、 out<<"編號(hào): "<<pe.num<<endl;</p><p> out<<"姓名: "<<pe.name<<endl;</p><p> out<<"性別: "<<pe.sex<<endl;&
68、lt;/p><p> out<<"年齡: "<<pe.age<<endl;</p><p> out<<"職位: "<<pe.position<<endl;</p><p> out<<"手機(jī)號(hào): "<
69、<pe.tel<<endl;</p><p> out<<"民族: "<<pe.nation<<endl;</p><p> out<<"政治面貌: "<<pe.political_status<<endl;</p><p>
70、 out<<"婚姻狀況:"<<pe.marital_status<<endl;</p><p> out<<"畢業(yè)院校:"<<pe.school<<endl;</p><p> out<<"身份證號(hào):"<<pe.identity&l
71、t;<endl;</p><p> out<<"郵箱: "<<pe.email<<endl;</p><p> out<<"聘用時(shí)間: "<<pe.engage_time<<endl;</p><p> out<<"
72、記錄時(shí)間:"<<pe.add_time<<endl;</p><p> return out;</p><p><b> }</b></p><p> int i=0; //定義全局變量,用于記錄人事檔案管理系統(tǒng)中的職員數(shù)</p><p> void person::get_i(
73、)</p><p><b> {</b></p><p> ifstream file("test.dat",ios::binary|ios::in);//打開(kāi)用于讀的binary文件</p><p><b> if(!file)</b></p><p><b>
74、 {</b></p><p> ofstream outfile("test.dat",ios::app|ios::binary);//打開(kāi)"test.dat"文件,并將指針指向文件尾</p><p> if(!outfile)</p><p><b> {</b></p>
75、<p> cerr<<"test.dat 文件打開(kāi)錯(cuò)誤!"<<endl;</p><p><b> return;</b></p><p><b> }</b></p><p><b> return;</b></p>&
76、lt;p><b> }</b></p><p> file.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p> while(!file.eof())</p><p><b> {</b></p><p> i+
77、+;//每調(diào)用一次該函數(shù),職員總數(shù)增加1</p><p> file.read((char*)(this),sizeof(*this));//再讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p><b> }</b></p><p> file.close();</p><p><b> }</b
78、></p><p> void person::add_person(int& i)//增加人事檔案中職員信息函數(shù)</p><p><b> {</b></p><p> string choice="Y";</p><p> while(choice=="Y"
79、;||choice=="y")</p><p><b> {</b></p><p> cout<<"-----新建人事檔案職員信息-----"<<endl;</p><p> cout<<"請(qǐng)輸入職員的的編號(hào):(1000-9999)"<
80、<endl;</p><p><b> cin>>num;</b></p><p> cout<<"請(qǐng)輸入職員姓名:"<<endl;</p><p> cin>>name;</p><p> cout<<"請(qǐng)輸入性別:
81、"<<endl;</p><p><b> cin>>sex;</b></p><p> while((string)sex!="男"&&(string)sex!="女")</p><p><b> {</b></p>
82、;<p> cout<<"您輸入的性別有誤,請(qǐng)核對(duì)后再輸入:"<<endl;</p><p><b> cin>>sex;</b></p><p><b> }</b></p><p> cout<<"請(qǐng)輸入年齡:"
83、;<<endl;</p><p><b> cin>>age;</b></p><p> cout<<"請(qǐng)輸入該職員的職位:(經(jīng)理,管理員,員工)"<<endl;</p><p> cin>>position;</p><p> wh
84、ile((string)position!="經(jīng)理"&&(string)position!="管理員"&&(string)position!="員工")</p><p><b> {</b></p><p> cout<<"您輸入的職工職位有誤,請(qǐng)核對(duì)
85、后再輸入:"<<endl;</p><p> cin>>position;</p><p><b> }</b></p><p> cout<<"請(qǐng)輸入該職員的家庭地址:"<<endl;</p><p> cin>>addr
86、ess;</p><p> cout<<"請(qǐng)輸入該職員的民族:"<<endl;</p><p> cin>>nation;</p><p> cout<<"請(qǐng)輸入職員的政治面貌:(群眾,團(tuán)員,黨員)"<<endl;</p><p> c
87、in>>political_status;</p><p> while((string)political_status!="群眾"&&(string)political_status!="團(tuán)員"&&(string)political_status!="黨員")</p><p>&l
88、t;b> {</b></p><p> cout<<"您輸入的職工政治面貌有誤,請(qǐng)核對(duì)后再輸入:"<<endl;</p><p> cin>>political_status;</p><p><b> }</b></p><p> co
89、ut<<"請(qǐng)輸入職員的婚姻狀況(未婚,已婚)"<<endl;</p><p> cin>>marital_status;</p><p> while((string)marital_status!="未婚"&&(string)marital_status!="已婚")<
90、;/p><p><b> {</b></p><p> cout<<"您輸入的職工的婚姻狀況有誤,請(qǐng)核對(duì)后再輸入:"<<endl;</p><p> cin>>marital_status;</p><p><b> }</b></p
91、><p> cout<<"請(qǐng)輸入職員的畢業(yè)學(xué)校:"<<endl;</p><p> cin>>school;</p><p> cout<<"請(qǐng)輸入職員的身份證號(hào):"<<endl;</p><p> cin>>identity;
92、</p><p> cout<<"請(qǐng)輸入職員的手機(jī)號(hào):"<<endl;</p><p><b> cin>>tel;</b></p><p> cout<<"請(qǐng)輸入職員的郵箱:"<<endl;</p><p> c
93、in>>email;</p><p> cout<<"請(qǐng)輸入職員的聘用時(shí)間:"<<endl;</p><p> cin>>engage_time;</p><p> cout<<"請(qǐng)輸入此次記錄的添加時(shí)間:"<<endl;</p>&l
94、t;p> cin>>add_time;</p><p> cout<<endl;</p><p> ofstream outfile("test.dat",ios::app|ios::binary);//打開(kāi)"test.dat"文件,并將指針指向文件尾</p><p> if(!outfi
95、le)</p><p><b> {</b></p><p> cerr<<"test.dat 文件打開(kāi)錯(cuò)誤!"<<endl;</p><p><b> return;</b></p><p><b> }</b></p
96、><p> outfile.write((char*)(this),sizeof(*this));//將所輸入的信息追加到文件尾部</p><p> outfile.close();</p><p> cout<<"信息建立成功!"<<endl;</p><p> i++; //每調(diào)用一次
97、該函數(shù),職員總數(shù)增加1</p><p> cout<<"您還想繼續(xù)添加嗎?(y/n)"<<endl;</p><p> cin>>choice;</p><p> while(choice!="Y"&&choice!="y"&&cho
98、ice!="N"&&choice!="n")</p><p><b> {</b></p><p> cout<<"請(qǐng)按要求鍵入(y/n)"<<endl;</p><p> cin>>choice;</p><
99、;p><b> }</b></p><p> if(choice=="N"||choice=="n")</p><p><b> {</b></p><p> outfile.close();</p><p><b> break;&
100、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void person::showall()//定義顯示人事檔案管理系統(tǒng)中所有職員信息的函數(shù)</p>&
101、lt;p><b> {</b></p><p> if(i==0)//人事管理系統(tǒng)中無(wú)此職員,請(qǐng)先增加職員信息信息</p><p> cout<<"人事管理系統(tǒng)數(shù)據(jù)為空,請(qǐng)先增加職員信息!"<<endl;</p><p><b> else</b></p>
102、;<p><b> {</b></p><p> ifstream infile("test.dat",ios::binary);//打開(kāi)用于讀的binary文件</p><p> infile.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p>&l
103、t;p> cout<<"所有職員的信息如下:"<<endl;</p><p> while(!infile.eof())//沿未到達(dá)文件尾,繼續(xù)處理</p><p><b> {</b></p><p> cout<<this;//輸出當(dāng)前對(duì)象的各數(shù)據(jù)成員</p>
104、<p> cout<<"*******************************"<<endl;</p><p> infile.read((char*)(this),sizeof(*this));//再讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p><b> }</b></p>
105、<p> infile.close();</p><p><b> }</b></p><p><b> }</b></p><p> bool person::searchnum()//定義按編號(hào)查找職工信息函數(shù)</p><p><b> {</b><
106、;/p><p> char number[10];</p><p> cout<<"-----按編號(hào)查找信息-----"<<endl;</p><p> cout<<"請(qǐng)輸入要檢索的編號(hào):(1000-9999)"<<endl;</p><p> cin
107、>>number;</p><p> ifstream infile("test.dat",ios::binary);</p><p> infile.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù),放入*this中</p><p> while(!infile.eof())</
108、p><p><b> {</b></p><p> if(strcmp(num,number)==0)</p><p><b> {</b></p><p> cout<<"該編號(hào)的職工信息如下:"<<endl;</p><p>
109、; cout<<this<<endl;</p><p> infile.close();</p><p> return true;</p><p><b> }</b></p><p> infile.read((char*)(this),sizeof(*this));//文件指針沒(méi)到
110、達(dá)文件尾,循環(huán)讀取數(shù)據(jù)</p><p><b> }</b></p><p> infile.close();</p><p> cout<<"對(duì)不起,沒(méi)有該編號(hào)的職工信息!"<<endl;</p><p> return false;</p><p
111、><b> }</b></p><p> bool person::searchname()//定義按姓名查找信息函數(shù)</p><p><b> {</b></p><p> char na[20];</p><p> cout<<"-----按姓名查找信息!-
112、----"<<endl;</p><p> cout<<"請(qǐng)輸入要檢索的職工姓名:"<<endl;</p><p><b> cin>>na;</b></p><p> ifstream infile("test.dat",ios::bina
113、ry);</p><p> infile.read((char*)(this),sizeof(*this));//打開(kāi)文件,讀取數(shù)據(jù)</p><p> while(!infile.eof())</p><p><b> {</b></p><p> if(strcmp(name,na)==0)</p>
114、<p><b> {</b></p><p> cout<<"該職工的個(gè)人信息如下:"<<endl;</p><p> cout<<this;</p><p> infile.close();</p><p> return true;<
115、;/p><p><b> }</b></p><p> infile.read((char*)(this),sizeof(*this));//文件指針未到文件尾,循環(huán)讀取數(shù)據(jù)</p><p><b> }</b></p><p> infile.close();</p><p
116、> cout<<"對(duì)不起,沒(méi)有您所要檢索的職工信息!"<<endl;</p><p> return false;</p><p><b> }</b></p><p> void person::delnum(int& i)//定義按編號(hào)刪除信息函數(shù)</p>&l
117、t;p><b> {</b></p><p><b> char b;</b></p><p> int delmark=0; //用于標(biāo)記該編號(hào)信息是否已找到</p><p> char delnumber[10];</p><p> cout<<"-----
118、按編號(hào)刪除個(gè)人信息-----"<<endl;</p><p> cout<<"請(qǐng)輸入要?jiǎng)h除的編號(hào):"<<endl;</p><p> cin>>delnumber;</p><p> ofstream outfile("tmp.dat",ios::binary);
119、//打開(kāi)用于寫的二進(jìn)制文件"tmp.dat"</p><p> ifstream infile("test.dat",ios::binary);//打開(kāi)用于讀的二進(jìn)制文件"test.dat"</p><p> infile.read((char*)(this),sizeof(*this));//從"test.dat&
120、quot;中讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p> while(!infile.eof())</p><p><b> {</b></p><p> if(strcmp(num,delnumber)==0)</p><p><b> {</b></p><p
121、> cout<<"該編號(hào)的個(gè)人信息如下:"<<endl;</p><p> cout<<this;</p><p> cout<<endl<<"你確定要?jiǎng)h除該編號(hào)的信息?y/n"<<endl;</p><p><b> cin>
122、;>b;</b></p><p> if(b=='y'||b=='Y')</p><p><b> {</b></p><p> delmark=1; //將刪除標(biāo)記置為1,表示已刪除信息</p><p> i--; //確定刪除信
123、息,人事檔案管理系統(tǒng)中成員總數(shù)減1</p><p> cout<<"信息已刪除!"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p> delmark=-1;</p>&l
124、t;p><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),s
125、izeof(*this));//再次讀取一個(gè)類對(duì)象數(shù)據(jù),放于*this中</p><p><b> }</b></p><p> infile.close();</p><p> outfile.close();</p><p> if(delmark==1)//若找到了刪除對(duì)象,就用"tmp.dta&
126、quot;文件內(nèi)容去充當(dāng)"test.dat"</p><p><b> {</b></p><p> ofstream outfile("test.dat",ios::binary);//打開(kāi)用于寫的二進(jìn)制文件"test.dat"</p><p> ifstream infile
127、("tmp.dat",ios::binary);//打開(kāi)用于讀的二進(jìn)制文件"tmp.dat"</p><p> infile.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p> while(!infile.eof())</p><p><b&g
128、t; {</b></p><p> outfile.write((char*)(this),sizeof(*this));//將從"tmp.dat"中讀取的數(shù)據(jù)寫入" test.dat"中</p><p> infile.read((char*)(this),sizeof(*this));//再?gòu)?quot;tmp.dat"
129、;中讀取一個(gè)類對(duì)象數(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&g
130、t; }</b></p><p> if(delmark==0)</p><p> cout<<"欲刪除的職工的編號(hào)尚不存在!"<<endl;</p><p><b> }</b></p><p> void person::delname(int&
131、; i)//定義按姓名刪除信息函數(shù)</p><p><b> {</b></p><p><b> char b;</b></p><p> int delmark=0; //用于標(biāo)記該編號(hào)信息是否已找到</p><p> char delname[20];</p><
132、;p> cout<<"-----按姓名刪除個(gè)人信息-----"<<endl;</p><p> cout<<"請(qǐng)輸入要?jiǎng)h除的姓名:"<<endl;</p><p> cin>>delname;</p><p> ofstream outfile(&quo
133、t;tmp.dat",ios::binary);//打開(kāi)用于寫的二進(jìn)制文件"tmp.dat"</p><p> ifstream infile("test.dat",ios::binary);//打開(kāi)用于讀的二進(jìn)制文件"test.dat"</p><p> infile.read((char*)(this),size
134、of(*this));//從"test.dat"中讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p> while(!infile.eof())</p><p><b> {</b></p><p> if(strcmp(name,delname)==0)</p><p><b>
135、{</b></p><p> cout<<"該人的個(gè)人信息如下:"<<endl;</p><p> cout<<this;</p><p> cout<<endl<<"你確定要?jiǎng)h除該編號(hào)的信息?y/n"<<endl;</p>
136、<p><b> cin>>b;</b></p><p> if(b=='y'||b=='Y')</p><p><b> {</b></p><p> delmark=1; //將刪除標(biāo)記置為1,表示已刪除信息</p><p> i
137、--; //確定刪除信息,人事檔案管理系統(tǒng)中成員總數(shù)減1</p><p> cout<<"信息已刪除!"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p> delm
138、ark=-1;</p><p><b> }</b></p><p><b> else</b></p><p> outfile.write((char*)(this),sizeof(*this));//將讀得的數(shù)據(jù)寫入"tmp.dat"</p><p> infile
139、.read((char*)(this),sizeof(*this));//再次讀取一個(gè)類對(duì)象數(shù)據(jù),放于*this中</p><p><b> }</b></p><p> outfile.close();</p><p> infile.close();</p><p> if(delmark==1)//若找到了
140、刪除對(duì)象,就用"tmp.dta"文件內(nèi)容去充當(dāng)"test.dat"</p><p><b> {</b></p><p> ofstream outfile("test.dat",ios::binary);//打開(kāi)用于寫的二進(jìn)制文件"test.dat"</p><p
141、> ifstream infile("tmp.dat",ios::binary);//打開(kāi)用于讀的二進(jìn)制文件"tmp.dat"</p><p> infile.read((char*)(this),sizeof(*this));//讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p> while(!infile.eof())</p&
142、gt;<p><b> {</b></p><p> outfile.write((char*)(this),sizeof(*this));//將從"tmp.dat"中讀取的數(shù)據(jù)寫入" test.dat"中</p><p> infile.read((char*)(this),sizeof(*this));/
143、/再?gòu)?quot;tmp.dat"中讀取一個(gè)類對(duì)象數(shù)據(jù)放入*this中</p><p><b> }</b></p><p> infile.close();//關(guān)閉文件"tmp.dat"</p><p> outfile.close();//關(guān)閉文件"test.dat"</p>
144、;<p><b> }</b></p><p> if(delmark==0)</p><p> cout<<"欲刪除的職員姓名不存在!"<<endl;</p><p><b> }</b></p><p> int delall
145、(int& i)//定義清空人事管理系統(tǒng)數(shù)據(jù)的函數(shù)</p><p><b> {</b></p><p><b> char b;</b></p><p> cout<<"你真的要清空人事管理系統(tǒng)數(shù)據(jù)嗎?y/n"<<endl;</p><p>
146、;<b> cin>>b;</b></p><p> if(b=='y'||b=='Y')</p><p><b> {</b></p><p> ofstream outfile("test.dat",ios::trunc);//刪除文件"
147、test.dat"中所有數(shù)據(jù)</p><p> i=0; //將人事管理系統(tǒng)中職員數(shù)置為0</p><p> cout<<"人事檔案管理系統(tǒng)數(shù)據(jù)已清空!"<<endl;</p><p><b> }</b></p><p><b> return i
148、;</b></p><p><b> }</b></p><p> void total()//定義輸出人事檔案管理系統(tǒng)中職員數(shù)的函數(shù)</p><p><b> {</b></p><p> cout<<"人事檔案管理系統(tǒng)中的職員總數(shù)為:"<
149、<ends<<ends;</p><p> cout<<i<<endl;</p><p><b> }</b></p><p> void menu() //定義菜單函數(shù)</p><p><b> { </b></p><p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì) 高校人事管理系統(tǒng)
- c++課程設(shè)計(jì)人事管理系統(tǒng)
- c++課程設(shè)計(jì)---公司人事管理系統(tǒng)
- 高校人事管理系統(tǒng)課程設(shè)計(jì)c++版
- [vc++畢設(shè)]c++課程設(shè)計(jì)報(bào)告(人事管理系統(tǒng))
- 人事管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- 人事考勤管理系統(tǒng)c++課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--人事管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)——人事管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-人事管理系統(tǒng)
- 人事管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 人事管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 人事管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)人事管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)人事管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)人事管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告---企業(yè)人事管理系統(tǒng)
- 人事管理系統(tǒng)delphi課程設(shè)計(jì)報(bào)告
- 人事管理系統(tǒng)課程設(shè)計(jì)
- 人事管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論