




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 长沙理工大学程序设计实践课程设计报告邹松林学 院 计通学院 专 业 电脑科学与技术 班 级 电脑03-05 学 号 27 学生 邹松林 指导教师 卢曼莎 课程成绩 完成日期 2006年9月20号图书馆管理系统数据库分析与设计学生:邹松林 指导老师:卢曼莎摘要: 图书信息管理系统主要由读者信息管理模块,图书信息管理模块,借阅信息管理模块,系统信息管理模块等组成。其中又各自分成读者注册,证件修改,用户注销,图书查询,操作记录等子模块。在设计本系统过程中,我们第一步由自顶而下的需求分析概括设计出系统总模块的数据流图,再设计个子模块的相应数据流图,列出数据流信息及数据字典;第二步概念设计在需求分析基
2、础上用E-R图表示出数据及相互间联系,采用先作子图,再合并成初步E-R图,进行修改和重构后得到基本E-R图;第三步逻辑设计,在SQL Server的设计环境下把图书馆管理系统E-R图转化为成逻辑数据模型表示的逻辑模式,同时实现数据模型的优化和数据模式的标准化;第四步进行物理设计设计数据的内模式,确定数据的存储结构,存取路径,存储空间分配等等,具体形式为表,视图,索引的建立。关键字:数据库,SQL语言,MS SQL Server,图书管理1 需求分析用户的需求具体表达在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据,数据结构以及数据处理的流程,为
3、后面的具体设计打下基础。在仔细分析调查有关图书馆管理信息需求的基础上,我们主要考虑以下几个方面的需求:1) 用户需求:图书用户要求电脑系统和SQL Server所工作的范围;2) 应用资源:数据库应用的平台包括物理平台和图书等;3) 应用质量和可靠性要求:包括操作人员素质和系统的纠错能力等1.1 项目名称: 图书馆信息管理系统1.2 项目背景和内容概要对图书馆管理信息系统进行详细地分析后,我们将系统分为以下几个模块:借阅管理模块、借书证信息管理模块、图书信息管理模块、系统管理模块。其主要功能如下:l 借阅管理模块主要功能如下:1).可以为读者办理,修改,注销借书证,输入读者借书证基本信息等,定
4、制读者的借阅权限。2).可以通过借书证查询图书信息、借出图书信息,借阅图书。3).通过借书证还书,管理员可以通过对借阅信息的管理对到期还未还的书,通过查询读者的借书证信息查询读者联系方式发出催还通知。l 借书证信息管理模块主要功能如下:1).读者基本信息的输入,如:读者、性别、单位等。2).读者信息的修改、注销等功能。3).添加新的读者及其信息等。l 图书信息管理模块主要功能如下:1).定制书籍的各种信息管理,如:书名、作者、出版信息等。2).书籍信息的修改,新图书的入库管理和图书的注销等。l 系统管理模块主要功能如下:1).用户登录。2).修改密码。3).添加用户。l 系统备份和数据传输模块
5、主要功能如下:1).备份数据库数据2).恢复数据库数据3).网络数据传输13 数据流图l 数据流总体图示图1-1 数据流总体图l 办理借书证图1-2 输借书证流图l 借书证修改图1-3 借书证修改流图l 借书证注销图1-4借书证注销流图l 借书系统不能借书的原因图1-5借书系统流图l 检索系统图1-6 检索系统流图l 还书系统图1-7 还书系统流图l 图书档案管理系统图1-8 档案管理流图1.4 数据字典 参数名类型长度取值范围别名意义图书书名字符型11SM图书编号字符型11B1050600000-B1050610000SH作者字符型10YZ出版社字符型20CBS单价数值型8DJ借出日期日期型
6、yy-mm-ddJS还书日期日期型yy-mm-ddHS借书证号字符型100501000000-0501100000JSZ字符型20NAME是否归还字符型20YN性别字符型2SEX单位字符型20DW发证日期日期型yy-mm-ddFZ已借书册数字符型2YNC是否允许借书字符型2YNS是或否类别字符型20LB进册数数值型10JC库存量数值型10CZ操作员编号数值型10CB操作员字符型10CNAME操作员密码 字符型15MM表1数据字典2 概念结构设计这一阶段我们将客户的应用需求抽象为信息世界的结构,即对系统的人、物、事和概念进行人为处理,抽取人们所关心的共同特性,同时把这些特性用概念精确的描述。我们
7、首先根据需求分析的结果数据流图、数据字典等对现实世界的数据进行抽象,设计各个局部E-R图,然后合并成初步E-R图,再进行修改与重构。2.1局部E-R图图书信息管理系统主要分为以下几个局部E-R图:1).借书证处理系统ER图:管理员办证改证销证读者档案借书证身份验证身份验证身份验证1PPNMNMP1P图2-1 借书证处理系统ER图图中各实体属性如下:读者档案:学号,读者,性别,出生日期,借书证号,职业,单位,通讯地址,邮政编码,联系 借书证:借书证号,性别,办证日期,借阅范围,最大借书量,照片,身份证号管理员:管理员编号,管理员,登陆密码2).借书系统ER图:读者借书证库存表借出信息验证查询借书
8、检查库存索书条111N1NN图2-2借书系统ER图图中各实体属性如下:读者:身份证号,读者,借书证号借书证:借书证号,性别,办证日期(借阅范围,最大借书量,照片,身份证号)库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期3).索书系统ER图:读者图书档案索书要求索书MN索书条图2-3索书系统ER图图中各实体属性如下:读者:读者,借书证号图书档案:图书编号,书号,书名,作者,出版单位,出版日期,单价,藏书册书,类别,入库日期4).还书系统ER图:验证还书催还完整检查读者借书证库存表借出信息管理员是否归还1N1MMN1M1P图2-4 还书系统ER图图中各实体属性如下:读者:
9、学号,读者,借书证号借书证:借书证号,性别,办证日期库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期管理员:操作员编号,管理员,登陆密码5)图书档案管理系统ER图:管理员修改输入注销图书档案库存身份验证身份验证身份验证1N1NN1NNNN入库清单图2-5 档案管理系统ER图图中各实体属性如下:管理员:操作员编号,管理员,登陆密码库存信息:书号,图书编号图书档案:图书编号,书号,书名,作者,出版单位,出版日期,单价,类别,入库日期入库清单:入库日期,图书编号,管理员编号,书名6). 整体E-R图读者图书档案借出书库库存表管理员借书证图书管理证件处理催还借书还书查询已借索书
10、PPM1MN11MNPPMNNPMNN1N图2-6 整体ER图图中各实体属性如下:读者档案:学号,读者,性别,借书证号,单位借书证:借书证号,性别,办证日期管理员:操作员编号,管理员,登陆密码库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期图书档案:书号,书名,作者,出版单位,出版日期,单价,类别,藏书册书,图书编号入库日期2.2 实体描述说明:1、由于读者的信息可以在借书证办理档案中查到所以合并为借书证办理档案 2. 将借出书库和入库清单分别合并到了借书登记表和图书信息表中实体名称借书证数据库表借书证信息表实体说明读者和借书证信息实体属性列表借书证号,性别,办证日期,
11、最大借书量,学号实体名称管理员数据库表tz_passwd实体说明管理员的信息实体属性列表管理员编号,管理员,登陆密码实体名称读者数据库表借书登记表实体说明图书馆未被借出的图书信息实体属性列表书号,图书编号实体名称读者数据库表还书登记表实体说明图书馆未被借出的图书信息实体属性列表书号,图书编号实体名称图书档案数据库表图书信息表实体说明馆藏图书信息实体属性列表书号,书名,作者,出版单位,出版日期,版次,单价,类别,图书编号,入库日期表2 实体描述2.3 关系描述 已包含在E-R图中2.4 实体-关系调整 实体描述表中已消除冗余实体和关系2.5 数据项定义1)图书库的数据项定义:名称别名类型长度其他
12、图书书名SM字符型20普通索引书号SH数值型20主索引译者YZ字符型10出版社CBS字符型20单价DJ数值型8出版时间CBSJ日期型8表3 图书库数据项定义2)借、还书库的数据项定义:名称别名类型长度其他XSXM字符型10普通索引借书证号JSZH数值型8主索引图书书名SM字符型20图书编号SH字符型20借书日期JSRQ日期型8还书日期HSRQ日期型8表4借、还书库数据项定义3)借书证库的数据项定义:名称别名类型长度其他JSXM字符型10普通索引借书证号JSGH字符型6主索引性别XB字符型4单位DW字符型8表5借书证库数据项定义4)操作员库的数据项定义:名称别名类型长度其他操作员编号CZYYHH
13、字符型10操作员用户名CZYYHM字符型10口令KL字符型10表6操作员库数据项定义2.6数据表库描述图书数据库=图书书名+图书编号+著者+出版社+单价+书号+出版时间借书库=+借书证号+教师+图书名称+借书日期+还书日期教师数据库=+借书证号+单位操作员库=操作员用户名+口令2.7 系统功能模块图软件功能结构图:工商学院图书信息管理系统系统管理基本情况录入借、还书管理查询、统计初始化数据备份操作员管理一般用户登陆新图书登记新期刊登记借书登记还书登记图书库藏查询借书证库查询图书查询借书查询还书查询图2-7 软件功能结构2.8 系统流程图:图书管理系统读者查询系统图书(期刊)库查询图2-8 系统
14、流程图3 逻辑结构设计为了能够用电脑和SQL Server实现用户需求,可将概念结构转化为相应的数据模型,即是设计逻辑结构。即由ER图建立了适当的表,并按不同的范式的定义,对表进行标准化。对标准化的表,更据用户需求建立数据库结构。3.1 确定数据依赖关系名主 要 函 数 依 赖管理员 BCNF管理员编号(管理员,登陆密码)库存信息BCNF 图书编号书名等借出信息BCNF(图书编号)(借书日期,借书证号,归还日期)借书证2NF借书证号(借书证号,性别,单位,发证日期,已借书册书,是否容许借书)以后扩展:身份证号(,性别,照片)图书档案2NF图书编号(书号,书名,作者,出版单位,出版日期,版次,单
15、价,内容提要,分类号,索书号,所在书库,入库日期)入库清单BCNF图书编号管理员编号,书名,入库日期还书信息BCNF借书证号,图书编号,书名,借出日期,还书日期3.2 数据依赖的优化与调整3.2.1关系模式的优化 (1) 借书证信息:借书证 (借书证号,性别,单位,发证日期,已借书册书,是否容许借书) 满足 BCNF范式(2) 管理员信息:管理员信息(管理员编号,管理员,登陆密码)满足 BCNF 范式(3) 库存信息:库存信息(图书编号,书号) 满足BCNF 范式(4) 借书信息:借书信息(图书编号,借书证号,书名,借书日期,是否归还)满足 BCNF 范式(5) 还书信息:还书信息,图书编号,
16、书名,借出日期,还书日期满足 BCNF 范式(6) 图书信息:图书档案(图书编号,书名,作者,图书类别,单价,出版社,进册书,库存量)均满足 BCNF范式(7) 入库清单:入库清单图书编号,管理员编号,书名,入库日期满足 BCNF范式3.2.2关系模式的调整虽然在关系模式的优化中将各种关系满足了BCNF范式的要求,但是对某些数据库的操作却并没有简化,相反导致了数据库查询等数据库操作的效率低下。于是对借书证信息,和图书信息作出了以下调整。(1) 借书证信息:借书证借书证号,性别,办证日期,单位,已借书册数,借书许可,3NF (2) 图书信息: 图书档案图书编号,书名,作者,出版单位,单价,图书类
17、别,进册数,入库量 (2NF)4 代码设计图书管理系统部分源代码图书外借情况查询代码tempstr=allt(thisform.container1.text1.value)tempstr="%"+tempstr+"%"if thisform.container1 bo1.text="借书证号"select * from 借书登记表 where 借书登记表.借书证号 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.ref
18、reshendif if thisform.container1 bo1.text=""select * from 借书登记表 where 借书登记表. like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if thisform.container1 bo1.text="图书编号"select * from 借书登记表 where 借书登记表.图书编号 like tempstr into cursor tempcurs
19、orthisform.grid1.recordsource=tempcursorthisform.refreshendif if thisform.container1 bo1.text="书名"select * from 借书登记表 where 借书登记表.书名 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if thisform.container1 bo1.text="是否归还"select * from
20、借书登记表 where 借书登记表.是否归还 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif thisform.container1.text1.value=""图书外借和归还情况查询代码tempstr=allt(thisform.container1.text1.value)tempstr="%"+tempstr+"%"if thisform.container1 bo1.text="
21、;借书证号"select * from 还书登记表 where 还书登记表.借书证号 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if thisform.container1 bo1.text=""select * from 还书登记表 where 还书登记表. like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisfor
22、m.refreshendif if thisform.container1 bo1.text="图书编号"select * from 还书登记表 where 还书登记表.图书编号 like tempstr into cursor tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif if thisform.container1 bo1.text="书名"select * from 还书登记表 where 还书登记表.书名 like tempstr into cursor
23、 tempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendif thisform.container1.text1.value=""存储过程代码procedure rideletelocal llretvalllretval=.t. if (isrlocked() and !deleted() or !rlock() llretval=.f. else if !deleted() delete if cursorgetprop('buffering') > 1 =tableu
24、pdate() endif llretval=pnerror=0 endif not already deleted endif unlock record (recno()return llretvalprocedure riupdatelparameters tcfieldname,tcnewvalue,tccascadeparentlocal llretvalllretval=.t. if isrlocked() or !rlock() llretval=.f. else if eval(tcfieldname)<>tcnewvalue private pccascadepa
25、rent pccascadeparent=upper(iif(type("tccascadeparent")<>"c","",tccascadeparent) replace (tcfieldname) with tcnewvalue if cursorgetprop('buffering') > 1 =tableupdate() endif llretval=pnerror=0 endif values don't already match endif it's locked al
26、ready, or i was able to lock it unlock record (recno()return llretvalprocedure rierrorparameters tnerrno,tcmessage,tccode,tcprogramlocal lnerrorrows,lnxxlnerrorrows=alen(gaerrors,1)if type('gaerrorslnerrorrows,1')<>"l" dimension gaerrorslnerrorrows+1,alen(gaerrors,2) lnerrorr
27、ows=lnerrorrows+1endifgaerrorslnerrorrows,1=tnerrnogaerrorslnerrorrows,2=tcmessagegaerrorslnerrorrows,3=tccodegaerrorslnerrorrows,4=""lnxx=1do while !empty(program(lnxx) gaerrorslnerrorrows,4=gaerrorslnerrorrows,4+","+; program(lnxx) lnxx=lnxx+1enddogaerrorslnerrorrows,5=pcparent
28、dbfgaerrorslnerrorrows,6=pnparentrecgaerrorslnerrorrows,7=pcparentidgaerrorslnerrorrows,8=pcparentexprgaerrorslnerrorrows,9=pcchilddbfgaerrorslnerrorrows,10=pnchildrecgaerrorslnerrorrows,11=pcchildidgaerrorslnerrorrows,12=pcchildexprreturn tnerrnoprocedure riopenparameters tctable,tcorderlocal lccur
29、wkarea,lcnewwkarea,lninusespotlninusespot=atc(tctable+"*",pcricursors)if lninusespot=0 lccurwkarea=select() select 0 lcnewwkarea=select() if not empty(tcorder) use (tctable) again order (tcorder) ; alias ("_ri"+ltrim(str(select() share else use (tctable) again alias ("_ri&qu
30、ot;+ltrim(str(select() share endif if pnerror=0 pcricursors=pcricursors+upper(tctable)+"?"+str(select(),5) else lcnewwkarea=0 endif something bad happened while attempting to open the fileelse lcnewwkarea=val(substr(pcricursors,lninusespot+len(tctable)+1,5) pcricursors = strtran(pcricursor
31、s,upper(tctable)+"*"+str(lcnewwkarea,5),; upper(tctable)+"?"+str(lcnewwkarea,5) if not empty(tcorder) set order to (tcorder) in (lcnewwkarea) endif sent an order if pnerror<>0 lcnewwkarea=0 endif something bad happened while setting orderendifreturn (lcnewwkarea)procedure r
32、iendparameters tlsuccesslocal lnxx,lnspot,lcworkareaif tlsuccess end transactionelse set deleted off rollback set deleted onendifif empty(pcriolderror) on errorelse on error &pcriolderror.endiffor lnxx=1 to occurs("*",pcricursors) lnspot=atc("*",pcricursors,lnxx)+1 use in (va
33、l(substr(pcricursors,lnspot,5)endforif pcoldcompat = "on"set compatible onendifif pcolddele="off" set deleted offendifif pcoldexact="on" set exact onendifif pcoldtalk="on" set talk onendifdo case case empty(pcolddbc) set data to case pcolddbc<>dbc() set
34、data to (pcolddbc)endcasereturn .cedure rireuse* rireuse.prgparameters tctablename,tcwkareapcricursors = strtran(pcricursors,upper(tctablename)+"?"+str(tcwkarea,5),; upper(tctablename)+"*"+str(tcwkarea,5)return .t.* "参照完整性删除触发器" 借书证信息表procedure _ri_delete_借书证信息表loc
35、al llretvalllretval = .t.private pcparentdbf,pnparentrec,pcchilddbf,pnchildrec,pcparentid,pcchildidprivate pcparentexpr,pcchildexprstore "" to pcparentdbf,pcchilddbf,pcparentid,pcchildid,pcparentexpr,pcchildexprstore 0 to pnparentrec,pnchildrecif _triggerlevel=1 begin transaction private p
36、cricursors,pcriwkareas,pcriolderror,pnerror,; pcolddele,pcoldexact,pcoldtalk,pcoldcompat,pcolddbc pcoldtalk=set("talk") set talk off pcolddele=set("deleted") pcoldexact=set("exact") pcoldcompat=set("compatible") set compatible off set deleted on set exact off
37、pcricursors="" pcriwkareas="" pcriolderror=on("error") pnerror=0 on error pnerror=rierror(error(),message(),message(1),program() if type('gaerrors(1)')<>"u" release gaerrors endif public gaerrors(1,12) pcolddbc=dbc() set data to ("tsglxt&quo
38、t;)endif first triggerlocal lcparentid && parent's value to be sought in childlocal lcchildwkarea && child work area handle returned by riopenlocal lcparentwkarealocal lldelheaderarealcstartarea=select()llretval=.t.lcparentwkarea=select()select (lcparentwkarea)pcparentdbf=dbf()pn
39、parentrec=recno()store 借书证号 to lcparentid,pcparentidpcparentexpr="借书证号"lcchildwkarea=riopen("还书登记表","借书证号")if lcchildwkarea<=0 if _triggerlevel=1 do riend with .f. endif at the end of the highest trigger level return .f.endif not able to open the child work areapcchi
40、lddbf=dbf(lcchildwkarea)llretval=!seek(lcparentid,lcchildwkarea)select (lcchildwkarea)pnchildrec=recno()pcchildid=借书证号pcchildexpr="借书证号"if !llretval do rierror with -1,"违反删除限制规则。","",""endif=rireuse("还书登记表",lcchildwkarea)if not llretval if _triggerle
41、vel=1 do riend with llretval endif at the end of the highest trigger level select (lcstartarea) return llretvalendifif _triggerlevel=1 do riend with llretvalendif at the end of the highest trigger levelselect (lcstartarea)return llretval* "结束参照完整性删除触发器" 借书证信息表*procedure _ri_update_借书证信息表*
42、"参照完整性更新触发器" 借书证信息表local llretvalllretval = .t.private pcparentdbf,pnparentrec,pcchilddbf,pnchildrec,pcparentid,pcchildidprivate pcparentexpr,pcchildexprstore "" to pcparentdbf,pcchilddbf,pcparentid,pcchildid,pcparentexpr,pcchildexprstore 0 to pnparentrec,pnchildrecif _triggerlev
43、el=1 begin transaction private pcricursors,pcriwkareas,pcriolderror,pnerror,; pcolddele,pcoldexact,pcoldtalk,pcoldcompat,pcolddbc pcoldtalk=set("talk") set talk off pcolddele=set("deleted") pcoldexact=set("exact") pcoldcompat=set("compatible") set compatible o
44、ff set deleted on set exact off pcricursors="" pcriwkareas="" pcriolderror=on("error") pnerror=0 on error pnerror=rierror(error(),message(),message(1),program() if type('gaerrors(1)')<>"u" release gaerrors endif public gaerrors(1,12) pcolddbc=dbc
45、() set data to ("tsglxt")endif first triggerlocal lcparentid && parent's value to be sought in childlocal lcoldparentid && previous parent id valuelocal lcchildwkarea && child work area handle returned by riopenlocal lcchildid && child's value to be
46、sought in parentlocal lcoldchildid && old child id valuelocal lcparentwkarea && parentwork area handle returned by riopenlocal lcstartarealcstartarea=select()llretval=.t.lcparentwkarea=select()select (lcparentwkarea)pcparentdbf=dbf()pnparentrec=recno()lcoldparentid=oldval("借书证号&
47、quot;)pcparentid=lcoldparentidpcparentexpr="借书证号"lcparentid=借书证号if lcparentid<>lcoldparentid lcchildwkarea=riopen("还书登记表") if lcchildwkarea<=0 if _triggerlevel=1 do riend with .f. endif at the end of the highest trigger level select (lcstartarea) return .f. endif not abl
48、e to open the child work area pcchilddbf=dbf(lcchildwkarea) select (lcchildwkarea) scan for 借书证号=lcoldparentid pnchildrec=recno() pcchildid=借书证号 pcchildexpr="借书证号" if not llretval exit endif && not llretval llretval=riupdate("借书证号",lcparentid,"借书证信息表") endscan g
49、et all of the 还书登记表 records =rireuse("还书登记表",lcchildwkarea) if not llretval if _triggerlevel=1 do riend with llretval endif at the end of the highest trigger level select (lcstartarea) return llretval endifendif this parent id changedif _triggerlevel=1 do riend with llretvalendif at the en
50、d of the highest trigger levelselect (lcstartarea)return llretval* "结束参照完整性更新触发器" 借书证信息表*5 数据库系统性能评价在需求分析部分,我认真阅读了图书管理系统的功能简述,在此基础上把整个系统按处理功能分解成假设干模块,进行数据分解,画出了总系统和各模块的数据流图、数据项表、数据结构表、数据流表等。得到的需求分析的主要结果,基本反映了用户的需求。在概念结构设计时,采用自底向上的设计方法。将数据流程图中的子图抽象为E-R图,然后再合并各个分E-R图。设计出的整体概念结构内部具有一致性,不但能满足需
51、求分析阶段确定的所有要求,而且能准确反映原来的每个子视图的结构。并且给出了各个实体的描述,对实体和关系进行了调整,消除了冗余实体和冗余关系。在逻辑结构设计时,选择SQL Server 所支持的数据模型,适于描述和表达概念结构的。我们遵循一定原则进行实体、属性和联系的转换。优化了关系数据模型,根据具体的应用确定范式和关系模式的分解与合并。确定了外模式和数据视图。在物理结构设计时,设计的存储结构和存储方法考虑到了用户的应用环境情况,为了缩短响应时间优化数据库的访问,建立了经常查询的属性的索引。并且对数据库表进行了存储空间分配和划分了用户角色及每个角色的权限,系统安全性提高。 最后在数据库实施设计阶段,在具体的DBMS下创建库,表,视图,建索引,授权及完整性约束。通过不断修改完善,我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025设备租赁合同的市场分析
- VB编程工具使用试题及答案总结
- 项目合作协议范文
- 主管在危机沟通中的角色研究计划
- 网络连接优化策略试题及答案
- 数据库系统构架与应用考题及答案
- 绿色经济转型的路径研究试题及答案
- 2025年计算机二级VB考试的考点详解及试题及答案
- 知识管理提升组织竞争力计划
- 高考数学轻松应对示范题及试题及答案
- 2022年四川省南充市中考数学真题(解析版)
- 百融云创风险决策引擎V5产品操作手册
- 高考监考员培训考试题库(含参考答案)
- 【企业员工流失问题研究的文献综述4800字】
- 复旦大学《信号与系统A》2023-2024学年第一学期期末试卷
- 中华中医药学会强直性脊柱炎脾虚湿阻证证候诊断标准(公示稿)
- 家长助教日成品
- 2024助贷委托服务协议合同模板
- DZ∕T 0033-2020 固体矿产地质勘查报告编写规范(正式版)
- 部编版二年级道德与法治下册第14课《学习有方法》精美课件
- 2024年纪检监察综合业务知识题库及参考答案【完整版】
评论
0/150
提交评论