工厂管理系统数据库课程设计.doc

上传人:精*** 文档编号:851348 上传时间:2023-09-16 格式:DOC 页数:34 大小:377.17KB
下载 相关 举报
工厂管理系统数据库课程设计.doc_第1页
第1页 / 共34页
工厂管理系统数据库课程设计.doc_第2页
第2页 / 共34页
工厂管理系统数据库课程设计.doc_第3页
第3页 / 共34页
工厂管理系统数据库课程设计.doc_第4页
第4页 / 共34页
工厂管理系统数据库课程设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、 摘 要数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。对工厂管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于工厂信息资料的管理需要有效的工厂管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高工厂信息检索效率的目的。采用数据库技术生成的工厂管理系统将会极大地方便并简化图管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一

2、个简单、高效的工作中。基于这个问题,开发了工厂管理系统。系统采用C/S模式,实现了工厂信息更新与查询的方便、高效性、有效性和及时性。本文通过作者设计和开发一个中小型工厂管理系统的实践,阐述了工厂管理软件中所应具有的基本功能、设计、实现。关键字:工厂管理,数据库技术,功能目 录引 言1第一章 需求分析阶段21.1 引言21.2 需求分析阶段的目标与任务21.2.1 处理对象21.2.2 处理功能及要求31.2.3 安全性及完整性要求31.3 需求分析阶段成果31.3.1 体会和心得31.3.2 工厂管理系统业务流程图41.3.3 工厂管理系统数字字典4第二章 概念设计阶段72.1 引言72.2

3、任务与目标72.3 阶段结果7第三章 逻辑设计阶段123.1逻辑设计的任务和目标123.2数据组织123.2.1将E-R图转换为关系模型123.2.2 模型分析133.2.3 用户子模式定义13第四章 物理设计阶段154.1物理设计阶段的目标与任务154.2数据存储方面15第五章 数据库实施阶段165.1建立数据库、数据表、视图、索引165.1.1 建立数据库165.1.2 建立数据表165.1.3 建立视图195.1.4 建立索引205.1.5 建立触发器205.1.6 数据库备份与恢复215.1.7 创建登录名、用户以及授予用户权限225.2数据入库225.3创建各个功能的存储过程22第六

4、章 设计总结23参考文献24附录1 存储过程定义25附录2 数据查看和存储过程功能的验证28引 言在社会进入信息化时代以来,信息产业所创造的社会价值渐渐地开始占据社会体系中不可替代的位置。人们也渐渐明白了信息和知识更新的重要性,在这个信息更新快速的社会,信息代表着价值,管理好信息也就意味着非常重要,好的管理机制带来效率,效率象征着竞争力,象征着效益,一个好的管理系统对于一个工厂来说是至关重要的,它是一个工厂的生命线。在计算机日益普及的今天,建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。对工厂管理部门而言,以前单一的手工检索已不能满足人们的要求,往

5、往是投入了大量的人力和财力却得不到高效的管理效率。为了便于工厂信息资料的管理需要有效的工厂管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高工厂信息检索效率的目的。采用数据库技术生成的工厂管理系统将会极大地方便并简化图管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。本文以工厂管理系统管理系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。采用结构化的功能模块设计系统功能,可读性好,易于扩充。基本功

6、能全面,系统可读性好,易于维护、更新,安全性好。第一章 需求分析阶段1.1 引言在进行系统设计之前,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分

7、为了五个部分:仓库管理、车间管理、工人管理、产品管理、零件管理。能够实现以下功能:1.更新和查询仓库信息2.更新和查询车间信息3.更新和查询工人信息4.更新和查询产品信息5.更新和查询零件信息1.2 需求分析阶段的目标与任务1.2.1 处理对象工厂:厂名、厂长名车间:车间号、车间主任姓名、车间主任地址、车间主任电话生产产品:车间号、产品号、产品数量、开始生产时间、生产截止时间生产零件:车间号、零件号、零件数量、开始生产时间、生产截止时间工人:职工号、职工姓名、职工年龄、职工性别、工种、工作车间号产品:产品号、产品名称、产品价格、零件号、零件数量零件:零件号、价格重量、价格价格仓库:仓库号、仓库

