欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    静态结构模型类图精选课件.ppt

    • 资源ID:66105915       资源大小:1.75MB        全文页数:71页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    静态结构模型类图精选课件.ppt

    关于静态结构模型类图第一页,本课件共有71页面向对象的分析分析业务领域,找出问题解决方案,发现对象,分析对象的内部构成和外部关系,建立软件系统的对象模型。着重分析业务领域和系统责任,建立独立于实现的OOA模型,暂时忽略与系统实现有关的问题。主要使用5种图描述完整的系统需求:用例图类图时序图协作图状态图第二页,本课件共有71页面向对象的分析模型功能模型:功能模型:从用户的角度获取功能需求,由用例模型表示(已在上堂课学习过);静态结构模型静态结构模型(分析对象模型):描述系统的概念实体,由类图表示;动态行为模型动态行为模型:描述对象之间的交互行为,由状态图和顺序图表示。第三页,本课件共有71页面向对象的分析模型第四页,本课件共有71页面向对象的分析模型第五页,本课件共有71页面向对象分析的过程第一阶段:业务领域分析分析应用领域的业务范围、业务规则和业务处理过程,确定系统的责任、范围和边界,确定系统的需求。在分析中需要着重对系统与外部的用户和其他系统的交互进行分析,确定交互的内容、步骤和顺序。用例模型第六页,本课件共有71页第二阶段:发现和定义对象和类第二阶段:发现和定义对象和类识别对象和类,确定它们的内部特征:属性与服务操作。这是一个从现实世界到概念模型的抽象过程,而抽象是面向对象分析的基本原则。第三阶段:识别对象的外部联系第三阶段:识别对象的外部联系在发现和定义对象和类的过程中,需要同时识别对象与对象、类与类之间的各种外部联系,如一般与特殊、整体与部分、实例连接(关联)、消息连接等联系。对象和类是现实世界中的事物的抽象,它们之间的联系也要从分析现实世界事物的各种真实的联系中获得。第七页,本课件共有71页第四阶段:建立系统的静态结构模型第四阶段:建立系统的静态结构模型分析系统的行为,建立系统的静态结构模型,并将其用图形和文字说明表示出来,如绘制类图、对象图、系统与子系统结构图等,编制相应的说明文档。第五阶段:建立系统的动态行为模型第五阶段:建立系统的动态行为模型分析系统的行为,建立系统的动态行为模型,并将其用图形和文字说明表示出来,如绘制用例图、交互图、活动图、状态图等,编制相应的说明文档。第八页,本课件共有71页建立静态结构模型基本的分析过程:Step1:从用例模型入手,识别概念类;Step2:描述各个类的属性;Step3:定义各个类的操作;Step4:建立类之间的关系;Step5:绘制类图(classdiagram)第九页,本课件共有71页识别概念类如何从用户的需求陈述中找到“概念类概念类”?名词驱动的识别方法名词驱动的识别方法对用户需求陈述进行“语法分析”,找出所有的名词或名词短语,对其标注下划线;合并同义词;将最终得到的每一个名词映射为一个类;动词映射为类的操作,形容词/名词映射为类的属性。第十页,本课件共有71页借书用例第十一页,本课件共有71页借书用例描述用例描述如下:1图书管理员将读者借书卡提供给系统;2系统验证读者身份和借书条件;3图书管理员将读者所借图书输入系统;4系统记录借书信息,并且修改图书的状态和此种书的可借数量;5系统修改读者的可用限额;6重复3-5,直到图书管理员确认全部图书登记完毕;7系统打印借书清单,交易成功完成。第十二页,本课件共有71页借书用例描述用例描述如下:1图书管理员将读者借书卡提供给系统;2系统验证读者身份和借书条件;3图书管理员将读者所借图书输入系统;4系统记录借书信息,并且修改图书的状态和此种书的可借数量;5系统修改读者的可用限额;6重复3-5,直到图书管理员确认全部图书登记完毕;7系统打印借书清单,交易成功完成。第十三页,本课件共有71页图书馆系统的对象名词类别名词类别概念类列表概念类列表显而易见的对象显而易见的对象读者读者 借书卡借书卡 图书图书 借书信息借书信息 借书清单借书清单明显无意义的对象明显无意义的对象读者身份读者身份不确定类别的对象不确定类别的对象借书条件借书条件 图书状态图书状态 可借数量可借数量 可用限额可用限额图书状态总是和具体的图书联系在一起,不是一个独立的对象。同理,借书数量、可用限额是读者属性。可借数量是某个图书品种的特性,每本图书归属于一个图书品种,图书品种是一个隐含概念借书条件是一种规则,可以作为对象吗?第十四页,本课件共有71页练习阅读用例描述,找出概念类用例名:购买商品用例名:购买商品参与者:出纳员参与者:出纳员描述:顾客带着所要购买的商品来到收款处。出纳员记录下商品信息并收款。付描述:顾客带着所要购买的商品来到收款处。出纳员记录下商品信息并收款。付款完成后,顾客带着所购买的商品和收据离开。款完成后,顾客带着所购买的商品和收据离开。第十五页,本课件共有71页练习阅读用例描述,找出概念类用例名:购买商品用例名:购买商品参与者:出纳员参与者:出纳员描述:描述:顾客顾客带着所要购买的带着所要购买的商品商品来到来到收款处收款处。出纳员出纳员记录下记录下商品信息商品信息并收款。并收款。付款完成后,顾客带着所购买的商品和付款完成后,顾客带着所购买的商品和收据收据离开。离开。明显无意义的对象明显无意义的对象:收款处收款处第十六页,本课件共有71页用例名称:预定房间涉及的参与者:酒店前台正常事件流:1)前台人员向系统提供需要预定房间的类型、时间和预定天数。2)系统确认有相应档次的空闲房间,并计算出总费用和定金。3)前台人员向系统提供旅客信息(姓名、地址、联系电话、证件号等)。4)系统记录旅客信息。5)前台人员确认已经交纳定金。6)系统记录房间已经预定,工作完成。第十七页,本课件共有71页用例名称:预定房间涉及的参与者:酒店前台正常事件流:1)前台人员向系统提供需要预定房间的类型、时间和预定天数。2)系统确认有相应档次的空闲房间,并计算出总费用和定金。3)前台人员向系统提供旅客信息(姓名、地址、联系电话、证件号等)。4)系统记录旅客信息。5)前台人员确认已经交纳定金。6)系统记录房间已经预定,工作完成。第十八页,本课件共有71页不同类别的概念人员:系统需要保存或管理其信息的人员(如录像商店的会员、图书馆的读者),或在系统中中扮演一定角色的人员(如录像商店的职员、论文评阅教师)。组织:在系统中发挥一定作用的组织机构(如录像商店的连锁店,医疗保险系统中的医院,学校中的系)。物品:需要由系统管理的各种物品(如录像商店的商品、图书),包括无形事物(如学校的一门课程、毕设题目)。设备:在系统中被使用或由系统进行监控的设备、仪器等,系统运行中的硬件设备(如打印机)除外。事件:需要由系统长期记忆的事件(如在自动柜员机上的每次取款事件、每次借书事件)。第十九页,本课件共有71页不同类别的概念(续)规格说明:系统中关于对象的规格信息的描述。如图书品种,每种图书有一个唯一的馆藏号,同时该图书还包含一些描述信息,如书号、价格、作者、出版社等,多本图书对象共用这些规格说明。这是一种经过了抽象的概念,应该识别为概念类。业务规则或政策:系统中经常使用的业务规则或政策的文字描述。业务规则通常会在用例文档之外以其他条款说明。如图书馆系统中,对不同违规行为指定不同的罚款金额,商店对不同顾客或产品有不同的折扣策略等。如果这些规则无法并入到其他对象中,则可以作为概念类建立。通常规则可能仅有属性,或者仅有操作,比如折扣策略可能是一个纯粹的计算类。第二十页,本课件共有71页图书馆系统的概念类所属类目所属类目概念类举例概念类举例人员人员读者 图书管理员组织组织暂无物品物品图书 借书卡 书目 借书清单设备设备暂无事件事件借书 还书 逾期规格说明规格说明图书品种 政策或规则政策或规则罚款细则第二十一页,本课件共有71页图书馆系统的第1张类图第二十二页,本课件共有71页Step 2:识别属性属性是描述对象静态特征的一个数据项。发现属性的策略:如何为对象做一般性的描述?比如人,一般的描述信息有姓名、性别、出生日期、身高、体重等。在当前问题域,对象还具备那些特定描述项?比如人作为门诊系统的患者,还需要考虑血型、药物过敏、家族病史等。对象的责任是什么?在系统中对象还需要了解或提供哪些信息?比如图书馆要实现催还功能,与该责任相关的就需要为书籍或借书事项定义借书日期和期限。对象可能处于什么状态?对象的状态不同,则可能执行的操作也不同。比如出租物品就有在库、出租、维修三个状态。第二十三页,本课件共有71页属性的表示借书记录borrowDate:DatereturnDate:Date属性的有关说明:属性的名称和解释:有些属性只适用于该问题域,是专业术语,晦涩难懂;有些常用词语在特定环境下字面的含义有所修改,为了提高清晰度,需要对这些属性进行定义。属性的数据类型:分析时使用简单类型,如整数、实数、字符串、日期、数组、布尔等,分析阶段因为不考虑技术实现,所以不需要考虑具体语言能支持的数据类型。其他要求:如取值范围、缺省值等。第二十四页,本课件共有71页定义领域类属性的原则1.仅定义与系统责任和系统目标有关的属性。2.使用简单数据类型来定义属性。如数字、字符串、日期、布尔、文本等。还包含多种特征或规则的数据,可考虑作为独立的对象类。3.一般不使用可导出的属性。(出生年月年龄)4.不为对象关联定义属性。属性只用于体现对象本身的内在性质,关联属性来实现,但那是设计阶段的问题,应推迟考虑。如毕业设计题目与教师和学生存在关联,但题目中不应定义“教师姓名”、“学号”之类的属性。第二十五页,本课件共有71页图书馆系统的第2张类图第二十六页,本课件共有71页Step 4:建立类之间的关系五种关系:泛化(generalization)关联(association)组合(composition)聚合(aggregation)依赖(dependency)第二十七页,本课件共有71页销售项Sale销售项条目SalesLineItem包含11.*关联名称多重性第二十八页,本课件共有71页描述关联的要素1.关联名称关联名称2.对象在关联中的角色对象在关联中的角色3.多重性多重性4.导向性导向性第二十九页,本课件共有71页1、关联名称多数关联是二元的(即只存在于两个类的实例之间),在图中表示为连接两个类符号的实线路径。使用关联名称,应该反映该关系的目的,并且应该是一个动词词组。比如教师对象和课程对象的关联名称就是“讲授”,医生和处方单的关系是“书写处方”。关联名称应放置在关联路径上或其附近。第三十页,本课件共有71页2、关联角色(Role)关联所联系的每一端叫做一个角色角色名称应该是一个名词,能够表达被关联对象在关联中所充当的角色,角色名称紧邻关联线的末端。贷款客户客户0.1 担保人贷款人 11*第三十一页,本课件共有71页3、关联的多重性(Multiplicity)定义了一个类A的实例在一段特定的时间内能够和多少个类B的实例发生关联。借书记录*一个读者可以有0个或多个借书记录图书1.*一个图书品种馆藏1本或多本图书处方条目1.6一个处方可以开出1个到6个处方条目足球队员11一个足球队正好由11个队员组成借书记录0.1一本图书可以有0个或1个借书记录第三十二页,本课件共有71页4、关联的导向性(Navigability)角色的导向性特征表示可以通过关联从源类导向到目标类上。也就是说给定关联一端的对象就能够容易并直接地得到另一端的对象。识别关联的导向可以推迟,与设计实现有关。通常是源对象存储了对目标对象的一些引用读者Reader借书记录Loan1 登记 1.*导航箭头说明Reader对象可单向访问到Loan对象Reader很可能有一个指向Loan对象的属性第三十三页,本课件共有71页实例连接:关联关系class Course class Student private Course selectedCourses;class Teacher private Student students;class Student private Teacher teacher;StudentCourse-selectedCourses5.*Teacher1-studentsStudent-teacher0.*第三十四页,本课件共有71页关联类 关联类:class Company class Person class Job public Person employee;public Company employer;String description;Date dateHired;double salary;第三十五页,本课件共有71页(4)消息连接:依赖关系 消息连接消息连接是对象之间的通信联系,它表现了对象行为的动态联系。一个对象需要另一个对象的服务,便向它发出请求服务的消息,接收消息的 对象响应消息,触发所要求的服务操作。消息连接也称为“依赖关系”(Dependency)。依赖第三十六页,本课件共有71页(4)消息连接:依赖关系Air依赖(Dependency):use a.依赖是一种使用关系,一个类A使用到了另一个类B,而这种使用关系是偶 然性的、临时性的、非常弱的,但是B类的变化会影响到A。类的依赖可能由各种原因引起,例如:一个类是另一个类的某个操作的参数一个类在另一个类的某个操作中被使用classAirHumanclassHumanpublicvoidbreath(Airair);第三十七页,本课件共有71页5、整体-部分关联(Whole-Part)如果对象a是对象b的一个组成部分,则称b为a的整体对象,a为b的部分对象,二者对应的关联形式称为整体-部分关联。这种结构可以用b“hasa”a进行验证。整体-部分关联是关联中使用较频繁的一种模式,用于对模型元素之间的组装关系进行建模。组成关系在现实生活中可以表现为以下几种形式:客观上或逻辑上的整体事物和它的组成部分(机器和零件、人体和器官、书和章节、图和元素)组织机构和它的下级组织及部分(公司和子公司、医院和科室)团体(组织)和成员(科室和医生、班级和学生)空间上的容器事物和其包容物(车间和机器/工人、教室和设备)第三十八页,本课件共有71页整体-部分关联举例(一个窗口)FormControl*ButtonEditCheckBox第三十九页,本课件共有71页整体/部分关联聚集聚集(aggregation)是用于为整体-部分关系建模的一种关联,使用连接线和菱形表达,菱形一端的对象是整体对象。整体-部分关联有两种类型组合聚集(compositionaggregation)共享聚集(sharedaggregation)第四十页,本课件共有71页共享聚集(shared aggregation)描述整体-部分的关系,部分可能同时属于多个整体对象。关联路径的末端有一个空心菱形,用来表示聚集关系。班级与学生之间的生命周期是独立的。班级学生15.*第四十一页,本课件共有71页定义两个类:class Student class CourseClass private Student students;/学生数组学生数组public addStudent()s=new Student();/创建学生对象创建学生对象studtents.append(s);测试类:Public class TestClass Publicstaticoidmain(Stringargs)CourseClassooad=newCourseClass();/创建班级对象,创建时没有创建学生对象第四十二页,本课件共有71页组合聚集(composition aggregation)组合聚集具有很强的归属关系,部分只能是一个组合对象的成员,而且部分对象的存在是依赖于整体对象,与整体同生共死。整体端的重数不会超过 1(即它无法被多个整体对象共享),关系建立后是不可变更。关联路径的末端有一个实心菱形,用来表示组合关系。Person1-heartHeart第四十三页,本课件共有71页整体-部分关联的实现(一)Person对象tom创建后立即创建內含的Heart对象class Heart class Person private Heart heart=new Heart();Person tom=new Person();Person1-heartHeart第四十四页,本课件共有71页整体-部分关联的实现(二)汽车类和遥控器类及发动机类的关系如图,写出代码第四十五页,本课件共有71页小结:对象之间的联系 继承/泛化:一般与特殊的关系is akind of 组合:部分与整体的关系,彼此不可分is part of 聚合:部分与整体的关系,但彼此可分owns a 关联:对象之间的长期静态联系has a 依赖:对象之间的动态的、临时的通信联系use a 类间联系的强度:继承组合聚合 关联 依赖第四十六页,本课件共有71页通用关联分类表分 类举 例A在物理上是B的一部分零件产品A在逻辑上是B的一部分订单项订单A在物理上包含在B中/依赖于B产品仓库A在逻辑上包含于B中图书品种图书A是对B的描述产品规格产品A是事务B或报告B的一个记录项购物购物项A为B所知/为B所记录/录入到B中借书记录读者A是B的一个成员职工部门A是B的一个组织单元分公司集团A使用或管理B医生病案;医生挂号单A与B相互通信图书管理员读者A与一个事务B有关联图书借书记录A是一个事务,B也是一个事务,二者有关联借书记录逾期记录第四十七页,本课件共有71页6、关联原则找出问题域中的对象远远比找出关联更为重要注意力集中在那些需要将对象之间的关系信息记忆一段持续时间的关联关联太多不仅不能有效展示概念模型,反而会使概念模型变得混乱要避免关联之间的信息冗余以及减少派生关联关联使用关联名称、角色、多重性和导向性来说明 第四十八页,本课件共有71页图书馆系统的第3张类图第四十九页,本课件共有71页类的泛化泛化(Generalization)是在多个概念之间识别共性,定义超类(一般概念)和子类(特定概念)关系的活动。如在图书馆系统中,发现图书馆目前还收藏了其他资源,比如影碟(VCD/DVD)、音乐CD、电子书等品种。它们和图书一样可以被任何读者借出,每个对象都有条码和状态。但它们也有自己的特性,比如属性项、借阅期限、逾期惩罚不同,必须区别对待。第五十页,本课件共有71页1、一般-特殊结构(Generalization-Specialization)如果类A具有类B的全部属性和行为,而且具有自己特有的某些属性或服务,则A叫做B的特殊类,B叫做A的一般类。这种关系也称为一般-特殊关系、泛化-特化关系、继承关系。特点:可以简化模型,有效地反映问题空间的分类层次。必须确认子类一定是父类的一个特殊类型,即可以用“is-a-kind-of”进行验证 注意控制泛化的粒度,额外的泛化增加复杂性第五十一页,本课件共有71页图书馆系统的泛化关系第五十二页,本课件共有71页2、什么时候需要划分一般-特殊结构1.类的属性或行为不适合该类的全部对象如果定义“学生”类有“导师”属性,有“教学实践”行为的话,则该类的对象对于本科生不适合,只适合于研究生对象,采用一般-特殊结构重新分类,建立“学生”和“研究生”之间的一般-特殊结构,研究生可以继承所有学生的特性。2.属性和行为相似的类将这些类的共性抽象出来作为超类,各自特性仍旧保留而作为超类的子类。3.不要将一个对象的状态变化设计为多个子类,除非对象的多数行为多数行为是由状态来决定第五十三页,本课件共有71页病态的继承泛化是提高软件重用性的一种机制,但不能为了重用而滥用泛化。不符合“is a kind of”采用组装结构,将复用对象作为组成元素第五十四页,本课件共有71页3、抽象类如果一般类A的每个实例还必须是它的一个特殊类的成员,那么类A就被称为一个抽象类比如“学生”、“研究生”中,“学生”不是一个抽象类比如“支付”、“现金支付”、“信用卡支付”中,“支付”就是一个抽象类但面向对象的设计原则强调设计抽象类,比如学生,设计一个抽象学生类,然后派生出本科生和研究生抽象类意味着不能创建该类的实例第五十五页,本课件共有71页4、多继承继承有单继承和多继承。多继承是指一个子类继承了两个父类的属性和行为。第五十六页,本课件共有71页分析模型静态模型:类图对象图动态模型:状态图粗略的对象交互图第五十七页,本课件共有71页1、类图类会员会员代号姓名地址电话租借记录增加租借取全部租借类名属性服务/操作类的一般-特殊关系(三角形一端是一般类,另一端是特殊类)对象关联(连接线中间为关联名称,两端为角色和多重性,箭头为导向性)聚集(菱形一端为整体对象,另一端为部分对象,两端可表示多重性)组成(聚集的特例,表示整体对象与部分对象紧密依赖的合成关系)第五十八页,本课件共有71页图书馆系统的类图第五十九页,本课件共有71页类图的实例第六十页,本课件共有71页首先看“动物”矩形框,它代表一个类。该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法和行为。注意前面的符号,+表示public,表示private,#表示protected.第六十一页,本课件共有71页类图的实例第六十二页,本课件共有71页“飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有interface显示,第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。第六十三页,本课件共有71页第六十四页,本课件共有71页继承关系用空心三角形+实现来表示。第六十五页,本课件共有71页“大雁”实现了“飞翔”接口。实现接口用空心三角形+虚线来表示第六十六页,本课件共有71页企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。当一个类“知道”另一个类时,可以用关联(association)关系第六十七页,本课件共有71页“大雁”和“雁群”这两个类。大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation)关系。聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+实线箭头表示class WideGooseAggregateprivate WideGoose arrayWideGoose;/在雁群WideGooseAggregate类中,有大雁数组对象arrayWideGoose第六十八页,本课件共有71页“鸟”和“翅膀”这两个类。鸟和翅膀似整体和部分的关系,并且翅膀和鸟的生命周期是相同的,在这里鸟和其翅膀就是组合关系。组合(composition)是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。合成关系用实心的的菱形+实线箭头来表示。另外,合成关系的连线两端还有一个数字“1”和数字“2”,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两支翅膀。如果一个类可能有无数个实例,则就用“n”来表示。第六十九页,本课件共有71页classBirdprivateWingwing;publicBird()wing=newWing();/在鸟Bird类中,初始化时,实例化翅膀Wing,它们之间同时生成第七十页,本课件共有71页感谢大家观看第七十一页,本课件共有71页

    注意事项

    本文(静态结构模型类图精选课件.ppt)为本站会员(石***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开