图书管理系统设计

1 需求分析    1
1.1 概述    1
1.2 功能结构简介    1
1.3 运行环境    1
1.4 数据流图    1
2 概念设计    2
2.1数据字典    2
2.2 E-R图    2
2.3 转换规则及关系模式    3
2.3.1 转换规则    3
2.3.2关系模式    3
3 逻辑设计    4
3.1 表信息    4
3.2 表之间的关系    5
4 程序的功能模块    6
4.1书库管理    6
4.1.1添加图书    6
4.1.2 修改图书    6
4.1.3 删除图书    7
4.2 书库查询模块    8
4.3 借书模块    10
4.4 还书模块    11
5 运行结果    13
6 心得体会    15
参考文献    15

 
1 需求分析
1.1 概述
图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。人工记录的方法既效率低且容易出现错误,大大影响了图书馆的正常管路工作。因此,需要通过计算机辅助对书籍资源、读者信息、借还书信息进行管理,以便了解各个环节中信息的变更,这就是图书管理信息系统的主要任务。
1.2 功能结构简介
图书管理信息系统的主要功能包括:书库管理、书库查询、图书类别查询、读者正常借书管理、读者续借管理和读者还书管理
1.    书库管理:它提供添加、修改和删除图书等操作的功能。
2.    书库查询:它提供书库查询操作的功能。
3.    图书类别查询:它提供添加、修改和删除等操作的功能。
4.    读者正常借书管理:通过该功能把读者和其借阅书籍的信息保存起来。
5.    读者续借管理:通过该功能修改读者的借书日期。
6.    读者还书管理:通过该功能可以记录读者还书的情况,并显示读者所借书是否过期及罚款。
1.3 运行环境
本系统采用Visual Basic 6.0作为系统前台应用程序开发工具,Access作为
后台数据库,通过Visual Basic6.0中的DBGrid1、Data控件及ADO控件等前台和后台进行数据连接从而进行系统软件开发。
1.4 数据流图
 数据流图用于表达数据和处理过程之间的关系。数据流图中,矩形表示数据的源点或者终点,圆表示数据的处理过程,平行线表示需要存储的数据,箭头的线段表示流动的数据,如图1.1所示。

   
 


2 概念设计
2.1数据字典
数据字典如表1.1所示。
表2.1  数据字典
数据名    数据类型    数据的描述
读者编号    数据项    {编号,文本, 15}
读者姓名    数据项    {姓名,文本, 20}
读者性别    数据项    {性别,文本, 2 }
办证日期    数据项    {出生日期,日期/时间}
联系电话    数据项    {电话,文本,11}
工作单位    数据项    {工作单位,文本,50}
住址    数据项    {家庭住址,文本,50}
读者    数据结构    {读者,{读者编号,读者姓名,读者性别,办证日期,联系电话,工作单位,住址}}
借书日期    数据项    {工作单位,日期/时间}
超出天数    数据项    {超出天数,整型}
罚款金额    数据项    {罚款金额,单精度型}
借还    数据结构    {借还,{借书日期,还书日期,超出天数,罚款金额}}
书号    数据项    {书号,文本, 10}
书名    数据项    {书名,文本, 50}
出版社    数据项    {出版社,文本, 20}
作者    数据项    {作者,文本, 20}
价格    数据项    {价格,单精度型 }
页码    数据项    {页码,文本,10 }
登记日期    数据项    {登记日期,日期/时间}
是否借出    数据项    {是否借出,是/否 }
图书    数据结构    {图书,{书号、书名、出版社、作者、价格、页码、登记日期、是否借出}}
类别代码    数据项    {类别代码,文本,5}
书籍类别    数据项    {书籍类别,文本,20}
可借天数    数据项    {可借天数,整型}
书库    数据结构    {书库,{类别代码,书籍类别,可借天数}}
2.2 E-R图
根据以上的需求分析,E-R图如图2.1所示。
 
