您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页2010SQL图书馆管理系统设计

2010SQL图书馆管理系统设计

来源:华佗健康网


课程设计报告

科 目: 数据库技术原理课程设计 设计题目: 图书系统管理 专 业: 汽车电子工程 姓 名: 学号: 指导老师:

2010年6月24日

一、课程设计目的与任务

数据库技术是电子信息类专业基础课,数据库技术应用能力是信息类专业学生必须具备的计算机应用能力之一,数据库技术是信息技术应用的基本手段和方法。本课程也是实践性很强的课程。因此,本课程的目的就是使学生在学完《数据库技术原理》这门课程后,为充分理解和掌握这门技术而设计的。

学生通过设计一个实际可行的、完整的数据库系统,学会并掌握数据库技术应用的基本技能,巩固已学的知识,补充未学的但又必要的内容。课程设计是在《数据库与管理信息系统》课程理论教学之后的实践教学,其目的在于加深对数据库原理、管理信息系统基础理论和基本知识的理解,进一步掌握利用结构化方法对管理信息系统进行分析与设计的基本原则、方法和步骤,培养学生解决实际问题、开发管理信息系统的实践能力。同时课程设计充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养。通过课程设计使学生认识管理信息系统开发的基本过程,能够运用系统分析和设计方法进行管理信息系统的开发。

二、设计准备

1、项目背景

现在,科学技术的飞速发展把人类社会推向了一个崭新的时代——信息时代。这已是无可争议的事实;信息对社会经济发展的巨大推动作用,使其与物质能源一起并列为现代社会的三大支柱,这已在全社会达到共识。图书管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以图书管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。图书管理系统的建立更进一步的方便了师生对图书的借阅。

2、系统功能

本系统是为图书馆管理系统,其功能是由图书馆图书管理的日常事物确定,力求提高师生图书借阅工作的效率,压缩图书节约信息流通的时间和成本,检索迅速、查找方便、可靠性强、存储量大、保密性好、寿命长。方便图书统计,借阅与报表的生成,为我校师生借阅图书提供了便捷的服务,系统主要完成如下功能:

(1) 图书基本信息管理登记,提供图书的基本信息输入 (2) 登记学生借阅情况 (3) 统计分析图书馆借阅情况

3、设计对象

本系统主要设计对象(实体):读者、书

与书相关的信息:编号、书名、作者、出版社、出版日期、丛书类别 图书的借阅是系统的核心行为,涉及(借期、还期)就是借阅时间 经过分析,可以得到以下关系模式 读者(姓名、性别、年龄、读者编号)

书(图书编号、归还编号、借阅编号、图书编号)

借阅(读者编号、图书编号、借出时间、还书时间、超期天数) 因为:读者(读者号、姓名、性别、年龄)

函数依赖集=(读者号—姓名,读者号—性别,读者号—年龄) 关系中的码是读者号。

三、设计过程

1、设计E—R模型图

局部E-R图:

姓名 性别 年龄 编号 学生 作者 类别 出版日期 书号 书籍 书名

借书日期 学号 借书期限 借阅经过分析,系统E—R模型图如下:

性别 姓名 年龄 编号 学生 超期 借书日期 借阅 借书期限 书籍

书号 出版日期 书名 类别 是否有库存

2、生成关系模型

将E——R模型图转换关系模型如下: 学生(编号,姓名,性别,年龄)。对应实体型“学生”。 书籍(书号,书名,出版日期,类别,是否有库存)。对应实体型“书籍”。 借阅(学号,书号,超期,借书期限,借书日期)。对应联系“借阅”。 3、系统功能设计

图书管理系统 用户界面 书籍界面 借阅界面 添加 更改 功能 查询

4、功能实现

a.实现学生基本信息的查询,删除,修改,添加

b.实现书籍基本信息的删除,修改,添加,以及由书名查询借阅者。由借阅者查询书 c.实现图书借阅表的查询,删除,修改,添加

三、设计过程

1、数据库的创建与链接

a. 利用SQL Server2000数据查询分析器建立数据库应用结构 Create database TuShuGuanLi On primary

(name=图书管理数据库文件,

Filename=’d:\\dd\\TuShuGuanLi.mdf’, Size=5,

Maxsize=30, fileGrowth=2)

