C-人員信息管理系統(tǒng)_第1頁
C-人員信息管理系統(tǒng)_第2頁
C-人員信息管理系統(tǒng)_第3頁
C-人員信息管理系統(tǒng)_第4頁
C-人員信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

三.代碼實(shí)現(xiàn)(代碼實(shí)現(xiàn)的界面展示):異常處理://Exception_Function.cppintException::CheckNnumber(charnum[])//處理員工工號合法性{ try { if(strncmp("200",num,3)||strlen(num)!=8) throw"輸入非法字符!"; } catch(charstr[]) { cout<<str<<endl; return1; } return0;}intException::CheckName(charn[])//處理員工姓名合法性{ try { if(strlen(n)<3||strlen(n)>10) throw"輸入長度錯(cuò)誤!"; } catch(charstr[]) { cout<<str<<endl; return1; } return0;}intException::CheckSameNum(charnum[])//處理重復(fù)工號情況{ Personlistlist; try {if(list.FindSameNum(num)) throw"有重復(fù)的編號!";} catch(charstr[]) { cout<<str<<endl; list.CloseList(); return1; } return0;}2.//人員信息定義:classPerson{ //編號、姓名、級別、月薪public:charNumber[20]; charName[20]; intStatus; floatSalery; intID;public:friendostream&operator<<(ostream&os,Personpe);};classWorker:publicPerson//定義普通員工派生類,{public://由計(jì)算每月工資,設(shè)置工時(shí),讀出ID號碼等功能 Worker(); voidPay3(); voidSethours(); voidget(charnum[],charname[]); voidgetid(intid); voidinsert();private: floatInCome; intbasicweage; floatRate; intHours;};classSeller:publicPerson//定義營銷人員派生類{public://由計(jì)算每月工資,設(shè)置工時(shí),讀出ID號碼等功能 Seller(); voidget(charnum[],charname[]); voidgetid(intid); voidinsert(); voidPay2(); voidSethours();private: intbasicweage; floatRate; intHours; floatInCome;};classManager:publicPerson//定義部門經(jīng)理派生類{public://由計(jì)算每月工資,設(shè)置工時(shí),讀出ID號碼等功能Manager();voidget(charnum[],charname[]);voidgetid(intid);voidinsert();voidPay1();private: intbasicweage; floatInCome;};classPersonlist//定義了一個(gè)全部人員鏈表類,并集合了各種操作{ Persontest; Persontest1; std::list<Person>personlist; std::list<Person>::iteratorPtr;public: voidReadList();//從文件中讀出list成員到程序的list容器中 voidFind(charnum[]);//查找員工數(shù)據(jù) voidCountAll();//計(jì)算每個(gè)等級員工的人數(shù)和總?cè)藬?shù) voidPrintList();//輸出所有員工數(shù)據(jù) voidCloseList();//關(guān)閉LIST并寫入記事本 voidClearList();//清空數(shù)據(jù)表 voidDeletePerson(charnum[]);//刪除信息; voidModify(charnum[]);//修改成員數(shù)據(jù) intGetId();//獲取ID voidFileRead();//將更新后的文本寫入記事本 intFindSameNum(charnum[]);//判斷是否有重名現(xiàn)象};classdecorate//定義了所有控制臺輸出信息類,以及前端密碼進(jìn)入功能{public: decorate(); voidInfo_And_Chose();//密碼判斷 voidAccess();//密碼進(jìn)入 voidInfo_of_Operate(); charGetch();//登錄用戶判斷 voidInsert_of_Info();private: charcode[10]; charMastercode[10]; charGuestcode[10]; charway; charch;};classException//異常類{public: intCheckNnumber(charnum[]); intCheckName(charn[]); intCheckSameNum(charnum[]);};3.進(jìn)入系統(tǒng):voiddecorate::Info_And_Chose(){ cout<<"**歡迎進(jìn)入C++課程設(shè)計(jì)之企業(yè)人事管理系統(tǒng)**"<<endl; cout<<"**本小組成員有:**"<<endl; while(1) { cout<<"請選擇進(jìn)入方式:(游客入口'G',管理員入口'M')"<<endl; cin>>way; if(way=='G') { ch='G'; Access(); break; } elseif(way=='M') { ch='M'; Access(); break; } else cout<<"您未正確的進(jìn)行輸入!"<<endl; }}人員信息的錄入、修改和刪除#include"Main_Class_H.h"voidPersonlist::ReadList()//所有記錄單元全部放在鏈表中,方便操作 { ifstreamfilein; filein.open("tom.txt"); if(!filein) { cout<<"Cann'topenthefile!"<<endl; return; } while(filein.read((char*)&test,sizeof(test))) personlist.push_back(test); filein.close(); }voidPersonlist::CountAll(){ intcnt1=0,cnt2=0,cnt3=0,cnt4=0; for(Ptr=personlist.begin();Ptr!=personlist.end();Ptr++) { if(Ptr->Status==1) cnt1++; elseif(Ptr->Status==2) cnt2++; else cnt3++; cnt4++; } cout<<"*************************"; cout<<"公司中經(jīng)理成員的人數(shù)是:"<<cnt1<<"人***************************"<<endl; cout<<"*************************"; cout<<"公司中營銷成員的人數(shù)是:"<<cnt2<<"人***************************"<<endl; cout<<"*************************"; cout<<"公司中普通工人的人數(shù)是:"<<cnt3<<"人***************************"<<endl; cout<<"*************************"; cout<<"公司中全部成員的人數(shù)是:"<<cnt4<<"人***************************"<<endl;}voidPersonlist::Find(charnum[]){ cout<<"********************************員工數(shù)據(jù)信息表**********"; cout<<"***********************"<<endl; cout<<endl; cout<<endl; cout<<"-------------------------------------------------------------------------------"<<endl; cout<<"ID號碼"<<setw(15)<<"員工編號"<<setw(18)<<"等級"; cout<<setw(18)<<"姓名"<<setw(12)<<"工資"<<endl; cout<<"-------------------------------------------------------------------------------"<<endl; for(Ptr=personlist.begin();Ptr!=personlist.end();) { if(!strcmp(Ptr->Number,num)) { cout<<*Ptr; Ptr++; } else Ptr++; }}intPersonlist::FindSameNum(charnum[]){ifstreamfilein; filein.open("tom.txt"); while(filein.read((char*)&test,sizeof(test))) personlist.push_back(test); filein.close(); for(Ptr=personlist.begin();Ptr!=personlist.end();) { if(!strcmp(Ptr->Number,num)) { cout<<*Ptr; Ptr++; return1; } else { Ptr++; } } return0;}voidPersonlist::PrintList()//輸出所有員工數(shù)據(jù){ cout<<"********************************員工數(shù)據(jù)信息表**********"; cout<<"***********************"<<endl; cout<<endl; cout<<endl; cout<<"-------------------------------------------------------------------------------"<<endl; cout<<"ID號碼"<<setw(15)<<"員工編號"<<setw(18)<<"等級"; cout<<setw(18)<<"姓名"<<setw(12)<<"工資"<<endl; cout<<"-------------------------------------------------------------------------------"<<endl; for(Ptr=personlist.begin();Ptr!=personlist.end();Ptr++) cout<<*Ptr;}voidPersonlist::CloseList(){ ofstreamfileout("tom.txt"); if(!fileout) { cout<<"Cann'topenthefile!"<<endl; return; } for(Ptr=personlist.begin();Ptr!=personlist.end();Ptr++) fileout.write((char*)&(*Ptr),sizeof(*Ptr)); FileRead(); personlist.clear();}voidPersonlist::ClearList(){ ReadList(); personlist.clear(); CloseList();}voidPersonlist::DeletePerson(charnum[])//刪除信息{ for(Ptr=personlist.begin();Ptr!=personlist.end();) { if(!strcmp(Ptr->Number,num)) { cout<<*Ptr; personlist.erase(Ptr++); cout<<"已經(jīng)刪除!"<<endl; } else Ptr++; }}intPersonlist::GetId(){ inti; ReadList(); if(personlist.size()==0) return1; for(Ptr=personlist.begin();Ptr!=personlist.end();) i=++(Ptr++)->ID;; personlist.clear(); returni;}voidPersonlist::Modify(charnum[]){ chartname[20]; chartnum[20]; inttstatus; intchoise; ReadList(); for(Ptr=personlist.begin();Ptr!=personlist.end();) { if(!strcmp(Ptr->Number,num)) { cout<<"1.修改名字;"<<endl; cout<<"2.修改編號;"<<endl; cout<<"3.修改職位;"<<endl; cin>>choise; switch(choise) { case1: cout<<"輸入新名字:"<<endl; cin>>tname; strcpy(Ptr->Name,tname); cout<<"修改成功!"<<endl; break; case2: cout<<"輸入新編號:"<<endl; cin>>tnum; strcpy(Ptr->Number,tnum); cout<<"修改成功!"<<endl; break; case3: cout<<"輸入新職位:"<<endl; cin>>tstatus; Ptr->Status=tstatus; cout<<"修改成功!"<<endl;

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論