




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE學生實實驗報告告學院院:軟件件與通信信工程學學院課程名稱::CC++課課程設計計專業班級::10軟件件1班姓名:黃道煒煒學號:010038115學生實驗報報告(5)學生姓名黃道煒學號01038815同組人:無無實驗項目公司員工管管理信息息系統√□必修□選修√√□演示性實實驗□□驗證性性實驗□操作性性實驗□綜合性性實驗√實驗地點W102實驗儀器臺臺號指導教師趙曉平實驗日期及及節次2011..11.9(三))5667節2011..11.16(三三)5567節節2011..11.23(三))5667節一、實驗綜綜述1、實驗目目的及要要求利用文件處處理方式式,并綜綜合運用用C+++面向對對象編程程實現一一個公司司員工管管理信息息系統。實驗題:設計一個虛虛基類SStafff(員員工),包包含編號號、姓名名和年齡齡保護數數據成員員以及相相關的成成員函數數;由SStafff派生生出工程程師類EEngiineeer,包包含專業業和職稱稱保護數數據成員員和相關關的成員員函數;;再由SStafff派生生出領導導類Leeadeer,包包括職務務和部門門保護數數據成員員和相關關的成員員函數;;然后由由Enggineeer和和Leaaderr類派生生出主任任工程師師類Chhairrmann。設計一個利利用文件件處理方方式實現現對公司司員工(包包括工程程師、領領導和主主任工程程師)進進行管理理,具備備增加數數據、更更新數據據、查詢詢數據、刪刪除數據據以及重重組文件件的功能能。要求將公司司人員信信息存儲儲在數據據文件sstafff.ddat中中,為存存儲方便便,可以以定義索索引文件件,在索索引文件件中,每每一項包包括刪除除標志、編編號,記記錄在數數據文件件staaff..datt中的相相對位置置和人員員類型,使使用索引引對數據據文件進進行定位位操作。實驗要求::認真完成實實驗題,能能正確運運行,提提交實驗驗報告并并上傳程程序,實實驗報告告要求寫寫出操作作步驟、結結果、問問題、解解決方法法、體會會等。2、實驗儀儀器、設設備或軟軟件計算機、VVC+++6.00、offficce、相相關的操操作系統統等。二、實驗過過程(實實驗步驟驟、記錄錄、數據據、分析析)#inclludee<iiosttreaam>#inclludee<fsstreeam>>#inclludee<ioomannip>>usinggnaamesspaccesstd;;#defiineMAXX_ERRRORR_MEESSAAGE__LENN1000classsErrrorr{privaate::ccharrmeessaage[MAAX_EERROOR_MMESSSAGEE_LEEN];;publiic:EErroor(ccharrmees[]]="一一般性異異常!""){sstrccpy((messsagge,mmes));}vvoiddShhow(()cconsst{{couut<<<messsagge<<<enddl;}}};charGettChaar(iistrreamm&iin=ccin)){ccharrchh;wwhille(((chh=inn.peeek(())!!=EOOF&&(((chh=inn.geet()))==='''||cch==='/tt')));rretuurnch;;}boolUseerSaaysYYes((){ccharrchh;bboollinnitiialRRespponsse=ttruee;ddo{{if((iniitiaalReespoonsee)coout<<<"((y,nn)?"";elssecoout<<<"用用y或nn回答::";whiile(((chh=GeetChhar(())==='//n'));iniitiaalReespoonsee=faalsee;}}whiile(chh!=''y'&&&chh!=''Y'&&&chh!=''n'&&&chh!=''N'));wwhille((GettChaar())!=='/nn'){{iif((ch==='yy'|||ch==='YY')retturnntrrue;;eelseeretturnnfaalsee;}}classsSttafff{proteecteed: charrnuum[88]; charrnaame[[12]]; intagee;publiic: Stafff()){}} virttuall~SStafff()){}} consstccharr*GGetNNum(()cconsst{{retturnnnuum;}} virttuallvooidInpput(()=00; virttuallvooidShoow())coonstt=0;; virttuallvooidReaad(ffstrreamm&ff)cconsst=00; virttuallvooidWriite((fsttreaam&&f)connst==0;};classsEnnginneerr:viirtuualpubbliccSttafff{proteecteed: charrmaajorr[122]; charrprrof[[12]];publiic: Engiineeer()){}} virttuall~EEngiineeer()){}} voiddInnputt() { couut<<<"編號號:";; cinn>>nnum;; couut<<<"姓名名:";; cinn>>nnamee; couut<<<"年齡齡:";; cinn>>aage;; couut<<<"專業業:";; cinn>>mmajoor; couut<<<"職稱稱:";; cinn>>pproff; } voiddShhow(()cconsst { couut<<<settw(88)<<<numm<<ssetww(122)<<<namme<<<settw(55)<<<agee<< seetw((12))<<mmajoor<<<settw(112)<<<prrof<<<enndl;; } voiddReead((fsttreaam&&f)connst{f..reaad(((chaar**)thhis,,sizzeoff(Ennginneerr));;} voiddWrritee(fsstreeam&f))coonstt{ff.wrritee((ccharr*))thiis,ssizeeof((Enggineeer)));}}};classsLeeadeer:vvirttuallpuubliicSStafff{proteecteed: charrjoob[112];; charrdeep[112];;publiic: Leadder((){}} virttuall~LLeadder((){}} voiddInnputt() { couut<<<"編號號:";; cinn>>nnum;; couut<<<"姓名名:";; cinn>>nnamee; couut<<<"年齡齡:";; cinn>>aage;; couut<<<"職務務:";; cinn>>jjob;; couut<<<"部門門:";; cinn>>ddep;; } voiddShhow(()cconsst { couut<<<settw(88)<<<numm<<ssetww(122)<<<namme<<<settw(55)<<<agee<< seetw((12))<<jjob<<<seetw((12))<<ddep<<<enndl;; } voiddReead((fsttreaam&&f)connst{f..reaad(((chaar**)thhis,,sizzeoff(Leeadeer)));} voiddWrritee(fsstreeam&f))coonstt{ff.wrritee((ccharr*))thiis,ssizeeof((Leaaderr));;}};classsChhairrmann:puubliicEEngiineeer,ppubllicLeaaderr{publiic: Chaiirmaan()){} virttuall~CChaiirmaan()){} voiddInnputt() { couut<<<"編號號:";; cinn>>nnum;; couut<<<"姓名名:";; cinn>>nnamee; couut<<<"年齡齡:";; cinn>>aage;; couut<<<"專業業:";; cinn>>mmajoor; couut<<<"職稱稱:";; cinn>>pproff; couut<<<"職務務:";; cinn>>jjob;; couut<<<"部門門:";; cinn>>ddep;; } voiddShhow(()cconsst { couut<<<settw(88)<<<numm<<ssetww(122)<<<namme<<<settw(55)<<<agee<<ssetww(122)<<<majjor<<<seetw((12))<< prrof<<<seetw((12))<<jjob<<<seetw((12))<<ddep<<<enndl;; } voiddReead((fsttreaam&&f)connst{f..reaad(((chaar**)thhis,,sizzeoff(Chhairrmann));;} voiddWrritee(fsstreeam&f))coonstt{ff.wrritee((ccharr*))thiis,ssizeeof((Chaairmman)));}}};strucctIIndeexTyype{ boolldeelTaag; charrnuum[88]; intpossitiion;; charrsttafffTyppe;};#defiineNUMM_OFF_INNCREEMENNT110000classsSttafffMannagee{privaate:: fstrreammfiile;; IndeexTyype*inndexxTabble;; intmaxxSizze; intcouunt;; voiddAdddInndexxIteem(cconsstIIndeexTyype&e)); voiddAdddDaata((); voiddUppdattaDaata((); voiddSeearcchDaata((); voiddDeeletteDaata((); voiddPaack(();publiic: StafffMaanagge()); virttuall~SStafffMaanagge()); voiddRuun());};StafffMannagee::SStafffMaanagge()){ ifsttreaamiindeexFiile(("sttafff.iddx",,ioss::bbinaary)); if(!!inddexFFilee.faail(()) { inddexFFilee.seeekgg(0,,ioss::eend)); couunt==inddexFFilee.teellgg()/siizeoof(IIndeexTyype)); maxxSizze=ccounnt+NNUM__OF__INCCREMMENTT; inddexTTablle=nnewInddexTTypee[maaxSiize]]; inddexFFilee.seeekgg(0,,ioss::bbeg)); intti==0; inddexFFilee.reead(((chhar**)&iindeexTaablee[i+++],,sizzeoff(InndexxTyppe))); whiile((!inndexxFille.eeof(()) { inndexxFille.rreadd((ccharr*)&&inddexTTablle[ii++]],siizeoof(IIndeexTyype))); } inddexFFilee.cllosee();; } elsee { couunt==0; maxxSizze=ccounnt+NNUM__OF__INCCREMMENTT; inddexTTablle=nnewInddexTTypee[maaxSiize]]; } ifsttreaamiiFille(""staaff..datt");; if(iiFille.ffaill())) { ofsstreeamoFiile(("sttafff.daat")); if((oFiile..faiil()))tthroow(""打開文文件失敗敗!")); oFiile..cloose((); } elsee { iFiile..cloose((); } filee.oppen(("sttafff.daat",,ioss::iin|iios:::ouut|iios:::biinarry);; if(ffilee.faail(())thrrow(("打開開文件失失敗!"");}StafffMannagee::~~StaaffMManaage((){ ofsttreaamiindeexFiile(("sttafff.iddx",,ioss::bbinaary)); for((intti==0;ii<coountt;i+++) { inddexFFilee.wrritee((ccharr*)&&inddexTTablle[ii],ssizeeof((InddexTTypee));; } indeexFiile..cloose((); filee.cllosee();;}voidStaaffMManaage:::AdddInndexxIteem(cconsstIIndeexTyype&e)){ if(ccounnt>==maxxSizze) { maxxSizze+==NUMM_OFF_INNCREEMENNT; InddexTTypee*tmppInddexTTablle=nnewInddexTTypee[maaxSiize]]; forr(inntii=0;;i<ccounnt;ii++)) tmmpInndexxTabble[[i]==inddexTTablle[ii]; delletee[]iindeexTaablee; inddexTTablle=ttmpIIndeexTaablee; } indeexTaablee[coountt++]]=e;;}voidStaaffMManaage:::AdddDaata((){ Stafff**pSttafff; IndeexTyypeiteem; itemm.deelTaag=ffalsse; filee.seeekgg(0,,ioss::eend)); do { do { coout<<<"人人員類型型(e::工程師師,l::領導,,c:主主任工程程師);;"; ciin>>>iteem.sstafffTyype;; ittem..staaffTTypee=toolowwer((iteem.sstafffTyype)); } whiile((iteem.sstafffTyype!!='ee'&&&iteem.sstafffTyype!!='ll'&&&iteem.sstafffTyype!!='cc');; if((iteem.sstafffTyype==='ee')pSttafff=neewEEngiineeer; elsseiif(iitemm.sttafffTyppe==='l'')ppStaaff==newwLeeadeer; elsseppStaaff==newwChhairrmann; pSttafff->IInpuut()); strrcpyy(ittem..numm,pSStafff->>GettNumm())); iteem.pposiitioon=ffilee.teellgg();; AdddInddexIItemm(ittem)); pSttafff->WWritte(ffilee); delleteepSStafff; couut<<<"繼續續添加嗎嗎"; } whille(UUserrSayysYees()));}voidStaaffMManaage:::UppdattaDaata((){ Stafff**pSttafff; IndeexTyypeiteem; itemm.deelTaag=ffalsse; charrnuum[112];; coutt<<""人員編編號:""; cin>>>nuum; intposs; for((poss=0;;poss<coountt;poos+++) { if((strrcmpp(nuum,iindeexTaablee[poos]..numm)===0&&&!inndexxTabble[[poss].ddelTTag)) brreakk; } if(ppos<<couunt)) { fille.sseekkg(iindeexTaablee[poos]..possitiion,,ioss::bbeg)); if((inddexTTablle[ppos]].sttafffTyppe==='e'')pSttafff=neewEEngiineeer; elsseiif(iindeexTaablee[poos]..staaffTTypee==''l'))ppStaaff==newwLeeadeer; elsseppStaaff==newwChhairrmann; pSttafff->RReadd(fiile)); pSttafff->SShoww();; do { coout<<<"人人員類型型(e::工程師師,l::領導,,c:主主任工程程師);;"; ciin>>>iteem.sstafffTyype;; ittem..staaffTTypee=toolowwer((iteem.sstafffTyype)); }whhilee(ittem..staaffTTypee!=''e'&&&ittem..staaffTTypee!=''l'&&&ittem..staaffTTypee!=''c')); if((iteem.sstafffTyype==='ee')pSttafff=neewEEngiineeer; elsseiif(iitemm.sttafffTyppe==='l'')ppStaaff==newwLeeadeer; elsseppStaaff==newwChhairrmann; pSttafff->IInpuut()); if((iteem.sstafffTyype==inddexTTablle[ppos]].sttafffTyppe) { sttrcppy(iindeexTaablee[poos]..numm,pSStafff->>GettNumm())); fiile..seeekg((inddexTTablle[ppos]].poosittionn,ioos:::begg); } elsse { inndexxTabble[[poss].ddelTTag==truue; sttrcppy(iitemm.nuum,ppStaaff-->GeetNuum())); fiile..seeekg((0,iios:::ennd);; ittem..possitiion==fille.ttelllg()); AdddInndexxIteem(iitemm); } pSttafff->WWritte(ffilee); delleteepSStafff; } elsee { couut<<<"查無無此人!!"<<<enddl; fille.ccleaar()); }}voidStaaffMManaage:::SeearcchDaata((){ Stafff**pSttafff; charrnuum[112];; coutt<<""人員編編號:""; cin>>>nuum; intposs; for((poss=0;;poss<coountt;poos+++) { if((strrcmpp(nuum,iindeexTaablee[poos]..numm)===0&&&!inndexxTabble[[poss].ddelTTag)) brreakk; } if(ppos<<couunt)) { fille.sseekkg(iindeexTaablee[poos]..possitiion,,ioss::bbeg)); if((inddexTTablle[ppos]].sttafffTyppe==='e'')ppStaaff==newwEnnginneerr; elsseiif(iindeexTaablee[poos]..staaffTTypee==''l'))pSStafff=nnewLeaaderr; elsseppStaaff==newwChhairrmann; pSttafff->RReadd(fiile)); pSttafff->SShoww();; delleteepSStafff; } elsee { couut<<<"查無無此人!!"<<<enddl; fille.ccleaar()); }}voidStaaffMManaage:::DeeletteDaata((){ Stafff**pSttafff; IndeexTyypeiteem; itemm.deelTaag=ffalsse; charrnuum[112];; coutt<<""人員編編號:""; cin>>>nuum; intposs; for((poss=0;;poss<coountt;poos+++) { if((strrcmpp(nuum,iindeexTaablee[poos]..numm)===0&&&!inndexxTabble[[poss].ddelTTag)) brreakk; } if(ppos<<couunt)) { fille.sseekkg(iindeexTaablee[poos]..possitiion,,ioss::bbeg)); if((inddexTTablle[ppos]].sttafffTyppe==='e'')ppStaaff==newwEnnginneerr; elsseiif(iindeexTaablee[poos]..staaffTTypee==''l'))pSStafff=nnewLeaaderr; elsseppStaaff==newwChhairrmann; pSttafff->RReadd(fiile)); couut<<<"被刪刪除記錄錄為:""<<eendll; pSttafff->SShoww();; inddexTTablle[ppos]].deelTaag=ttruee; delleteepSStafff; couut<<<"刪除除成功!!"<<<enddl; } elsee { couut<<<"刪除除失敗!!"<<<enddl; fille.ccleaar()); }}voidStaaffMManaage:::Paack((){ ofsttreaamooFille(""temm.daat")); oFille.cclosse()); fstrreammouutFiile(("teem.ddat"",ioos:::appp|ioos:::binnaryy); Stafff**pSttafff; intcurr_coountt=0;; for((inttpoos=00;poos<ccounnt;ppos+++) { if((!inndexxTabble[[poss].ddelTTag)) { fiile..seeekg((inddexTTablle[ppos]].poosittionn,ioos:::begg); inndexxTabble[[poss].pposiitioon=ffilee.teellgg();; iff(inndexxTabble[[poss].sstafffTyype==='ee')pSttafff=neewEEngiineeer; elsseiif(iindeexTaablee[poos]..staaffTTypee==''l'))pSStafff=nnewLeaaderr; elsseppStaaff==newwChhairrmann; pSttafff->RReadd(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司終止協議合同標準文本
- 2025建筑施工土方開挖合同示范文本
- 涼茶店加盟合同樣本
- 2025年商業店面租賃合同樣本參考模板
- 創建咖啡品牌的品牌形象規劃計劃
- 買賣合同樣本水果訂購合同
- 中國黃金采購合同樣本
- led購買合同標準文本
- 不可撤銷釆購合同樣本
- 專本套讀合同樣本
- 2025高考數學專項講義第18講圓錐曲線中的極點極線問題(高階拓展、競賽適用)(學生版+解析)
- 15 青春之光(公開課一等獎創新教案)
- 2025年全球及中國居家康復服務行業頭部企業市場占有率及排名調研報告
- 第19課《資本主義國家的新變化》說課稿-2023-2024學年高一下學期統編版(2019)必修中外歷史綱要下
- 【八年級下冊數學湘教版】第二章 四邊形(壓軸題專練)
- 大數據背景下的高血壓診斷與治療效果研究
- 苧麻生產碳足跡:基于區域、產物與經濟效益的綜合評價
- 全國郵政編碼一覽表
- 酒店客房室內裝修設計方案
- 泰語日常用語1000句
- 高考英語基本單詞單選題100道及答案解析
評論
0/150
提交評論