[架构之路-250]:目标系统 - 设计方法 - 软件工程 - 需求工程 - 需求开发:如何用图形表达需求,面向对象需求分析OOA与UML视图

目录

一、面向对象需求分析

1.1 面向对象的基本概念

1.2 什么是面向对象的需求分析

2.3 什么是UML图

2.4 UML视图

2.4 UML图与UML视图的关系

2.5 UML图与面向对象需求分析的关系

二、需求分析相关的UML图形与视图:1+4视图

2.1 用例模型与用例图:用户与系统的交互,功能性需求

2.2 类图与对象图

2.3 顺序图:对象之间的行为交互

2.4 通信协作图

2.5 活动图 =》 并行流程图

2.6 状态图


一、面向对象需求分析

1.1 面向对象的基本概念

  • 实体类 VS 计算机的内存、寄存器(数据)
  • 控制类 VS 计算机的计算单元ALU(程序)
  • 边界类 VS 计算机的输入输出单元(IO接口)

狭义上讲,面向对象是一种编程思想和方法,广义上讲,面向对象一种软件开发与实现的编程思想和方法它将现实世界中的事物抽象为对象,通过对象之间的交互来实现程序的设计和开发。

面向对象的基本概念包括以下几个方面:

  1. 类(Class):类是对具有相同属性和行为的一组对象的抽象描述。类定义了对象的属性和方法。

  2. 对象(Object):对象是类的实例,表示具体的实体。每个对象都有自己独立的状态(属性的值)和行为(方法的实现)。

  3. 封装(Encapsulation):封装是将数据和操作(方法)封装在一个对象中,对外部用户隐藏对象的实现细节。通过封装可以实现信息隐藏和保护数据的安全性。

  4. 继承(Inheritance):继承是指一个类从另一个类派生出来,新的类继承了原有类的属性和方法,并可以在此基础上添加新的属性和方法。继承可以实现代码的重用和扩展。

  5. 多态(Polymorphism):多态是指同一种操作或方法可以在不同的对象上产生不同的行为。通过多态可以提高代码的灵活性和可扩展性。

通过使用这些基本概念,面向对象的编程可以更加灵活、可维护和可扩展,提高代码的可读性和复用性。

1.2 什么是面向对象的需求分析

面向对象的需求分析是指在需求分析阶段(而不是软件开发阶段)中使用面向对象的方法来识别和建模问题领域(不是计算机领域)中的对象属性、方法和关系,从而识别出目标系统需要解决的问题以及解决问题的方式

在面向对象的需求分析中,主要涉及以下几个方面:

  1. 对象建模:通过识别问题领域中的实体,将其定义为对象,并确定对象之间的关系和属性,以及对数据进行操作的方法

  2. 用例建模:通过描述使用者和系统之间的交互行为及其流程,进一步明确系统需要解决的问题以及解决问题的方式。

  3. 建立类图:通过将上面步骤中识别出的对象、属性和方法等内容,组织成类和对象之间的关系,形成类图来表示系统的结构和模型。

  4. 领域建模:通过识别问题领域中的概念和规则,建立领域知识模型,以帮助开发人员更好地理解问题领域。

使用面向对象的方法进行需求分析,使得系统的需求和领域更加清晰明了,有助于避免需求漏洞和理解上的偏差,也能提高软件设计和开发的效率。

2.3 什么是UML图

描述对象以及对象之间的关系,有多种方法,如文本方式描述,也是图形化方式描述。

UML图(Unified Modeling Language diagram)是一种用于描述软件系统或其他系统的图形化语言。它是一种标准化的建模语言,可以使软件开发人员、架构师和系统分析师在设计和开发软件系统时更加清晰地表示和交流其设计和功能。

UML图包括多种不同类型的图表,例如类图、用例图、时序图、活动图等等。它们分别用于表示系统中的不同方面,如对象类的结构和关系、系统用户和功能、计时和协作关系等等。