8、主任姓名、仓库主任电话储存产品:仓库号、产品号、产品数量储存零件:仓库号、零件号、零件数量1.2.2 处理功能及要求1能够存储一定数量的工厂信息,并方便有效的进行相应的数据操作和管理,这主要包括:1) 工厂信息的录入、删除及修改。2) 工厂信息的多关键字检索查询。2能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。3对查询、统计的结果能够列表显示。1.2.3 安全性及完整性要求1) 安全性要求 系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权

9、限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。2) 完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。1.3 需求分析阶段成果1.3.1 体会和心得在需求分析这个阶段,由于环境的限制,我主要途径是通过上网查询工厂相关信息和自己生活中的一些积累,由于这是第一次做这样的一个需求分析,刚开始的时候,不知道从何下手,通过向老师、学长、同学的学习和讨论,慢慢地开始理清了思路,然后集中精力在网上了解工厂管理方面的问题和相关的一些操作,

10、在设计ER图的时候遇到过一些麻烦,通过老师对我的知道,终于还是顺利的完成了这个阶段的任务。1.3.2 工厂管理系统业务流程图表1.1 业务流程图管理员查询信息修改信息更新信息工厂管理系统零件管理部门产品管理部门车间管理部门工厂管理部门执行命令仓库管理部门1.3.3 工厂管理系统数字字典1.数据:系统涉及的数据项一共39项表1.2 数据项列表数据项编号数据项名数据项含义存储结构别名DI-1Weno仓库的序号Varchar(20)仓库号DI-2We_Dname仓库主任的姓名Varchar(20)仓库主任姓名DI-3We_phonenumber仓库主任的电话Varchar(20)仓库主任电话DI-4

11、Ptno产品的序号Varchar(20)产品号DI-5Ptname产品的名称Varchar(20)产品名称DI-6Ptprice产品的价格numeric(10,1)产品价格DI-7Parts_no所需零件的序号Varchar(20)零件号DI-8Parts_number所需零件的数量int零件数量DI-9Wpno车间的序号Varchar(20)车间号DI-10Wp_Daddrsee车间主任的住址Varchar(20)车间主任地址DI-11Wp_Dphonenubmer车间主任的电话Varchar(20)车间主任电话DI-12Wp_Dname车间主任的姓名Varchar(20)车间主任姓名DI-

12、13Ptst_weno产品所在仓库序号Varchar(20)仓库号DI-14Ptst_ptnumber仓库中指定产品数量int产品数量DI-15Ptst_ptno产品的序号Varchar(20)产品号DI-16Psst_weno零件所在仓库序号Varchar(20)仓库号DI-17Psst_psnumber零件中指定产品数量int零件数量DI-18Psst_psno零件的序号Varchar(20)零件号DI-19Fyname工厂的名字Varchar(20)厂名DI-20Fy_Dname厂长的姓名Varchar(20)厂长名DI-21Wrno工人的工作号Varchar(20)职工号DI-22Wr

13、name工人的姓名Varchar(20)职工姓名DI-23Wrsex工人的性别Varchar(20)职工性别DI-24Wrage工人的年龄int职工年龄DI-25Wrrypes工人的工种Varchar(20)工种DI-26Wr_workshop工人的工作车间Varchar(20)工作车间号DI-27Psno零件的序号Varchar(20)零件号DI-28Psweigh零件的重量int零件重量DI-29Psprice零件的价格numeric(10,1)零件价格DI-30Pp_wpno生产产品的车间序号Varchar(20)车间号DI-31Pp_starttime开始生产产品的时间datetime

14、开始生产时间DI-32Pp_ptnumber所需生产的数量Varchar(20)产品数量DI-33Pp_endtime生产该产品截止时间datetime)生产截止时间DI-34Pp_ptno所生产产品的序号Varchar(20)产品号DI-35Ps_wpno生产零件的车间序号Varchar(20)车间号DI-36Ps_starttime开始生产零件的时间datetime开始生产时间DI-37Ps_psnumber所需生产的数量Varchar(20)零件数量DI-38Ps_endtime生产该零件截止时间datetime生产截止时间DI-39Ps_psno所生产零件的序号Varchar(20)零

