您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > C++课程设计报告书人事管理系统
课题:人事管理系统设计学院:班级:组长:组员:指导老师:时间:2011.06C++课程设计实验报告C++程序设计实验报告-----人事管理系统2目录一、程序设计目的二、程序功能介绍三、C++程序内容1.程序结构2.模块说明(分工人员,程序流程,程序代码)四、调试与分析、1.程序的不足2.调试结果展示五、总结与心得附录一:参考文献C++程序设计实验报告-----人事管理系统3附录二:源程序代码一、程序设计目的:根据课题要求,设计一个简便的人事管理系统。在完成这个课程设计的过程中,更加全面地认识了解C++程序设计。这个设计让组员在设计期间,提升对C++的认识与理解,更好地掌握相关知识,将理论知识运用于实践。具体表现在以下方面:1.熟练运用计算机语言,理解计算机语言的思想。能够合理运用计算机语言编写高效的程序;2.通过课程设计,加深C++进行面向过程的结构化程序设计。能对系统功能进行分析,并设计合理的模块化结构;3.通过课程设计,理解C++优越于C语言的面向对象的程序编辑;4.通过课程设计,训练C++程序调试能力,培养分析问题、解决问题和改进问题的能力;5.通过课程设计,开发一个中小型系统,掌握系统研发全过程;6.通过课程设计,培养团队协作能力,提升团队沟通与交流的技巧。二、程序功能介绍:该程序是一个用C++制作而成的简便人事管理系统,它操作人性化,易于操作,能以简便高效的方式对职工信息进行管理。人事管理系统是现代企业管理工作不可缺少的一部分,是适应现代企业制度要求,推进企业劳动人事管理走向科学化,规范化的必要条件。其具体的功能为以下几个方面:1.建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话);C++程序设计实验报告-----人事管理系统42.根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表);3.增加新职工信息(由人事秘书完成,需要身份确认);4.删除职工信息(由人事秘书完成,需要身份确认)5.修改职工工资(由财务处人员完成,需要身份确认)6.要求所有信息能够存储在文件中,并具有良好的用户界面;7.退出程序(Quit):退出程序三、C++程序内容1.程序结构与流程:模块化设计为实现系统功能,本程序主要分为8个主要部分。它们分别为:显示的主界面、密码控制进入、增加新的员工信息、查询员工信息、修改信息、删除信息、列出所有的信息、退出程序这些部分。不同职务的人能执行的不同功能,有不同的界面显示,这八个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用公司职员身份认证后的哪种功能。然后,通过执行选择语句,分别实现其它各个函数的调用功能。C++程序设计实验报告-----人事管理系统52.程序代码3.模块说明:小组成员分工分块说明模块:A:1)定义类及函数;classperson//定义职员类{public:charnum[20];//编号charname[30];//姓名charsex[20];//性别charage[20];//年龄chartel[20];//电话charposition[20];//职位intpay;//工资定义整型数charfamilies[200];//家庭成员信息charengage_time[100];//聘用时间charadd_time[100];//记录时间public://对其成员函数的声明voidadd_person(int&);//新增通讯成员voidchange_person();//按名字修改boolsearchnum();//按编号查找boolsearchname();//按姓名查找voidchangenum(int&);//按编号修改voiddelname(int&);//按姓名删除voidshowall();//输出所有职员数据C++程序设计实验报告-----人事管理系统6voidget_i();//读取数据文件职员数friendostream&operator(ostream&out,person&pe);//重载运算符};另:简化输出的定义:ostream&operator(ostream&out,person&pe)//定义重载运算符,从而直接输出类对象{out编号:pe.numendl;out姓名:pe.nameendl;out性别:pe.sexendl;out年龄:pe.ageendl;out电话:pe.telendl;out职位:pe.positionendl;out工资:pe.payendl;out家庭成员信息:pe.familiesendl;out聘用时间:pe.engage_timeendl;out记录时间:pe.add_timeendl;returnout;}2)定义全局函数:inti=0;//定义全局变量,用于记录人事档案管理系统中的职员数voidperson::get_i(){ifstreamfile(test.dat,ios::binary|ios::in);//打开用于读的binary文件if(!file){ofstreamoutfile(test.dat,ios::app|ios::binary);//打开test.dat文件,并将指针指向文件尾if(!outfile){cerrtest.dat文件打开错误!endl;return;C++程序设计实验报告-----人事管理系统7}return;}file.read((char*)(this),sizeof(*this));//读取一个类对象数据放入*this中while(!file.eof()){i++;//每调用一次该函数,职员总数增加1file.read((char*)(this),sizeof(*this));//再读取一个类对象数据放入*this中}file.close();}3)voidperson::change_person(){intx;cout-----修改人事档案职员信息-----endl;cout请输入该修改后的职员编号:endl;cinnum;for(x=0;x100;x++)cout请修改职员姓名:endl;cinname;cout请修改性别:endl;cinsex;while((string)sex!=男&&(string)sex!=女){cout您输入的性别有误,请核对后再输入:endl;cinsex;}cout请修改年龄:endl;cinage;cout请修改电话号码:endl;cintel;cout请修改该职员的职位:(领导,人事秘书,财务处人员,一般职员)endl;cinposition;while((string)position!=领导&&(string)position!=人事秘书&&(string)position!=财务处人员&&(string)position!=一般职员){cout您输入的职工职位有误,请核对后再输入:endl;cinposition;C++程序设计实验报告-----人事管理系统8}cout请修改工资:endl;cinpay;cout请修改家庭成员信息:endl;cinfamilies;cout请修改职员的聘用时间:endl;cinengage_time;cout请修改此次记录的添加时间:endl;cinadd_time;coutendl;ofstreamoutfile(test.dat,ios::app|ios::binary);//打开test.dat文件,并将指针指向文件尾if(!outfile){couttest.dat文件打开错误!endl;return;}outfile.write((char*)(this),sizeof(*this));//将所输入的信息追加到文件尾部outfile.close();cout信息修改成功!endl;}4)增加人事档案中职员信息;voidperson::add_person(int&i){stringchoice=Y;while(choice==Y||choice==y){cout-----新建人事档案职员信息-----endl;cout请输入职员的的编号:(1000-9999)endl;cinnum;cout请输入职员姓名:endl;cinname;cout请输入性别:endl;cinsex;while((string)sex!=男&&(string)sex!=女){cout您输入的性别有误,请核对后再输入:endl;cinsex;}cout请输入年龄:endl;cinage;cout请输入电话号码:endl;cintel;cout请输入该职员的职位:(领导,人事秘书,财务处C++程序设计实验报告-----人事管理系统9人员,一般职员)endl;cinposition;while((string)position!=领导&&(string)position!=人事秘书&&(string)position!=财务处人员&&(string)position!=一般职员){cout您输入的职工职位有误,请核对后再输入:endl;cinposition;}cout请输入工资:endl;cinpay;cout请输入家庭成员信息:endl;cinfamilies;cout请输入职员的聘用时间:endl;cinengage_time;cout请输入此次记录的添加时间:endl;cinadd_time;coutendl;ofstreamoutfile(test.dat,ios::app|ios::binary);//打开test.dat文件,并将指针指向文件尾if(!outfile){couttest.dat文件打开错误!endl;return;}outfile.write((char*)(this),sizeof(*this));//将所输入的信息追加到文件尾部outfile.close();cout信息建立成功!endl;i++;//每调用一次该函数,职员总数增加1cout您还想继续添加吗?(y/n)endl;cinchoice;while(choice!=Y&&choice!=y&&choice!=N&&choice!=n){cout请按要求键入(y/n)endl;cinchoice;}if(choice==N||choice==n){outfile.close();break;退出当前循环}C++程序设计实验报告-----人事管理系统10}}5)定义显示人事档案管理系统中所有职员信息的函数:voidperson::showall(){if(i==0)//人事管理系统中无任何职员,请先增加职员信息信息cout人事管理系统数据为空,请先增加职员信息!endl;else{ifstreaminfile(test.dat,ios::binary);//打开用于读的binary文件infile.read((char*)(this),sizeof(*this));//读取一个类对象数据放入*this中cout所有职员的信息如下:endl;while(!infile.eof())//沿未到达文件尾,继续处理{cout(*this);//输出当
本文标题:C++课程设计报告书人事管理系统
链接地址:https://www.777doc.com/doc-5146156 .html