因此,UML图是软件开发领域中重要的工具之一,它可以帮助团队成员更好地理解和沟通软件系统的设计和实现。

面向对象需求分析过程中,可以使用UML(统一建模语言)图是一种常见的方式来帮助描述、分析和传达系统的需求。

以下是几种常用的 UML 图形,在需求分析中经常用到:

  1. 用例图(Use Case Diagram):用例图主要用于描述系统的功能需求和用户与系统之间的交互。它展示了系统的不同角色(参与者)和与系统交互的各种用例(功能场景),以及它们之间的关系。用例图帮助识别和定义用户需求,理解系统的主要功能和用户使用情景。

  2. 类图(Class Diagram):类图主要用于描述系统的静态结构和对象之间的关系。它展示了系统中的类、属性、方法以及它们之间的关联、继承等关系。类图帮助识别和定义系统的数据模型,明确对象的行为和属性。

  3. 活动图(Activity Diagram):活动图主要用于描述系统的业务流程、操作流程和控制流。它展示了系统中的活动、决策、并行处理等,以及它们之间的关系。活动图帮助澄清和定义系统的操作流程和用户交互。

  4. 状态图(State Diagram):状态图主要用于描述系统的状态和状态之间的转换。它展示了系统的不同状态、状态之间的转换条件,以及状态转换时的行为。状态图帮助识别和定义系统的状态模型和状态转换逻辑。

  5. 顺序图(Sequence Diagram):顺序图主要用于描述系统中对象之间的交互和消息传递顺序。它展示了一系列对象之间的时序关系,以及它们之间的消息发送和响应。顺序图帮助理解系统中不同对象之间的协作和通信。

  6. 协作图(Collaboration Diagram):协作图(也称为通信图)主要用于描述系统中对象之间的协作关系和消息传递。它展示了对象之间的交互、消息传递和协作关系。协作图帮助识别和定义系统中不同对象之间的通信模式和交互情况。

使用这些 UML 图不仅有助于分析和表达系统需求,还可以在需求讨论、验证和文档编写过程中提供清晰的视觉表示。需要根据具体的需求和场景选择合适的 UML 图来支持需求分析工作。

2.4 UML视图

UML视图是在软件系统建模中使用的一种方式,用于描述系统在不同层次角度上的视角。

UML视图帮助开发人员和设计师理解和表示系统的各个方面。

以下是一些常见的UML视图:4+1视图

        用例视图(Use Case View):用于描述系统的功能和用户角色之间的交互,展示系统在响应各个用例时的行为。

  1. 静态视图(Static View):包括类图、对象图和包图等,用于描述系统中的类、对象和它们之间的关系,展示系统的静态结构。

  2. 动态视图(Dynamic View):包括时序图、活动图和状态机图等,用于描述系统中对象之间的交互和行为,展示系统的动态行为和状态转换。

  3. 实现视图(Implementation View):提供关于系统软件和硬件组成的信息,包括组件图、部署图和包图等,展示系统的实现细节和组织结构。

  4. 部署视图(Deployment View):用于描述系统在物理环境中的部署和分布,包括节点图和部署图等,展示系统的物理架构和资源配置。

这些UML视图相互补充,共同构成了对系统全面而细致的描述。通过使用这些视图,开发人员可以更好地理解系统的不同方面,并与团队成员共享和交流设计和实现细节。

备注:

UML为什么是4+1视图,而不是5个视图?

这是因为,用例视图是所有其他视图的输入,用例视图与其他视图并非并列关系,而其他4种视图,实际上是并列关系,相互独立,他们从不同的视角描述和阐述目标系统,而用例视图是为其他4种视图共享!!!

2.4 UML图与UML视图的关系

视图是不是图,视图是指观察目标系统的一个维度和角度,如机械结构的视图:俯视图、主视图、仰视图、左视图、右视图,后视图等,然而,每个视图都不包括无数张实际的图组成。

