第二章 类与对象1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 类与对象1

第二章 类与对象;本章主要内容;重点: 根据具体问题的算法编写程序,重点考虑本问题的解决方法和流程 形式: 主模块+若干个子模块(main( )+子函数)。 每个函数实现一项功能 特点: 设计者必须考虑每一个细节 数据与函数分离,所有数据都是公用的。;缺点: 数据与代码分离导致数据改变时需重新编写函数 程序功能扩充时程序的可重用性差,效率低。;例:编写小型公司人员信息管理系统 某小型公司主要有人员,经理、兼职技术人员、销售经理和兼职推销员。现在需要存储这些人员的姓名、编号、级别、当月薪水、计算月薪总额并显示全部信息。 月薪计算方法:经理拿固定月薪8000元兼职技术人员按每小时100元领取月薪兼职推销员月薪按当月销售额的4%提成销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售额的5‰。;分析: 一般数据描述用结构体 struct employee { char *name; //姓名  int no; //编号 char *job; //职位 float paytotal; //月薪总额 float hourlyRate; //每小时酬金 int workHours; //当月工作时数 float CommRate; //销售额提取百分比 float sales; //当月销售额 } 不同职位月薪计算方法和需要数据个数不同,专用与公用数据混杂,数据结构过于庞大,结构不清;程序结构: 函数: employee *input ( ) 输入全部数据 必须输入全部数据,即使不使用的部分专有数据也不例外,且输入顺序要与数据文件顺序匹配 月薪计算函数pay 利用函数重载编写各类人员月薪计算函数pay,这样主函数中必须要有相应分支结构,按职位调用相应pay函数 void output( employee person ) 输出全部数据 除输出公用数据外,其中应有分支结构,根据职位不同输出其专有数据。如:兼职技术人员要输出每小时薪金数及小时数等信息;分析: 修改: 添加钟点工:4小时以内每小时5元, 4小时以上每小时8元。 程序修改范围:添加pay函数,修改所有其他函数包括main函数包括数据文件 结论: 面向过程的程序设计在程序的通用性、扩展性方面存在缺陷。 ;§2.1 面向对象程序设计;抽象:将研究对象(问题)分类并总结出每类对象的公共性质并加以描述 将具有相同结构和特性的一批对象总结出来用“类”这种数据结构描述,称为对象的抽象 数据抽象:总结出同类对象的基本特点(属性)用物理量(变量等)描述 代码抽象:总结出同类对象的共有的行为特征(操作或具有的功能),编写相应专用函数 例:编写兼职技术人员的月薪计算函数;封装:将数据和操作放在一起,视为一个整体称为类,与外界相对分隔。;§2.1 面向对象程序设计;§2.1 面向对象程序设计;§2.1 面向对象程序设计;面向对象的基本特点;§2.1 面向对象程序设计;§2.2 类与对象的定义; 类是一种用户自定义类型,它是从结构体引申而来: struct student { int num; char name[10]; int score; }; student stu, stu2; 结构体只包括数据,没有操作,结构体成员在本作用域中是“敞开”的,使用不受限制;§2.2 类与对象的定义;结构体类型的扩展-在定义中加入代码(函数): struct student { int num; char name[10]; int score; void display( ) { cout num: num endl; cout name: name endl; cout score: score endl; } };;封装后的结构体仍然开放,所有成员均可直接使用,但须按格式使用包括函数成员。 void main( ) //no2.2-1A.cpp { student stu; cout please input data: ; cin stu.num stu.score; stu.display( ); } 封装后的结构体仍然开放,所有成员均可直接使用;为保护专有数据兼顾外界使用,设置访问权限,让专有成员只能内部使用,公开成员则任意使用 stuct student { private: int num; char name[10]; char sex; public:

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档