- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大作业报告
题目:
销售公司员工管理
设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出销售员类Salesman,包含销售额保护数据成员以及相关的成员函数;再由Staff派生出经理类Manager;然后由Salesman和Manager类派生出销售经理类SalesManager。
设计一个利用文件处理方式实现对公司人员(包括销售员、经理和销售经理)进行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能。(删除数据在记录中做删除标志,重组文件指在物理上删除有删除标志的记录。)另外要求分别统计这三类员工的人数以及所有员工的总数。
分析:
1、类的分析:
从题目中可以看出,至少需要有类Staff,类Salesman,类Manager,类SalesManager这四个类。这四个类是最基本的。当然,还需要添加其他类,在后面的分析中。
2、类中数据成员的分析:
这四个类的关系以及相关的数据成员,题目中说得很清楚。为了对象信息的完整性,在类Salesman中添加一个数据成员title,用来标记一个员工的职称;在类Manager中添加一个数据成员position,用来标记一个员工的职位。当然,程序中也可以不添加。其中,关键在于各个类中成员函数的设计。
3、类中成员函数的分析:
考虑到要对数据的处理,各个类中要有成员函数能够实现输入数据的功能来实例化对象,还要有成员函数来输出一个对象的相关信息,即输出一个对象中的数据成员信息。由于题目要求利用文件处理方式实现对公司人员进行管理,所以,各个类中要有成员函数能够将一个对象的相关信息写入到文件中,还要有一个成员函数能够将相关信息从文件中读出。因此,每个类中至少要有上述四种成员函数。由于类中存在继承关系,为了优化程序,利用虚函数实现多态性,在基类Staff中将这四种函数定义为虚函数,并在其他三个类中重写这四个函数,就可以通过基类指针来访问派生类中这四个同名函数。
4、添加一个新的类:
题目要求设计一个利用文件处理方式实现对公司人员(包括销售员、经理和销售经理)进行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能,还要求分别统计这三类员工的人数以及所有员工的总数。所以,可以设计一个新的类ManagementSystem,用来实现上述所要求的功能。
在类ManagementSystem中,每一个成员函数对应题目中的一个功能,当要求不同的功能时,就调用相应的成员函数,在成员函数中通过对之前四个类的操作以及其他操作来实现相关的功能。在类ManagementSystem中,还需要一个成员函数来进行功能选择,即用来管理其他成员函数。值得注意的是,在类中要显式的定义一个构造函数,完成相关数据成员的初始化,这点非常重要。
类ManagementSystem中的数据成员,可以根据所需要的功能来添加。如数据成员中需要定义一个文件流对象,用来关联一个文件,实现对文件的处理。在构造函数中就可以将它与一个文件关联起来。可以添加四个数据成员分别用来表示销售员的人数、经理的人数、销售经理的人数以及总的人数。
5、设计一个结构体:
在文件处理方式中,为了方便对文件的操作,可以设置一个索引数组,这个数组中的每一个元素可以用来标记一个员工数据在文件中的相关信息。考虑到功能的要求,这个数组的每个元素要标记数个信息,所以这个数组定义为一个结构体数组。在定义的结构体中,有四个参数,分别用来表示一个员工的数据在文件中的删除标志、员工的编号、编号对应的员工信息在文件中的位置,以及员工的类型。
因此,ManagementSystem类中还可以添加一个成员函数来实现将一个结构体变量插入到结构体数组中。并且,在类ManagementSystem中可以增加一个结构体指针的数据成员指向结构体数组,增加一个表示结构体数组的容量的数据成员,增加一个表示结构体数组中已有记录数目的数据成员。
程序的说明:
以上所有的分析与设计,就是编写程序的整体框架,即思路。根据以上的思想,可以写出各个类以及结构体的相关信息。至于具体的实现细节,可见源程序,源程序中有相关的文字说明。
Staff类:
类中定义了三个保护数据成员,分别为char num[8],char name[15],int age,分别表示员工的编号、姓名和年龄。
类中定义了七个公有的成员函数。分别为Staff(),virtual ~Staff(),const char *GetNum(),virtual void SetData()=0,virtual void ShowData() const=0,virtual void Read(fstream f) const=0,virtua
您可能关注的文档
最近下载
- 2024年上海市奉贤区高三下学期高考二模英语试卷含答案.doc VIP
- 2025年钢结构厂房施工组织设计方案(DOC41页).pdf VIP
- 企业数字化转型战略实践与启示(51页PPT).pptx VIP
- 中考英语复习精补全对话习题50道.doc VIP
- 14D504 接地装置安装.docx VIP
- 2024年高考语文复习:修改病句 专项练习题(含答案解析).docx VIP
- 低压开关设备和控制设备 第2部分:断路器 PPT.ppt VIP
- 消杀技术培训.pptx VIP
- Photoshop CS6 实例教程(第6版)教学教案.doc VIP
- 西南大学(0209)《文字学》23秋机考2小篆.docx VIP
文档评论(0)