1、数据库课程设计 图书音像管理系统 作者: 日期:2 个人收集整理 勿做商业用途目 录第一章 系统功能概述11。1 系统功能11。2 系统功能模块图2第二章 数据库设计32。1 需求分析32。2 E-R模型42.3关系模型42.4表结构设计5第三章 系统各功能模块的详细设计63.1 欢迎界面的设计63.2 主控界面73。3 登录和注册界面93。4 浏览界面133.5 查询界面163.6 修改界面21总 结28参考文献2930沈阳理工大学第一章 系统功能概述1.1 系统功能每个人都有一些书、光盘、磁带、影碟等,这些东西信息量也不少.现在建立一个管理系统对个人的图书音像资料进行管理,主要包括图书信息
2、的管理、光盘信息的管理以及磁带信息的管理。个人图书音像管理系统主要有以下功能:(1)图书信息的管理:对个人图书的管理,主要包括信息的浏览、查询和修改。浏览时可以逐条显示每个图书的信息;查询时可以按照图书所有的属性进行查询,并且都支持模糊查询,按照作者查询时可以统计查询到信息的数量,按照类别查询时可以统计信息的数量以及同一类别图书的总价格;修改主要包括删除、添加和修改某条信息。(2)音像信息的管理,包括光盘和磁带:光盘信息的管理:对个人光盘的管理,主要包括信息的浏览、查询和修改。浏览时可以逐条全属性的显示详细的光盘信息;查询可以按照光盘所有的属性进行查询,并且支持模糊查询,可以统计查询到的信息的
3、数量;修改包括记录的删除、添加以及修改。磁带信息的管理:对个人磁带的管理,同样主要包括信息的浏览、查询和修改.浏览时可以逐条全属性显示磁带详细的信息;查询时可以按照不同的属性进行查询,并且支持模糊查询,统计查询到的记录的数量;修改包括记录的添加、修改和修改。1.2 系统功能模块图个人图书音像管理系统系统文件退出图书信息的修改图书信息的浏览图书信息的查询音像信息的查询音像信息的浏览音像信息的修改记录的修改记录的添加记录的删除图书信息管理音像信息管理光盘信息的浏览磁带信息的浏览光盘信息的查询磁带信息的查询光盘信息的修改磁带信息的修改登录第二章 数据库设计2.1 需求分析 该系统主要实现对个人的大量
4、的图书音像资料进行规范化的管理,通过辅助数据库的使用来完成一系列的功能.首先根据需要在数据库中建立以下表:密码表(用户名,密码),图书(书名,作者,价格,购买日期,类别,状态),光盘(光盘名,出版社,价格,购买时间,类别,状态),磁带(供磁带名,磁带作者,价格,购买时间,类别,状态)。启动欢迎窗体时显示背景和欢迎文字,点击文字可以显示MDI主控窗体,利用主控窗体管理所有图书音像信息。主控窗体主要包含文件、图书管理、音像管理和系统四个部分,起初只有文件和系统可用,图书管理和音像管理两部分不可用。(1)打开系统下的“登录”子菜单会打开登录界面,需要正确填写用户名和密码才可以使用图书管理和音像管理,
5、假如3次输入的用户名或密码有误,系统关闭.从登录界面点击“注册”按钮可以打开注册界面进行新用户的注册。(2)图书管理:主要包含对图书信息的浏览、查询、修改,浏览时显示详细信息可以逐条浏览,查询可以根据图书的不同属性进行查询,并且支持模糊查询,查询完可以统计查询到记录的数量可总价格,修改包括单个记录的添加、删除以及属性的修改.(3)音像管理:包括音像信息的浏览、查询和修改.音像信息的浏览分为光盘信息的浏览和磁带信息的浏览;音像信息的查询分为光盘信息的查询和磁带信息的查询,查询时都可以进行模糊查询;修改同样包含光盘信息的修改和磁带信息的修改。(4)系统菜单只包含“退出”子菜单,点击可以结束程序。2
6、.2 ER模型该管理系统中主要包含4个实体:密码表、图书信息、光盘信息和磁带信息.由于所有的实体之间不存在明显的联系,所以在这里只给出了单个实体及其属性图,没有完整的实体联系图。单个实体及其属性图如下:密码表用户名密码 图书信息类别购买日期状态作者书名价格图a:密码表及其属性图 图b:图书实体及其属性图光盘信息出版社购买时间光盘名价格类别状态 磁带信息购买时间类别状态磁带作者磁带名价格图c:光盘实体及其属性图 图d:磁带实体及其属性图2。3关系模型(1)密码表(用户名,密码)(2)图书信息(书名,作者,价格,购买日期,类别,状态)(3)光盘信息(光盘名,出版社,价格,购买时间,类别,状态)(4
7、)磁带信息(磁带名,磁带作者,价格,购买时间,类别,状态)2.4表结构设计启动SQL Server 2000建立数据库课程设计,在该数据库中,用可视化的方法进行建表,要建的表有密码表、图书信息、光盘信息和磁带信息四个表,所建各表的表信息如下:表1:密码表: 表2:图书信息: 表3:光盘信息: 表4:磁带信息: 第三章 系统各功能模块的详细设计3.1 欢迎界面的设计点击欢迎界面上的欢迎词“欢迎进入个人图书音像管理系统” 时即可跳转到MDIForm1主界面,欢迎词用Label控件进行添加,程序运行时欢迎界面最大化。控件属性值表:控件名属性名属性值Label1Caption欢迎进入个人图书音像管理系
8、统Font宋体、二号ForeColor红色欢迎界面如下图所示:对应代码如下:Private Sub Label1_Click()MDIForm1。ShowEnd Sub3.2 主控界面主控界面是MDI窗体,含有的主菜单包含:文件、图书管理、音像管理和系统。在未登录之前只有文件和系统两菜单可用,成功登录之后图书管理和音像管理两个主菜单变为可用的。主控界面的详细情况如下:文件 包含以下子菜单和功能:登录菜单:打开登录界面图书管理菜单包含以下子菜单和功能:图书信息的浏览菜单:显示图书信息的浏览窗体图书信息的查询菜单:显示图书信息的查询窗体图书信息的修改菜单:显示图书信息的修改窗体音像管理菜单包含以下
9、子菜单和功能:音像信息的浏览菜单:包括光盘信息的浏览和磁带信息的浏览两个子菜单光盘信息的浏览菜单:显示光盘信息的浏览窗体磁带信息的浏览菜单:显示磁带信息的浏览窗体音像信息的查询菜单:包括光盘信息的查询和磁带信息的查询两个子菜单光盘信息的查询菜单:显示光盘信息的查询窗体磁带信息的查询菜单:显示图书信息的查询窗体音像信息的修改菜单:包括光盘信息的修改和磁带信息的修改两个子菜单光盘信息的修改菜单:显示光盘信息的修改窗体磁带信息的修改菜单:显示磁带信息的修改窗体系统菜单包含以下子菜单和功能:退出菜单:关闭程序主控界面的设计如下图所示: 对应代码如下:Private Sub Cchaxun_Click(
10、)fcchaxun.ShowEnd SubPrivate Sub Cliulan_Click()fcliulan.ShowEnd SubPrivate Sub Cxiugai_Click()fcxiugai.ShowEnd SubPrivate Sub denglu_Click()fdenglu。ShowEnd SubPrivate Sub Gchaxun_Click()fgchaxun.ShowEnd SubPrivate Sub Gliulan_Click()fgliulan.ShowEnd SubPrivate Sub Gxiugai_Click()fgxiugai.ShowEnd Su
11、bPrivate Sub MDIForm_Load()tushuguanli.Enabled = Falseyinxiangguanli。Enabled = FalseEnd SubPrivate Sub Tchazhao_Click()ftchaxun.ShowEnd SubPrivate Sub Tchaxun_Click()ftchaxun.ShowEnd SubPrivate Sub Tliulan_Click()ftliulan。ShowEnd SubPrivate Sub tuichu_Click()EndEnd SubPrivate Sub Txiugai_Click()ftxi
12、ugai.ShowEnd Sub3.3 登录和注册界面(1)登录界面的设计用Label控件添加“用户名”和“密码”显示在界面上,并在后面用TextBox控件添加练个输入区,三个按钮则由CommandButton控件进行添加,最后由Adodc控件与数据库相连。控件属性值表: 控件名属性名属性值控件名属性名属性值Label1Caption用户名Command2Caption取消Font楷体、小四Font楷体、小四Label2Caption密码Command3Caption注册Font楷体、小四Font楷体、小四Command1Caption登录Font楷体、小四登录界面如下: 当输入的用户名不存在
13、或者密码错误时系统会给出警告: 对应的代码如下:Dim miCount As IntegerPrivate Sub Command1_Click()Static miCount As IntegerDim sqlstr As Stringsqlstr = Select from 密码表 Where 用户名= Text1 ”Adodc1.RecordSource = sqlstrAdodc1.RefreshIf Adodc1.Recordset.BOF ThenMsgBox 用户名错误,重新输入 ”, vbExclamation, 警告Text1。Text = ”: Text1.SetFocus
14、ElseIf Adodc1.Recordset.Fields(”密码) = Text2 ThenMDIForm1.tushuguanli.Enabled = TrueMDIForm1。yinxiangguanli.Enabled = TrueUnload MeElseMsgBox ”密码错误,重新输入 ”, vbExclamation, ”警告Text2.Text = ”: Text2.SetFocusEnd IfEnd IfmiCount = miCount + 1If miCount = 3 Then Unload MeEnd SubPrivate Sub CmdCancel_Click(
15、)Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()fzhuce.ShowEnd Sub(2)注册界面的设计该界面主要有CommandButton控件添加两个按钮“确认”和“取消,Label控件添加的四个标签以及TextBox控件添加的三个输入区,最后由Adodc控件和“密码表”连接。控件属性值表: 控件名属性名属性值控件名属性名属性值Label1Caption注册新用户Label4Caption确认密码Font宋体、小四Font楷体、五号Label2Caption输入
16、用户名Command1Caption确认Font楷体、五号Font楷体、小四Label3Caption输入密码Command2Caption取消Font楷体、五号Font楷体、小四注册界面如下:当两次输入的密码不同和注册成功时都会给出提示: 对应代码如下:Private Sub Command1_Click()Dim sqlstr As StringIf Text1 = ThenMsgBox ”请输入用户名!”, vbExclamation, 确认用户名Text1.SetFocusExit SubElsesqlstr = Select * from 密码表 where 用户名=” & Text
17、1 & Adodc1。RecordSource = sqlstrAdodc1.RefreshIf Adodc1.Recordset.EOF = False ThenMsgBox ”用户名已存在,请重新输入!”, vbExclamation, 检验用户名Text1 = Text1.SetFocusExit SubEnd IfEnd IfIf Text2 Text3 ThenMsgBox 二次输入的密码不一致,请重新输入, vbExclamation, 检验密码”Text2 = ”: Text3 = Text2.SetFocusExit SubElseIf Text2 = ” ThenMsgBox
18、 密码不能为空!”, vbExclamation, ”检验密码”Text2。SetFocusElseAdodc1。Recordset.AddNewAdodc1.Recordset。Fields(用户名) = Trim(Text1)Adodc1.Recordset.Fields(”密码) = Trim(Text2)Adodc1.Recordset.UpdateMe。HideMsgBox 成功注册新用户!”, vbInformation, ”添加用户”End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub3。4 浏览界面(1)图书信息浏览
19、界面该界面浏览时支持向前或者向后逐条浏览记录,但是到达首记录时“前移”按钮失效,到达末记录时“后移”按钮失效。另外,还可以根据需求进行跳跃式浏览,在界面上还可以显示你当前浏览的记录在表中的位置.控件属性值表: 控件名属性名属性值控件名属性名属性值Text1DataSourceAdodc1Text4DataSourceAdodc1DataField书名DataField购买日期LockedTrueLockedTrueText2DataSourceAdodc1Text5DataSourceAdodc1DataField作者DataField类别LockedTrueLockedTrueText3Da
20、taSourceAdodc1Text6DataSourceAdodc1DataField价格DataField状态LockedTrueLockedTrue控件名属性名属性值作用CmdFirstCaption首记录将指针移动到第一条记录CmdPreCaption前移指针向前移动一个记录CmdNextCaption后移指针向后移动一条记录CmdLastCaption末记录指针移动到最后一条记录CmdNCaption移动记录数一次移动n条记录Text7Text空输入要移动的记录数Label7Caption空显示当前记录数和记录总数图书浏览界面如下(首记录):输入移动记录数:对应的代码如下:Priva
21、te Sub CmdFirst_Click()Adodc1。Recordset。MoveFirstCmdFirst.Enabled = FalseCmdPre。Enabled = FalseCmdNext.Enabled = TrueCmdLast。Enabled = TrueLabel7.Caption = ”记录: & Adodc1。Recordset.AbsolutePosition ”/”& Adodc1.Recordset。RecordCountEnd SubPrivate Sub CmdPre_Click()Adodc1.Recordset。MovePreviousCmdNext.
22、Enabled = TrueCmdLast.Enabled = TrueIf Adodc1。Recordset.BOF ThenAdodc1。Recordset.MoveFirstCmdFirst。Enabled = FalseCmdPre。Enabled = FalseEnd IfLabel7.Caption = ”记录:” & Adodc1。Recordset。AbsolutePosition & ”/ & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdNext_Click()Adodc1.Recordset。MoveNextCmdFi
23、rst。Enabled = TrueCmdPre。Enabled = TrueIf Adodc1.Recordset.EOF ThenAdodc1.Recordset。MoveLastCmdNext。Enabled = FalseCmdLast。Enabled = FalseEnd IfLabel7.Caption = 记录:” Adodc1。Recordset。AbsolutePosition & / & Adodc1.Recordset。RecordCountEnd SubPrivate Sub CmdLast_Click()Adodc1。Recordset。MoveLastCmdFirs
24、t.Enabled = TrueCmdPre。Enabled = TrueCmdNext。Enabled = FalseCmdLast.Enabled = FalseLabel7.Caption = ”记录: Adodc1。Recordset。AbsolutePosition & /” Adodc1。Recordset.RecordCountEnd SubPrivate Sub CmdN_Click()Dim n As Integern = Text7。TextAdodc1。Recordset.Move nLabel7.Caption = ”记录: & Adodc1.Recordset.Abs
25、olutePosition ”/” Adodc1.Recordset.RecordCountEnd SubPrivate Sub Form1_Load()CmdFirst.Enabled = FalseCmdPre.Enabled = FalseCmdNext。Enabled = TrueCmdLast。Enabled = TrueLabel7.Caption = 记录:” Adodc1.Recordset.AbsolutePosition ”/” Adodc1。Recordset。RecordCountEnd Sub(2)光盘信息浏览界面由于光盘信息的浏览和图书信息的浏览及其类似,所以在这里
26、不再赘述.(3)磁带信息浏览界面和图书浏览的功能和界面都类似,所以也不再给出。3.5 查询界面(1)图书信息查询界面查询时分为两种情况的查询,一种是按“书名”、“作者”、“价格”查询,由Combo控件控制,可以按需求选择,查询时都可以进行模糊查询,并可以显示出查询到的记录的数量。第二种,按“购买日期、“状态”和“类别”查询,此时添加了一个“统计”按钮,可以把查询到的所有记录的总价格统计出来.第一种查询条件控件属性值表:控件名属性名属性值控件名属性名属性值Label1Caption查询条件Command2Caption统计Font宋体、小四Font宋体、小四Label2Caption查询信息Co
27、mmand3Caption其他条件查询Font宋体、小四Font宋体、小四Command1Caption查询DataGrid1DataSourceAdodc1Font宋体、小四图书查询界面如下:对应的代码如下:Private Sub Command1_Click()Dim str As Stringstr = ” Select From 图书信息 ”str = str & Where 图书信息。” Combo1.Text & ” Like & Text1 & Adodc1。RecordSource = strAdodc1.RefreshEnd SubPrivate Sub Command2_C
28、lick()Label3。Caption = 找到相关信息的数量: Adodc1。Recordset.RecordCountEnd SubPrivate Sub Command3_Click()fttongji。ShowEnd SubPrivate Sub Form_Load()Combo1.AddItem ”书名Combo1.AddItem ”作者”Combo1.AddItem ”价格Text1。Text = End Sub第二种查询条件控件属性值表:控件名属性名属性值控件名属性名属性值Label1Caption按购买日期查询Command1Caption查询Font宋体、小四Font宋体、
29、小四Label2Caption按类别查询Command2Caption统计Font宋体、小四Font宋体、小四Label3Caption按状态查询DataGrid1DataSourceAdodc1Font宋体、小四Text1DataSourceAdodc2查询界面如下:对应代码如下:Private Sub Command1_Click()If Option1 = True ThenDim str As Stringstr = Select * From 图书信息 str = str & ” Where 图书信息。购买日期 like ” & Combo1.Text %”Adodc1.Record
30、Source = strAdodc1.RefreshEnd IfIf Option2 = True ThenDim str1 As Stringstr1 = Select * From 图书信息 ”str1 = str1 ” Where 图书信息.类别 like Combo2.Text & %”Adodc1。RecordSource = str1Adodc1.RefreshEnd IfIf Option4 = True ThenDim str2 As Stringstr2 = Select * From 图书信息 str2 = str2 & Where 图书信息.状态 like & Combo
31、3.Text & ”Adodc1。RecordSource = str2Adodc1。RefreshEnd IfEnd SubPrivate Sub Command2_Click()Label4。Caption = 相关图书的数量: & Adodc1。Recordset.RecordCountIf Option1 = True ThenDim str As Stringstr = ”select sum(价格) as 总价格 from 图书信息 where 图书信息.购买日期 like Combo1.Text & %”If Adodc1.Recordset。EOF Thenfttongji.T
32、ext1。Text = 0”ElseAdodc2。RecordSource = strAdodc2.Refreshfttongji。Text1。Text = Adodc2.Recordset。Fields(”总价格”)End IfEnd IfIf Option2 = True ThenDim str1 As Stringstr1 = ”select sum(价格) as 总价格 from 图书信息 where 图书信息.类别 like & Combo2。Text & ”If Adodc1.Recordset.EOF Thenfttongji.Text1。Text = 0ElseAdodc2。R
33、ecordSource = str1Adodc2。Refreshfttongji。Text1。Text = Adodc2。Recordset。Fields(”总价格”)End IfEnd IfIf Option4 = True ThenDim str2 As Stringstr2 = select sum(价格) as 总价格 from 图书信息 where 图书信息。状态 like Combo3。Text & ”If Adodc1.Recordset。EOF Thenfttongji。Text1.Text = ”0ElseAdodc2.RecordSource = str2Adodc2.Re
34、freshfttongji.Text1。Text = Adodc2.Recordset。Fields(”总价格”)End IfEnd IfEnd SubPrivate Sub Form_Load()Combo1.AddItem 2008”Combo1。AddItem ”2009Combo1。AddItem 2010”Combo2.AddItem ”文学”Combo2。AddItem ”语言”Combo2。AddItem 历史Combo2.AddItem ”娱乐Combo3.AddItem ”借出”Combo3.AddItem ”可用Combo3。AddItem 破损”Combo3。AddIte
35、m ”报废”End Sub(2)光盘信息查询界面由于光盘信息查询界面的设计和图书的类似,功能也相近,所以只给出查询界面的图片。(3)磁带信息查询界面磁带信息查询的界面功能和光盘信息的查询基本一样,同样只给出图片。3.6 修改界面(1)图书信息的修改界面修改界面的功能主要有添加、删除、修改,添加时在文本输入区输入要添加的记录的详细内容,然后点击添加按钮即可把信息添加到数据库中。删除时先要选定要删除的记录,点击删除按钮即可把信息删除。修改时也要选定要修改的记录,点击“修改”,内容会显示到另一个界面上,修改完点击“确定。控件属性值表:控件名属性名属性值控件名属性名属性值Label1Caption书名
36、Label6Caption状态Font宋体、五号Font宋体、五号Label2Caption作者Command1Caption添加Font宋体、五号Font宋体、小四Label3Caption价格Command2Caption删除Font宋体、五号Font宋体、五号Label4Caption购买时间Command3Caption修改Font宋体、五号Font宋体、五号Label5Caption类别Command4Caption退出Font宋体、五号Font宋体、五号添加操作,添加前如下:点击“添加”后如下:删除操作,删除时先选定:点击“删除”后,如下所示:对应的代码如下:Private Sub
37、 Command1_Click()If Text1.Text = ” ThenMsgBox ”请你输入要想添加的书名!”, vbOKOnly + vbExclamation, ”警告!Text1。SetFocusExit SubEnd Ifsql = select from 图书信息 where 书名=” Trim(Text1。Text) & Adodc1。RecordSource = sqlAdodc1。RefreshIf Adodc1。Recordset。EOF = False ThenMsgBox 该图书记录已经存在!”, vbOKOnly + vbExclamation, 警告!Tex
38、t1。SetFocusExit SubElseAdodc1.Recordset.AddNewAdodc1.Recordset。Fields(”书名”) = Trim(Text1。Text)Adodc1.Recordset.Fields(”作者”) = Trim(Text2.Text)Adodc1。Recordset.Fields(价格”) = Trim(Text3.Text)Adodc1.Recordset。Fields(购买日期) = Trim(Text4。Text)Adodc1。Recordset.Fields(类别”) = Trim(Text5。Text)Adodc1.Recordset
39、。Fields(状态”) = Trim(Combo1。Text)Adodc1。Recordset。UpdateMsgBox ”该记录已经成功添加!”, vbOKOnly + vbExclamation, ”添加结束!End IfEnd SubPrivate Sub Command2_Click()x = MsgBox(”确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认”)If x = vbYes ThenAdodc1.Recordset。DeleteAdodc1.Recordset。MoveNextIf Adodc1。Recordset.EOF ThenAdodc1。
40、Recordset.MoveLastEnd IfElseAdodc1。RefreshEnd IfEnd SubPrivate Sub Command3_Click()Form1.Showftxiugai.HideEnd SubPrivate Sub Command4_Click()Unload MeEnd SubPrivate Sub Form_Load()Combo1。AddItem ”可用Combo1.AddItem ”借出”Combo1。AddItem 破损Combo1。AddItem 报废End Sub修改操作,修改前如下:点击“修改”按钮时会显示一个新的界面,在新的界面上完成要做的修
41、改,如下:“确认后如下:(2)光盘信息的修改界面光盘信息的修改同样包含记录的添加、删除和修改,成功时都会给出提示,与图书信息的修改稍有不同的是没有在同一个界面内用DataGrid显示关盘信息的详细内容,而是在查看光盘信息时会显示一个独立的界面,删除时不时选定要删除的记录,而是要输入关盘名。控件属性值表:控件名属性名属性值作用Command1Caption添加往数据库中添加记录Command2Caption删除从数据库中删除记录Command3Caption修改修改数据库中记录的属性Command4Caption光盘信息显示数据库中所有记录的信息Text1Text7Caption空书写记录的各个属性光盘信息修改界面如下:对应代码如下:Private Sub Command1_Click()If Text1.Text = ” ThenMsgBox 请你输入要想添加的光盘!, vbOKOnly + vbExclamation, 警告!”Text1.SetFocusExit SubEnd Ifsql =