UML图是在UML建模中使用的一种图形化表示,它用于描述各种软件系统的方面。UML视图是一种表示UML模型各个方面的方式,它可以看作是UML图的一个组成部分。换句话说,UML视图是根据系统开发过程中的需要,使用一种或多种UML图来抽象和表示系统的不同方面。

UML视图通常包含若干个UML图,每个图用于表示系统在某个特定层次或视角下的元素和关系。根据需要,UML视图可以包括不同类型的UML图,如用例图、类图、时序图、组件图、部署图等。不同的UML图描述系统的不同方面,从而构成了一个完整的UML视图,帮助开发人员更好地理解和表示系统的各个方面。

因此,可以说,UML视图和UML图是相关的,UML图是UML视图的组成部分。在系统建模和开发过程中,UML视图根据需要以不同的形式出现,并且各个UML图的组织方式和连贯性都是UML视图的一部分。通过使用UML视图和UML图,开发人员可以更好地管理和理解复杂软件系统的各个方面,并且可以与团队成员更好地共享和交流设计和实现细节。

2.5 UML图与面向对象需求分析的关系

UML图是面向对象需求分析的一种工具和技术。UML(Unified Modeling Language)提供了一套丰富的图形化表示方法,用于描述软件系统的结构、行为和交互

面向对象需求分析是一种方法论,旨在通过识别和分析系统的需求,以面向对象的思维方式来设计和构建软件系统。

在面向对象需求分析的过程中,UML图被广泛应用于捕捉、表示和沟通系统需求。通过使用不同类型的UML图,如用例图、类图、时序图、状态图等,分析人员可以更好地理解系统的功能、角色、结构和行为。

以下是UML图与面向对象需求分析之间的关系:

  1. 用例图:用例图帮助识别和表示系统的功能需求,通过描述系统的用户角色、用例和它们之间的关系,展示用户与系统之间的交互行为。

  2. 类图:类图描述系统中的对象类、属性和方法,以及它们之间的关系。通过分析类图,可以识别出系统的核心对象和它们的行为,帮助定义和理解系统的静态结构。

  3. 时序图:时序图描述系统中对象之间的交互流程和消息传递顺序。通过时序图,可以分析系统中的交互行为,捕捉系统的动态行为和事件流程。

  4. 状态图:状态图描述系统中对象的状态转换和行为规则。通过状态图,可以分析系统中对象的生命周期和状态变化过程,从而理解系统的行为规则和状态转换逻辑。

综上所述,UML图提供了一种可视化和规范化的方法,用于在面向对象需求分析过程中捕捉、表示和沟通系统的需求。它们帮助分析人员更好地理解系统的不同方面,并与团队成员共享和交流设计和实现细节。

二、需求分析相关的UML图形与视图:1+4视图

2.1 用例模型与用例图:用户与系统的交互,功能性需求

用例模型是一种需求分析方法,用于描述系统的功能需求用户与系统之间的交互

而用例图是用例模型的一种图形化表示方式,用于可视化、交流和共享用例模型的信息。

用例模型包括以下几个主要元素:

  1. 用例(Use Case):用例代表了系统的一项具体功能或业务场景,描述了用户和系统之间的交互过程。每个用例表示一个完整的功能,它描述了系统在特定情景下的行为和响应。

  2. 参与者(Actor):参与者代表与系统进行交互的外部实体,可以是人、其他系统或设备。参与者在用例中扮演特定的角色,触发或参与到系统的某项功能中。参与者与用例之间通过交互实现功能。

  3. 关联关系(Association):用例与参与者之间通过关联关系连接,表示参与者与用例之间的关系。一个参与者可以关联多个用例,一个用例也可以被多个参与者关联。

  4. 包含关系(Include):包含关系表示一个用例包含或引用另一个用例的行为。包含关系用于描述通用的行为和流程,避免在多个用例中重复定义相同的步骤。

  5. 扩展关系(Extend):扩展关系表示一个用例在某种情况下可以扩展另一个用例的行为。扩展关系用于描述可选的和可变的功能,可以根据特定条件进行扩展或修改。

