版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章类图和对象图5.1类图的概念5.2类图建模技术5.3对象图5.4对象图建模技术5.5实例——图书馆管理系统的类图5.1类图的概念描述类、接口、协作及它们之间关系的图。显示系统中各个类的静态结构。类图的地位类图是面向对象系统建模中最常用的图,是其他图的基础。在系统的整个生命周期中都有效。通过分析用例和问题域,得到相关的类,在把逻辑上相关的类封装成包。在类图的基础上,可以使用状态图、协作图、组件图、配置图。和数据模型很相似,除了描述系统内的信息结构,还描述了系统的行为。5.1.1概述类图的元素:类(Class)接口(Interface)协作(Collaboration)元素间的关系依赖关系(Dependency)泛化关系(Generalization)关联关系(Association)实现关系(Realization)5.1.2类面向对象系统组织结构的核心。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。5.1.2类1名称2属性3操作4职责5约束6注释名称应该来自系统的问题域。应该是一个名词,且不应该有前缀或后缀。分为简单名称和路径名称。属性描述了类在软件系统中代表的事物(即对象)所具备的特性。类可以有任意数目的属性,也可以没有属性。在UML中,类属性的语法为:属性1.可见性2.属性名3.类型4.初始值5.属性字符串(1)可见性类型:公有(Public)“+”私有(Private)“-”受保护(Protected)“#”+public#protected-privateRoseUML可见性Public修饰的内容限制最小,也可以说是没有限制,可以在其他任何位置访问,在实际项目开发中,一般用来修饰类,方法和构造器Protected修饰的内容可以被同一个包的其他类访问,也可以被不同包中的子类访问,在实际项目开发中,一般用来修饰只开放给子类使用的属性、方法和构造方法Private修饰的内容是私有的,限制最大,只能在本类中访问,而不能被类外部的任何类访问,在实际项目开发中,一般用来修饰类的属性或只在本类内部使用的方法
访问权限修饰符权限从高到低排列是public,protected,private。(2)属性名每个属性都必须有一个名字以区别于类中的其他属性。属性名由描述所属类的特性的名词或名词短语组成。单字属性名小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。(3)类型简单类型:整型布尔型实型枚举类型系统中的其他类(4)初始值目的:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。为用户提供易用性。(5)属性字符串指定关于属性的其他信息。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。操作对类的对象所能做的事务的抽象。一个类可以有任意数量的操作或者根本没有操作。返回类型、名称和参数一起被称为操作签名。在UML中,类操作的语法为:操作1.可见性2.操作名3.参数表4.返回类型5.属性字符串(1)可见性类型:公有(Public)“+”私有(Private)“-”受保护(Protected)“#”包内公有(Package)“~”(1)可见性[可见性]操作名[(参数列表)][:返回值类型][{特性}]+public#protected-privateRoseUML可见性+display():Location+hide()#create()-attachXWindow(xwing:XwindowPtr)(2)操作名用来描述所属类的行为的动词或动词短语。单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。(3)参数表一些按顺序排列的属性定义了操作的输入。是可选的,即操作不一定必须有参数才行。定义方式:“名称:类型”。若存在多个参数,将各个参数用逗号隔开。参数可以具有默认值。(4)返回类型是可选的,即操作不一定必须有返回类型。绝大部分编程语言只支持一个返回值。具体的编程语言一般要加一个关键字void来表示无返回值。(5)属性字符串在操作的定义中加入一些除了预定义元素之外的信息。职责类或其他元素的契约或义务。自由形式的文本。非形式化的方法。约束指定了类所要满足的一个或多个规则。形式化的方法。注释注释可以包含图形也可以包含文本。5.1.3接口在没有给出对象的实现和状态的情况下对对象行为的描述。包含操作但不包含属性。没有对外界可见的关联。一个类可以实现一个或多个接口。5.1.3接口接口类:5.1.4类之间的关系1依赖关系2泛化关系3关联关系4实现关系依赖关系依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。
依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。public
class
Driver
{
public
void
drive(Car
car)
{
car.move();
}
……
}
public
class
Car
{
public
void
move()
{
......
}
……
}
依赖关系依赖关系有如下三种情况:A类是B类中的(某中方法的)局部变量;A类是B类方法当中的一个参数;A类向B类发送消息,从而影响B类发生变化;依赖关系class
MyDependentClass{.....
voidmyFunction1(MyReferencedClassr){...}MyReferencedClassmyFunction2(…){...}
voidmyFunction3(…){ MyReferencedClassm…}}MyDependentClassatt:intmyFunction()MyReferencedClass依赖(引用一个类)参数or返回类型or局部变量泛化关系泛化关系(Generalization):A是B和C的父类,B,C具有公共类(父类)A,说明A是B,C的一般化(概括,也称泛化)泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。
在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字、在C++/C#中使用冒号“:”来实现。
publicclassPerson{protectedStringname;protectedintage;publicvoidmove(){……}publicvoidsay(){……}}publicclassStudentextendsPerson
{privateStringstudentNo;publicvoidstudy(){……}}泛化关系泛化主要用途:多态继承单继承多重继承
泛化关系操作类的包继承抽象类package
MyPackage;abstractclassMyAbstractClass....packageMyPackage;classMyDerivedClassextendsMyAbstractClass{intatt;.....
voidmyFunction(ReferencedClassr){...}}MyDerivedClassatt:intmyFunction()MyPackageMyAbstractClass属性在UML当中,对泛化关系有三个要求:子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;子类中除了与父类一致的信息以外,还包括额外的信息;可以使用父类的实例的地方,也可以使用子类的实例;关联关系关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单,再如篮球队员与球队之间的关联(下图所示)。其中,关联两边的"employee"和“employer”标示了两者之间的关系,而数字表示两者的关系的限制,是关联两者之间的多重性。通常有“*”(表示所有,不限),“1”(表示有且仅有一个),“0...”(表示0个或者多个),“0,1”(表示0个或者一个),“n...m”(表示n到m个都可以),“m...*”(表示至少m个)。关联关系关联关系(Association)
是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。在UML类图中,用实线连接有关联的对象所对应的类,在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的属性。在使用类图表示关联关系时可以在关联线上标注角色名。关联关系1.名称(Name)2.角色(Role)3.多重性(Multiplicity)4.聚合关系(Aggregation)5.组合关系(Composition)6.导航性(Navigation)(1)名称使用一个动词或动词短语来命名关联。清晰而简洁地说明对象间关系。关联的名称并不是必需的。可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。关联名用来描述关联的作用.(2)角色关联的两端可以以某种角色参与关联,如果不标注角色则隐含用类名作为角色名.角色的多重性,表示可以有多少个对象参与该关联.`(3)多重性指有多少对象可以参与该关联。可以表达一个取值范围、特定值、无限定的范围或一组离散值。格式:“minimum..maximum”(均为Int型)。赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。(4)聚合关系一种特殊类型的关联。表示整体与部分关系的关联。描述了“hasa”的关系。聚合关系publicclassCar{privateEngineengine;publicCar(Engineengine){this.engine=engine;}
publicvoidsetEngine(Engineengine){this.engine=engine;}……}publicclassEngine{……}聚合关系如:电话机包括一个话筒
电脑包括键盘、显示器,一台电脑可以和多个键盘、多个显示器搭配,确定键盘和显示器是可以和主机分开的,主机可以选择其他的键盘、显示器组成电脑;(5)组合关系聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。成员对象的生命周期取决于聚合的生命周期。聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构。组合关系public
class
Head
{
private
Mouth
mouth;
public
Head()
{
mouth
=
new
Mouth();
}
……
}
public
class
Mouth
{
……
}
组合关系
如:公司和部门,部门是部分,公司是整体,公司A的财务部不可能和公司B的财务部对换,就是说,公司A不能和自己的财务部分开;
人与人的心脏.(6)导航性描述一个对象通过链进行导航访问另一个对象。使用导航性可以降低类间的耦合度。包括:单向关联和双向关联。关联的种类
双向关联:
默认情况下,关联是双向的。单向关联:类的关联关系也可以是单向的,单向关联用带箭头的实线表示.自关联:
在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。重数性关联:
重数性关联关系又称为多重性关联关系(Multiplicity),表示一个类的对象与另一个类的对象连接的个数。在UML中多重性关系可以直接在关联直线上增加一个数字表示与之对应的另一个类的对象的个数。
双向关联:
默认情况下,关联是双向的。publicclassCustomer{privateProduct[]products;……}publicclassProduct{
privateCustomercustomer;……}单向关联:类的关联关系也可以是单向的,单向关联用带箭头的实线表示.public
class
Customer
{
private
Address
address;
……
}
public
class
Address
{
……
}
自关联:
在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。public
class
Node
{
private
Node
subNode;
……
}
重数性关联:
重数性关联关系又称为多重性关联关系(Multiplicity),表示一个类的对象与另一个类的对象连接的个数。在UML中多重性关系可以直接在关联直线上增加一个数字表示与之对应的另一个类的对象的个数。public
class
Form
{
private
Button
buttons[];
……
}
public
class
Button
{
…
}
实现关系实现关系(Implementation):是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系(Realization),在这种关系中,类实现了接口,类中的操作实现了接口中所
声明的操作。在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。实现关系public
interface
Vehicle
{
public
void
move();
}
public
class
Ship
implements
Vehicle
{
public
void
move()
{
……
}
}
public
class
Car
implements
Vehicle
{
public
void
move()
{
……
}
}
5.1.5派生属性和派生关联派生属性(关联)指可以由其他属性()关联计算得到的属性,名字前加”/”.5.1.6抽象类和接口抽象类接口抽象类和接口interfaceMyAbstractClass....
classMyClassimplementsMyInterface{.....}UML符号----接口的实现描述5.1.7版型版型(stereotype)是UML的3种扩展机制之一.版型是建模人员在已有的构造块上派生出新的构造块,这些新的构造块与特定问题相关.版型可以应用于所有类型的模型元素.系统预定义的版型用户自义的版型5.1.8边界类、控制类和实体类UML中三种主要的类版型边界类,boundaryclass控制类,controlclass实体类,entityclass引入多种类版型帮助分析和设计人员确定系统中的类.边界类边界类位于系统与外界的交界处,包括:用户界面类,如:窗口、对话框、报表类等通讯协议类,如:TCP/IP的类直接与外部设备交互的类直接与外部系统交互的类边界类的UML表示方法:实体类实体类保存要放进持久存储体(数据库/文件等)的信息.实体类通过事件流和交互图发现,采用目标领域术语命名.通常实体类对应数据库中的表,其属性对应表的字段,但实体类与数据库中的表不一定是一一对应关系.
控制类控制类是负责管理或控制其他类工作的类.每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用.控制较少接收消息,发出较多消息.5.2类图建模技术5.2.1对简单协作建模5.2.2对逻辑数据库模式建模5.2.3正向工程和逆向工程5.2.1对简单协作建模识别要建模的机制。对每种机制,识别参与协作的类、接口和其他协作,并识别这些事物之间的关系。用协作的脚本检测事物。把元素和它们的内容聚合在一起。5.2.2对逻辑数据库模式建模在模型中识别的类,其状态必须超过其应用系统的生命周期。创建包含这些类的类图,并把它们标记为永久的。展开这些类的结构性细节,并注重于关联和构造类的基数。观察系统中的公共模式,必要时可以创建简化逻辑结构的中间抽象。考虑这些类的行为,扩展对数据存储和数据完整性来说重要的操作。如果有可能,用工具把逻辑设计转换成物理设计。5.2.3正向工程和逆向工程正向工程逆向工程5.2.4类图的抽象层次概念层类图,描述应用领域的概念.说明层类图,描述软件的接口部分,不是实现部分.实现层类图考虑实现问题,提供类的细节.5.2.5构造类图根据用例描述中的名词确定候选类.使用CRC分析法寻找类,CRC指:类(class)、职责(responsibility)、协作(collaboration).根据边界类、控制类和实体类的划分来帮助发现类.参考设计模式来确定类.根据软件开发过程的指导寻找类,如:UP,XP等.寻找类的方法构造类图时注意不要试图使用所有的符号.不要过早陷入细节,根据阶段、层次逐步细化.构造完成要将模型与目标问题对照验证其是否合理.5.2.5构造类图研究分析问题领域,确定系统需求.确定类,明确类的含义和职责,确定属性和操作.确定类之间的关系.调整和细化类及类之间的关系.绘制类图并增加相应的说明.建立类图的步骤5.2.6领域分析建立类图的过程就是对领域及其解决方案的分析与设计过程.领域分析包括:通过对某一领域中的已有应用系统、理论、技术、开发历史等的研究,来标识、收集、组织、分析和表示领域模型及软件体系结构的过程;根据这一过程得到的结果.5.2.7OO设计的原则开闭原则(Open/ClosedPrinciple,OCP)Liskov替换原则(LiskovSubstitutionPrinciple,LSP)依赖倒置原则(DependencyInversionPrinciple,DSP)接口分离原则(InterfaceSegregationPrinciple,ISP)开闭原则开闭原则指的是一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的.其目的是在写模块时,应该尽量使得模块可以扩展,并且在扩展时不需要对模块的源代码进行修改.为达到开闭原则,设计时就尽量使用接口进行封闭,采用抽象机制,并利用OO中的多态性技术.开闭原则例:某输出类Output中包含一个output方法,该方法可能使用多种不同的打印机,如:HP、EPSON、Canon,每种打印机都有不同的print方法。设计方案1voidoutput(intprintType){if(printType==1){Hpprt=newHp();prt.print(args);}elseif(printType==2){Epsonprt=newEpson();prt.print(args);}else{……}……}Liskov替换原则定义:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P,在所有对象o1被代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型.Java等语言中是否允许左图中的继承,即子类使用较低访问权限覆盖父类的方法呢?不允许,这样违背了Liskov替换原则.计算机界的5位杰出女性
在软件业这个由男性称霸的世界里,其实还有着很多的巾帼英雄,以下五位计算机界的伟大女性,她们的成就和努力,将带给我们前进的动力。
世界上第一位程序设计师AdaLovelace
AugustaAdaKing原名AugustaAdaByron(1815年12月10日—1852年11月27日)。她是著名英国诗人Byron之女。在1842年与1843年其间,Ada花了9个月的时间翻译意大利数学家LuigiMenabrea对Babbage最新的分析机概论所留下的备忘录。在这部译文里,她附加了许多注记,内容详细说明了用分析机进行伯努利数的运算方法,被后人认为是世界上第一个电脑程序。
Ada的文章创造出许多Babbage也未曾提到的新构想,比如Ada曾经预言道:“这个机器未来可以用来排版、编曲或是各种更复杂的用途。”
1852年,Ada为了治疗子宫颈癌,却因此死于失血过多,享年36岁。具有讽刺意义的是,她与她父亲Byron死于相同年龄,一样死于治疗中的失血过多。Ada的生命是短暂的,但她对计算机的预见却超前了整整一个世纪。在1980年12月10日,美国国防部制作了一个新的计算机编程语言—Ada。而美国国防部标准局为了记念Ada,以她的生日设立了一个编号MIL-STD-1815。在微软的产品里也可以找到Ada的全息图标签。另外英国计算机公会每年都颁发以Ada为名的奖项。计算机软件的第一夫人GraceHopper被誉为计算机软件第一夫人的GraceHopper于1906年12月9日出生在纽约市的一个海军世家。GraceHopper是杰出的女数学家和计算机语言领域的带头人。
GraceHopper
1949年Hopper加盟由第一台电子计算机ENIAC发明人埃克特和莫齐利开办的电脑公司,为第一台存储程序的商业电子计算机UNIAC编写软件。1952年,她开发了世界上第一个将高级符号语言转变为机器语言的编译器A—0,第二年她又开发出第一个处理数据计算的编译器A—2以及第一个自动翻译英语的数据处理语言。之后她又以Flow-Matic为基础开发了COBOL语言。COBOL被称为第一批高级程序设计语言之一,并广泛用于大型机和小型机电脑的高级商业程序设计。同时Hopper又率先实现了第一个COBOL编译器,因此被誉为COBOL之母。据20世纪80年代初的统计,当时全美国有80%的程序由
COBOL语言编写而成,此语言对计算机应用发展有着很大的推动作用。
Hopper致力发展程序设计技术,同时还培养了大批的程序设计人员。Hopper自己曾说:“与其说我的最大贡献是发展了程序设计技术,不如说我培养了大批程序设计人才”。在Hopper传奇的一生中,她赢得了无数荣誉和奖励,她先后被40多所大学授予荣誉博士学位。
1971年为了纪念现代数字计算机诞生25周年,美国计算机学会特别设立了“GraceHopper”奖,颁发给当年最优秀30岁以下的青年计算机工作者;1980年Hopper获得国际IEEE组织颁发的首届计算机先驱奖;1991年,布什总统在白宫授予Hopper“全美技术奖”,这也是至今美国女性唯一获此殊荣的人;1994年Hopper被追授为“美国女名人”,进入“全国女名人堂”。
信息技术史上最传奇的女性HedyLamarr
HedyLamarr(1913年11月9日—2000年1月19日)美国好莱坞默片时期著名女演员,生于奥地利一个富裕的犹太人银行家庭。她曾与克拉克·盖博等顶级男星合作,主演了多部热门影片。19岁时在电影《神魂颠倒》中裸泳成为世界电影史上第一位裸体出镜的女演员。一生曾有过八次婚姻。她曾被认为是全欧最美的女人,并因美貌盖过了演技而被人称为花瓶。有意思的是,她其实数学和通信功底很深,是现代无线通信的核心专利跳频技术的第一发明者,CDMA、WiFi等技术都以此为基础。美国电话局主席安东尼•罗德(AnthonyLoder)对她的评价所说:“虽然HedyLamarr已经被大家遗忘了,但她所做出的一切仍然影响着一代又一代的人。”
2005年,德语国家举行了第一届发明者节,纪念她的92岁诞辰。另外,大家都很熟悉的CorelDraw9软件封面上的完美面容也属于Hedy。所有的这一切,仿佛在印证她的一句妙语:“电影往往限于某一地区和时代,而技术是永恒的”。1954年,Allen毕业于美国纽约州立大学奥尔巴尼分校,并获得学士学位。她于1980年代早期创立了并行翻译(ParallelTRANslation,PTRAN)研究组,致力于研究并行计算机的编译问题。该小组的工作在编译器的并行化方面处于世界领先的位置。她在这些项目中的工作促成了许多目前广泛应用于商业编译器中的程序优化算法和技术。
Allen在科学的道路上探索奇妙之旅,获得荣誉无数。Allen在IBM业界有着广泛的影响,1989年Allen当选为IBM院士,这是IBM历史上第一个女性获得此殊荣;1995年,她被任命为IBM技术研究院院长;1997年被选入WITI名人堂;2000年IBM设立了以她的名字命名的“FrancesE.Allen科技女性导师奖”。
2007年2月,作为美国国家工程学院院士、美国计算机学会会士,获得过AWC颁发的AugustaAdaLovelace奖的Allen因“她对于优化编译器技术的理论和实践做出的先驱性贡献,这些技术为现代优化编译器和自动并行执行打下了基础”而成为第一位获得图灵奖的女性。图灵奖评委会主席RuzenaBajcsy说:“她的研究几乎影响了计算机科学发展的整个历程,使我们今天在商业和科技领域内使用的许多计算技术成为可能。她此次获奖进一步证明成就与性别无关。”CLU与Argus语言发明人BarbaraLiskov计算机界有“计算机界诺贝尔奖”之称的图灵奖曾由男性垄断了40年,而在2008年6月这一局面再次被打破。BarbaraLiskov被授予2008年度图灵奖得主,以表彰她对编程语言和系统设计方面所做出的实践与理论基础,尤其是数据抽象、容错和分布式计算方面的贡献。她也是第二位获得此奖项的女性科学家。BarbaraLiskov,本名BarbaraJaneHuberman,1939年生于加利福尼亚。1961年在加州大学伯克利分校获得数学学士学位。在20世纪60年代,计算机科学这门新兴职业对女性来说还相当寒冷。Liskov在申请研究生、找工作过程中屡次碰壁。但这并没有击垮她,她认为“发生的不公平的事情,并不与我直接相关,我想也许正是这种态度,使我已经适应这些年来此类处境Liskov生平最重要的科研成果是她为推动数据抽象使用所做的巨大贡献。她在此领域的创新使得软件更易于编写、修改和维护,极大地提高了计算机软件的可靠性、安全性和易用性。Liskov从实际项目中提炼出来的数据抽象思想,已经成为软件工程的重要精髓。
20世纪70年代早期,Liskov发明了两种计算机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微种植体支抗的牙槽骨影响-洞察分析
- 第07讲 有理数的除法(3个知识点+5个考点+易错分析)解析版
- 头孢克洛代谢途径探讨-洞察分析
- 虚拟化环境下的MVC框架-洞察分析
- 网络服务行业的社会责任投资-洞察分析
- 双方合作的意向书范本(9篇)
- 网状结构模型优化-洞察分析
- 碳封存长期安全性研究-洞察分析
- 医院消防安全月活动总结范文(7篇)
- 物联网技术实现护理服务的精准化-洞察分析
- 期末测评-2024-2025学年统编版语文三年级上册
- 陕西省西安市未央区2023-2024学年五年级上学期期末科学试题
- 四年级上册音乐教案 第七单元 送别苏少版
- 九年级物理下册 第十五章 电功和电热 二 电功率教案 (新版)苏科版
- 小学体育教案《50米快速跑(途中跑)》
- 八年级物理上册 第六章 第1节 质量教案 (新版)新人教版
- 【基于近五年数据的五粮液公司财务分析案例6400字】
- 16J916-1住宅排气道一
- 2024质量管理理解、评价和改进组织的质量文化指南
- MOOC 房地产管理-华中科技大学 中国大学慕课答案
- 教你成为歌唱高手智慧树知到期末考试答案2024年
评论
0/150
提交评论