log on

(name=图书管理日志文件, Filename=’d:\\dd\\TuShuGuanLi.ldf’, Size=5,

Maxsize=30,

fileGrowth=2)

在查询分析器里面输入SQL语句,创建表。 创建“用户信息”数据表 SQL脚本如下:CREATE TABLE [dbo].[Users] (

[用户编号] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL , [密码] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL , [姓名] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL , [性别] [char] (2) COLLATE Chinese_PRC_CI_AS NULL , [年龄] [smallint] NULL ,

[类别] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [是否超期] [char] (2) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY] GO

创建“图书信息”数据表

CREATE TABLE [dbo].[Books] ( [图书编号] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL , [书名] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [作者] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

[出版社] [char] (30) COLLATE Chinese_PRC_CI_AS NULL , [出版日期] [datetime] NULL ,

[丛书类别] [char] (20) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY] GO

创建“图书借阅”数据表

CREATE TABLE [dbo].[Brrow] ( [图书编号] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[用户编号] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL , [借出时间] [datetime] NOT NULL , [还书时间] [datetime] NOT NULL , [超期天数] [smallint] NOT NULL

) ON [PRIMARY]

GO

2创建主键和外键等表约束

在查询分析器中通过如下代码创建数据表的主键及外键等表约束 SQL脚本语言如下:

ALTER TABLE [dbo].[图书信息] WITH NOCHECK ADD

CONSTRAINT [PK_图书信息] PRIMARY KEY CLUSTERED ( [编号] ) ON [PRIMARY]

GO

ALTER TABLE [dbo].[图书借阅] WITH NOCHECK ADD

CONSTRAINT [PK_图书借阅] PRIMARY KEY CLUSTERED (

[借阅编号]

) ON [PRIMARY] GO

ALTER TABLE [dbo].[读者信息] WITH NOCHECK ADD

CONSTRAINT [PK_读者信息] PRIMARY KEY CLUSTERED ( [编号]

) ON [PRIMARY] GO

ALTER TABLE [dbo].[图书借阅] ADD GO

ALTER TABLE [dbo].[图书归还] ADD CONSTRAINT [图书归还_图书编号_fk] FOREIGN KEY

( [图书编号]

) REFERENCES [dbo].[图书信息] (

[编号]

CONSTRAINT [图书借阅_图书编号_fk] FOREIGN KEY ( [图书编号]

) REFERENCES [dbo].[图书信息] ( [编号] )

) GO

2. 窗体及其部分对应的代码 图书管理系统界面

书籍界面

书籍表自定义事件源代码如下;

Option Explicit

Public username As String

Private Sub Command1_Click() Form2.Show End Sub

Private Sub Command2_Click()

Dim str As String Dim str1 As String username = Text1

str = \"select 密码 from Users where 用户编号='\" & Text1.Text & \"' and 密码='\" & Text2.Text & \" '\" Adodc1.RecordSource = str Adodc1.Refresh

If Adodc1.Recordset.EOF = True Then

MsgBox \"用户名或密码错误\警告\" Text1.Text = \"\" Text1.SetFocus Else

If Text1.Text = \"user4\" Or Text1.Text = \"user5\" Then Form4.Show Else

Form5.Show End If End If End Sub

Private Sub Command3_Click() Unload Me End Sub

Option Explicit

Private Sub Cmdadd_Click() Adodc1.Recordset.AddNew Cmdadd.Enabled = False CmdDel.Enabled = False CmdOk.Enabled = True CmdCancel.Enabled = True End Sub

Private Sub CmdCancel_Click() Adodc1.Refresh

Cmdadd.Enabled = True CmdDel.Enabled = True CmdOk.Enabled = False CmdCancel.Enabled = False End Sub

Private Sub CmdDel_Click() Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If End Sub

Private Sub CmdFirst_Click() Adodc1.Recordset.MoveFirst CmdFirst.Enabled = False CmdPre.Enabled = False CmdNext.Enabled = True Cmdlast.Enabled = True End Sub

Private Sub Cmdlast_Click() Adodc1.Recordset.MoveLast CmdFirst.Enabled = True CmdPre.Enabled = True CmdNext.Enabled = False Cmdlast.Enabled = False End Sub