用例图是用例模型的图形化表示,通过用例图可以清晰地展示系统的各个用例以及参与者之间的关系。用例图中的参与者通常以图标形式表示,用例以椭圆形式表示,参与者与用例之间通过实线箭头连接。用例图还可以用于描述用例之间的包含关系和扩展关系,通过虚线箭头表示。

用例图图形化地表达了系统功能和用户需求的关系,可以帮助团队更好地理解和讨论需求,促进系统设计和开发的沟通和协作。它可以提供一个高层次的系统视图,帮助识别和定义主要的用例和参与者,并构建全面的使用场景。

电话注册继承于课程注册,具有课程注册所有的属性特征,同时增加了电话相关的新的特征。

网络注册继承于课程注册,具有课程注册所有的属性特征,同时增加了网络相关的新的特征。

包含(Composition)、扩展(Aggregation)和继承(Inheritance)是面向对象编程中常见的三种类之间的关系。

包含关系(外合关系、组合关系)指类 A 中包含了类 B 的对象,并且这些对象在类 A 的生命周期中创建和销毁。例如,一个车类中可能包含了轮子类的对象,而车的生命周期中也包含了轮子的生命周期,因此这是一种包含关系。B是A的一部分,且被A独占,不能被其他对象或类共享。

扩展关系外合关系、聚合关系是指类 A 中包含了类 B 的对象,但是这些对象可以被共享和重复使用,并且在类 A 的生命周期中不会被销毁。例如,一个汽车租赁公司的车库中包含了几辆相同型号的汽车,这些汽车被共享和重复使用,因此这是一种扩展关系。

继承关系(内生关系、血缘关系)是指类 A 从类 B 中继承属性和方法,并且可以对这些属性和方法进行扩展和重写。例如,一个狗类可以继承自动物类的属性和方法,并且可以对这些属性和方法进行扩展和重写,因此这是一种继承关系。

总的来说,继承关系最强耦合关系,包含关系也是强耦合的、拥有关系,扩展关系是弱耦合的、合作关系,继承关系则是一种 IS-A 的关系,可以不断扩展类的功能和特性。开发者需要根据具体的场景,选择合适的关系来设计类之间的联系。

2.2 类图与对象图

类图描述了不同类之间的结构关系、协作关系。

对象是类的实例化,对象图描述了不同对象之间的关系,一个实例化后的对象,可能已经包含了多个不同的类。

类图和对象图都是UML(统一建模语言)中的图形表示方式。

类图是一种用于描述类之间的静态结构关系的图形语言。它通常由类名、属性、方法等元素组成,在类图中可以表示类之间的关系,例如继承、实现、聚合、组合等关系。

而对象图则是一种用于表示类与对象间动态关系的图形语言,它是类图在运行时的表现形式,也称“实例图”。对象图展示了一个或多个对象及其之间的关系,可以显示对象的属性和方法,是描述对象和它们之间交互的有效方式之一。对象图可以用于表示系统的状态和操作序列,对于软件开发与测试具有重要意义。

总的来说,类图关注的是抽象模型,而对象图关注的是实例对象。类图描述的是类及其之间的关系,而对象图则描述了类的实例之间的关系。简而言之,类图是静态的,对象图是动态的。

类是数据类型,对象是实例,是变量!!!

2.3 顺序图:对象之间的行为交互

顺序图(Sequence Diagram)是UML(统一建模语言)中的一种行为模型图,它用于描述对象之间的动态交互过程。它通过建立对象之间消息传递的时间顺序,显示了系统中对象之间的协作关系和消息传递过程

顺序图通常由垂直的参与者线,水平的消息箭头和激活条(表示对象收到消息时处于激活状态的时间段)组成。参与者表示系统中的对象、线性、进程等实体,消息箭头表示不同对象之间的消息传递,激活条则表示对象接收或处理消息的时间段。