2.3 转换规则及关系模式
2.3.1 转换规则
1、若实体间的联系是1:1的,可以在两个实体类型转换成的两个关系
模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2、若实体之间的联系是1:N的,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
3、若实体之间的联系是M:N的,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
2.3.2关系模式
读者(读者编号,读者姓名,读者性别,办证日期,联系电话,工作单位,住址)
借还(书籍编号,借书日期,还书日期,超出天数,罚款金额)
图书(书籍编号、书名、出版社、作者、价格、页码、登记日期、是否借出)
书库(类别代码,书籍类别,可借天数)
3 逻辑设计
3.1 表信息 
1 基本设置表:包括:借出册数和罚款,如图3.1所示。
 
图3.1基本设置表
2 图书表:包括:书籍名称、类别代码、出版社、作者姓名、书籍价格、书籍价格、登记日期和是否借出,如图3.2所示。
 
图3.2 图书表
3 书类表:包括:类别代码、书籍类别、借出天数,如图3.3所示。
 
图3.3  书类表
4 借书信息表:包括:读者编号、书籍编号、借书日期、超出天数和罚款金额,如图3.4所示。
 
图3.4  借书信息表
5 读者信息表:包括:读者编号、读者姓名、读者性别、办证日期、联系电话、工作单位及家庭地址,,如图3.5所示。
 
图3.5  读者信息表
3.2 表之间的关系
根据所创建的5份额表中,除基本设置表外,其余4个表的关系如图3.6所示。
 
图3.6  关系图

4 程序的功能模块
4.1书库管理
4.1.1添加图书
1 代码:
Set g_rs = g_db.OpenRecordset("SELECT * FROM bookInfo", dbOpenDynaset)
'添加记录
  g_rs.AddNew    '设置记录的字段值
  g_rs!书籍编号 = txtBookID.Text
  g_rs!书籍名称 = txtBookName.Text
  g_rs!类别代码 = Mid(cboType.Text, 1, 1)
  g_rs!出版社 = txtBookConcern.Text
  g_rs!作者姓名 = txtWriter.Text
  g_rs!书籍价格 = txtBookPrice.Text
  g_rs!书籍页码 = txtPage.Text
  g_rs!登记日期 = dtpRigDate.Value
  g_rs!是否借出 = False
  g_rs.Update
  Set g_rs = Nothing
  MsgBox "新书添加完毕", vbOKOnly, "提示"
2 界面,如图4.1所示。
 
图4.1 界面1
4.1.2 修改图书
1.代码:
g_strSql = "select * from bookInfo where 书籍编号='" & txtBookID.Text & "'"
    Set g_rs = g_db.OpenRecordset(g_strSql)
    g_rs.Edit      '设置记录的字段值
    g_rs!书籍名称 = txtBookName.Text
    g_rs!类别代码 = Mid(cboType.Text, 1, 1)
    g_rs!出版社 = txtBookConcern.Text
    g_rs!作者姓名 = txtWriter.Text
    g_rs!书籍价格 = txtPrice.Text
    g_rs!书籍页码 = txtPage.Text
    g_rs!登记日期 = dtpRigDate.Value
    g_rs!是否借出 = False     ' 保存修改!!!
    g_rs.Update
    Set g_rs = Nothing
    MsgBox "保存修改完毕!", vbOKOnly, "提示"
    FrmBookManage.Adodc1.Refresh
Unload Me
  2.界面,如图4.2所示。
 
图4.2  界面2
4.1.3 删除图书
Dim strBookID As String
Dim intResponse As Integer
DataGrid1.Col = 0
strBookID = DataGrid1.Text
intResponse = MsgBox("是否真的要删除编号为" + strBookID + "的书籍信息?", vbOKCancel, "提示")
If intResponse = vbOK Then
        g_strSql = "select * from bookInfo where 书籍编号='" & strBookID & "'"
        Set g_rs = g_db.OpenRecordset(g_strSql)
        g_rs.Delete
        Set g_rs = Nothing
        Adodc1.Refresh
        Call Form_Load
        MsgBox "删除完毕!", vbOKOnly, "提示"
