C程序设计对象分册PPT学习教案_第1页
C程序设计对象分册PPT学习教案_第2页
C程序设计对象分册PPT学习教案_第3页
C程序设计对象分册PPT学习教案_第4页
C程序设计对象分册PPT学习教案_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1C程序设计对象分册程序设计对象分册2021-9-262第1页/共81页2021-9-263第2页/共81页2021-9-264第3页/共81页2021-9-2658.1.1 对象和类对象和类第4页/共81页2021-9-2668.1.1 对象和类对象和类第5页/共81页2021-9-2678.1.1 对象和类对象和类第6页/共81页2021-9-268Button-pressed : bool+pressButton() :void8.1.1 对象和类对象和类elevatorButton-elevatorRef : Elevator+pressButton() :voidfloorBu

2、tton-floorNumber : int+pressButton() :void图图8.1 继承中的父子类继承中的父子类第7页/共81页2021-9-2698.1.1 对象和类对象和类第8页/共81页2021-9-26108.1.1 对象和类对象和类第9页/共81页2021-9-26118.1.1 对象和类对象和类 Elevator-door :Door+processPossibleArrival():void elevatorButton-elevatorRef : Elevator+pressButton() :voidDoor- open : bool+closeDoor() :v

3、oid图图8.2 8.2 组合关系组合关系 第10页/共81页2021-9-26128.1.1 对象和类对象和类第11页/共81页2021-9-26138.1.1 对象和类对象和类第12页/共81页2021-9-26148.2 8.2 面向对象的模型面向对象的模型第13页/共81页2021-9-26158.2 8.2 面向对象的模型面向对象的模型第14页/共81页2021-9-26168.2 8.2 面向对象的模型面向对象的模型第15页/共81页2021-9-26178.2 8.2 面向对象的模型面向对象的模型第16页/共81页2021-9-26188.3 8.3 面向对象程序设计过程面向对象

4、程序设计过程 第17页/共81页2021-9-2619 面向对象分析的任务是确定面向对象分析的任务是确定系统能够做什么?谁来使用这个系统?同时建立用例模型,并定义系统中的问题领域类,主要由系统用户和开发人员合作完成。系统能够做什么?谁来使用这个系统?同时建立用例模型,并定义系统中的问题领域类,主要由系统用户和开发人员合作完成。1 1需求分析需求分析 分析的第一步是定义用例,以描述所开发系统的外部功能需求。用例模型的主要构件是用例、角色和系统边界。用例用于描述系统所有功能需求,系统边界用于界定系统功能的范围,而角色用于描述与系统功能有关的外部实体,它可以是用户,也可以是外部系统。分析的第一步是定

5、义用例,以描述所开发系统的外部功能需求。用例模型的主要构件是用例、角色和系统边界。用例用于描述系统所有功能需求,系统边界用于界定系统功能的范围,而角色用于描述与系统功能有关的外部实体,它可以是用户,也可以是外部系统。 第18页/共81页2021-9-2620第19页/共81页2021-9-2621乘乘 客客处理电梯呼叫标示移动方向处理楼层呼叫标示电梯位置电梯模拟系统电梯模拟系统移动停止电梯开关门触发紧急处理器图图8.3 电梯模拟系统用例图电梯模拟系统用例图第20页/共81页2021-9-2622第21页/共81页2021-9-2623第22页/共81页2021-9-2624第23页/共81页2

6、021-9-2625第24页/共81页2021-9-2626 商业对象包商业对象包 : 该包包括域类,这些域类(如该包包括域类,这些域类(如elevatorButton,FloorelevatorButton,Floor,LightLight等)来自于分析模型。设计阶段完整地定义了这些类的操作,并增加了一些其他细节来支持持续存储。在设计阶段,详细设计这些类,以完整定义他们的操作,支持对数据库的存取。所以,所有商业对象类必须继承数据库包中的类。等)来自于分析模型。设计阶段完整地定义了这些类的操作,并增加了一些其他细节来支持持续存储。在设计阶段,详细设计这些类,以完整定义他们的操作,支持对数据库的

7、存取。所以,所有商业对象类必须继承数据库包中的类。 数据库包数据库包 :它向商业对象包中的类提供服务,以便他们能够持续地存储。在当前版本中,持久对象类将把它的子类的对象存储到文件系统的文件中。:它向商业对象包中的类提供服务,以便他们能够持续地存储。在当前版本中,持久对象类将把它的子类的对象存储到文件系统的文件中。 通用包通用包 :该包含了一些服务,用来被系统中其他包调用。:该包含了一些服务,用来被系统中其他包调用。第25页/共81页2021-9-26272 2详细设计详细设计 详细设计的目的是通过创建新的类图、状态图和动态图,描述新类,并扩展和细化分析阶段详细设计的目的是通过创建新的类图、状态

