图书管理系统
毕业设计报告包括一下几个部分的内容:
1.毕业设计目的
2.毕业设计要求
3.图书管理系统功能分析
4.数据库逻辑结构设计
5.参考模块和参考程序
(一)毕业设计目的
通过毕业设计使本学期学习的知识掌握的更加的牢固,并且能熟练的应用自己学习过的 VISUAL BASIC 6.0 和SQL SERVER 2000数据库管理与开发的知识进行实际当中的项目的开发,进一步的掌握可视化数据库编程的基本思想和方法。在实践当中更加的灵活的运用所学知识。锻炼自己的分析问题,解决问题的能力,为将来自己能够开发大型的软件奠定基础。毕业设计的主要目的在于总结自己在校期间的学习成果,培养自己综合地、创造性地运用所学知识和技能解决实际问题的能力,并使自己得到科研工作各个环节的实际锻炼,具有从事科研工作或设计工作的初步能力。
(二)毕业设计要求
1:上机前做好充分准备,包括程序模块图,程序界面方式,源程序清单,调试步骤,测试方法,运行结果的分析等。
2:毕业设计具体要求如下:
(1) 设计说明:用来说明程序模块功能、结构、主要包括程序名、功能、原理计算说明,主要用于符号说明。
(2) 调试说明:便于学生总结经验,提高编程及调试能力,包括调试情况,如对数据库操作时遇到的问题及解决方法,对程序设计技巧的总结及分析等。对运行结果的分析、毕业设计心得体会等。
(3) 使用说明:程序提供给用户时必须做出的说明,使用方法、操作步骤等。
(三)图书管理系统功能分析
为了提高对图书信息的管理,设计合理有效的图书管理系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少不必要的时间和人力等方面的工作量。系统开发的总体任务是使图书信息当中的各个表更加的规范,更加的系统,更加的条理清楚。本次毕业设计所要求达到的功能分析具体如下:
图书管理系统需要实现的主要的功能有:
1.图书馆图书采购信息的输入,包括图书的基本的信息,如书名;书号;出
版社;库存量;图书的所属类别;图书的采购人;供货商和图书采购日期。
2.图书馆图书信息的查询,包括图书的如下的信息,某一中图书的剩余数量;
某一作者的图书是否存在,或者是某一出版社的图书数量,并且能实现采购人;供货商和采购日期的查询。
3.图书馆图书信息的修改。
4.借书的基本信息的输入,如借书的学生的借书证号,书号,借书日期,所
属类别等基本信息。
5.借书的基本信息的查询,如按借书日期查询,借书证号查询,借书的书号
查询等。
6.借书的基本信息的修改。
7.还书的基本信息的输入,如还书的书号,借书证号,还书日期,并且根据
图书的借书和还书的日期计算出借书的时间天数,对于查处借书时间的学生进行罚款,在还书时,根据图书的损坏的程度,对损坏图书的同学进行罚款。
8.还书基本信息的查询,如按还书的还书时间,书号,借书证号等。
9.还书信息的修改。
10.学生的基本信息的输入,如学生的学号,姓名,性别,所属的班级和借书
证号,并且在学生信息表中,学生的学号和学生的借书证号必须是唯一的,不能存在重复的学生学号,或者两个学生的借书证号是相同的。
11.学生基本信息的查询,如按学号,姓名,性别,和班级进行查询。
12.学生基本信息的修改。
13.用户的添加,查询,修改,并且设置具有系统管理员权限的用户。
(四)数据库的逻辑结构设计
用户表:
采购表:
借书表:
还书表:
(1)存储过程
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易多存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。
可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点:
可以在单个存储过程中执行一系列 SQL 语句。
可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。存储过程的功能取决于数据库所提供的功能。有关存储过程可完成工作的更多详细信息,请参见存储过程。
创建存储过程
使用 Transact-SQL 语句 CREATE PROCEDURE 创建存储过程。创建存储过程前,请考虑下列事项:
?不能将 CREATE PROCEDURE 语句与其它 SQL 语句组合到单个批处理中。
?创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予
其他用户。
?存储过程是数据库对象,其名称必须遵守标识符规则。
?只能在当前数据库中创建存储过程。
创建存储过程时,应指定:
?所有输入参数和向调用过程或批处理返回的输出参数。
?执行数据库操作(包括调用其它过程)的编程语句。
?返回至调用过程或批处理以表明成功或失败(以及失败原因)的状态值。
执行存储过程
当需要执行存储过程时,请使用 Transact-SQL EXECUTE 语句。如果存储过程是批处理中的第一条语句,那么不使用 EXECUTE 关键字也可以执行该存储过程。如果存储过程编写为可以接受参数值,那么可以提供参数值。
如果在存储过程中定义了参数的默认值,那么下列情况下将使用默认值:
?执行存储过程时未指定该参数的值。
?将 DEFAULT 关键字指定为该参数的值。
若要执行与其它同名存储过程处于同一分组中的存储过程,请指定此存储过程在组内的标识号。例如,要执行my_proc组中的第二个存储过程,请执行:
EXECUTE my_proc;2
如图书查询的存储过程:
use 图书管理系统
if exists(select name from sysobjects where name='BookInquire' and type='p')
drop procedure BookInquire
go
create procedure BookInquire @BookName as
varchar(20),@BookNum as varchar(20),@Author as
varchar(20),@Sort as varchar(20)
as
if exists(select name from sysobjects where name='查询_1'and type='U')
drop table 查询_1
select * into 查询_1 from 库存表 where @BookName in (书名,'') and @BookNum in(书号,'')and @Author in(作者,'')and @Sort in(所属类别,'')
go
(2)Visual Basic 程序设计
在图书管理系统的 Visual Basic 实现中定义几个函数,用来实现经常用到的数据库操作,例如数据库的访问,数据的修改函数,数据的备份和数据的还原。在程序设计的代码如下:
如数据库连接函数:
Public Function ConnectionString() As String
ConnectionString = "PROVIDER=MSDASQL;driver={SQL
Server};server=(local);uid=;pwd=;database=图书管理系统;"
End Function
数据库数据的修改函数:
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectionString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & "query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条记录"
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description