数据库课程设计学校图书馆管理系统的设计与实现.doc

上传人:laozhun 文档编号:2395639 上传时间:2023-02-17 格式:DOC 页数:16 大小:1.63MB
返回 下载 相关 举报
数据库课程设计学校图书馆管理系统的设计与实现.doc_第1页
第1页 / 共16页
数据库课程设计学校图书馆管理系统的设计与实现.doc_第2页
第2页 / 共16页
数据库课程设计学校图书馆管理系统的设计与实现.doc_第3页
第3页 / 共16页
数据库课程设计学校图书馆管理系统的设计与实现.doc_第4页
第4页 / 共16页
数据库课程设计学校图书馆管理系统的设计与实现.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《数据库课程设计学校图书馆管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《数据库课程设计学校图书馆管理系统的设计与实现.doc(16页珍藏版)》请在三一办公上搜索。

1、数据库课程设计 指导教师 专 业 班 级 学 号 姓 名 学校图书馆管理系统的设计与实现1 引言大学校园的的图书馆是大学生们汲取知识,自我培养的最佳之处,我们要努力为大学生创造良好的学习环境,珍惜大学生的时间,以最优,最快的方式为大学生提供服务。我们的目标就是要让每个大学生都能爱上我们的图书馆,自由自在的畅游在书的海洋中。人工手工操作不仅效率低,错误率高,工作人员还会因为繁杂的重复劳动而心情变坏,不仅更加降低了工作效率,而且对学生的态度会明显下降,严重影响整个图书馆的环境。所以我们有必要建立这个图书馆管理系统。这个图书馆管理系统功能并不复杂,操作比较简单,对象主要分为两类,一类是管理员,一类是

2、读者。管理员可以将读者的信息注册进入图书馆数据库中,对图书馆内的藏书也可以登记入库,实行统一管理。同时借书,读者自己在电脑中便可完成借书的手续,无须再经过图书管理员的操作,这样大大节省了管理员的工作量,而且工作的效率要比管理员集中操作快很多。对于这个系统,没有给读者修改自己个人信息的权利,统一由管理员登记入库,所以读者如果发现自己的数据库信息有误,无法自己进行修改,需要执有效证件去管理员那修改。同时,未保障读者的信息隐私,我们未提供给读者查询其他读者信息的功能,只有管理员可以查看,修改等。这个图书馆系统比较简单,界面一般,虽说还算比较友好,但是还不算吸引人。一些在程序编辑中存在的小错误还未得到

3、完全的修改,可能在某种未知的操作过程会出现程序的中断或是系统的崩溃。这次的系统开发由于时间比较仓促,实现的功能比较简单,还有许多错误,还需要以后继续修改,完善。选择开发工具为VB6.0+SQL Server2000。2 需求分析图书信息包括:图书序号、书名、类别、出版社、作者、状态。读者信息包括:读者证号、读者姓名、读者性别、联系方式、已借书数。实体之间的联系:读者借阅图书。图书中序号为主键,读者中读者证号为主键,借阅关系中读者证号,图书序号,借阅时间为主键。E-R图:作 者出 版 社类 别书 名图书序号状态图 书N读者证号借阅日期应还日期借 阅图书序号1读 者联系方式已借书数读者性别读者姓名

4、读者证号3、数据库逻辑设计表1:读者信息表结构字段名字段类型字段长度允许空置读者证号(主键)字符型10字节否姓名字符型10字节否性别字符型10字节否联系方式字符型10字节是已借书数数值型4字节是表2:图书信息表结构字段名字段类型字段长度允许空置图书序号(主键)数值型10字节否书名字符型10字节否类别字符型10字节是出版社字符型10字节是作者字符型10字节是状态逻辑型1字节否表3:借阅信息表结构字段名字段类型字段长度允许空置读者证号(主键)字符型10字节否图书序号(主键)字符型10字节否借阅时间(主键)日期型8字节否应还时间日期型8字节是表4:用户登入帐号表结构字段名字段类型字段长度允许空置用户