End If
4.2 书库查询模块
1.代码
Dim strSQL As String
Dim strCon(6) As String
Dim intCount As Integer
Dim i As Integer
intCount = 0    
If txtBookID.Text <> "" Then      '获得所有得查询条件
    If chkMoHu.Value = 1 Then
        strCon(1) = "书籍编号 like '%" & txtBookID.Text & "%'"
    Else
        strCon(1) = "书籍编号='" & txtBookID.Text & "'"
    End If
Else
    strCon(1) = ""
End If
If txtBookName.Text <> "" Then
    If chkMoHu.Value = 1 Then
        strCon(2) = "书籍名称 like '%" & txtBookName.Text & "%'"
    Else
        strCon(2) = "书籍名称='" & txtBookName.Text & "'"
    End If
Else
    strCon(2) = ""
End If
If cboType.Text <> "" Then
    If chkMoHu.Value = 1 Then
        strCon(3) = "类别代码 like '%" & Mid(cboType.Text, 1, 1) & "%'"
    Else
        strCon(3) = "类别代码='" & Mid(cboType.Text, 1, 1) & "'"
    End If
Else
    strCon(3) = ""
End If
If txtBookConcern.Text <> "" Then
    If chkMoHu.Value = 1 Then
        strCon(4) = "出版社 like '%" & txtBookConcern.Text & "%'"
    Else
        strCon(4) = "出版社='" & txtBookConcern.Text & "'"
    End If
Else
    strCon(4) = ""
End If
If txtBookPrice.Text <> "" Then
    If chkMoHu.Value = 1 Then
       strCon(5) = "书籍价格 like %" & CInt(txtBookPrice.Text) & "%"
    Else
       strCon(5) = "书籍价格=" & CInt(txtBookPrice.Text) & ""
    End If
Else
    strCon(5) = ""
End If
If chkRigDate.Value = 1 Then
    If chkMoHu.Value = 1 Then
        strCon(6) = "登记日期 like #" & dtpRigDate.Value & "#"
    Else
        strCon(6) = "登记日期=#" & dtpRigDate.Value & "#"
    End If
Else
    strCon(6) = ""
End If
If strCon(1) = "" And strCon(2) = "" And strCon(3) = "" And strCon(4) = "" And strCon(5) = "" And strCon(6) = "" Then
    strSQL = "select * from bookInfo"
Else
   strSQL = "select * from bookInfo where "
    For i = 1 To 6
       If strCon(i) <> "" Then
          intCount = intCount + 1
            If intCount = 1 Then
                strSQL = strSQL + strCon(i)
            Else
                strSQL = strSQL + " and " + strCon(i)
            End If
       End If
   Next
End If
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\图书馆查询管理系统.mdb;Persist Security Info=False"
Adodc1.CursorLocation = adUseClient
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strSQL
Adodc1.Refresh
2.界面,如图4.3所示。
 
图4.3  界面3
4.3 借书模块
1 代码:
If KeyAscii = "13" And txtReaderID.Text <> "" And txtBookID.Text <> "" Then
    g_strSql = "select bookInfo.书籍名称,bookInfo.书籍价格,bookInfo.出版社,bookInfo.书籍页码," _  & "bookInfo.是否借出,bookType.书籍类别 from bookInfo,bookType where 书籍编号='" & txtBookID.Text & "'" _
                & " and bookInfo.类别代码=bookType.类别代码"
