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

    VB+Access设计图书管理系统67153.doc

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

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

    VB+Access设计图书管理系统67153.doc

    如有侵权,请联系网站删除,仅供学习与交流VB+Access设计图书管理系统67153【精品文档】第 23 页VB+Access设计图书管理系统一、需求分析在进行一个项目的设计之前,先要进行必要的需求分析。现某图书馆需要管理其各种人员和图书信息,希望实现办公的信息化,通过建立一个图书管理系统来管理图书。其完成的功能如下:(1) 可以实现图书的登记、借阅和赔偿的管理。(2) 可以实现对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和编辑操作。另外,可以根据输入的信息来检索某个图书的信息。(3) 可以实现对管理人员的投诉管理。(4) 可以实现对值班人员的管理。系统的功能模块图如图1所示。本实例根据上面的设计规划出的实体有图书登记实体、图书借阅实体、图书赔偿实体、查询输出实体、值班管理实体、投诉管理实体。各个实体具体的描述E-R图如下。图书登记实体E-R图如图2所示。图书借阅实体E-R图如图3所示。图1 系统的功能模块图图2 图书登记实体E-R图图3 图书借阅实体E-R图图书赔偿实体E-R图如图4所示。图4 图书赔偿实体E-R图投诉管理实体E-R图如图5所示。图5 投诉管理实体E-R图值班管理实体E-R图如图6所示。图6 值班管理实体E-R图查询输出实体E-R图如图7所示。图7 查询输出实体E-R图二、结构设计根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。 图书管理模块:用来实现图书的登记、借阅、赔偿。 图书资料模块:用来实现图书的查询输出。 值班管理模块:用来实现管理人员的值班浏览。 投诉管理模块:用来实现对管理人员的投诉管理。 系统管理模块:用来实现用户的增加、删除和修改等操作。三、数据库设计这里的数据库采用Access,用ADO作为连接数据对象。1、建立Access 数据库启动Access,建立一个空的数据库book.mdb,如图8所示。使用程序设计器建立系统需要的表格如下。图书登记表,如图9所示。图8 建立数据库book.mdb 图9 图书登记表图书借阅表,如图10所示。图书赔偿表,如图11所示。图10 图书借阅表 图11 图书赔偿表图书资料表,如图12所示。系统管理表,如图13所示。图12 图书资料表 图13 系统管理表投诉管理表,如图14所示。图14 投诉管理表值班管理表,如图15所示。图15 值班管理表2、连接数据在Visual Basic环境下,选择“工程”“引用”命令,在随后出现的对话框中选择“Microsoft ActiveX Data Objects 2.0 Library”,然后单击“确定”按钮,如图16所示。图16 引用ADO连接数据库在程序设计的公共模块中,先定义ADO连接对象。语句如下:Public conn As New ADODB.Connection ' 标记连接对象然后在子程序中,用如下的语句即可打开数据库:Dim connectionstring As Stringconnectionstring = "provider=Microsoft.Jet.oledb.4.0;" &_"data source=book.mdb"conn.Open connectionstring3、设置ODBCVB的ADO对象是通过ODBC来访问数据库,所以还要建立ODBC数据引擎接口。打开控制面板中的“管理工具”“数据源”(ODBC),出现如图17所示的对话框。图17 ODBC对话框单击“添加”按钮,出现“创建新数据源”对话框,如图18所示。图18 “创建新数据源”对话框选择Microsoft Access Driver(*.mdb),单击“完成”按钮,出现如图19所示对话框。图19 设置连接数据源在“数据源名”文本框中添加一个名字,单击“确定”按钮完成系统默认连接设置。然后在ODBC对话框中单击“确定”按钮完成ODBC设置。 界面设计设计好的界面如图20所示。图20 图书管理系统界面这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。MDI 应用程序中常有包含子菜单的“窗体”选项,用于在窗体或文档之间进行切换。菜单应用程序中,有5个菜单选项,每个选项对应着E-R图的一个子项目。1、创建主窗体首先创建一个工程,命名为图书管理系统,选择“工程”“添加MDI窗体”命令,则在项目中添加了主窗体。该窗体的一些属性如表1所示。表1 主窗体的属性属 性值Caption图书管理系统NameMainMenuMainmenu1WindowstateMaxsizeWindowstate的值为Maxsize,即程序启动之后自动最大化。将“菜单”组件从“工具箱”拖到窗体上。创建一个 Text 属性设置为“文件”的顶级菜单项,且带有名为“关闭”的子菜单项。类似地创建一些菜单项,如表2所示。表2 菜 单 项 表菜 单 名 称Text属性功 能 描 述MenuItem1图书管理顶级菜单,包含子菜单MenuItem2图书登记调出图书登记窗体MenuItem3图书借阅调出图书借阅窗体MenuItem4图书赔偿调出图书赔偿窗体MenuItem5图书资料顶级菜单,包含子菜单MenuItem6查询输出调出查询输出窗体MenuItem7值班管理顶级菜单,没有子菜单MenuItem8投诉管理顶级菜单,没有子菜单MenuItem9系统管理顶级菜单,包含子菜单MenuItem10增加用户调出用户窗体MenuItem11修改密码调出密码窗体MenuItem12退出系统退出主窗体如图21所示。图21 主窗体2、创建各子窗体选择“工程”“添加窗体”命令,添加子窗体。在新建Visual Basic工程时自带的窗体中,将其属性MIDChild改成True,则这个窗体成为MID窗体的子窗体。在这个项目中,要创建的子窗体如表3所示。表3 所有子窗体子 窗 体 名Text图书登记frmdengji图书借阅frmjieyue图书赔偿frmpeichang增加新用户frmadduser查询输出frmfind登录系统frmlogin修改密码frmchangepwd下面分别给出这些子窗体,以及它们所使用的控件。(1) 图书登记子窗体如图22所示,其控件如表4所示。图22 图书登记子窗体表4 图书登记子窗体控件控 件 类 别控件Name控件TextLabelLabel1编号Label2书名Label3类型Label4购买日期Label5定价TextBoxText1(空)Text2(空)Text3(空)Text4(空)Text5(空)CommandButtonCommand1增加记录Command2删除记录Command3下一条Command4上一条Command5第一条Command6最后一条Command7退出ADO DataAdodc1(空)DataGridDataGrid1(空)图书借阅和图书赔偿子窗体分别如图23和图24所示,因为它们的控件与图书登记子窗体的雷同,在此不作介绍。图23 图书借阅子窗体图24 图书赔偿子窗体(2) 增加用户子窗体如图25所示,其控件如表5所示。图25 增加用户子窗体表5 增加用户子窗体控件控 件 类 别控件Name控件TextLabelLabel1输入用户名Label2输入密码Label3确认密码Label4选择权限TextBoxText1(空)Text2(空)Text3(空)ComboBoxComb1(空)CommandButtonCommandl确定Command2取消(3) 修改密码子窗体如图26所示。图26 修改密码子窗体(4) 库房管理子窗体如图27所示。图27 库房管理子窗体其控件如表6所示。表6 库房管理子窗体控件控 件 类 别控件Name控件TextTextBoxText1(空)ComboBoxCombo1 MSFlexGridMSFlexGrid1 (5) 查询子窗体如图28所示,其控件如表7所示。图28 查询子窗体表7 查询子窗体控件控 件 类 别控件Name控件TextOptionButtonOption1按编号查询 Option2按购买日期查询LabelLabel1从Label2到Label3从Label4年Label5月Label6日Label7到Label8年Label9月Label10日Combo(0) ComboBoxCombo1(空)Combo(1) ComboBoxCombo1(空)Comboy(0) ComboBoxComboy(空)Comboy(1) ComboBoxComboy(空)Combom(0) ComboBoxCombom(空)Combom(1) ComboBoxCombom(空)Combod(0) ComboBoxCombod(空)Combod(1) ComboBoxCombod(空)CommandButtonCommand1查询Command2取消(6) 用户登录子窗体如图29所示。(7) 值班管理子窗体如图30所示,其控件如表8所示。图29 用户登录子窗体 图30 值班管理子窗体(8) 投诉管理子窗体如图31所示,其控件如表9所示。图31 投诉管理子窗体建立公共模块1、显示目录建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。创建公共模块的步骤如下:(1) 在菜单中选择“工程”“添加模块”命令,则出现模块对话框,如图32所示。(2) 选择模块图标后,单击“打开”按钮,则模块已经添加到项目中了。默认情况下名为Module1。图32 模块对话框(3) 在模块中定义整个项目的公共变量。Public conn As New ADODB.Connection ' 标记连接对象Public userID As String ' 标记当前用户IDPublic userpow As String ' 标记用户权限Public find As Boolean ' 标记查询Public sqlfind As String ' 查询语句Public rs_data1 As New ADODB.RecordsetPublic findok As BooleanPublic frmdata As BooleanPublic Const keyenter = 13 ' enter键的ASCII码在主窗体添加完菜单之后,就要为各个子菜单创建事件处理程序。主窗体代码在本项目中,子菜单事件都是Click事件,这里先给出主窗体部分的代码。下面是响应“增加用户”子菜单Click事件,调出增加用户窗体代码。Private Sub adduser_Click()frmadduser.ShowEnd Sub下面是响应“查询输出”子菜单Click事件,调出查询输出窗体代码。Private Sub chaxunshuchu_Click()frmfind.ShowEnd Sub下面是响应“退出”子菜单Click事件,调出退出窗体代码。Private Sub exit_Click()Unload MeEnd Sub下面是响应“图书登记”子菜单Click事件,调出图书登记窗体代码。Private Sub checkin_Click()frmdengji.ShowEnd Sub下面是响应“修改密码”子菜单Click事件,调出修改密码窗体代码。Private Sub changepwd_Click()frmchangepwd.ShowEnd Sub下面是响应“图书借阅”子菜单Click事件,调出图书借阅窗体代码。Private Sub borrow_Click()frmjieyue.ShowEnd Sub下面是响应“图书赔偿”子菜单Click事件,调出图书赔偿窗体代码。Private Sub tushupeichang_Click()frmpeichang.Show 1End Sub下面是响应“值班管理”菜单Click事件,调出值班管理窗体代码。Private Sub zhibanguanli_Click()frmzhiban.Show 1End Sub下面是响应“投诉管理”子菜单Click事件,调出投诉管理窗体代码。Private Sub tousuguanli_Click()frmtousu.Show 1End Sub2、各子窗体的代码在各个子窗体建立好后,就可以根据各个子窗体的功能给它们添加相应代码了。(1) 图书登记子窗体代码本窗体用来填写图书登记的信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序的界面下,如图33所示。图33 图书登记子窗体按钮控件要求先填写基本信息,然后与数据库信息比较。Private Sub Command1_Click()On Error GoTo adderrText1.SetFocusAdodc1.Recordset.AddNewExit Subadderr:MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click()On Error GoTo deleteerrWith Adodc1.RecordsetIf Not .EOF And Not .BOF ThenIf MsgBox("删除当前记录吗?", vbYesNo + vbQuestion) = vbYes Then.Delete.MoveNextIf .EOF Then .MoveLastEnd IfEnd IfEnd WithExit Subdeleteerr:MsgBox Err.DescriptionEnd SubPrivate Sub Command3_Click()Adodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF ThenMsgBox "这是最后一条记录", vbOKCancel + vbQuestionAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command4_Click()Adodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF ThenMsgBox "这是第一条记录", vbOKCancel + vbQuestionAdodc1.Recordset.MoveFirstEnd IfEnd SubPrivate Sub Command5_Click()If Adodc1.Recordset.EOF ThenMsgBox "记录空", vbOKCancel + vbQuestionEndElseAdodc1.Recordset.MoveFirstExit SubEnd SubPrivate Sub Command6_Click()If Adodc1.Recordset.RecordCount = 0 ThenMsgBox "空记录", vbOKCancel + vbQuestionEndElseAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command7_Click()MDIForm1.Showfrmdengji.HideEnd Sub图书借阅和图书赔偿子窗体运行后如图34和图35所示,因为它们的代码和图书登记子窗体的代码雷同,在此不做重复。图34 图书借阅子窗体运行效果图35 图书赔偿子窗体运行效果(2) 增加用户子窗体代码增加用户子窗体是用来增加用户的用户名、密码和权限的。其运行效果如图36所示。单击“确定”按钮后,还要返回一个信息框,提示成功信息,如图37所示。图36 增加用户子窗体运行效果 图37 成功信息框窗体部分代码的思路是,收集输入的表中的字符串,然后与数据库中的系统的用户数据比较,如果不存在,则允许添加。Private Sub Command1_Click()Dim sql As StringDim rs_add As New ADODB.RecordsetIf Trim(Text1.Text) = "" ThenMsgBox "用户名不能为空", vbOKOnly + vbExclamation, ""Exit SubText1.SetFocusElsesql = "select * from 系统管理"rs_add.Open sql, conn, adOpenKeyset, adLockPessimisticWhile (rs_add.EOF = False)If Trim(rs_add.Fields(0) = Trim(Text1.Text) ThenMsgBox "已有这个用户", vbOKOnly + vbExclamation, ""Text1.SetFocusText1.Text = ""Text2.Text = ""Text3.Text = ""Combo1.Text = ""Exit SubElsers_add.MoveNextEnd IfWendIf Trim(Text2.Text) <> Trim(Text3.Text) ThenMsgBox "两次密码不一致", vbOKOnly + vbExclamation, ""Text2.SetFocusText2.Text = ""Text3.Text = ""Exit SubElseIf Trim(Combo1.Text) <> "system" And Trim(Combo1.Text) <> "guest" ThenMsgBox "请选择正确的用户权限", vbOKOnly + vbExclamation, ""Combo1.SetFocusCombo1.Text = ""Exit SubElsers_add.AddNewrs_add.Fields(0) = Text1.Textrs_add.Fields(1) = Text2.Textrs_add.Fields(2) = Combo1.Textrs_add.Updaters_add.Close下面是返回成功信息对话框的代码:MsgBox "添加用户成功", vbOKOnly + vbExclamation, ""Unload MeEnd IfEnd IfEnd Sub(3) 修改密码子窗体代码修改密码子窗体是用来修改用户密码的。其运行效果如图38所示。图38 修改密码子窗体运行效果在“确定”按钮的Click事件中添加如下代码:Private Sub Command1_Click()Dim rs_chang As New ADODB.RecordsetDim sql As StringIf Trim(Text1.Text) <> Trim(Text2.Text) ThenMsgBox "密码不一致!", vbOKOnly + vbExclamation, ""Text1.SetFocusText1.Text = ""Text2.Text = ""Elsesql = "select * from 系统管理 where 用户名='" & userID & "'"rs_chang.Open sql, conn, adOpenKeyset, adLockPessimisticrs_chang.Fields(1) = Text1.Textrs_chang.Updaters_chang.CloseMsgBox "密码修改成功", vbOKOnly + vbExclamation, ""Unload MeEnd IfEnd Sub在上述代码中,首先比较两个表中的数据是否一致,然后用rs_chang.Fields(1) = Text1.Text语句把代码输入到数据库中。最后,用MsgBox "密码修改成功", vbOKOnly + vbExclamation,""语句弹出一个信息框,告诉修改成功,如图39所示。显示目录(4) 库房管理子窗体代码库房管理子窗体是用来管理图书资料的。其运行效果如图40所示。图40 库房管理子窗体实际上,设计库房管理子窗体的程序代码与增加用户子窗体的代码在思路上是完全相同的。就是在DataGrid的文本框中显示图书进出的清单,最后把填写的明细存储到数据库中。检查代码如下:Option ExplicitDim rs_data2 As New ADODB.RecordsetDim select_row As StringDim showgrid2 As BooleanDim rs_custom As New ADODB.RecordsetDim jinchu As String ' 进出库标志Dim modify As Boolean ' 修改状态标志Private Sub cmdexit_Click()Unload MeEnd SubPrivate Sub Form_Load()On Error GoTo loaderrorDim sql As Stringsql = "select * from 图书资料"rs_custom.CursorLocation = adUseClientrs_custom.Open sql, conn, adOpenKeyset, adLockPessimisticWhile Not rs_custom.EOFCombo1.AddItem rs_custom.Fields(0)rs_custom.MoveNextWendfindok = Truemodify = False ' 非修改状态showgrid2 = Falsedisplaygrid1 ' 调用显示Datagrid1子程序loaderror:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd Sub'显示msflexgrid1子程序Public Sub displaygrid1()Dim i As IntegerOn Error GoTo displayerrorsetgridsetgridheadMSFlexGrid1.Row = 0If Not rs_data1.EOF Thenrs_data1.MoveFirstDo While Not rs_data1.EOFMSFlexGrid1.Row = MSFlexGrid1.Row + 1MSFlexGrid1.Col = 0If Not IsNull(rs_data1.Fields(0) Then MSFlexGrid1.Text = rs_data1.Fields(0) ElseMSFlexGrid1.Text = ""MSFlexGrid1.Col = 1If Not IsNull(rs_data1.Fields(1) Then MSFlexGrid1.Text = rs_data1.Fields(1) ElseMSFlexGrid1.Text = ""MSFlexGrid1.Col = 2If Not IsNull(rs_data1.Fields(2) Then MSFlexGrid1.Text = rs_data1.Fields(2) ElseMSFlexGrid1.Text = ""MSFlexGrid1.Col = 3If Not IsNull(rs_data1.Fields(3) Then MSFlexGrid1.Text = rs_data1.Fields(3) ElseMSFlexGrid1.Text = ""MSFlexGrid1.Col = 4If Not IsNull(rs_data1.Fields(4) Then MSFlexGrid1.Text = rs_data1.Fields(4) ElseMSFlexGrid1.Text = ""MSFlexGrid1.Col = 5If Not IsNull(rs_data1.Fields(5) Then MSFlexGrid1.Text = rs_data1.Fields(5) ElseMSFlexGrid1.Text = ""rs_data1.MoveNextLoopEnd Ifdisplayerror:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPublic Sub setgrid()Dim i As IntegerOn Error GoTo seterrorWith MSFlexGrid1.ScrollBars = flexScrollBarBoth.FixedCols = 0.Rows = rs_data1.RecordCount + 1.Cols = 6.SelectionMode = flexSelectionByRowFor i = 0 To .Rows - 1.RowHeight(i) = 315NextFor i = 0 To .Cols - 1.ColWidth(i) = 1300Next iEnd WithExit Subseterror:MsgBox Err.DescriptionEnd SubPublic Sub setgridhead()On Error GoTo setheaderrorMSFlexGrid1.Row = 0MSFlexGrid1.Col = 0MSFlexGrid1.Text = "编号"MSFlexGrid1.Col = 1MSFlexGrid1.Text = "购买日期"MSFlexGrid1.Col = 2MSFlexGrid1.Text = "书名"MSFlexGrid1.Col = 3MSFlexGrid1.Text = "类型"MSFlexGrid1.Col = 4MSFlexGrid1.Text = "定价"MSFlexGrid1.Col = 5MSFlexGrid1.Text = "备注"Exit Subsetheaderror:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)findok = Falsers_data1.Closers_custom.CloseEnd SubPrivate Sub MSFlexGrid1_Click()On Error GoTo griderrorDim getrow As Longgetrow = MSFlexGrid1.RowIf MSFlexGrid1.Rows = 1 ThenMsgBox "无相关记录", vbOKOnly + vbExclamation, ""Elseselect_row = MSFlexGrid1.TextMatrix(getrow, 0)End Ifgriderror:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPublic Sub showdata()With MSFlexGrid2.Rows = rs_data2.RecordCount + 1.Row = 0If Not rs_data2.EOF Thenrs_data2.MoveFirstDo While Not rs_data2.EOF.Row = .Row + 1.Col = 0If Not IsNull(rs_data2.Fields(0) Then .Text = rs_data2.Fields(0) Else .Text = "".Col = 1If Not IsNull(rs_data2.Fields(1) Then .Text = rs_data2.Fields(1) Else .Text = "".Col = 2If Not IsNull(rs_data2.Fields(2) Then .Text = rs_data2.Fields(2) Else .Text = "".Col = 3If Not IsNull(rs_data2.Fields(3) Then .Text = rs_data2.Fields(3) Else .Text = "".Col = 4If Not IsNull(rs_data2.Fields(4) And CDbl(rs_data2.Fields(4) < 0 Then.Text = -CDbl(rs_data2.Fields(4)Else.Text = rs_data2.Fields(4)End If.Col = 5If Not IsNull(rs_data2.Fields(5) Then .Text = rs_data2.Fields(5) Else .Text = "".Col = 6If Not IsNull(rs_data2.Fields(6) Then .Text = rs_data2.Fields(6) Else .Text = "".Col = 7If Not IsNull(rs_data2.Fields(7) And CDbl(rs_data2.Fields(4) < 0 Then.Text = -CDbl(rs_data2.Fields(7)Else.Text = rs_data2.Fields(7)End If.Col = 8If Not IsNull(rs_data2.Fields(8) Then .Text = rs_data2.Fields(8) Else .Text = ""rs_data2.MoveNextLooprs_data2.MoveLastEnd IfEnd WithEnd Sub(5) 查询子窗体代码查询子窗体是用来查询库房中图书资料明细的。其运行效果如图41所示。图41 查询子窗体运行效果在列表框中给出编号或年月日后,“查询”按钮的Click事件将给出与数据库查找比较的结果。Private Sub Command1_Click()On Error GoTo cmderrorDim find_date1 As StringDim find_date2 As StringIf Option1.Value = True Thensqlfind = "select * from 图书资料 where 编号 betwee

    注意事项

    本文(VB+Access设计图书管理系统67153.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开