8、图和动态图,描述新类,并扩展和细化分析阶段“素描素描”的商业对象类。不过在详细设计阶段,它们是从技术层次上对系统进行更详尽的描述。如分析阶段的用例描述用来验证它们是否在设计阶段都得到处理,而顺序图用来展示系统中每个用例在技术上如何实现,等等。的商业对象类。不过在详细设计阶段,它们是从技术层次上对系统进行更详尽的描述。如分析阶段的用例描述用来验证它们是否在设计阶段都得到处理,而顺序图用来展示系统中每个用例在技术上如何实现,等等。 在设计阶段,也可细化分析阶段的状态图,更详细的显示状态的变换细节。使用状态图可以揭示单个对象在整个系统中的变化细节,对了解和实现关键类有较大的帮助。在设计阶段,也可细化

9、分析阶段的状态图,更详细的显示状态的变换细节。使用状态图可以揭示单个对象在整个系统中的变化细节,对了解和实现关键类有较大的帮助。 此外,还可以使用其他图在实现层上从不同侧面对分析阶段建立的模型进行细化。此外,还可以使用其他图在实现层上从不同侧面对分析阶段建立的模型进行细化。 第26页/共81页2021-9-2628 面向对象的实现可分为两个阶段:一是对类进行编程的过程。可以选择某种面向对象对象编程语言面向对象的实现可分为两个阶段:一是对类进行编程的过程。可以选择某种面向对象对象编程语言( (如如c+c+或或Java)Java)作为实现系统的软件环境;二是测试和配置,完成系统编码后,需要对系统进

10、行测试。作为实现系统的软件环境;二是测试和配置,完成系统编码后,需要对系统进行测试。 1.1.编码编码 本阶段完成系统框架进行编码。选择合适的语言实现设计阶段完成的总体框架的搭建和具体算法的描述。在实现阶段中,可以选取下列图的说明来辅助编程本阶段完成系统框架进行编码。选择合适的语言实现设计阶段完成的总体框架的搭建和具体算法的描述。在实现阶段中,可以选取下列图的说明来辅助编程: :第27页/共81页2021-9-2629第28页/共81页2021-9-2630第29页/共81页2021-9-2631第30页/共81页2021-9-2632第31页/共81页2021-9-2633乘乘 客客处理电梯

11、呼叫标示移动方向处理楼层呼叫标示电梯位置电梯模拟系统电梯模拟系统移动停止电梯开关门触发紧急处理器图图8.4 电梯系统用例图电梯系统用例图第32页/共81页2021-9-2634第33页/共81页2021-9-2635第34页/共81页2021-9-2636第35页/共81页2021-9-2637第36页/共81页2021-9-2638第37页/共81页2021-9-2639第38页/共81页2021-9-2640第39页/共81页2021-9-2641第40页/共81页2021-9-2642第41页/共81页2021-9-2643 Elevator(电梯) - door :Door+ proc

12、essPossibleArrival():void Button(按钮) - pressed : bool+ pressButton() :void Door(门)- open : bool + closeDoor() :voidelevatorButton(电梯按钮)-elevatorRef : Elevator+pressButton() :voidfloorButton(楼层按钮)-floorNumber : int+pressButton() :void8.5 电梯类图电梯类图 1 拥有拥有 1 拥有拥有 * 1第42页/共81页2021-9-2644第43页/共81页2021-9-2

13、645调度(Scheduler)时钟(Clock)乘客(Person)楼层(Floor)电梯(Elevator) 楼层按钮(floorButton)灯(Light)楼层按钮(floorButton)铃(Bell)门(Door)图图8.6 电梯模拟系统的类电梯模拟系统的类图图 1 调 度 0.1 0.1 等待 乘 1 坐 1 拥有 1 1 1.2 1.2 1.* 1第44页/共81页2021-9-2646第45页/共81页2021-9-2647表表8-2 电梯模拟系统中类的相关描述电梯模拟系统中类的相关描述类与类相关的描述词(名词或名词短语)电 梯电梯运行的时间电梯的状态电梯运行的方向电梯目前处