15、件号2.数据结构:表1.3 数据结构列表数据结构编号数据结构名数据结构含义组成部分DS-1Warehouse仓库信息Weno, We_phonenumber We_DnameDS-2Product产品信息Ptno , Ptname,PtpriceParts_no , Parts_numberDS-3Workshop车间信息Wpno , Wp_DaddressWp_Dphonenubmer ,Wp_DnameDS-4Product_storage产品储存信息Ptst_wenoPtst_ptnumber , Ptst_ptnoDS-5 Parts_storage零件储存信息Psst_wenoPss

16、t_psnumber , Psst_psnoDS-6Factory工厂信息FynameFy_DnameDS-7Worker工人信息Wrno , Wrname , WrsexWrage , Wrrypes , Wr_workshopDS-8Parts零件信息Psno , PsweightPspriceDS-9Product_producing产品生产信息Pp_ptnumber , Pp_starttime Pp_endtime, Pp_ptno , Pp_wpnoDS-10Parts_producing零件生产信息Ps_starttime , Ps_psnumberPs_endtime , Ps

17、_psno , Ps_wpno3.处理逻辑描述1.4处理逻辑列表处理编号处理功能处理过程PS-1查询先确定要查询的部门,然后通过语句可以查询出相应部门的信息,并且按表格的形式显示出结果PS-2更新先确定要做更新的部门,把要修改、删除的信息通过平台进行修改第二章 概念设计阶段2.1 引言工厂管理系统的主要目标是方便对工厂信息的管理和更新,实现工厂信息管理的系统化和自动化,使得工厂管理高度一体化,从而提高工厂生产效益。主要任务是对仓库信息、车间信息、工人信息、产品和产品生产信息、零件和零件生产信息的操作及处理。概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个

18、数据库设计的关键。2.2 任务与目标(1)设计分E-R图,即各子模块的E-R图;(2)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;(3)生成全局E-R图,通过消除冲突等方法。2.3 阶段结果(1)各个子模块的E-R图:WarehouseWenoWe_DnameWe_phonenumber图2.1 仓库信息E-R图ProductPtnoPtnameParts_noPtpriceParts_number图2.2 产品信息E-R图 WorkshopWpnoWp_DphonenubmerWp_DaddressWp_Dname图2.3 车间信息E-R图Product_storage

19、Ptst_wenoPtst_ptnoPtst_ptnumber图2.4 产品储存信息E-R图Parts_storagePsst_wenoPsst_psnoPsst_psnumber图2.5 零件储存信息E-R图FactoryFynameFy_Dname图2.6 工厂信息E-R图WorkerWrnoWrnameWrrypesWrageWrsexWr_workshop图2.7 工人信息E-R图PartsPsnoPsweightPsprice图2.8 零件信息E-R图Product_producingPp_wpnoPp_ptnoPp_ptnumberPp_endtimePp_starttime图2.

20、9 产品生产信息E-R图Parts_producingPs_wpnoPs_psnoPs_psnumberPs_endtimePs_starttime图2.10 零件生产信息E-R图(2)全局E-R图1NWorkshop BelongWorkerWarehouseBelongBelongProductProduct_producingPartsParts_storageConstituteParts_producingProduct_storage _storageFactoryN1NNN11PNMMMPP图2.11 全局E-R图第三章 逻辑设计阶段3.1逻辑设计的任务和目标以上的概念设计阶段是

21、独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。3.2数据组织3.2.1将E-R图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一

22、个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 具有相同码的关系模式可合并。由于车间和工人是1:n的关系,固可以将联系跟实体工人的关系模式合并,由于产品和车间,零件和车间都是m:n的关系,所以可以建立一个独立的关系模式,

23、另外产品和仓库的关系是1:n,零件和仓库的关系是m:n,两者也都可以建立一个独立的关系模式。具体的基本E-R图向关系模型的转化如下:工厂:Factory(Fyname,Fy_Dname)车间:Workshop(Wpno,Wp_Dname,Wp_Dphonenubmer,Wp_Daddress)工人:Worker(Wrno,Wrname,Wrsex,Wrage,Wrtypes,Wr_workshop)零件:Parts(Psno , Psweight,Psprice)产品:Product(Ptno,Ptname,Ptprice,Parts_no,Parts_number)仓库:Warehous(W

24、eno,We_phonenumber,We_Dname)产品储存:Product_storage(Ptst_weno,Ptst_ptnumber,Ptst_ptno)零件储存:Parts_storage(Psst_weno,Psst_psnumber,Psst_psno)产品生产:Product_producing(Pp_ptnumber , Pp_starttime ,Pp_endtime, Pp_ptno , Pp_wpno)零件生产:Parts_producing(Ps_psnumber , Ps_starttime ,Ps_endtime, Ps_psno , Ps_wpno)3.2.

