网上图书馆的设计与实现-计算机网络课程设计.docx_第1页
网上图书馆的设计与实现-计算机网络课程设计.docx_第2页
网上图书馆的设计与实现-计算机网络课程设计.docx_第3页
网上图书馆的设计与实现-计算机网络课程设计.docx_第4页
网上图书馆的设计与实现-计算机网络课程设计.docx_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机与信息学院计算机网络系统实践报告设计题目:网上图书馆的设计与实现学生姓名:王默涵学 号:20103044专业班级:物联网工程10-01第一章 系统分析一.设计要求1. 通过以下过程:需求分析、E-R模型、关系模型分析,在数据库中构建数据库、表或视图,熟悉数据库开发流程;2. 根据图书馆系统功能,条理清晰地设计前台各脚本页面;3. 在时间允许的情况下,适当考虑页面的美观;4. 熟悉脚本页面与数据库的多种连接方法。二.开发环境与工具 Visual studio .net 2010 SQL server 2008三.系统功能概述本系统由三个子系统组成:1. 书目查询管理2. 权限维护管理3. 用户信息管理其具体功能需求分析如下:1. 书目查询管理:根据一定的条件对图书进行查询,并可以查看图书的详细信息,查询范围可以按照出版社,书名,作者等查询项目进行任意条件的组合查找。2. 权限维护管理:系统管理员可以在此模块中,添加图书,对已有的图书信息进行删除和添加用户。3. 用户信息管理:用户登陆该系统后可以进行图书的借阅和归还操作,还可以进行修改密码,查阅借书信息等操作。四、系统功能描述及软件模块划分 根据系统的功能,可以设计出系统的功能模块,整个系统的功能结构如图1-1所示。1-1 图书管理系统的功能结构图 书目一般查询书目高级查询查询信息添加用户查阅信息新书上架图书归还登记图书借阅登记修改密码历史借阅信息用户信息权限维护系统首页 图1 系统模块图.在查询信息模块,用户根据一定的条件对图书进行查询,并可以查看图书的详细信息。还可以进行高级查询,查询范围可以按照出版社,书名,作者等查询项目进行任意条件的组合查找。.在权限维护模块,系统管理员可以在此模块中,对已有的图书信息进行修改,删除,也可以新增图书信息,新加用户。.用户信息管理:用户登陆该系统后可以进行图书的借阅和归还操作,还可以进行修改密码,查阅借书信息等操作。五、设计需求1.数据库的需求分析 系统采用SQL server2000作为应用程序的数据库。考虑到系统的实际需要,系统至少需要四张数据库表,具体描述如下: 图书信息数据表(BookInfo):用于存放图书馆所有已录入的书目信息,这是本系统最为关键的数据部分,包括图书号、图书名、出版社、作者、丛书名、书号、索取号、出版时间、价格、图书条码。 用户信息表(Users):用于存放用户信息,包括用户ID、用户名、密码、E-mail、电话、地址。 借阅信息表(LendInfo):ID、图书号、用户ID、借出时间、应还时间、是否已归还。 管理员信息表(Manage):管理员ID、密码。第二章 系统设计一流程图:修改密码成功借阅成功借阅成功,显示借阅信息成功归还在要归还的图书前打钩后点击归还按钮显示用户所有在借图书输入用户ID和图书号后点击借阅按钮查看历史借阅信息查阅借阅信息查阅信息输入原密码和新密码后,确认修改修改密码图书借阅登记图书归还登记历史借阅信息用户登陆所有空清空,重新填写新书信息所有空清空,重新填写新添用户信息删除图书所有信息无误确认添加此用户所有信息无误确认添加新书新书上架添加用户管理员登陆权限维护高级查询显示结果显示结果普通查询系统首页二数据库设计:系统采用SQL server2008作为应用程序的数据库。考虑到系统的实际需要,系统至少需要四张数据库表,具体描述如下: 图书信息数据表(BookInfo):用于存放图书馆所有已录入的书目信息,这是本系统最为关键的数据部分,包括图书号、图书名、出版社、作者、丛书名、书号、索取号、出版时间、价格、图书条码。 用户信息表(Users):用于存放用户信息,包括用户ID、用户名、密码、E-mail、电话、地址。 借阅信息表(LendInfo):ID、图书号、用户ID、借出时间、应还时间、是否已归还。 管理员信息表(Manage):管理员ID、密码。 2.数据库结构设计 在SQLserver2000中使用企业管理器,新建数据库,并新建表,如图所示:表1 图书信息数据表图书号BookIDInt4不为空图书名BookNamevarchar100不为空出版社PubNamevarchar100不为空作者BookAuthorvarchar50不为空丛书名Seriesvarchar50不为空书号ISBNvarchar50不为空索取号SearchNOvarchar50不为空出版时间PunDatesmalldatetime4不为空价格Pricefloat8不为空图书条码BarCodevarchar50不为空表2 用户信息表包括用户IDUseridint4不为空用户名usernamechar10不为空密码passchar10不为空E-mailemailchar10不为空电话phonechar10不为空地址addressvarchar50不为空表3 借阅信息表IDLendIDint4不为空图书号BookIDint4不为空用户IDUserIDvarchar20不为空借出时间LendDatesmalldatetime4不为空应还时间ReturnDatesmalldatetime4不为空是否已归还IsBackint4不为空表4 管理员信息表管理员IDmanageidint4不为空密码Passchar10不为空连接数据库和文件配置数据库调用字符串主要有数据源Datasourse,如果是本地连接就设置为loaclhost,也可以把自己的电脑设置为服务器,用户ID赋值为系统默认的sa,连接密码PWD赋值为sa,数据库的名字为library. 具体配置如下: !- 自定义错误信息 设置 customErrors mode=On 或 RemoteOnly 以启用自定义错误信息,或设置为 Off 以禁用自定义错误信息。 为每个要处理的错误添加 标记。 On 始终显示自定义(友好的)信息。 Off 始终显示详细的 ASP.NET 错误信息。 RemoteOnly 只对不在本地 Web 服务器上运行的 用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 不向远程客户端显示应用程序的详细信息。 - !- - 第三章 系统的实现经过调试及测试,系统能够很好的完成预期功能,用户登陆该系统后可以进行图书的根据一定的条件对图书进行查询,并可以查看图书的详细信息,查询范围可以按照出版社,书名,作者等查询项目进行任意条件的组合查找;对图书进行借阅和归还操作,还可以进行修改密码,查阅借书信息等操作。一、系统首页:图2 系统首页任何用户不需要登陆就可以在此页进行图书信息的查询(分为精确查询和模糊查询)。查询结果:图3 一般查询结果还可以进行高级查询,即为书号、书名、作者名、出版社的任意组合查询图4 高级查询页面查询结果如下:图5 高级查询结果无论是一般查询还是高级查询,在查询结果的表中点击书号就可以看到图书的详细信息,如下图:图6 图书信息查看二、在主页上点击权限维护,即可进入管理员登陆界面:图7 管理员登陆页面输入正确的用户名和密码后,即可进入权限维护页面,显示所有图书,可进行新书上架和添加用户:图8 权限维护页面点击添加用户,即可进入添加用户页面,可以为系统添加新用户图9 添加用户页面点击新书上架,即可进入添加图书页面,可以为书库添加新书图10 添加图书页面添加了新书信息后,点击添加,即可完成新书入库,带*为必填内容。点击重置,则把已填信息清空,重新输入。三、在主页上点击用户信息,弹出读者登陆框:图11 用户登陆页面登陆成功后即可进入读者对自己的信息进行管理和维护的界面,表中显示当前登陆用户的信息,在此页面可以进入查阅信息、历史借阅信息、修改密码、图书借在用户信息页面点击历史借阅信息即可进入历史借阅信息页面,在此页面中可以看到用户从建立此用户以来的所有借阅历史:图12 借阅历史查看页面在用户信息页面点击修改密码,即可进入修改密码页面,在此页面用户可以对自己的登陆密码进行修改:图13 修改密码页面在用户信息页面点击图书借阅登记,即可进入图书借阅页面,在此页面输入用户ID和图书条码,点击确定借阅,若图书存在并可借阅,则会显示此用户对此书的借阅信息,否则弹出提示信息。图14 图书借阅页面在用户信息页面点击图书归还登记,即可进入图书归还页面,在此页面可显示用户ID和此用户所有在借书目,用户可以在各书前面的选择框中选择本书,最后在点击还书,则会归还所有打钩的书:图15 图书归还页面第四章 结论一软件使用说明一、系统首页:图16 系统首页任何用户不需要登陆就可以在此页进行图书信息的查询(分为精确查询和模糊查询)。查询结果:图17 一般查询结果还可以进行高级查询,即为书号、书名、作者名、出版社的任意组合查询图18 高级查询页面查询结果如下:图19 高级查询结果无论是一般查询还是高级查询,在查询结果的表中点击书号就可以看到图书的详细信息,如下图:图20 图书信息查看二、在主页上点击权限维护,即可进入管理员登陆界面:图21 管理员登陆页面输入正确的用户名和密码后,即可进入权限维护页面,显示所有图书,可对现有图书直接进行删除,可进行新书上架和添加用户:图22 权限维护页面点击添加用户,即可进入添加用户页面,可以为系统添加新用户图23 添加用户页面点击新书上架,即可进入添加图书页面,可以为书库添加新书图24 添加图书页面添加了新书信息后,点击添加,即可完成新书入库,带*为必填内容。点击重置,则把已填信息清空,重新输入。三、在主页上点击用户信息,弹出读者登陆框:图25 用户登陆页面二设计体会在这半个月的时间里从盲目到有了目标,从感觉时间很多到忙得不可开交,经历了很多转折点。第一天选择题目,开始觉得所有的题目觉得都挺简单的,但是后来仔细研究了每个题目觉得每个题目都有他深刻的含义,和难点。后来通过查阅相关书籍明白了不少学习我们专业需要学习的东西真多啊,并且是实时更新的。学习用visual studio .NET 编程感觉很复杂,尤其是在前期配置的时候总也弄不通,但是后来上网问也找到答案了,弄懂了许多东西。也对我们平时所忽略的基于web编程有了一定的认识。第五章 代码SearchN.aspx.vb: Public Sub Open() myConn.Open() End Sub Public Sub Close() myConn.Close() End Sub Public Sub Fill(ByVal sqlstr As String) myAdapter = New SqlDataAdapter(sqlstr, myConn) ds = New DataSet myAdapter.Fill(ds) End Sub Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 在此处放置初始化页的用户代码 connectingstring = System.Configuration.ConfigurationSettings.AppSettings(ConnectionString).ToString.Trim myConn = New SqlConnection(connectingstring) If Not IsPostBack Then If Not Session(UserID) Is Nothing Then If AllowBooking(Session(UserID) = True Then End If End If End If End Sub private bind Public Function GetRowsNum(ByVal sqlstr As String) As Integer If myConn.State = ConnectionState.Closed Then myConn.Open() End If Fill(sqlstr) Close() Return ds.Tables(0).Rows.Count End Function Public Function AllowBooking(ByVal UserID As String) As Boolean Dim sqlstr As String = select * from Users,RoleInfo where Users.userid=RoleInfo.RoleID and UserID= + UserID + If GetRowsNum(sqlstr) = 0 Then Return False Else Return True End If End Function Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid) If myConn.State = ConnectionState.Closed Then myConn.Open() End If Fill(sqlstr) myDBGrd.DataSource = ds.Tables(0).DefaultView myDBGrd.DataBind() End Sub Public Sub BindDBGrd(ByVal sqlstr As String, ByVal myDBGrd As DataGrid, ByVal SortExp As Object) If myConn.State = ConnectionState.Closed Then myConn.Open() End If Fill(sqlstr) Dim dv As DataView = ds.Tables(0).DefaultView dv.Sort = SortExp myDBGrd.DataSource = dv myDBGrd.DataBind() End Sub Private Sub BindGrid() If Not Session(sqlstr) Is Nothing Then Dim sqlstr As String = CType(Session(sqlstr), String) BindDBGrd(sqlstr, ResultGrid) Session(sqlstr) = sqlstr End If End Sub Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click Dim sign As String = If AnyChoice.Checked = True Then sign = % End If Dim sqlstr As String = select * from BookInfo where 1=1 sqlstr += and + dropdownlist1.SelectedValue + like + sign + txtContent.Text.ToString.Trim + sign + Session(sqlstr) = sqlstr BindGrid() End Sub Private Sub ResultGrid_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles ResultGrid.PageIndexChanged ResultGrid.CurrentPageIndex = e.NewPageIndex BindGrid() End Sub Private Sub ResultGrid_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles ResultGrid.SortCommand Dim sqlstr As String If viewstate(sortexp) Is Nothing Then viewstate(sortexp) = e.SortExpression.ToString ElseIf viewstate(sortexp) = e.SortExpression.ToString Then viewstate(sortexp) += desc Else viewstate(sortexp) = e.SortExpression.ToString End If If Not Session(sqlstr) Is Nothing Then sqlstr = CType(Session(sqlstr), String) BindDBGrd(sqlstr, ResultGrid, Viewstate(sortexp) End If End Sub Public Sub ExecNonSql(ByVal sqlstr As String) If myConn.State = ConnectionState.Closed Then myConn.Open() End If myCmd = New SqlCommand(sqlstr, myConn) myCmd.ExecuteNonQuery() myCmd.Dispose() Close() End Sub Private Sub ResultGrid_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResultGrid.SelectedIndexChanged End SubEnd ClassAddbook.aspx.vb:Imports System.Data.SqlClientPublic Class addbook1 Inherits System.Web.UI.Page Private connectingstring As String Private myConn As SqlConnection Private ds As DataSet Private myAdapter As SqlDataAdapter Protected WithEvents TextBox11 As System.Web.UI.WebControls.TextBox Private myCmd As SqlCommand#Region Web 窗体设计器生成的代码 该调用是 Web 窗体设计器所必需的。 Private Sub InitializeComponent() End Sub Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents Label2 As System.Web.UI.WebControls.Label Protected WithEvents Label3 As System.Web.UI.WebControls.Label Protected WithEvents Label4 As System.Web.UI.WebControls.Label Protected WithEvents Label5 As System.Web.UI.WebControls.Label Protected WithEvents Label6 As System.Web.UI.WebControls.Label Protected WithEvents Label7 As System.Web.UI.WebControls.Label Protected WithEvents Label8 As System.Web.UI.WebControls.Label Protected WithEvents Label9 As System.Web.UI.WebControls.Label Protected WithEvents Label10 As System.Web.UI.WebControls.Label Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents Button2 As System.Web.UI.WebControls.Button Protected WithEvents Button3 As System.Web.UI.WebControls.Button Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox3 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox4 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox5 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox6 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox7 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox8 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox9 As System.Web.UI.WebControls.TextBox Protected WithEvents TextBox10 As System.Web.UI.WebControls.TextBox Protected WithEvents Label11 As System.Web.UI.WebControls.Label Protected WithEvents Label12 As System.Web.UI.WebControls.Label Protected WithEvents Label13 As System.Web.UI.WebControls.Label Protected WithEvents Label14 As System.Web.UI.WebControls.Label 注意: 以下占位符声明是 Web 窗体设计器所必需的。 不要删除或移动它。 Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init CODEGEN: 此方法调用是 Web 窗体设计器所必需的 不要使用代码编辑器修改它。 InitializeComponent() End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 在此处放置初始化页的用户代码 connectingstring = System.Configuration.ConfigurationSettings.AppSettings(ConnectionString).ToString.Trim myConn = New SqlConnection(connectingstring) End Sub Public Sub ExecNonSql(ByVal sqlstr As String) If myConn.State = ConnectionState.Closed Then myConn.Open() End If myCmd = New SqlCommand(sqlstr, myConn) myCmd.ExecuteNonQuery() myCmd.Dispose() myConn.Close() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Response.Redirect(delete.aspx) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = TextBox2.Text = TextBox3.Text = TextBox4.Text = TextBox5.Text = TextBox6.Text = TextBox7.Text = TextBox8.Text = TextBox9.Text = TextBox10.Text = End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sqlstr As String = insert into BookInfo(BookID,BookName,PubName,BookAuthor,Series,ISBN,SearchNO,PubDate,Price,BarCode) values ( & TextBox1.Text & , & TextBox2.Text & , & TextBox3.Text & , & TextBox4.Text & , & TextBox5.Text & , & TextBox6.Text & , & TextBox7.Text & , & TextBox8.Text & , & TextBox9.Text & , & TextBox10.Text & ) Dim sqlstr = INSERT INTO 运货商$(公司名称,电话)VALUES ( & Me.TextBox1.Text & , & Me.TextBox2.Text & ) If TextBox1.Text = Or TextBox2.Text = Or TextBox6.Text = Or TextBox10.Text = Then Response.Write(javascript:alert(请将打*的位置填满!);) Else Dim sqlstr As String = insert into BookInfo(BookID,BookName,PubName,BookAuthor,Series,ISBN,SearchNO,PubDate,Price,BarCode,BookState) values ( sqlstr += + TextBox1.Text.ToString.Trim + sqlstr += , + TextBox2.Text.ToString.Trim + sqlstr += , + TextBox3.Text.ToString.Trim + sqlstr += , + TextBox4.Text.ToString.Trim + sqlstr += , + TextBox5.Text.ToString.Trim + sqlstr += , + TextBox6.Text.ToString.Trim + sqlstr += , + TextBox7.Text.ToString.Trim + sqlstr += , + TextBox8.Text.ToString.Trim + sqlstr += , + TextBox9.Text.ToString.Trim + sqlstr += , + TextBox10.Text.ToString.Trim + sqlstr += , + TextBox11.Text.ToString.Trim + sqlstr += ) ExecNonSql(sqlstr) TextBox1.Text = TextBox2.Text = TextBox3.Text = TextBox4.Text = TextBox5.Text = TextBox6.Text = TextBox7.Text = TextBox8.Text = TextBox9.Text = TextBox10.Text = End If End SubEnd Classadduser.aspx.vb:Imports System.Data.SqlClientPublic Class adduser Inherits System.Web.UI.Page Private connectingstring As String Private myConn As SqlConnection Private ds As DataSet Private myAdapter As SqlDataAdapter Protected WithEvents Label11 As System.Web.UI.WebCon

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论