软件技术基础软件工程.pptxVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§3.3 面向对象的程序设计方法(OOSD) 面向对象的程序设计方法同样包括了面向对象的分析(OOA)、面向对象的设计(OOD)和面向对象的编程(OOP)三个部分。一、结构化程序设计技术的缺点:利用SA-SD-SP方法设计的软件是非稳定的:? 用户需求的变化导致系统结构的变化。? 数据和操作的分离,降低了软件的可重用性。 面向对象方法是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地同人类认识和解决问题的方法一致,即是问题空间和解空间在结构上尽可能一致的软件设计方法。2、面向对象方法的要素:? 对象: 问题空间的对象是在应用领域中有实际意义的, 与待解问题相关的任何事物都可作为对象(object)。 是将描述对象属性的数据和其行为封装在一起构成的统 一体。操作1操作2操作3名字:录音机: 属性:music曲名 status状态 操作1:play :放音键 2:record :录音键 3:stop: 停止键 状态 操作 1 、2、3的实现对象:名字、属性(成员)、操作 面向对象方法的基本思想就是要把软件系统构造成为对象的集合(而不是模块的集合)。? 类(class):具有相同类型的数据和相同类型的操作的 一组对象的抽象的定义。 对象是类的具体实例。CEditCButton? 继承(Inheritance):面向对象的方法中把类组成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类。继承是子类自动地共享父类中定义的数据和行为的机制。父类抽象出该类对象的共同特征,子类表示层次之间的不同。C TextButton CButtonC BitmapButtonC RoundButton 父类的使用和特征更普通,而子类除了具有父类的属性和行为之外,还具备了一些更具体或特殊的属性和行为,这样一种关系称为继承。 继承是实现递增式编程的有效途径,是使软件可修改的重要手段。? 消息(Message):对象之间的相互联系是通过消息的 传递来实现的。消息是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常一个消息由以下三个部分组成: 接收消息的对象 消息名 消息的相关参数(n个变量)例如: Mycircle 是一个半径为4cm,圆心位于(100,100)的circle类中的对象,当要求该圆以绿色在屏幕上显示时,C++语言中应向对象Mycircle发送如下消息:Mycircle.show ( GREEN ); 面向对象的程序设计方法在使用对象概念时引入了类和继承的机制,且通过消息的传递实现了对象之间的通信,它是一种强有力的软件开发工具。Windows程序就是以消息作为程序工作的动力,即“以消息为驱动”。软 件 工 程 实 例— 双人对奕五子棋程序设计一、软件功能: 本软件不实现“人机对奕”,而是为对奕双方提供一个下五子棋的棋盘,两位棋手可在此棋盘上交替行棋,直到其中一位走成“五子连珠”时,程序则应判他获胜。图1 五子棋对奕示意图二、用户手册:1、用户接口棋盘当前行棋方图2 五子棋软件提供的对奕环境2、操作说明:· 一号棋手用 W,S,A,D 键操纵光标,将光标 移动到希望落子的位置,以空格键落子;· 二号棋手用方向键键操纵光标,将光标移动到 希望落子的位置,以回车键落子;· 其中一个棋手在行棋时,另一个棋手不能操作 键盘;· 只能在交叉点上落子,双方棋手交替行棋;· 当某一棋手落子后,形成五子连珠时,该棋手 获胜,游戏结束;· 在游戏的任意时刻,可按 Escape 键退出游戏; 游 戏三、软件设计:1、需求分析?数据流图棋手1键盘信息1键盘信息2棋手2对奕软件棋局状态、胜负信息棋局状态、胜负信息初始化棋手2键盘信息2棋局状态键盘信息1胜负信息棋手1判定胜负棋盘显示接收按键落子 键棋局状态退出键落子棋局状态移动光标键更新棋局状态光标位置退出无效按键移动光标胜负显示后? 数据字典●数据流条目:char gChessBoard[19][19];棋局状态:无子占据: 0;黑子占据:‘o’; 白子占据‘x’光标位置:struct point{ int x; int y; }gCursor; 用于记录光标位于棋盘上的行和列的坐标值。●加工条目:初始化:在程序开始时,必须在屏幕上显示一 个棋盘和必要的操作提示信息,并初 始化代表棋局状态的数组(如图2示) gChessBoard[19][19]的元素0。接收按键:程序根据用户的按键来决定执行什 么操作,次模块用于接收和处理用 户输入,并将被循环调用直到分出 胜负为止。移动光标:判定胜负:2、总体设计

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档