5、帐号(主键)字符型10字节否密码字符型10字节否类型逻辑型1字节否4、系统功能设计系统的主要功能包括:(1) 读者注册管理;(2) 图书入库管理;(3) 图书查询读者信息查询;(4) 图书借阅归还管理(5) 帮助 ;(6) 系统退出。系统登入(验证)管理员登入读者登入主窗体主窗体还书借书个人信息查询退出系统帮助图书信息查询图书信息管理读者信息管理删除修改添加5、程序设计信息查询信息查询最主要的是正确与数据库相链接,并使用正确的SQL语句实现,复杂情况下可能会出现多级查询,要十分注意。更新程序的设计多表操作是数据库中比较难的开发专题,它涉及到数据库中的关系操作的基本方法问题。例如本系统中要从建立

6、的三个基本数据表中,借书还书,就要涉及到这三个数据表,读者表,借阅表,图书表,为了解决这个问题,我采用了多SQL语句加以实现。数据库添加,删除数据在添加数据数据时要注意,数据库中字段的类型,长度,是否允许为空置,应对应输入,都则无法将数据添加进数据库中;在删除数据时,要注意表表之间的关系,比如要删除一本书,不仅要在图书表中删除,同时还要考虑,那本书在借阅表中数否有记录,删除时不应引起数据库的异常。6、结束语本学期对VB编程和数据库的实践微乎其微,原来的记忆,经验都淡忘了许多。刚拿到这个课程设计时,当时感觉和上学期我们做的数据库大实验差不多,所以想不能停留在原地了,应该要有所进步,在选择编程软件

7、和数据库软件时,踌躇了好一阵,在图书馆里也查找了很多资料,虽然最后自己感觉时间比较紧,来不及再重新学门新的编程环境或是换个数据库软件,最后还是选择了VB编程和SQL-Server2000来做这个课程设计,但是在图书馆中的踌躇经历也是一段知识积累的过程。再图书馆中,我看到了用C#编程环境来实现数据库链接的,看了VB+ASP等开发的。同时也考虑过使用GIS组件MO开发,但是还是因为只剩下这一周不到了的时间了,所以实在有些来不及,最终选择了自己比较熟悉的VB+SQL-Server。这次课程设计,我收获颇丰,首先是把原来淡忘的知识重新温故了一遍,很多知识直接做一点也想不起来了,但是只要稍微看下提示,或

8、是书中的范例,那些语法,方法大都都又跃然纸上,要是没有这个课程设计,说不定再过半年什么的,我们就把原来的知识都忘得干干净净的了。这次我做的是图书管理系统,由于时间原因,没有把系统设计得很详细,很周到,很复杂,但系统的主要功能我都实现了,界面自我感觉还算友好,只是没有太多的测试,其中还有些错误没有修正,对一些特殊操作可能会出现程序调试错误。由于时间实在不容许,没能一个一个仔细的修正。总之,这次课程设计使我们学会了在短期时间内的系统开发,我感觉这种开发首先应该全神贯注,抓紧时间,其次应该先对系统中的主要功能加以认真实现,对细枝末节尽量完善,避免由于这些小错误而出现的系统崩溃等现象。7、参考文献1.

9、SQL Server 2000 应用系统开发教程清华大学出版社 李春葆 主编 2005年版2.Visual Basic 管理信息系统完整项目实例剖析 人民邮电出版社 2005年版3.Visual Basic 程序设计标准教程 上海科学普及出版社 袁福庆 主编 2007年版4.数据库技术 安徽大学出版社 五国凤 主编 2004版8、附录管理员登入 图书信息管理系统:读者身份登入部分关键代码如下所附:登入窗体Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim str, Msgtext As String Private Su

10、b cmd_exit_Click()EndEnd Sub Private Sub cmd_login_Click()Static count1 As IntegerStatic intCount2 As IntegerSet cn = New ADODB.ConnectionIf cn.State = 1 Then cn.Closecn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbKCSJcn.Opencn.Cursor