14、于的位置 电梯到达楼层的时间门门的状态(开和关)时 钟时钟的时间楼 层 按 钮按钮的状态(按下核释放)电 梯 按 钮按钮的状态(按下核释放)灯灯的状态(开和关)铃没有调 度到达指定楼层的时间,人到达时间楼 层灯,按钮,第46页/共81页2021-9-2648电梯按钮电梯状态:布尔 = 假楼层按钮电梯状态:布尔 = 假电 梯目前的位置:整形 = 1电梯的方向:枚举 = UP电梯到达的时间:整形电梯移动:布尔 = 假命名类的属性:命名类的属性: 包括属性的名字、类型、初始值,如图包括属性的名字、类型、初始值,如图8.78.7表示:表示: 灯开关状态: 布尔 = 假图图8-7 具有属性的类图具有属性

15、的类图第47页/共81页2021-9-2649第48页/共81页2021-9-2650表表8-3 电梯模拟系统中类的行为描述电梯模拟系统中类的行为描述类动作行为的描述电 梯 类移动,到达指定楼层,按下电梯按钮,释放电梯按钮,人进入电梯,人离开电梯,开关门,响铃等时 钟 类每秒计时调 度 类创建一个乘客,时间安排,处理楼层等待的人,延迟时间电 梯 按 钮 类标识电梯的移动楼 层 按 钮 类按钮按下和释放门 类开门,关门,表示人已经乘坐电梯楼 层 类通知电梯的到来,标识电梯离开等铃 类创建自身,响铃灯 类创建自身,开关灯总控类运行电梯系统,获取时钟,发送时间给计划表和电梯类第49页/共81页202

16、1-9-2651 电梯按钮电梯状态:布尔 = 假按下按钮()释放按钮() 楼层按钮电梯状态:布尔 = 假按下按钮()释放按钮()电 梯目前的位置:整形 = 1电梯的方向:枚举 = UP电梯到达的时间:整形电梯移动:布尔 = 假电梯运行的时间()人进入电梯()人离开电梯()灯开关状态: 布尔 = 假开灯()关灯()图图8.8 具有属性和行为的类图具有属性和行为的类图第50页/共81页2021-9-2652第51页/共81页2021-9-2653Person - ID : int +stepOntoFloor(Floor&):void +enterElevator(Elevator& ,Floor

17、&) :void +exitElevator(Floor&,Elevator &) :voidFloor- floorNumber :int- elevatorRef: elevator- occupantPtr:Person+ elevatorArrived( ) : void+ isOccupied( ) : bool+ personArrives( ) :void Building- floor : Floor - elevator : Elevator - clock : Clock - scheduler : Scheduler+ runSimulation(int) : voidE

18、levator- currentFloor : int = 1- direction : enum = up- capacity : int = 1- arrivalTime : int- moving : bool = false- scheduler : Scheduler+ summonElevator( ) : void+ prepareToLeave( ) : void+ processTime( ) : void+ personEnters( ) : void+ personExits( ) : voidrunSimulation(int) : voidClock- time :

19、int = 0-scheduler: Scheduler+getTime() : int+tick() : voidScheduler- floorArrivalTime : int- currentClockTime : int+ processTime(time : int) : int图图8.9 添加控制类后的系统类图添加控制类后的系统类图 0.1 乘坐 11 0.1 等待 1 1 11第52页/共81页2021-9-2654第53页/共81页2021-9-2655第54页/共81页2021-9-2656第55页/共81页2021-9-2657第56页/共81页2021-9-2658第5

20、7页/共81页2021-9-2659第58页/共81页2021-9-2660第59页/共81页2021-9-2661第60页/共81页2021-9-2662第61页/共81页第62页/共81页2021-9-2664第63页/共81页第64页/共81页2021-9-2666图图8.118.11显示系统中的对象之间的协作图显示系统中的对象之间的协作图:Elevator:Light:Floor:FloorButton:Person:Person:Bell:ElevatorButton:Door3.1 resetButton() 3.2 turnOn()4.2.1passengerEnter() 4.

21、1.1 passengerExits() 1.resetButton 2.ringBell() 4.2 enterElevator() 4.1 exitElevator 第65页/共81页第66页/共81页第67页/共81页第68页/共81页2021-9-2670第69页/共81页第70页/共81页2021-9-2672 现以电梯类为例,简单给出电梯(现以电梯类为例,简单给出电梯(ElevatorElevator)类中各操作的算法描述。)类中各操作的算法描述。 ElevatorElevator类中主要操作如下:类中主要操作如下:(1 1)Elevator(Floor& firstFloor , Floor& secondFloor)Elev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论