顺序图可用于描述系统的时序行为、异步行为、并发行为、对象设计重要的方面。它是软件开发中常用的一种模型图,能帮助开发人员更好地理解系统的运行过程,分析系统的交互细节和问题,并且可以在系统设计阶段发现设计缺陷,提高代码的质量和可维护性。

2.4 通信协作图

通信协作图(Communication Diagram),也被称为协作图(Collaboration Diagram)是UML(统一建模语言)中的一种行为模型图,它用于描述对象之间的协作关系和消息传递过程

通信协作图可以展示多个对象之间的交互关系,更注重对象之间的消息传递。 它采用图形化的方式来描述对象之间的消息交互,在图中,通过消息连接不同的对象,显示系统中的对象之间协同工作的方式。

通信协作图中,对象通常用矩形或者椭圆来表示,对象之间的消息传递由带箭头的实线来表示。箭头指向接受消息的对象。 将消息标在箭头上,消息标识了消息的种类、名称、参数等信息。

通信协作图与顺序图具有相同的目的,但通信协作图更加注重展示对象之间的交互、协作和通信以及它们之间的关系,更适合于展示对象之间的高层次的信息交换过程。通信协作图可以帮助开发人员更加直观清晰地描述软件系统的交互关系,从而分析系统的行为和设计。

2.5 活动图 =》 并行流程图

活动图(Activity Diagram)和流程图(Flowchart)是常用的图形工具,用于描述和分析系统中的流程和活动。

活动图是UML(统一建模语言)中的一种行为模型图,用于描述系统中的活动、流程和控制流。它主要关注系统中的活动和动作之间的顺序、并发、分支和合并等关系。活动图使用节点(表示活动或动作)、传输线(表示控制流)和分支合并节点(表示选择和合并)来表示系统中的活动流程。它可以帮助开发人员更好地理解和设计系统的业务流程,分析系统中的并发和分支情况,并优化业务流程。

流程图是一种通用的图形工具,用于描述一个过程或算法中的步骤和流程。它可以用于分析和描述各种业务和系统流程,包括软件开发流程、项目管理流程、决策流程等。流程图使用不同的符号和线条表示不同的操作和流程,如开始和结束节点、处理节点、决策节点和连接线等。它可以用于可视化和传达一个过程或算法的各个步骤和逻辑。

虽然活动图和流程图都用于描述系统中的活动和流程,但两者的应用场景和着重点不同。活动图更加关注业务流程和系统交互,而流程图更加通用,适用于各种流程和算法的描述和分析。同时,活动图是UML的一部分,更加符合面向对象的建模方法,而流程图则更加通用且灵活。

2.6 状态图

在计算机科学和软件工程中,状态(State)指的是一个系统、对象或者组件在特定时间点所处的条件或情况。状态是描述系统或对象的属性、变量、状态值等的集合,反映了系统的当前属性和行为。

状态机(State Machine)是一种数学模型,用于描述一个系统或对象在不同状态之间的转换和行为。它由一组状态、转移条件和动作组成。状态机根据当前状态和接收到的输入,通过定义的转移条件决定转移到下一个状态,并执行相应的动作。状态机可以描述系统的状态流转、事件触发和行为响应。

状态机可以分为两种主要类型:有限状态机(Finite State Machine,FSM)和层次状态机(Hierarchical State Machine)。有限状态机是最基本的形式,它具有固定的状态数和状态转移条件。层次状态机则更加复杂,可以以树形结构组织状态,包括嵌套状态和并行状态,具有更强的表达能力。

状态机和状态图(State Diagram)密切相关,状态图是一种图形化工具,用于可视化和描述状态和状态转移。状态图通过节点表示不同状态,通过边表示状态之间的转移条件和动作。状态图可以帮助开发人员更好地理解和设计系统的状态机,并更加形象地展示状态的转换和行为。