Set g_rs = g_db.OpenRecordset(g_strSql)
    If Not g_rs.EOF Then
        txtBookName.Text = g_rs!书籍名称
        txtBookPrice.Text = g_rs!书籍价格
        txtBookLeibie.Text = g_rs!书籍类别
        txtBookConcern.Text = g_rs!出版社
        txtBookPage.Text = g_rs!书籍页码
        If g_rs!是否借出 = True Then
            MsgBox "该书已经借出,请选择其它图书!", vbOKOnly, "提示"
            cmdLendBook.Enabled = False
        Else
            cmdLendBook.Enabled = True
        End If
    Else
        MsgBox "没有该书信息!", vbOKOnly, "提示"
        txtBookName.Text = ""
        txtBookPrice.Text = ""
        txtBookLeibie.Text = ""
        txtBookConcern.Text = ""
        txtBookPage.Text = ""
    End If
     Set g_rs = Nothing
ElseIf KeyAscii = "13" And txtReaderID.Text = "" Then
   MsgBox "请先输入读者编号", vbOKOnly, "提示"
ElseIf KeyAscii = "13" And txtReaderID.Text <> "" And txtBookID.Text = "" Then
   MsgBox "请先输入书籍编号", vbOKOnly, "提示"
End If
2.界面,如图4.4所示。
 
图4.4  界面4
4.4 还书模块
1 代码:
Dim strSQL As String
'判断用户按下回车键并且是否输入读者编号和书籍编号
 If KeyAscii = "13" And txtBookIDReturn.Text <> "" Then
    strSQL = "select lentInfo.读者编号,readerInfo.读者姓名,lentInfo.书籍编号,bookInfo.书籍价格," _& " bookInfo.书籍名称,bookInfo.书籍页码,lentInfo.借书日期,bookType.书籍类别,bookType.借出天数" _& " from readerInfo,bookInfo,lentInfo,bookType where readerInfo.读者编号=lentInfo.读者编号" _ & " and bookInfo.书籍编号=lentInfo.书籍编号 and bookInfo.书籍编号='" & txtBookIDReturn.Text & "'" _ & " and bookInfo.类别代码=bookType.类别代码"
g_strSql = strSQL
   Set g_rs = g_db.OpenRecordset(g_strSql)
    If Not g_rs.EOF Then
        cmdLendBook.Enabled = True
        txtBookNameReturn.Text = g_rs!书籍名称
        txtBookPriceReturn.Text = g_rs!书籍价格
        txtBookLeibieReturn.Text = g_rs!书籍类别
        txtBookPageReturn.Text = g_rs!书籍页码
        txtReadIDReturn.Text = g_rs!读者编号
        txtReaderNameReturn.Text = g_rs!读者姓名
        txtLendDateReturn.Text = g_rs!借书日期
        txtDay.Text = g_rs!借出天数
        txtReturnDate.Text = Date
        txtFactDay.Text = CStr(Date - g_rs!借书日期)
        If CInt(txtFactDay.Text) - CInt(txtDay.Text) > 0 Then
            txtDayCount.Text = CStr(CInt(txtFactDay.Text) - CInt(txtReturnDate.Text))
        Else
            txtDayCount.Text = "0"
        End If
        Set g_rs = Nothing
        g_strSql = strSQL
        Set g_rs = g_db.OpenRecordset("select * from basicSet")
        txtFakuan.Text = g_rs!罚款 * CInt(txtDayCount.Text)
        Set g_rs = Nothing
        cmdReturn.Enabled = True
    Else
        Set g_rs = Nothing
        MsgBox "没有该书信息!", vbOKOnly, "提示"
        txtBookNameReturn.Text = ""
        txtBookPriceReturn.Text = ""
        txtBookLeibieReturn.Text = ""
        txtBookPageReturn.Text = ""
        txtReadIDReturn.Text = ""
        txtReaderNameReturn.Text = ""
        txtLendDateReturn.Text = ""
        txtDay.Text = ""
        txtReturnDate.Text = ""
        txtFactDay.Text = ""
        txtDayCount.Text = ""
        cmdReturn.Enabled = False
    End If
ElseIf KeyAscii = "13" And txtBookIDReturn.Text = "" Then
   MsgBox "请先输入书籍编号", vbOKOnly, "提示"