25、2 模型分析关系模式Factory,Workshop,Worker,Parts,Product,Warehous,Product_storage Parts_storage,Product_producing,Parts_producing不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF.3.2.3 用户子模式定义表3.1 用户子模式定义编号用户子模式(View)作用(共性:提供数据保密和安全保护机制)V-1Product_information用于对产品信息的查询V-2Parts_information用于对零件信息的查询表3.2 产品信息视图列名数据类型可否为空

26、说明PtnoVarchar(20)not null产品号PtnameVarchar(20)not null产品名Ptpricenumeric(10,1)产品价格Parts_noVarchar(20)not null产品所需零件的零件号Parts_numberint产品所需零件的数量Ptst_wenoVarchar(20)not null产品所存放的仓库Ptst_ptnumberint存放的数量Pp_ptnumberInt预计要生产的数量Pp_starttimeDatetime开始生产的时间Pp_endtimeDatetime结束生产的时间Pp_wpnoVarchar(20)not null生产

27、车间表3.2 零件信息视图列名数据类型可否为空说明PsnoVarchar(20)not null零件号Psweightnumeric(10,1)零件重量Ptpricenumeric(10,1)零件价格Psst_wenoVarchar(20)not null零件所存放的仓库Psst_psnumberint存放的数量Ps_psnumberInt预计要生产的数量Ps_starttimeDatetime开始生产的时间Ps_endtimeDatetime结束生产的时间Ps_wpnoVarchar(20)not null生产车间第四章 物理设计阶段4.1物理设计阶段的目标与任务数据库的物理设计就是为逻辑数

28、据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。4.2数据存储方面为数据库中各基本表建立的索引如下:由于基本表Product,Parts的主码Ptno,Psno经常在查询条件和连接操作的连接条件,出现,且它们的值唯一,在两个属性上建立唯一性索引;第五章 数据库实施阶段5.1建立数据库、数据表、视图、索引5.1.1 建立数据库create database Factoryon primary(name=factory_data,filename=d:

29、xcmFactory.mdf,size=50MB,maxsize=70MB,filegrowth=1MB)log on(name=factory_log,filename=d:xcmFactory.ldf,size=10MB,maxsize=15MB,filegrowth=1MB)5.1.2 建立数据表(1)建立工厂表create table Factory( Fyname varchar(20) not null, Fy_Dname varchar(20) not null, primary key(Fyname,Fy_Dname), );(2)建立车间表create table Works

