- 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++程序 3.1面向对象分析与设计 3.1.1需求陈述 一个简单图形程序的需求: 在显示器荧光屏上圆心坐标为(100,100)的位置 上,画一个半径为40的圆,在圆心坐标为(200,300) 的位置上,画一个半径为20的圆,在圆心坐标为 (400,150)的位置上,画一条弧,弧的起始角度为 30,结束角度为120,半径为50。 注意:功能需求必须是可测试的。如:系统速度要快。 (要有一个准确的值) 3.1.2 面向对象分析 面向对象分析就是抽取和整理用户需求并建立 问题域精确模型的过程。面向对象分析的关键工 作,是分析 确定问题域中的对象及对象间的关系, 从而建立起问题域的对象模型。 3.1.2 面向对象分析 ⒈确定对象 使用“语法分析 ”方法。在需求陈述中包含的名 词或名词短语是对象的候选者, 它们有下列一些: 显示器荧光屏,圆心坐标,位置,半径,圆, 弧,起始角度,结束角度。 3.1.2 面向对象分析 “显示器荧光屏”是一种输出设备,是运行程序的物 质基础(硬件平台),应该从候选对象中删去。“圆心 坐标”和“半径”实质上是圆和弧的基本属性,并不需要独 立存在,因此也应该从候选者中删去。“位置”实际上是 指圆心的位置,也就是圆心坐标,没必要重复列出。 “起始角度”和“结束角度”实质上是弧的属性,也应该从 候选者中删去。最后得出的对象是,圆(Circle)和弧 (Arc),更确切地说,是圆和弧两类对象。 在本问题域中实际上有两个具体的圆和一个具体 的弧,换句话说,有圆类的两个实例和弧类的一个实 例。 3.1.2 面向对象分析 ⒉确定属性 圆的两个基本属性是圆心坐标和半径,弧的基 本属性有圆心坐标,半径,起始角度和结束角 度。不可能在需求陈述中找到所有属性,还必须 借助领域知识和常识,才能分析得出所需要的全 部属性,圆和弧都应该再增加一个属性-可见性。 3.1.2 面向对象分析 ⒊确定服务 在分析阶段可以认为,每个属性都是可以访 问的。所谓可以访问是指提供了访问对象属性的 对外接口。(由对象主动地向外界提供服务) 分析:这个程序应完成的功能可知,圆和弧 都应该提供在荧光屏上“画自己”的服务。相应地 也应该提供“隐藏自己”这样一个服务。 圆和弧分别有各自的属性和服务,如图3.1所示。 3.1.3 面向对象设计 设计就是把通过分析得出的对程序的准确需求 转变成实现程序的方案的过程。主要完成下述工作 : ⒈建立类等级 面向对象程序的一个突出优点来源于继承性。 应该尽量抽取出相似类的公共属性和公共服务,以 建立这些相似类的父类,并在类等级的适当层次中 正确地定义各个属性和服务。 图3.2所示的对象 模型。为简明起见,图中没 有列出读或写属性值的常规服务。 3.1.3 面向对象设计 ⒉定义属性 所谓定义属性就是要确定每个属性的数据类型 和数据结构,同时还要确定每个属性的访问权限 (通常被定义在保护部分或私有部分)。 ⒊定义服务 实现“显示”服务的算法概括来说就是,把“可见 性”属性设置为true,然后调用相应的库函数用当前 的前景颜色画出所要的图形。 3.2 用C++ 语言实现3.2.1 定义类与派生类 ⒈ 定义类: class Location { ∥以下说明数据成员 ┇ ∥以下说明成员函数 ┇ }; 3.2.1 定义类与派生类 3.2.1 定义类与派生类 3.2.2 说明数据成员 把定义Location类的框架进一步具体化为: class Location { ∥以下说明数据成员 Protected : int X; int Y; ∥以下说明成员函数 ┇ }; 3.2.2 说明数据成员 定义Point类的框架进一步具体化为: class Point : public Location { ∥以下说明数据成员 Protected : Boolean Visible; ∥以下说明成员函数 ┇ }; 3.2.2 说明数据成员 在说明数据成员时,首先要用访问权符 指定数据的可访问性,接下来应该用数据类 型名表明当前说明的数据的数据类型,随后 写出所说明的数据的名字,最后用分号“;”结 束对一个数据的说明。 3.2.2 说明数据成员 3.2.3 说明和定义成员函数 ⒈说明成员函数 原型说明由函数返回值类型,函数名及参数特征三
有哪些信誉好的足球投注网站
文档评论(0)