




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳科技学院《剪辑技术》2023-2024学年第一学期期末试卷
- 苏州信息职业技术学院《中国文学简史》2023-2024学年第二学期期末试卷
- 昆玉职业技术学院《局部解剖学与手术示范操作》2023-2024学年第二学期期末试卷
- 满洲里俄语职业学院《家具与陈设设计》2023-2024学年第二学期期末试卷
- 2025年江苏省东台市第三教育联盟重点名校初三下第三次大考生物试题含解析
- 山东省博兴县重点名校2025年初三下学期9月开学生物试题试卷含解析
- 无锡南洋职业技术学院《药理学实验》2023-2024学年第二学期期末试卷
- 2024年第四季度延安府谷县重点产业链人才需求目录(24人)笔试参考题库附带答案详解
- 2024年山东能源装备集团液压科技有限公司社会招聘笔试参考题库附带答案详解
- 2024年宝鸡石油机械有限责任公司秋季高校毕业生招聘80人笔试参考题库附带答案详解
- 2024-2025学年二年级语文下册统编版第四单元达标卷(单元测试)(含答案)
- 2025年高考英语二轮复习专题01 阅读理解之细节理解题(课件)(新高考)
- 河南郑州大学第二附属医院招聘考试真题2024
- 7.2做中华人文精神的弘扬者 课件 -2024-2025学年统编版道德与法治七年级下册
- 2024年贵州省高考地理试卷(含答案详解)
- 肝脓肿教学查房
- 2025高考数学专项讲义第18讲圆锥曲线中的极点极线问题(高阶拓展、竞赛适用)(学生版+解析)
- 15 青春之光(公开课一等奖创新教案)
- 2025年全球及中国居家康复服务行业头部企业市场占有率及排名调研报告
- 【八年级下册数学湘教版】第二章 四边形(压轴题专练)
- 大数据背景下的高血压诊断与治疗效果研究
评论
0/150
提交评论