图书管理系统毕业课程设计报告.docx
《图书管理系统毕业课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统毕业课程设计报告.docx(38页珍藏版)》请在冰豆网上搜索。
图书管理系统毕业课程设计报告
(此文档为word格式,下载后您可任意编辑修改!
)
内容提要
本文介绍了一个基于ClientServer模式的高校图书管理系统的设计与实现。
运用VB结合SQLServer2000开发的登录模块主要用于验证用户身份,进行有效的操作。
从主界面模块在验证后进入每个子模块进行各个子系统的具体功能操作。
在整个系统设计中充分利用了模块化的设计思想和开发方法。
第一章问题描述
1.1图书管理系统简介
本系统利用VB.NET处理数据库的功能,实现对图书馆信息的管理。
主要功能为管理有关读者、出版社、书籍、借阅和管理者的信息等。
本系统的结构分为读者信息管理模块、出版社信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块、报表显示模块和查询处理模块。
1.2数据需求
根据系统的需求,首先将要记录的信息分类,要记录的信息如下。
读者信息:
包括证号、姓名、联系方式、已借书数目、读者类别和能否借书等。
出版社信息:
包括名称、地址、网址、E-mail等。
书籍信息:
包括书号、丛书系列、作者、责任编辑、字数、定价、出版时间、主题分类、二级分类、馆内借阅分类、总册数、库存量、出版社和书名等。
借阅信息:
包括借阅日期、应归还日期、实际归还日期、能否续借、书号和证号等。
管理者信息:
包括管理者名称、对应密码和对应权限等。
根据这些需要,本系统需要“读者信息”表,“出版社信息”表,“书籍信息”表,“借阅信息”表和“管理者信息”表。
1.3事务需求
经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块,如1.1图。
在读者信息管理部分,要求如下。
●可以浏览读者信息。
●可以对读者信息进行维护,包括添加及删除等操作。
在出版社信息管理部分,要求如下。
●可以浏览出版社信息。
●可以对出版社信息进行维护,包括添加及删除等操作。
在书籍信息管理部分,要求如下。
●可以浏览书籍信息。
●可以对书籍信息进行维护,包括添加及删除等操作。
在借阅信息管理部分,要求如下。
●可以浏览借阅信息。
●可以对借阅信息进行维护操作。
在管理者信息管理部分,要求如下。
●显示当前数据库中管理者情况。
●对管理者信息维护操作。
图1.1系统业务逻辑关系
1.4系统开发平台
前台:
1、硬件要求:
CPU:
Pentium42.0GHz以上IBM兼容机
内存:
512MB以上容量
显卡:
32MB或以上显存之AGP接口显卡
2、软件要求:
操作系统:
MicrosoftWindows2000XP
开发工具:
MicrosoftVisualStudio.Net2003
数据库服务器:
1、硬件要求:
CPU:
Pentium42.8GHz以上IBM兼容机
内存:
1024MB以上容量
显卡:
32MB或以上显存之AGP接口显卡
2、软件要求:
操作系统:
MicrosoftWindows2000Server
数据库服务器:
MicrosoftSQL2000Server
网络设备:
2块网卡:
客户机D-LinkDFE-650TX,服务器IntelPCLA8460B。
路由器:
一台SOHO路由器TL-R402M
1.5网络拓扑结构
本设计采用客户机服务器(CS)体系,数据的储存管理功能较为透明性,可以合理均衡事务的处理,充分保证数据的完整性和一致性。
图1.2CS模式结构
第二章解决方案
数据库主要着重于数据对象的属性和数据对象之间的关系的分析。
一般采用E-R图,即实体-关系模型来分析数据对象的属性和数据对象之间的关系。
2.1E-R模型设计
2.1.1实体列表
实体
描述
读者
所有借阅者,查阅者,由证件号标识
出版社
图书馆所有图书所属出版社,由出版社编号标识
书籍
图书馆所有图书,由刊号标识
借阅
书号、证号、借阅日期、应归还日期等属性,由方式标识
系统管理员
系统维护人员
2.1.2系统的E-R模型
该图书管理系统的E-R模型,如下图所示
2.2设计数据库
2.2.1创建数据库
(1)在服务器资源管理器中的任一节点右击。
(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名Library,选中“使用WindowsNT集成安全性”单选按钮。
(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。
2.2.2创建数据表
创建数据库后,为Library数据库添加数据表,步骤如下。
(1)在服务器资源管理器中右击数据库Library下的“表”文件夹。
在弹出的快捷菜单中执行“新建表”命令,出现表设计器。
(2)添加表的字段和其他详细资料。
各表数据结构如下表所示。
表名
列名
数据类型
长度
主键
出版社信息
出版社名称
varchar
50
Yes
出版社地址
varchar
50
网址
char
50
E-mail
char
50
读者信息
证号
int
4
Yes
姓名
varchar
20
联系方式
varchar
50
已借书数目
int
4
读者类别
int
4
能否借书
bit
1
密码
varchar
6
借阅信息
书号
char
10
Yes
证号
int
4
Yes
借阅日期
datetime
8
应归还日期
datetime
8
实际归还日期
datetime
8
续借
bit
1
书籍信息
书号
char
10
Yes
丛书系列
nchar
50
作者
nchar
50
责任编辑
nchar
50
字数
int
4
定价
money
8
出版时间
datetime
8
主题分类
nchar
50
二级分类
char
50
馆内借阅分类
int
4
总册数
int
4
库存量
int
4
出版社
varchar
50
书名
varchar
50
管理者信息
用户名称
char
20
Yes
密码
char
20
权限
int
4
表2.1图书管理系统各表数据结构
2.2.3连接数据库
为数据库Library和本系统之间建立一个数据连接。
(1)在服务器资源管理器中右击“数据连接”节点。
在弹出的快捷菜单中执行“添加连接”命令,打开DataLinkProperties对话框。
切换到Provider选项卡,选中列表框中的MicrosoftOLEDBProviderforSQLServer项。
单击“下一步”切换到Connection选项卡。
(2)在其中的第一个下拉列表框中选择数据库所在服务器名称。
输入登录服务器信息后选择数据库Library,然后单击TestConnection按钮。
如果测试成功,单击“确定”按钮。
2.3主窗体设计
创建一个新的“Windows应用程序”类型的项目,名为“图书馆管理”。
将默认创建的窗体命名为“主窗体”,把“主窗体”作为本系统中的主界面。
在窗体中添加两个Pannel控件,7个Button控件和7个Linklabel控件。
2.3.1设计登录界面
设计登录界面,创建一个新的”Windows窗体”,名为登录,作为本系统的登录界面.在登录窗体上添加两个Label控件,两个Button控件和两个TextBox控件,添加控件后的窗体如图所示。
2.3.2添加数据组件
在工具箱中单击“数据”选项卡,添加OleDbDataAdapter组件。
(1)在工具箱中单击OleDbDataAdapter组件,在窗体任意位置拖动出一个虚框矩形后释放左键弹出“数据适配器配置向导”对话框。
(2)单击“下一步”,在打开的对话框中选择前面建好的数据连接,然后单击“下一步”。
(3)选中“使用SQL语句”,然后单击“下一步”进入“生成SQL语句”对话框。
(4)在其中的多行文本框直接输入SQL语句“SELECT管理者信息.*FROM管理者信息”。
(5)单击“下一步”按钮,进入“查看向导结果”,单击“完成”按钮完成数据适配器配置。
配置数据适配器后,在主窗体上就会自动添加一个OleDbConnection控件。
2.3.3生成数据集
生成数据集的步骤如下:
(1)单击OleDbDataAdapter控件“属性”对话框中的“生成数据集”链接,打开“生成数据集”对话框。
(2)在其中选中“新建”单选按钮,并在其后面的文本框中输入“Lib管理者信息”。
(3)在“选择要添加到数据集中的表”列表框中列出了前面添加的OleDbDataAdapter组件所连接的表,选中该表名前面的复选框。
(4)选中“将此数据集添加到设计器”复选框,单击“确定”按钮
这样,将生成一个名称为“Lib管理者信息”的数据集,该数据集以文件形式存储,文件名为“Lib管理者信息.xsd”。
而在项目中,添加了一个DataSet组件,名为“objLib管理者信息”。
在解决方案资源管理器中右击该项目,在弹出快捷菜单中单击“属性”菜单项。
在打开的“属性页”对话框中的“启动对象”下拉列表框中选择“主窗体”选项。
单击“确定”按钮,这样该项目启动时,就会从主窗体开始启动。
2.3.4设计代码
在程序运行过程中,如果想通过单击LinkLabel控件或Button控件进入系统中的各个功能模块(如显示读者信息等),就会弹出一个对话框要求输入用户名和密码.单击"确认"按钮,程序就会到数据库的"管理者信息"表中查找该用户名和密码是否存在.如果存在,允许进入功能模块.
完成登录功能的主要代码集中在UserCheck函数中.在程序运行过程中,在登录窗体的"用户姓名"和"用户密码"文本框中输入用户名和密码后,单击"确认"按钮就会触发UserCheck函数并执行其中的代码.如果UserCheck函数返回True,那么允许用户的操作;否则拒绝用户的操作请求.
在UserCheck函数中首先定义Login类型的变量dlg_Login,然后通过ShowDialog方法来显示登录窗体.如果用户在登录窗体中输入用户姓名和密码,并且单击了"确认"按钮,那么自动调用一个自定义函数LoadDataSet(),由此函数进行数据加载.如果出错,显示错误信息,回滚整个事务.
具体设计代码见附录1.1。
2.4读者信息
在当前项目中添加一个“Windows窗体”,将窗体命名为“读者信息”。
2.4.1设计显示界面
在窗体上添加1个GroupBox控件,9个Button控件,5个TextBox控件,1个CheckBox控件和7个Label控件。
各按钮控件是为了执行相应的操作。
各TextBox控件和CheckBox控件用来显示数据集中的数据,这个功能通过设置DataBindings属性来实现。
2.4.2添加数据组件
向窗体添加OleDbConnection组件,命名为OleDbConnection1后将其选中,在“属性”对话框的ConnectionString栏单击,选择所建数据库Library。
添加OleDbDataAdapter组件和生成数据集的方法步骤如2.3.2及2.3.3。
设置各TextBox控件的DataBinding属性来实现对数据集中数据的显示(以Edit证号为例)。
(1)选中“Edit证号”控件单击“属性”对话框。
(2)单击DataBinding属性前面的+号打开该属性的详细列表。
(3)设置Text属性:
在该属性后面栏中单击并选择所对应字段。
(4)设置其他TextBox控件的DataBinding属性。
2.4.3功能实现
显示数据,添加读者,保存更改,记录定位的实现。
具体实现代码见附1.2。
“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”和该模块的设计思路及方法步骤完全一致,在此从略。
2.5显示报表
在当前项目中添加一个“Windows窗体”,命名为“报表窗体”,该模块显示当前数据库中读者信息和借阅信息的报表。
在窗体上添加一个CrystalReportViewer1,它充当报表显示的窗体,然后在窗体中添加一个菜单,菜单中包括两个子菜单项—“读者信息”和“借阅信息”。
在程序运行中,如果单击“读者信息”菜单项,就会自动在窗体上显示“读者信息报表.rpt”:
如果单击“借阅信息”命令就会自动在窗体上显示“借阅信息报表.rpt”报表。
2.5.1添加读者信息报表
(1)在开发环境中选择菜单“项目”中的“添加新项”对话框中选择CrystalReport选项。
(2)在“名称”文本框中输入报表名“读者信息报表.rpt”,单击“打开”按钮,就会弹出入图所示的“CrystalReport库”对话框。
(3)在其对话框中选择“使用报表专家”单选按钮,在“选择专家”列表框中选择“标准”选项,单击“确定”按钮,进入下一步。
(4)在弹出的“标准报表专家”对话框中,选择“可用的数据源”列表框中的OLBDB(ADO)选项,就会弹“OLEDB(ADO)”对话框。
选择OLBDB提供程序为MicrosoftOLEDBProviderforSQLServer,单击“下一步”按钮,显示“连接信息”对话框。
(5)在其中设置连接信息,单击“完成”按钮,返回“标准报表专家”对话框。
(6)选择数据源为OLEDB(ADO)中的Library数据库,并且选中其中的“读者信息”表。
单击“插入表”按钮,把“读者信息”表插入到报表中,单击“下一步”按钮。
(7)在“字段”选项卡中单击“全部添加”按钮,把“读者信息”表中的所有字段添加到报表中,单击“完成”按钮就完成报表的设计。
设计完成的“读者信息报表”如图所示。
图2.1读者信息报表效果图
2.5.2添加借阅情况报表
添加借阅情况报表的过程与添加读者信息报表过程大致相同,不同之处在于插入到报表中的数据表为“读者信息”。
2.6综合查询的实现
在程序运行过程中,单击主窗体的“综合查询”按钮,就会弹出一个对话框。
在其中设置查询条件,根据查询条件从记录集中筛选出所需记录。
为此需要在项目中添加一个窗体“综合查询”。
还需要设置“CmbBox运算符”控件的Items属性。
单击窗体上“CmbBox运算符”控件,然后在“属性”对话框中单击Items栏,就会出现一个按钮,单击按钮,在打开的窗口中如图2.2所示设置字符串集合编辑器字符串。
图2.2所示设置字符串集合编辑器
设置完毕,单击确定按钮。
2.6.1添加数据组件
在窗体上添加一个OleDbDataAdapter组件,使用数据适配器配置向导对其进行配置。
选择数据连接后输入SQL语句“SELECT 出版社信息.*FROM出版社信息”。
同样再为窗体添加四个OleDbDataAdapter组件,
在"生成SQL语句"对话框的多行文本框中分别输入SQL语句“SELECT 读者信息.*FROM读者信息”,“SELECT 管理者信息.*FROM管理者信息”,“SELECT 借阅信息.*FROM借阅信息”,“SELECT 书籍信息.*FROM书籍信息”,然后单击“完成”按钮,Name属性分别设置为OleDbDataAdapter2,OleDbDataAdapter3,OleDbDataAdapter4,OleDbDataAdapter5完成数据适配器的配置。
生成数据集的步骤如下。
(1)在OleDbDataAdapter1组件的“属性”对话框中单击“生成数据集”超链接,打开“生成数据集”对话框,选中“新建”按钮并在后面文本框中输入“Lib综合查询”。
(2)在“选择要添加到数据集中的表”列表框中,选中5个表前面的复选框。
(3)选中“将此数据集添加到设计器”复选框,单击“确定”按钮。
这样,将生成一个名称为“Lib综合查询”的数据集,该数据集以文件的形式存储,文件名为“Lib综合查询.xsd”。
而在项目中,添加一个DataSet组件,名称为“objLib综合查询”。
设计完成的数据集如图2.4所示。
2.6.2窗体功能实现
具体功能实现代码见附1.7。
图2.3综合查询数据集
第三章系统实现
3.1开发环境
本系统使用VisualBasic.NET语言进行开发。
需要Microsoft.NETFrameworkSDKv1.1的支持。
适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机。
3.2系统流程图
在本系统中准备通过如下窗体来实现数据维护的功能。
(1)主窗体:
管理着各个子窗体。
(2)“读者信息”子窗体:
管理读者信息。
(3)“管理者信息”子窗体:
管理用户信息。
(4)“出版社信息”子窗体:
管理出版社信息。
(5)“书籍信息”子窗体:
管理书籍信息。
(6)“借阅信息”子窗体:
管理借阅信息。
(7)“报表窗体”子窗体:
显示数据报表。
(8)“综合查询”子窗体:
执行用户自定义的查询。
系统流程图如图3.1所示:
图3.1系统流程图
3.3程序调试情况
在数据连接时一定要注意窗体和相应显示控件的绑定关系。
在把系统从一台计算机移植到另一台计算机时一定要把数据文件library.mdf和library_log.LDF同时移植,并对相应的提供服务的SQLServer服务器进行相应的修改,否则数据正确连接并显示。
3.4功能显示
运行程序后首先显示主窗体,如图3.2所示。
图3.2主界面
单击“输入查看读者信息”,就会弹出如图3.3所示登录框。
图3.3登录界面
在登录对话框中输入用户姓名和密码,单击“确认”按钮,就会对用户身份进行认证,如果认证通过,就会弹出如图3.4所示的读者信息管理窗体。
图3.4读者信息管理窗体
在“读者信息”窗体中可以对读者信息进行维护操作,例如浏览读者信息,添加记录和删除记录等。
单击“输入查看书籍信息”,就会显示“书籍信息”窗体,在该窗体中可以对书籍信息进行维护操作。
书籍信息维护窗体如图3.5所示。
图3.5书籍信息窗体
单击“输入查看借阅信息”,就会显示“借阅信息”窗体,在该窗体中可以对出版社信息进行维护操作。
出版社信息维护窗体如图所示。
图3.6借阅信息窗体
单击“输入查看出版社信息”,就会显示“出版社信息”窗体,在该窗体中可以对借阅信息进行维护操作。
借阅信息维护窗体如图3.7所示。
图3.7出版社信息窗体
单击“输入查看管理者信息”,结果如图3.8所示。
图3.8管理者信息窗体
在主窗体上单击“显示报表”,那么就可以查看反映读者信息和借阅信息的报表,借阅信息的报表如图所示。
图3.9报表窗体
如果用户在运行的主窗体上单击“综合查询”,那么就可以查看针对不同的数据表进行查询操作。
选择查询依据为“出版社信息”表查看其中的所有信息,结果如图3.10所示。
图3.10综合查询窗体
3.5结论
在这个系统的开发过程中,值得注意的几点有:
(1)数据报表的实现.报表是数据库应用程序的重要组成部分,通过报表,可以把数据库中内容经过组织以后生动地展示给用户,VB.NET提供的CrystalReport可以大大提高报表的设计效率。
(2)复杂查询的实现。
在程序运行过程中,单击窗体中的“综合查询”按钮,就会弹出一个对话框,在该对话框中设置查询条件,根据查询条件从记录集中筛选出所需记录,所指定的查询条件包括查询的依据,排序的依据,运算符等等。
第四章设计心得
学习完书本上的知识后,我们第17周参加了数据库课程设计。
与预想中的差不多,我们大家都很努力的搜集各方面的资料,积极的学习SQL与VB的运用,将老师在课上讲的内容充分的运用到实践中。
但由于我们从未接触过VB,所以通过VB进行的大部分后台数据库我们都没办法运行,老师也体会到了我们的难处,告诉我们只要能看懂就可以,我们积极查阅资料,都获得了自己满意的可执行程序。
作为一名专科生,我要走的路比其他本科的大学生要艰难的多,所以我们心态一定要放正,知道自已在什么位置上。
在以后走向工作岗位的时候先全面发展,等过段再看看自已精于哪个方面,然后向那个方向努力发展。
正式走上工作岗位后,我要积极响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升能力,以广博的社会知识拓展视野。
最后,特别要感谢胡美燕老师在SQL2000数据库课程中认真负责的教学,才使得我能结合所学的知识完成这一课程设计。
附录:
源代码清单
附1.1主窗体设计代码如下:
PublicClass主窗体
InheritsSystem.Windows.Forms.Form
#Region"Windows窗体设计器生成的代码"
‘此处省略主窗体设计代码
#EndRegion
DimsenderAsSystem.Object
DimeAsSystem.EventArgs
PublicSubLoadDataSet()
DimobjDataSetTempAs图书馆管理.Lib管理者信息
objDataSetTemp=New图书馆管理.Lib管理者信息
'临时数据集objDataSetTemp保存从FillDataSet()函数调用中返回的记录
'如果未出错则填充到主数据集"objLib管理者信息"中
Try
Me.FillDataSet(objDataSetTemp)
CatcheFillDataSetAsSystem.Exception
ThroweFillDataSet
EndTry
Try
objLib管理者信息.Clear()
objLib管理者信息.Merge(objDataSetTemp)
CatcheLoadMergeAsSystem.Exception
ThroweLoadMerge
EndTry
EndSub
PublicSubFillDataSet(ByValdataSetAs图书馆管理.Lib管理者信息)
'实现打开连接,将OleDbDataAdapter1中的数据添加到数据集,关闭连接。
dataSet.EnforceConstraints=False
Try
Me.OleDbConnection1.Open()
Me.OleDbDataAdapter1.Fill(dataSet)
CatchfillExceptionAsSystem.Exception
ThrowfillException
Finally
dataSet.EnforceConstraints=True
Me.OleDbConnection1.Close()
EndTry
EndSub
PrivateSubLabel1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesLabel1.Click
EndSub
PrivateSubLinkLabel_