30、hop( Wpno varchar(20)primary key, Wp_Dname varchar(20) not null, Wp_Dphonenubmer varchar(20) not null, Wp_Daddress varchar(20) not null,);(3)建立工人表create table Worker( Wrno varchar(20) primary key, Wrname varchar(20)not null, Wrage int null, Wrsex varchar(2) check(Wrsex in (男,女), Wrtypes varchar(20),

31、 Wr_workshop varchar(20)not null, foreign key(Wr_workshop)references Workshop(Wpno)on delete cascade on update cascade);(4)建立零件表create table Parts( Psno varchar(20)primary key, Psprice numeric(10,1)default 0, check(Psprice=0), Psweight numeric(10,1)default 0, check(Psweight=0),);(5)建立产品表create table

32、 Product( Ptno varchar(20)primary key, Ptname varchar(20)not null, Ptprice numeric(10,1) default 0, check(Ptprice=0), Parts_no varchar(20)not null, Parts_number int default 0, foreign key(Parts_no)references Parts(Psno)on delete cascade on update cascade); (6)建立仓库表create table Warehous( Weno varchar

33、(20) primary key, We_Dname varchar(20), We_phonenumber varchar(20);(7)建立产品储存表create table Product_storage( Ptst_weno varchar(20), Ptst_ptnumber int, Ptst_ptno varchar(20), primary key(ptst_weno,ptst_ptno), foreign key(Ptst_weno)references Warehous(Weno) on delete cascade on update cascade, foreign k

34、ey(Ptst_ptno)references Product(Ptno) on delete cascade on update cascade);(8)建立零件储存表create table Parts_storage( Psst_weno varchar(20), Psst_psnumber int, Psst_psno varchar(20), primary key(psst_weno,psst_psno), foreign key(Psst_weno)references Warehous(Weno) on delete cascade on update cascade, for

35、eign key(Psst_psno)references Parts(Psno)on delete cascade on update cascade,);(9)建立产品生产表create table Product_producing( Pp_ptnumber int, Pp_starttime datetime, Pp_endtime datetime, Pp_ptno varchar(20)primary key, Pp_wpno varchar(20), foreign key(Pp_ptno)references Product(Ptno) on delete cascade on

36、 update cascade, foreign key(Pp_wpno)references Workshop(Wpno)on delete cascade on update cascade);(10)建立零件生产表create table Parts_producing( Ps_psnumber int, Ps_starttime datetime, Ps_endtime datetime, Ps_psno varchar(20), Ps_wpno varchar(20), primary key(ps_wpno,ps_psno), foreign key(Ps_psno)referen

37、ces Parts(Psno)on delete cascade on update cascade, foreign key(Ps_wpno)references Workshop(Wpno) on delete cascade on update cascade);5.1.3 建立视图(1)建立产品信息视图create view Product_informationas select Ptno,Ptname,Ptprice,Parts_no,Parts_number,Ptst_weno,Ptst_ptnumber,Pp_ptnumber, Pp_starttime ,Pp_endtime

38、,Pp_wpnofrom Product_storage,Product,Product_producingwhere Product.Ptno=Product_producing.Pp_ptno and Product.Ptno=Product_storage.Ptst_ptno(2)建立零件信息视图create view Parts_informationas select Psno Psweight,Psprice,Psst_weno,Psst_psnumber,Ps_psnumber,Ps_starttime ,Ps_endtime,Ps_wpnofrom Parts_storage,

39、Parts,Parts_producingwhere Parts.Psno=Parts_producing.Ps_psno and Parts.Psno=Parts_storage.Psst_psno5.1.4 建立索引create unique index Ptno on Product(Ptno);create unique index Psno on Parts(Psno);5.1.5 建立触发器(1)在Workshop上建立触发器Workshop_delete,当删除表Workshop中的记录时,相应的删除在表Worker中的记录create trigger Workshop_dele

40、teon Workshopfor deleteas delete Workerfrom deletedwhere Worker.Wr_workshop=deleted.Wpno;(2)在Workshop上建立触发器Workshop_delete1,当删除表Workshop中的记录时,相应的删除在表Product_producing中的记录create trigger Workshop_delete1on Workshopfor deleteas delete Product_producingfrom deleted1where Product_producing.Pp_wpno=delete

41、d1.Wpno;(3)在Workshop上建立触发器Workshop_delete2,当删除表Workshop中的记录时,相应的删除在表Parts_producing中的记录create trigger Workshop_delete2on Workshopfor deleteas delete Parts_producingfrom deleted1where Parts_producing.Ps_wpno=deleted1.Wpno;(4) 在Warehous上建立触发器Warehous _delete,当删除表Warehous中的记录时,相应的删除在表Product_storage中的记

42、录create trigger Warehous_deleteon Warehousfor deleteas delete Product_storagefrom deletedwhere Product_storage.Ptst_weno=deleted.Weno;(5) 在Warehous上建立触发器Warehous _delete1,当删除表Warehous中的记录时,相应的删除在表Parts_storage中的记录create trigger Warehous_delete1on Warehousfor deleteas delete Parts_storagefrom deleted

43、where Parts_storage.Psst_weno=deleted.Weno;(6) 在Parts上建立触发器Parts _delete,当删除表Parts中的记录时,相应的删除在表Product中的记录create trigger Parts_deleteon Partsfor deleteas delete Productfrom deletedwhere Product.Parts_no=deleted.Psno;5.1.6 数据库备份与恢复备份backup database Factoryto disk=D:xcmFactory_full_2010519.bak; 恢复:restore filelisto

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922