Private Sub CmdNext_Click() Adodc1.Recordset.MoveNext CmdFirst.Enabled = True CmdPre.Enabled = True

If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast Cmdlast.Enabled = False CmdNext.Enabled = False End If End Sub

Private Sub CmdOk_Click()

'Adodc1.Recordset.Fields(\"图书编号\") = Text1 'Adodc1.Recordset.Fields(\"用户编号\") = Text2 'Adodc1.Recordset.Fields(\"借出时间\") = Text3 'Adodc1.Recordset.Fields(\"还书时间\") = Text4 'Adodc1.Recordset.Fields(\"超期天数\") = Text5 Adodc1.Recordset.Update Cmdadd.Enabled = True CmdDel.Enabled = True CmdOk.Enabled = False CmdCancel.Enabled = False End Sub

Private Sub CmdPre_Click()

Adodc1.Recordset.MovePrevious CmdNext.Enabled = True Cmdlast.Enabled = True

If Adodc1.Recordset.BOF = True Then Adodc1.Recordset.MoveFirst CmdFirst.Enabled = False CmdPre.Enabled = False End If End Sub

Private Sub Form_Load() CmdFirst.Enabled = False CmdPre.Enabled = False CmdNext.Enabled = True Cmdlast.Enabled = True Cmdadd.Enabled = True CmdDel.Enabled = True CmdOk.Enabled = False CmdCancel.Enabled = False End Sub

Option Explicit

Private Sub Command1_Click() Dim str As String

str = \"select * from Books where 书名 like '%\" & Text1.Text & \"% ' \" Adodc1.RecordSource = str Adodc1.Refresh End Sub

Option Explicit

Private Sub Command1_Click() Form2.Show End Sub

Private Sub Command2_Click() Form3.Show End Sub

Private Sub Command3_Click() Form5.Show End Sub

Option Explicit

Private Sub Command1_Click() Form3.Show End Sub

Private Sub Command2_Click() Dim str As String

str = \"select * from Brrow where 用户编号 ='\" & Form1.username & \"'\"

Adodc1.RecordSource = str Adodc1.Refresh End Sub

Private Sub Form_Load() Print Form1.username End Sub

Private Sub Label1_Click() Print Form1.username End Sub

四、设计总结

本次课程设计是我真正的学到了不少知识,由于之前对于数据库的知识积累不够,尤其是在数据库与VB连接上存在很大漏洞,是的本次课程设计遇到了许多困难。但正是伴随着这些困难的一个个解决,我学到了很多知识,每次解决一个问题都会收获不少的知识,第一次感受到数据库与编程语言的结合时那么的有魅力。

本次课程设计让我有机会对以前所学知识进行系统的串联,尤其是对数据库的建立与操作都上了一个台阶,包括怎么建立一个好的数据库,怎么建立完备的数据库系统,怎样对数据库结构模型的设计,主键的定义,更重要的是前期对于模型的概念,也就是E-R模型的规划。这让我深刻体会到了前期工作的重要性,只有正确详尽的对系统进行分析以后,才能更高效率的完成系统的开发。

数据库的设计还是比较顺利的,利用SQL server建立正确的数据库在以前实验做过,所以并不是太陌生。然后就是VB,不好明白,开始觉得好难,经过了老师的实例讲解和反复运行还是找到了一些头绪。在VB中怎样布置各窗体中的各单元还是要思考一番。最难受的是编写代码,按照老师的实例,我建立了三个表,就如实例建三个窗体。但是,问题出现了,那就是如何将它们联系起来。通过自学,再建一窗体,利用一定代码,就能实现联系。 在老师的耐心指导下一级同学们的帮助下,我基本成功的完成了这次课程设计,在编写程序的过程中总有语法及功能不能完全达到的错误,也都是老师和同学帮我分析解决。 总之,这次实验不仅让我更加认识了数据库技术的作用,而且还学习了VB的知识。在实验中,遇到问题并解决问题的过程才是最重要的。无论在以后有怎样的课程设计,我都充满信心。就是不断地摸索,不断地学习,不断地交流,最后做出属于自己的东西。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务