End If
 

  一、序言····················································································································· 4 二、需求分析说明书···································································································· 4 2.1系统介绍................................................................................................................................................. 4 2.2系统面向的用户群体............................................................................................................................. 4 2.3系统的功能性需求................................................................................................................................. 4 2.4系统的非功能性需求............................................................................................................................. 5 2.4.1用户界面需求.................................................................................................................................. 5 2.4.2软硬件环境需求.............................................................................................................................. 5 2.4.3软件质量需求.................................................................................................................................. 5 三、可行性分析报告···································································································· 5 3.1技术可行性............................................................................................................................................. 5 3.2人员可能性............................................................................................................................................. 5 3.3时间、设备可能性................................................................................................................................. 5 3.4系统工作量............................................................................................................................................. 5 3.5代码工作量............................................................................................................................................. 5 3.6文档要求................................................................................................................................................. 5 四、开发环境与项目规划····························································································· 5 4.1开发环境................................................................................................................................................. 5 4.2项目规划与管理..................................................................................................................................... 5 4.2.1开发人员安排.................................................................................................................................. 5 4.2.2开发进度安排.................................................................................................................................. 6 五、软件界面设计标准与规范······················································································ 6 5.1编写目的................................................................................................................................................. 6 5.2界面设计思想......................................................................................................................................... 6 5.3界面设计原则......................................................................................................................................... 6 5.4界面设计样式......................................................................................................................................... 6 5.5常见提示信息样式................................................................................................................................. 6 5.6常见错误信息样式................................................................................................................................. 7 5.7其他界面约定......................................................................................................................................... 7 六、软件编码设计标准与规范······················································································ 7 6.1对象命名约定......................................................................................................................................... 7 6.2常量和变量命名约定............................................................................................................................. 8 6.3结构化编码约定..................................................................................................................................... 8 6.4数据源的约定......................................................................................................................................... 9 6.5数据库访问约定..................................................................................................................................... 9 6.6其他约定................................................................................................................................................. 9 七、数据库分析与设计································································································ 10 7.1数据库环境说明...................................................................................................................................... 10 7.2数据库命名标准与规范.......................................................................................................................... 10 7.3数据库逻辑设计...................................................................................................................................... 10 7.4数据库物理设计...................................................................................................................................... 10 7.4.1表、视图汇总.................................................................................................................................. 10 7.4.2各表、视图设计详解...................................................................................................................... 11 八、软件体系结构设计说明书······················································································ 15 8.1系统概述................................................................................................................................................. 15 8.2设计约束................................................................................................................................................. 15 8.3设计策略................................................................................................................................................. 15 8.4系统概要设计说明书............................................................................................................................. 16 8.4.1图例说明.......................................................................................................................................... 16 8.4.2系统总体结构图.............................................................................................................................. 16 8.4.3销售子系统流程图.......................................................................................................................... 17 8.4.4进货子系统流程图.......................................................................................................................... 17 8.4.5退货子系统流程图.......................................................................................................................... 17 8.5系统详细设计说明书............................................................................................................................. 17 8.5.1系统模块汇总.................................................................................................................................. 17 8.5.2系统核心模块详解.......................................................................................................................... 18 8.5.3系统模块详解.................................................................................................................................. 28 九、用户界面设计报告································································································ 42 9.1界面设计规范......................................................................................................................................... 42 9.2系统窗体汇总......................................................................................................................................... 42 9.3主界面设计............................................................................................................................................. 43 9.4子界面设计............................................................................................................................................. 43 9.5界面资源设计......................................................................................................................................... 44 十、软件测试分析报告································································································ 44 10.1测试范围与主要内容........................................................................................................................... 44 10.2测试方法............................................................................................................................................... 44 10.3测试报告............................................................................................................................................... 44 10.4改进建议与措施................................................................................................................................... 45 十一、软件使用说明书····························································&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用数据说话用数据决策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值