状态图(State Diagram),也被称为状态机图,是UML(统一建模语言)中的一种行为模型图,它用于描述对象的状态变化和对状态变化的响应。

状态图主要用于描述系统中的状态以及状态之间的转换。在状态图中,状态通常由圆角矩形或者圆形来表示,转换由箭头标识,箭头上标注了转移发生的条件。

状态图可以帮助开发人员更好地理解和分析系统中的状态以及状态转移,从而推断系统的行为。状态图适用于描述对象在不同时间点处于不同状态的行为,用于描述系统中的实体和他们对外部事件的响应。应用场景非常广泛,如电子系统、控制系统、嵌入式系统、网络系统等。

总之,状态图是UML中的一个重要工具,能够帮助开发人员更好的理解,规划和优化软件系统的状态,从而提高软件系统的设计和开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试题:工作中做过 JVM 调优吗?怎么做的?

文章目录 前言cpu占用过高死锁内存泄漏上面只是其中一种处理方法 总结 前言 最近很多小伙伴跟我说,自己学了不少JVM的调优知识,但是在实际工作中却不知道何时对JVM进行调优。今天,我就为大家介绍几种JVM调优的场景。 在阅读本文时&#xff…

死磕Nacos系列:Nacos在我的SpringCloud项目中做了什么?

Nacos服务注册 我们一个SpringCloud项目中集成了Nacos,当项目启动成功后,就可以在Nacos管理界面上看到我们项目的注册信息,还可以看到项目的健康状态等等信息: 那Nacos是什么时候进行了哪些操作的呢?今天我们来一探究…

redis运维(二十一)redis 的扩展应用 lua(三)

一 redis 的扩展应用 lua redis加载lua脚本文件 ① 调试lua脚本 redis-cli 通过管道 --pipe 快速导入数据到redis中 ② 预加载方式 1、错误方式 2、正确方式 "案例讲解" ③ 一次性加载 执行命令: redis-cli -a 密码 --eval Lua脚本路径 key …

希尔伯特变换-matlab仿真

希尔伯特变换(hilbert transform)简介 在信号处理中我们常见的有傅里叶变换,用来分析频域信息,还有拉普拉斯变换和z变换,用于系统分析系统响应。短时傅里叶分析和小波分析用于时频分析。希尔伯特变换似乎听到的比较少…

jQuery_04 jQuery选择器应用

jQuery中的选择器 1.基本选择器 1.1 id $("#id值") id名称 1.2 class $(".class值") class名称 1.3 标签选择器 $("标签名字") 标签名称 1.4 所有选择器 $("*") 所有标签 1.5 组合选择器 …

Selenium技巧大揭秘:动态数据、分页和Cookie的获取利器

背景: ​ 昨天我们讲了讲关于seleium的一些基础操作,今天讲讲如何将seleium和爬虫结合起来,可以使用selenium获取网页的动态加载数据,可以使用selenium获得cookie,这两个是比较常用的。我将一一展开。 实战案例&…

基于浣熊算法优化概率神经网络PNN的分类预测 - 附代码

基于浣熊算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于浣熊算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于浣熊优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

网络运维与网络安全 学习笔记2023.11.24

网络运维与网络安全 学习笔记 第二十五天 今日目标 DHCP中继代理、三层交换机DHCP、子网划分的原理、子网划分的应用 项目需求分析、技术方案选型、网络拓扑绘制 基础交换网络设计、内网优化、连接外网服务器 DHCP中继代理 DHCP中继概述 场景: DHCP客户端与DH…

Java LCR 089 打家劫舍

题目链接:打家劫舍 定义一个数组 dp,其中 dp[i] 表示从第 0 间房子到第 i 间房子(包括第 i 间)能够偷窃到的最高金额。 对于第 i 间房子有两种选择,偷或不偷: 偷就不能偷第 i - 1 间房子: dp[i]…

中职网安-Linux操作系统渗透测-Server2130(环境加qq)

