欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    893.图书信息管理系统论文.doc

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

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

    893.图书信息管理系统论文.doc

    广播电视大学毕业论文题目 图书管理系统 指导老师 年级 专业 信息系统开发与维护姓名 学号 日期 2008 年 12 月 28 日第一章图书管理系统的系统分析31.前言31.1 编写目的31.2 背景31.3 参考资料32 项目概述32.1系统开发前提32.2 系统开发的基本目标32.3 经济目标32.4 社会目标32.5 开发规模42.6系统流程43 可行性研究的方法及评价度44 软件分析45 软件技术分析55.1 设计目标55.2 设计条件55.3 软件基本工作原理56.软件的功能56.1 设备的要求56.2 对运行过程的影响56.3 技术方面的可行性57 可行性综合分析58可行性结论5第二章模块结构6第三章数据库设计7第四章程序界面及编码8第五章结束语10第一章 图书管理系统的系统分析1.前言随着电子技术的不断发展,人类已经进入了一个充满现在化气息的社会。信息技术在人类的社会生产活动中发挥着重要的作用。人们对信息和数据的应用和处理已经进入了新的阶段(自动化,社会化和网络化)。现在各个行业领域都在开发各自的管理信息系统,管理系统的开发已经成了必要和必需的。图书管理系统就是图书管理发展到一定时期出现的产物,随着大量图书的涌现,科目的繁多,传统式的人工管理无法对其进行及时,正确的记录和维护。所以,管理系统的存在是必然的。1.1 编写目的提高对图书录入,分类,借阅的效率,达到一个管理员和一台机器就能对其进行图书的管理,从而减少了人力和物力在这方面对的浪费,在借阅图书时为管理者和借阅者提供更快捷,准确的服务。1.2 背景由于现代社会中大众对图书的需求日益扩大,图书的数量在不断增加,大量的图书给传统的人工管理带来许多不可避免的麻烦和错误如需要大量的记录账本,在查阅历史信息时不便于查找,还有在计算借阅费用时人工计算容易出现偏差。在人力和物力的费用上造成了大量的浪费,使图书馆的管理负担加重,影响了图书管理的正常运行,因此,为了方便对大量图书的管理,必须开发一套合理的,有效的,实用并且快捷的图书管理系统,对大量的图书进行统一的管理。(1)产品名称:图书管理系统(2)任务提出者:大连电视大学(3)产品开发: 第三开发小组(4)产品用户:图书管理人员(5)产品所有权:沈建军1.3 参考资料(1)中央广播电视大学-信息系统开发案例分析与课程设计 (2)中央广播电视大学Visual Basic程序设计(3)北大青鸟Visual Basic可视化编程(4)Visual Basic 案例教程2 项目概述2.1系统开发前提图书管理系统,主要是为了管理人员的使用方便而进行的设计开发的,通过系统的运行,简便快捷的完成每个流程。针对管理方面的不同,建立多个管理模块如图书信息的维护,图书借阅的管理等。2.2 系统开发的基本目标A. 减小费用的开支。 B. 提高了新图书的录入效率,并且也提高了图书借阅的效率。 C. 减免了在数据上的差错,保证了数据的正确性和准确性。 D加大了图书管理的可维护性。 E加大了图书管理的升级空间。2.3 经济目标运用现代化信息处理技术来管理图书,不仅简化了图书的借阅流程,提高了借阅效率,方便了管理人员对图书的维护,而且图书的历史记录能被完成的保存。2.4 社会目标系统的使用减少了大量时间的浪费,并且效率高,准确性高,比往的人工方式更能提高工作效率。并且使管理者和借阅者能对现代化信息技术有了初步的认识,促进了现代化技术知识的普及和应用。2.5 开发规模该系统软件开发总人数:8人辅导老师:任东华组长:冯昊程序分析:全体开发人员2.6系统流程是否否是是设置侦听Winsock接受客户端连接接受客户端命令登陆信息确?命令权限正确?操作数据库向客户端返回信息退出?开始结束否 3 可行性研究的方法及评价度在经济、技术、法律的可行性方面,图书管理系统能很透彻的表现出存在的优越性,在经济方面不需要很大的开支,能很快地开发出来并被使用。在技术方面不需要很高的系统环境。在法律方面由于是自行开发,借助办公软件就可自行使用不存在法律上的版权问题。3.1 经济可行性系统开发需求比较低并且不是十分的复杂,开发的周期较短。为使用者带来便利的同时,重要的一点是本次开发可以给我们对系统的开发有个全面的认识。从经济角度考虑,此信息系统开发可行。3.2 技术可行性系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法逐步简单容易,所以图书管理系统的技术上是完全可行的。3.3 法律可行性整个系统由于是自行开发,自行使用,所以系统本身不存在法律上的版权争议。4 可行性分析结论 根据以上的可行性研究,我们小组认为开发此系统的条件已经具备,可以开始进行开发。5 软件分析 基于windows下开发,应用Visual Basic6.0开发软件及后台数据库Microsoft Access所开发的图书管理系统,用户可以方便,快捷地存取各种信息,使得编写的程序更加稳定可靠。对电脑系统环境的依赖低。在一般环境的办公软件(Office)基础下,图书管理系统就能很顺利的运行,不需要额外的支出。在软件功能方面能满足图书馆对图书的日常管理方面的基本要求(如图书的登录,添加,删除,修改,查询,以及数据库的访问)。5.1 硬件需求服务器最低配置:Pentium 4 2.4 GHZ内存256MB以上硬盘 30GB以上客户端最低配置:Pentium 3 633MHZ 内存256MB以上硬盘 30GB以上服务器建议配置:(视具体数据量而定)Pentium 4 3.0GHZ以上内存1GB以上硬盘80GB以上客户端建议配置:Pentium 4 2.4GHZ 以上内存512MB以上硬盘 80GB以上5.2 软件需求 系统:Windows 2000、Windows XP或 Windows 2003,Visual Basic6.0数据库:Access(Office2000、2003)。5.3 功能需求(1)借阅操作A借阅图书:通过向系统输入读者ID和图书ID实现储存图书的借阅信息。B归还图书:通过向系统输入图书ID,实现系统对图书归还的操作。C续借图书:实现增加借阅天数的功能。D缴纳罚款:当图书被损坏时或不按期归还图书时,读者需缴纳罚金。(2)图书信息A图书类别管理:实现对图书类别的添加功能,删除功能和修改功能,还有对全部类别的总括一览。B图书信息管理:实现了对添加图书、维护图书和查询图书的功能。C图书借阅管理:实现了能够查找所有被借阅的图书的借阅信息的功能和成批删除记录的功能。(3)读者信息A添加读者信息:实现了添加读者信息的功能。B删除读者信息;实现了删除读者信息的功能。C查询读者信息:实现了输入读者ID或读者姓名对读者借阅信息的查询。D维护读者信息:实现了对读者信息修改的功能。(4)管理员信息A添加管理员信息:实现了添加新管理员信息的功能。B删除管理员信息:实现了删除管理员信息的功能。C查询管理员信息:实现了查询按条件和全部查询的功能。(5)数据统计A图书借阅统计:通过输入显示排名的位数来查看图书借阅次数的排名,从而知道图书受欢迎的程度。B未还图书统计:通过此功能可以查看所有未还图书的信息,并且还可以只查看超期未还图书的信息。C超期读者统计:可以查看到所有借阅图书超期的读者信息,并且可以对不存在的读者信息进行删除。第二章 模块结构服务器端模块划分(1)数据管理模块:连接数据库,根据客户端发送来的命令,按要求对数据库进行不同的操作。(2)网络管理模块:管理和控制客户端,包括连接状态和连接数量等。将上述功能模块结合在一起,最后得到如图4-4所示的服务器端系统功能模块图。图书馆管理系统服务器端数据管理模块网络管理模块操作数据库管理和控制客户端信息向客户端发送消息系统连接管理员信息管理管理员信息的添加管理员信息的删除管理员信息的查询连接图书管理系统验证管理员信息图书系统主窗体借阅管理借阅图书归还图书续借图书缴纳罚款图书管理图书类别管理图书信息管理图书借阅管理读者信息管理读者信息的添加读者信息的删除读者信息的查询读者信息的维护数据统计图书借阅统计未还图书统计超期读者统计客户端程序流程图 第三章 数据库设计数据关系模式:管理员资料数据表(管理员ID,管理员姓名,管理员密码,权限类型,备注)图书类别数据表(类别号,类别名称,成绩)图书资料数据表(图书号,书名,作者,出版社,版本号,出版日期,单价,类别号,是否在库,借阅次数,备注)读者资料数据表(读者ID,读者姓名,读者类型,已借图书数,超期欠款,是否有效,登记日期,有效期,是否可以续,备注)图书借还数据表(记录号,读者ID,图书号,借阅日期,应还日期,实际归还日,超期欠款,备注)管理员资料数据表(User_Info)字段名类型长度字段说明索引Usr_ID文本8管理员ID主索引Usr_Name文本20管理员姓名Usr_Pwd文本16管理员密码Usr_Type数字1权限类型Usr_Remark文本255备注管理员资料数据表。管理员资料数据表记录了所有管理员的基本资料,管理员可添加、删除和查询该表。该表包括管理员ID、姓名、密码和权限类型(系统管理员、高级管理员、普通管理员)等资料。图书类别数据表(Book_Type)字段名类型长度字段说明索引Type_Num自动编号长整型类别号主索引Type_Name文本10类别名称图书类别数据表。读者类别数据表记录图书类别,用于给图书分类。主要包括了类别号和类别名称等数据。图书资料数据表(Book_Info)字段名类型长度字段说明索引Book_Num自动编号长整型图书号主索引Book_Name文本40书名Book_Author文本20作者Book_Press文本20出版社Book_PrsNum文本20版本号Book_PrsDate日期/时间短日期出版日期Book_Price货币货币单价Book_Type数字整型图书类别号Book_Available是/否是/否是否在库Book_Total数字长整型借阅次数Book_Remark文本255备注图书资料数据表。图书资料数据表记录了图书馆藏书的基本资料,可供查询。该表主要包括了图书号、书名、作者、出版社、版本号、出版日期、单价、图书类别号、是否在库等基本资料,并且设计了借阅次数字段,以供统计图书借阅次数排名使用。图书类别号必须与图书类别数据表中的类别号对应。读者资料数据表(Reader_Info)字段名类型长度字段说明索引Rdr_ID文本16读者ID主索引Rdr_Name文本8读者姓名Rdr_Type数字整型读者类型Rdr_BkTotal数字整型已借图书数Rdr_Arrearage货币货币超期欠款Rdr_Entitle是/否是/否是否有效Rdr_From日期/时间短日期登记日期Rdr_to日期/时间短日期有效期Rdr_lend是/否是/否是否可以续借Rdr_Remark文本255备注读者资料数据表。读者资料数据表记录了所有读者的基本资料,管理员可添加、删除和查询该表。除了读者ID、读者姓名、读者类型的基本资料,还设计了已借图书数、超期欠款、是否有效、登记日期、有效期和是否可以续借等字段,用于判断该读者是否满足可借书的条件。图书借还数据表(Reader_Record)字段名类型长度字段说明索引Rec_Num自动编号长整型记录号主索引Rec_RdrID文本16读者IDRec_BkNum数字长整型图书号Rec_LendTime日期/时间短日期借阅日期Rec_LendLimit日期/时间短日期应还日期Rec_ReturnTime日期/时间短日期实际归还日期Rec_Arrearage货币货币超期欠款Rec_Remark文本255备注图书借还数据表。图书借还数据表记录了所有读者借阅图书的数据,管理员通过添加图书借阅信息、图书归还信息和缴纳罚款信息来添加和修改该表中的记录。该表主要包括记录号、读者ID、图书号、借阅日期、应还日期和实际归还日期,以及本书的超期欠款等资料。其中借阅读者ID必须与读者资料数据表中的读者ID对应。图书号必须与图书资料数据表中的图书号对应。第四章 程序界面及编码服务器共通模块代码:Public DBCnn As New ADODB.Connection '定义全局ADO对象连接,用于连接数据库Public maxsock As Integer '生成sock控件数Public svrport As String '服务器端口Public aaa As StringPublic bbb As IntegerPublic clientmax As Integer '记录客户端连接最大下标Public Client(1 To 100) As ClientType '允许连接100个客户端Type ClientType '记录客户端数据的ClientType数据类型 UsrID As String '管理员ID index As Integer '通道号 Usrip As String '管理员IPEnd TypePublic Function MessgeInfo(ByVal MsgID As String) As StringDim MsgInfo As StringIf MsgID = "M001" Then MsgInfo = "请输入用户ID!"End IfIf MsgID = "M002" Then MsgInfo = "请输入密码!"End IfIf MsgID = "M003" Then MsgInfo = "用户不存在!"End IfIf MsgID = "M004" Then MsgInfo = "用户没有该权限!"End IfMessgeInfo = MsgInfoEnd Function一 图书管理系统服务器登录界面1) 用户ID没有输入时,点击登陆按钮时。错误提示信息框_12)当输入用户ID,没有输入密码时。错误提示信息框_23) 当用户ID和密码都输入,但在数据库中部存在时。错误提示信息框_34) 当输入的用户ID和密码都符合时,弹出主窗体。5) 当输入的用户ID和密码都符合时,弹出主窗体。登录界面的代码为:Private Sub btnExit_Click()Unload MeEnd SubPrivate Sub btnLogin_Click()Dim sqlstr As String '存储sql命令字符串Dim rs As New ADODB.RecordsetDim RecordCount As IntegerDim UserType As StringIf Trim(txtUsrID.Text) = "" Then MsgBox MessgeInfo("M001"), , "登录信息"Else If Trim(txtUsrPW.Text) = "" Then MsgBox MessgeInfo("M002"), , "登录信息" End IfEnd IfIf Trim(txtUsrID.Text) <> "" And Trim(txtUsrPW.Text) <> "" Thensqlstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ App.Path & "mdblibrary.mdb;Persist Security Info=False"DBCnn.Open sqlstrsqlstr = "select Usr_ID,Usr_Name,Usr_Type From User_Info "sqlstr = sqlstr & "Where Usr_ID='" & Trim(txtUsrID.Text) & "' AND Usr_Pwd = '" & Trim(txtUsrPW.Text) & "'"rs.Open sqlstr, DBCnn, adOpenStatic, adLockOptimisticRecordCount = rs.RecordCountIf RecordCount > 0 ThenUserType = rs.Fields("Usr_Type").ValueEnd IfIf RecordCount = 0 Then MsgBox MessgeInfo("M003"), , "登录信息"ElseIf UserType <> 9 Then MsgBox MessgeInfo("M004"), , "登录信息"ElseFrmMain.ShowUnload MeEnd IfEnd IfEnd IfEnd Sub二 图书管理系统服务器主窗体界面1) 当有客户端连接到服务器时如下图显示2) 当要断开客户端的连接时如下图显示3) 当要给客户端发送信息时如下图显示客户端接受到来自服务器的信息如下图显示主窗体界面的部分代码为:接受并处理数据Private Sub winsock_DataArrival(index As Integer, ByVal bytesTotal As Long)Dim StrArrival As StringDim strBack As StringDim RdrID As StringDim BkNum As LongDim StatNum As IntegerDim UsrID As StringDim UsrPwd As StringDim Usrip As StringDim StrGet() As StringMe.winsock(index).GetData StrArrival, vbStringIf Len(StrArrival) < 1 Then Exit Sub StrGet() = Split(StrArrival, ",", -1) Select Case StrGet(0) Case "Lend" RdrID = StrGet(1) BkNum = Val(StrGet(2) strBack = checklend(RdrID, BkNum, index) Case "Lend1" RdrID = StrGet(1) strBack = lend1(RdrID) Case "Return" BkNum = Val(StrGet(1)strBack = checkReturn(BkNum, index) Case "Pay" RdrID = StrGet(1) strBack = checkPay(RdrID, index)Case "Type" strBack = BookType(StrGet, index)Case "Book" strBack = BookInfo(StrGet, index)Case "Rdr" strBack = Reader(StrGet, index) Case "Usr" strBack = User(StrGet, index) Case "Stat" StatNum = Val(StrGet(1) strBack = checkStat(StatNum) Case "Cnn" UsrID = StrGet(1) UsrPwd = StrGet(2) Usrip = StrGet(3) strBack = checkUsr(UsrID, UsrPwd, Usrip, index) End Select If Me.winsock(index).State <> sckConnected Then Exit Sub End If Me.winsock(index).SendData strBack End Sub 检验图书类别信息管理的函数 BookTypePrivate Function BookType(ByRef StrGet() As String, index As Integer) As StringDim iType As IntegerDim TypeName As StringDim TypeNum As StringDim TypeNum1 As StringiType = StrGet(1) Select Case iType Case 1 TypeName = StrGet(2) BookType = checkType1(TypeName, index) Case 2 BookType = checkType2() Case 3 TypeNum = StrGet(2) BookType = checkType3(TypeNum, index) Case 4 BookType = checkType4() Case 5 TypeNum = StrGet(2) TypeNum1 = StrGet(3) BookType = checkType5(TypeNum, TypeNum1, index) End SelectEnd Function检验添加图书类别的函数 CheckType1Private Function CheckType1(ByVal TypeName As String, index As Integer) As StringCheckType1 = "Type,01,"For i = 1 To ClMax If Client(i).index = index Then DBstr = "select * from User_Info where Usr_ID='" DBstr = DBstr & Replace(Client(i).UsrID, "'", "''") & "'" rsCheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimistic If rsCheck.Fields("Usr_Type").Value = 2 Then CheckType1 = CheckType1 & "超出权限!添加类型失败!" Exit Function End If rsCheck.CloseExit ForEnd IfNext iDBstr = "select * from Book_Type where Type_Name='" & Replace(TypeName, "'", "''") & "'" rsCheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimisticIf rsCheck.RecordCount > 0 Then '已经存在 CheckType1 = CheckType1 & "该类型已存在!添加类型失败!" Exit FunctionEnd IfSqlStr = "INSERT INTO Book_Type"SqlStr = SqlStr & "(Type_Name) "SqlStr = SqlStr & "VALUES ('" & Replace(TypeName, "'", "''") & "');"DBCnn.Execute SqlStrCheckType1 = CheckType1 & "添加类型成功!"End Function检验读者借阅图书的函数 CheckLendPrivate Function checklend(ByVal RdrID As String, ByVal BkNum As Long, index As Integer) As Stringchecklend = "Lend,"For i = 1 To clientmax If Client(i).index = index Then DBstr = "select * from User_Info where Usr_ID='" DBstr = DBstr & Replace(Client(i).UsrID, "'", "''") & "'" rscheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimistic If rscheck.Fields("Usr_Type").Value = 2 Then checklend = checklend & "超出权限!借阅图书失败!" Exit Function End If Exit ForEnd IfNext iDBstr = "select * from Reader_Info where Rdr_ID='" & Replace(RdrID, "'", vbNullString) & "'"rscheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimisticIf rscheck.RecordCount <= 0 Then checklend = checklend & "该读者不存在!借阅图书失败!" Exit FunctionEnd IfIf rscheck.Fields("Rdr_to").Value < Now Then checklend = checklend & "该读者已过期!借阅图书失败!"Exit FunctionEnd IfDBstr1 = "select * from Book_Record where Rec_RdrID='" & Replace(RdrID, "'", vbNullString) & "'and Rec_ReturnTime is null and Rec_lendLimit < Now" rscheck1.Open DBstr1, DBCnn, adOpenStatic, adLockOptimistic ss = rscheck1.RecordCountIf rscheck1.RecordCount > 0 Then checklend = checklend & "你有" & ss & "本过期图书未还" & vbCrLf checklend = checklend & "借阅失败"Exit FunctionEnd IfIf rscheck.Fields("Rdr_Entitle").Value = False Thenchecklend = checklend & "该读者ID已不可用!借阅图书失败!"Exit FunctionEnd IfIf rscheck.Fields("Rdr_Arrearage").Value > 3 Thenchecklend = checklend & "该读者欠款已超过3元!借阅图书失败!"Exit FunctionEnd IfRdrType = rscheck.Fields("Rdr_Type").ValueRdrBkTotal = rscheck.Fields("Rdr_BkTotal").ValueSelect Case RdrType Case 1 BkTotal = 1 dLimit = 1 Case 2 BkTotal = 2 dLimit = 2 Case 3 BkTotal = 3 dLimit = 3 End SelectIf RdrBkTotal >= BkTotal Then checklend = checklend & "该读者借书已达最大!借阅图书失败!"Exit FunctionEnd If DBstr = "select * from Book_Info where Book_Num=" & BkNumbook.Open DBstr, DBCnn, adOpenStatic, adLockOptimisticIf book.RecordCount < 1 Thenchecklend = checklend & "您的输入有误!该图书不存在!" Exit FunctionEnd If book.MoveFirstIf book.Fields("Book_Available").Value = False Then checklend = checklend & "您的输入有误!该图书已借出!"Exit FunctionEnd IfdNow = Format(Now, "yy - mm - dd")DateLimit = DateAdd("m", dLimit, dNow)rscheck.Fields("Rdr_BkTotal").Value = scheck.Fields("Rdr_BkTotal").Value + 1book.Fields("Book_Total").Value = book.Fields("Book_Total").Value + 1book.Fields("Book_Available").Value = Falserscheck.Updatebook.Updatechecklend = checklend & "借阅图书成功!" & "归还期限是" & DateLimit & "," SqlStr = "INSERT INTO Book_Record" & (Rec_RdrID,Rec_BkNum,Rec_lendTime,Rec_lendLimit) " & _"VALUES ('" & RdrID & "'" & "," & BkNum & ",#" & dNow & "#" & ",#" & DateLimit & "#);"DBCnn.Execute SqlStrEnd Function检验读者归还图书的函数 CheckReturnPrivate Function checkReturn(ByVal BkNum As Long, index As Integer) As StringcheckReturn = "Return," For i = 1 To clientmax If Client(i).index = index Then DBstr = "select * from User_Info where Usr_ID='" DBstr = DBstr & Replace(Client(i).UsrID, "'", "''") & "'" rscheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimistic If rscheck.Fields("Usr_Type").Value = 2 Then checkReturn = checkReturn & "超出权限!归还图书失败!"Exit FunctionEnd IfExit ForEnd IfNext i DBstr = "select * from Book_Record where Rec_BkNum= " & BkNum & " and Rec_ReturnTime Is Null"rscheck.Op

    注意事项

    本文(893.图书信息管理系统论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开