11、Location = adUseClientSet rs = New ADODB.RecordsetSQL = select * from Administrators where ID = & Val(Trim(txt_id.Text) & If rs.State = 1 Then rs.Close Set rs = ExecuteSQL(SQL, Msgtext) If rs.EOF = True Then MsgBox 没有这个用户,请重新输入用户名! & vbCrLf & 你最多有三次机会!, vbOKOnly + vbExclamation, 警告 txt_id.SetFocus t

12、xt_id.SelStart = 0 txt_id.SelLength = Len(Trim(txt_id.Text) count1 = count1 + 1 If count1 3 Then count1 = 0 Me.Hide End If Else If Trim(rs.Fields(1) = Trim(txt_pass.Text) Then If rs.Fields(2) = True Then MsgBox 欢迎你以管理员身份登陆!, 64, 欢迎 frm_main.Menu_BoRe.Enabled = False frm_main.Toolbar_main.Buttons.Ite

13、m(3).Enabled = False frm_main.Menu_ReaderQu.Enabled = False frm_main.Toolbar_main.Buttons.Item(5).Enabled = False frm_main.Toolbar_main.Buttons.Item(6).Enabled = False frm_BookQuBo.CmdBorrow.Enabled = False Me.Hide frm_main.Show Else MsgBox 欢迎你以用户身份登陆!, 64, 欢迎 frm_main.Menu_InfOp.Enabled = False frm

14、_main.Toolbar_main.Buttons.Item(1).Enabled = False frm_main.Toolbar_main.Buttons.Item(2).Enabled = False Me.Hide frm_main.Show Dim strS As String s = Frm_login.txt_id.Text End If Else MsgBox 输入密码不正确,请重新输入! & vbCrLf & 你最多有三次机会!, vbOKOnly + vbExclamation, 警告 txt_pass.SetFocus txt_pass.SelStart = 0 txt

15、_pass.SelLength = Len(Trim(txt_pass.Text) count2 = count2 + 1 If count2 3 Then Me.Hide count2 = 0 End If End If End IfEnd Sub Private Sub Form_Unload(Cancel As Integer)EndEnd Sub图书信息管理Dim cn As ADODB.ConnectionDim rs As ADODB.RecordsetDim BookPublish As String, msgthis As StringDim CnBook As ADODB.C

16、onnectionDim RsBook As ADODB.Recordset Public Sub Delete(ByVal ParaBookNum) Set RsMe = New ADODB.Recordset SQLCheck = select * from book where BookID= & ParaBookNum & Set RsMe = ExecuteSQL(SQLCheck, msgthis) If RsMe.Fields(5) = -1 Then MsgBox 该书已经被借阅!不能删除!, vbOKOnly, 警告! Else CheckUpdate = MsgBox(确认

17、删除?, vbYesNo + vbQuestion, 确认删除) If CheckUpdate = vbYes Then SQLDelete = delete from BOOK where BookID= & ParaBookNum & Set RsMe = ExecuteSQL(SQLDelete, msgthis) Call fresh End If End IfEnd Sub Private Sub CmdDelete_Click() Call Delete(DataGrid1.Text) Call freshEnd Sub Private Sub CmdInsert_Click()

18、frm_BookAdd.Show Call freshEnd Sub Private Sub CmdUpdate_Click() frm_BookChange.ShowEnd Sub Private Sub Form_Load() Set CnBook = New ADODB.Connection Set RsBook = New ADODB.Recordset Call freshEnd Sub图书查找,借阅管理Option ExplicitDim BookName As StringDim Today, BackDay As DateDim SQLSearchBook As StringD

19、im SQLUpdate1, SQLUpdate2, SQLUpdate3 As StringDim rs As New ADODB.RecordsetDim cn As New ADODB.Connection Private Sub CmdBookSearch_Click() BookName = Trim(TxtBookSearchName.Text) If cn.State = 1 Then cn.Close cn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=

20、False;Initial Catalog=dbKCSJ cn.Open cn.CursorLocation = adUseClient SQLSearchBook = select * from Book where BookName= & BookName & If rs.State = adStateOpen Then rs.Close rs.Open SQLSearchBook, cn, adOpenDynamic, adLockReadOnly Set DataGrid1.DataSource = rsEnd Sub Private Sub CmdBorrow_Click() Dim

21、 Return_value As Integer DataGrid1.Col = 5 If DataGrid1.Text = 0 Then MsgBox 此书已借出, 16, 错误 Else DataGrid1.Col = 0 保证DataGrid1.Text中的值为所选行的第一列值,即为BOOK表中的主键BookNum值 Return_value = MsgBox(确定要借阅的书编号为 & DataGrid1.Text, 4, 借阅信息) Today = Format(Date, yyyy-mm-dd) BackDay = Format(Date + 30, yyyy-mm-dd) 借书时间

22、限定为30天 a = 10001 fromreader.text1(0).Text b = Val(DataGrid1.Text) 应该是能够借阅的书才可以被借阅,添加判断能否借阅代码 If Return_value = 6 Then SQLUpdate1 = UPDATE Book set BookVisible=0 where BookID= & DataGrid1.Text & SQLUpdate2 = insert into Borrow values( & Val(Frm_login.txt_id.Text) & , & Val(DataGrid1.Text) & , & Today

23、 & , & BackDay & ) SQLUpdate3 = update reader set readerbooknumber=readerbooknumber+1 where ReaderID= & Val(Frm_login.txt_id.Text) & If rs.State = adStateOpen Then rs.Close rs.Open SQLUpdate1, cn, adOpenDynamic, adLockReadOnly rs.Open SQLUpdate2, cn, adOpenDynamic, adLockReadOnly rs.Open SQLUpdate3,

24、 cn, adOpenDynamic, adLockReadOnly Call CmdBookSearch_Click MsgBox 借阅成功 End If If Return_value = 7 Then Exit Sub End If End IfEnd Sub Private Sub Form_Load() DataGrid1.TabAction = dbgGridNavigation 该语句实现使用Tab键以在DataGrid表中一格一格跳跃End Sub还书管理Option ExplicitDim cn As New ADODB.ConnectionDim rs As New ADO

25、DB.RecordsetDim SQLUpdate1 As String, SQLUpdate2 As String, SQLUpdate3 As StringPrivate Sub CmdQuit_Click()Me.Hidefrm_main.Visible = TrueEnd SubPrivate Sub CmdReturn_Click()Dim ReturnValue As IntegerDim temp As DateDim Today As DateDim temp1 As DateToday = Format(Date, yyyy-mm-dd)DataGrid1.Col = 1te

26、mp1 = Format(DataGrid1.Text, yyyy-mm-dd)temp = temp1 + 30 DataGrid1.Col = 0 保证DataGrid1.Text中的值为所选行的第一列值,即为BORROW表中的主键BookNum值 ReturnValue = MsgBox(确定要还的书编号为 & DataGrid1.Text & ?, 4, 借阅信息) If ReturnValue = 6 Then If Today temp Then 借书超期处理 MsgBox 借书超期!, 16, 错误 Else SQLUpdate1 = UPDATE BOOK set BookVi

27、sible=1 where BookID= & DataGrid1.Text & SQLUpdate2 = delete from Borrow where ReaderID= & Val(frm_ReaderQu.Text1(0).Text) & and BookID= & DataGrid1.Text & SQLUpdate3 = update reader set readerbooknumber=readerbooknumber-1 where ReaderID= & Val(frm_ReaderQu.Text1(0).Text) & If rs.State = adStateOpen

28、 Then rs.Close rs.Open SQLUpdate1, cn, adOpenDynamic, adLockReadOnly rs.Open SQLUpdate2, cn, adOpenDynamic, adLockReadOnly rs.Open SQLUpdate3, cn, adOpenDynamic, adLockReadOnly Call Form_Load MsgBox 还书成功 End If End If If ReturnValue = 7 Then Exit Sub End IfEnd SubPrivate Sub Form_Load() Set cn = New

29、 ADODB.Connection cn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbKCSJ cn.Open cn.CursorLocation = adUseClient Set rs.ActiveConnection = cn rs.Open select bookID,borrowdate from BORROW where ReaderID= & Val(frm_ReaderQu.Text1(0).Text) & Set DataGrid1.DataSource = rsEnd Sub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号