B-9:Linux操作系统渗透测 任务环境说明:  服务器场景:Server2130  服务器场景操作系统:Linux(关闭链接) 1.通过本地PC中渗透测试平台Kali对靶机场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中Apache服务对应的版本信息字符串作为Flag值提交; 2.…

中间件渗透测试-Server2131(解析+环境)

B-10:中间件渗透测试 需要环境的加qq 任务环境说明: 服务器场景:Server2131(关闭链接) 服务器场景操作系统:Linux Flag值格式:Flag{Xxxx123},括…

【Netty专题】Netty调优及网络编程中一些问题补充(面向面试学习)

目录 前言阅读对象阅读导航笔记正文一、如何选择序列化框架1.1 基本介绍1.2 在网络编程中如何选择序列化框架1.3 常用Java序列化框架比较 二、Netty调优2.1 CONNECT_TIMEOUT_MILLIS:客户端连接时间2.2 SO_BACKLOG:最大同时连接数2.3 TCP_NODELAY&#xf…

rfc4301- IP 安全架构

1. 引言 1.1. 文档内容摘要 本文档规定了符合IPsec标准的系统的基本架构。它描述了如何为IP层的流量提供一组安全服务,同时适用于IPv4 [Pos81a] 和 IPv6 [DH98] 环境。本文档描述了实现IPsec的系统的要求,这些系统的基本元素以及如何将这些元素结合起来…

【数据结构】树与二叉树(廿四):树搜索给定结点的父亲(算法FindFather)

文章目录 5.3.1 树的存储结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法1. 获取大儿子、大兄弟结点2. 搜索给定结点的父亲a. 算法FindFatherb. 算法解析c. 代码实现 3. 代码整合 5.3.1 树的存储结构 5. 左儿子右兄弟链接结构 【数据结构】树与二叉树(十九&…

没搞懂二维差分是什么怎么办???

摸鱼的时候画的,根据公式反推 一维差分倒是懂了 a[10]{1,2,6,9,11,12,17,21,32,67}; c[10]{1,1,4,3,2,1,5,4,11,35}; 现要把[3,7]的值都增加3 c[10]{1,1,7,3,2,1,5,1,11,35}; 要查询的时候再用for循环相加 结论:成立且适用于多次修改 不知道为什么这个…

抖音生态融合:开发与抖音平台对接的票务小程序

为了更好地服务用户需求,将票务服务与抖音平台结合,成为了一个创新的方向。通过开发票务小程序,用户可以在抖音平台上直接获取相关活动的票务信息,完成购票、预订等操作,实现了线上线下的有机连接。 一、开发过程 1…

h5小游戏-盖楼游戏

盖楼游戏 一个基于JavaScrtipt、Html5 的盖楼游戏 效果预览 点我下载源代码 Game Rule 游戏规则 以下为默认游戏规则,也可参照下节自定义游戏参数 每局游戏生命值为3,掉落一块楼层生命值减1,掉落3块后游戏结束,单局游戏无时间限…

springboot+vue基本微信小程序的旅游社系统

项目介绍 现今市面上有关于旅游信息管理的微信小程序还是比较少的,所以本课题想对如今这么多的旅游景区做一个收集和分类。这样可以给身边喜欢旅游的朋友更好地推荐分享适合去旅行的地方。 前端采用HTML架构,遵循HTMLss JavaScript的开发方式&#xff0…

[element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案

问题描述 在没有进行任何操作的时候,使用 this.$refs.xxxx 无法获取el-dialog中的内部元素,这个问题会导致很多bug. 官方解释,在open事件回调中进行,但是open()是弹窗打开时候的会调,有可能在此处获取的时候&#xff…

03 _ 系统设计目标(一):如何提升系统性能?

提到互联网系统设计,可能听到最多的词就是“三高”,也就是“高并发”“高性能”“高可用”,它们是互联网系统架构设计永恒的主题。这里将整体探讨下高并发系统设计的目标,然后在此基础上,探讨下:如何提升系…