公司员工管理系统详解.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《高级语言程序设计》作业报告 作业名称: 公司员工管理系统 学 院 专 业 学生姓名 任课教师 提交日期 2014年6月27日 问题描述 一间公司有各种人员,对人员信息的管理显得比较重要。于是,本系统是要解决公司员工信息的管理。主要有信息的增加,查询,删除,更新等操作。解决了人员的增加,减少,变更等的情况。 系统设计 类体系设计: 设计一个员工虚基类staff,包含编号、姓名和年龄保护数据成员,还有相关的函数。因为公司里面人员的分类众多,难以找到统一标准,在此进行简化,暂且将人员分为管理方面和研究方面。所以,从基类中派生出研究人员类engineer,里面增加专业,职称两个保护数据成员。同样地,管理类leader也从基类派生,里面增加职位,部门两个保护数据成员。考虑到有的员工同时具有这两个性质,即同时兼有管理和研究的职责,于是从研究类和管理类中派生出研究管理类chairman,该类属于多继承了前面的两个类。现在已经有四个类,而且它们具有继承关系。接着要考虑对数据的操作和对各种员工的管理操作,另外定义一个员工管理类staffmanage,将各种操作函数,数据成员进行封装。至于各个类的成员函数都有自己的版本,利用多态性,用基类指针指向派生类对象进行调用。 数据结构分析 因为涉及到信息的处理,所以采用二进制文件staff.dat保存数据。上述的类体系中,不同类层次的对象具有的数据成员不同,为了方便存储在一个二进制文件中并且能进行查询等操作,另外建立索引结构indextype,并将索引存储在索引文件index.dat中。索引结构中必须包含一个数据成员position记录不同对象数据在二进制文件的相对存储位置。另外,查找数据的标志设置为人员的编号num,为了便于进行删除操作,设删除标记deltag.最后,文件操作时要确定写入的文件大小,需要有人员类型标记stafftypeb便于分配存储空间。 类定义及成员函数功能描述: 虚基类staff: class staff { public: staff(){} //构造函数 virtual~staff(){} //虚析构函数 const char*getnum()const{return num;} //返回编号 virtual void input()=0; //输入函数 virtual void show()const=0; //显示数据 virtual void read(fstream f)const=0; //读文件 virtual void write(fstream f)const=0; //写文件 protected: char num[8]; //编号 char name[12];//姓名 int age; //年龄 } 该基类把员工的基本数据成员和基本操作都包含进来了。除了返回编号的函数有具体实现,其他函数都声明为纯虚函数。 研究人员类engineer class engineer:virtual public staff { public: engineer(){} //构造函数 virtual~ engineer(){} //虚析构函数 void input(); //输入数据 void show()const; //显示数据 void read(fstream f)const //读文件 { f.read((char*)this,sizeof(engineer)); }; void write(fstream f)const //写文件 { f.write((char*)this,sizeof(engineer)); }; protected: char major[12]; //专业 char prof[12]; //职称 }; 该类增加两个成员以记录更多的性质,函数也会给出具体实现,这里部分函数只做了声明。

文档评论(0)

boss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档