- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C第三次上机
《面向对象程序设计》
上机报告
题目:继承与派生类上机实践指导 班级: 学号: 姓名:吕琳涛 上机时间:12月13日上午一节二节 题目要求
某小型公司的人员管理信息系统。
三类人员:经理(manager)、技术人员(technician)、销售人员(salesman);后期又增加一类人员:销售经理(sales_manager)。
要求存储这些人员的姓名、编号、当月工资、计算月薪总额并显示全部信息。
(1)人员编号:基数为1000,每增加一名人员时,人员编号加1;
(2)月薪计算:经理=固定月薪8000元;技术人员=100元/小时;
销售人员=当月个人销售额*4%;销售经理=固定月薪5000+所辖部门当月销售额*5%。 二、题目分析
这种数据结构与过程分离有很多问题,例如增加一类人员---销售经理,则三个C函数都必须重新编写。
继承与派生类可以很好地解决两个或多个类之间的关系,很
好地减少了对垒的建立,可以节省很多的时间与编写量,从而
达到很好地效果。 源代码
#include Employee.h
int main()
{
CManager m1;
CTechnician t1;
CSalesmanager sm1;
CSalesman s1;
m1.Promote(3);
m1.Pay();
m1.DisplayStatus();
t1.Promote(2);
t1.Pay();
t1.DisplayStatus();
sm1.Promote(2);
sm1.Pay();
sm1.DisplayStatus();
s1.Pay();
s1.DisplayStatus();
return 0;
}
class CEmployee
{
protected:
char *Name;
int m_nIndividualEmpNo;
int m_nGrade;
float m_fAccumPay;
static int m_nEmployeeNo;
public:
CEmployee();
~CEmployee();
void Pay();
void Promote(int);
void DisplayStatus();
};
class CTechnician : public CEmployee
{
protected:
float m_fHourlyRate;
int m_nWorkHours;
public:
CTechnician();
void Pay();
void DisplayStatus();
};
class CSalesman : virtual public CEmployee
{
protected:
float m_fCommRate;
float m_nSales;
public:
CSalesman();
void Pay();
void DisplayStatus();
};
class CManager : virtual public CEmployee
{
protected:
float m_fMonthlyPay;
public:
CManager();
void Pay();
void DisplayStatus();
};
class CSalesmanager : public CManager , public CSalesman
{
public:
CSalesmanager();
void Pay();
void DisplayStatus();
};
#include iostream.h
#include string.h
#include Employee.h
int CEmployee::m_nEmployeeNo=1000; //人员编号基数为1000
CEmployee::CEmployee() //构造函数
{
char Namestr[50]; //输入人员姓名时首先临时存放在Namestr中
cout请输入下一个雇员的姓名:;
cinNamestr;
Name=new char[strlen(Namestr)+1]; //动态申请用于存放姓名的内存空间
strcpy(Name,Namestr); //将临时存放的姓名复制到Name
m_nIndividualEmpNo=m_nEmployeeNo++; //新输入的人员,其编号为目前最大编号加1
m_nGrade=1; //级别初值为1
m_fAccumPay=0; //月薪总额初值为0
}
您可能关注的文档
- 国际政治类考研专业英语.doc
- 图形学实验报告2 杨伟健.doc
- 基因工程导论考点整理.doc
- 软件行业外包英语答案-Unit3.doc
- c语言详解(第五版)第三章程序设计项目答案.docx
- 口译笔记10.doc
- 2017高三英语阅读理解细节题专项突破五 Word版缺答案.doc
- 新视野1作文题库.doc
- 多媒体技术实验报告三.doc
- 中大细胞生物学课前训练题.doc
- 中国国家标准 GB 14287.5-2025电气火灾监控系统 第5部分:测量热解粒子式电气火灾监控探测器.pdf
- 《GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存》.pdf
- GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求.pdf
- 《GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求》.pdf
- 《GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备》.pdf
- GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备.pdf
- GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
- 中国国家标准 GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
最近下载
- ISO--14644-1-2015-中文版本文档.pdf VIP
- 氧化铝公司基建施工验收手册.doc VIP
- 2025重庆永川区来苏镇关于村社区专职干部招录8人备考题库完美版.docx VIP
- 北京外国语大学《大学英语》2003年真题.docx VIP
- 2025重庆永川区来苏镇关于村社区专职干部招录8人备考题库汇编.docx VIP
- 新高一必修1第四单元课文+翻译 .pdf VIP
- 华为内部控制手册.pdf VIP
- 全国翻译专业资格(水平)考试--CATTI精品课件.ppt VIP
- HJ 169-2018 建设项目环境风险评价技术导则.docx VIP
- 浙江专升本英语真题 铭远教育 2014年浙江专升本英语真题.doc VIP
原创力文档


文档评论(0)