1、湘南学院经济与管理系信息系统课程设计实验报告设计题目: 图书借阅管理系统 专 业: 信息管理与信息系统 年级班级: 2009 姓 名: 杨青 指导教师: 唐小刚 小组成员: 杨青、刘益鸣、尹增辉、郝刘栋、郭梦妮、杨芸、胡志鹏 指导教师评阅:指导教师(签字) 成绩:二O一二年 月 日目录第一章:系统分析311需求分析31.2 系统可行性分析31.3组织结构与功能分析4第二章 系统设计52.1 数据流图(简称为DFD)52.2 数据字典(简称为DD)6第三章系统详细设计103.1 软件模块结构设计103.2 数据库设计113.3计算机系统的配置方案17第四章 图书借阅系统的实现174.1 建立公共
2、模块174.2 登录窗体184.3 系统运行主界面如图所示。205.4 读者信息管理菜单如图所示。215.5 借书主界面如图所示。224.6 系统调试及体会29第五章 感谢32第一章:系统分析11需求分析绝大多数管理人员已经认识到采用图书借阅管理系统的必要性,纷纷开发或选购适合本企业特点的图书借阅管理系统。图书借阅管理系统具体以下优点:采用图书借阅管理系统,可以用集中的数据库将与图书借阅管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率。图书借阅管理系统有着易访问、易查询的信息库。在没有采用和实施图书借阅管理系统之前,当管理
3、人员要统计数字时,往往依赖于某个人或某些人来获取。这种依赖于人的过程往往会因为花费的时间较长或某个人不在办公室而不能及时完成。在采用和实施图书借阅管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。管理人员只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。实施了图书借阅管理系统之后,不仅可以得到较为全面的、详细的、未经过过滤的第一手图书借阅信息,还可以从这些信息中得到某些有用的决策信息及灵感和启发,从而改进图书馆的管理及经营效率,避免或减少经营风险。采用和实施图书借阅管理系统不仅仅是为了提高工作效率。应该看到,在实施图书借阅管理系统之后,可提高单位的形象。1.2 系统可行
4、性分析技术上可行:该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用Visual Basic,这些软件在MIS开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。经济上可行:由于学校急需采用计算机来进行图书馆的管理,因此对开发图书管理系统大力支持,开发经费没有问题。管理上可行:该学校的图书馆有很多的管理体制,每位借书人均有借书证,同时图书馆还为每位借书人建立了档案。因此管理上可行。另外,图书馆管理人员对开发该系统也是大力支持的,同时制定了培训计划,并进行了实施MIS的物质准备和工作准备。综上所述,开发图书
5、管理系统在技术上、经济上、管理上都是可行的。1.3组织结构与功能分析总务处工作人员学生教职工读者馆长通过调研了解到,该图书馆各个部门负责的主要业务如下:图书采编工作,包括购置新书、打印编目、增加数量。读者查询工作,包括可借图书(按图书类别、图书名称或图书作者查询);新书目录(按图书类别、日期查询);借书情况(按读者借书证号查询)图书流通、查询统计、借阅查询等工作。读者阅览工作,包括:阅览各种杂志、报纸、阅览各种工具书。下面绘制出图书馆流通业务中借书的流程图。首先是人工操作的5个步骤:读者在目录厅查阅索引卡;读者写出所借图书的分类号、种次号、交给图书管理员,并出示本人的借书证;图书管理员根据图书
6、的分类号、种次号到书库找书;将图书交给读者,并由读者填写所借图书的借书卡。图书管理员把借书卡保存到写有该读者借书证号的口袋里。得出该图书馆业务流程图如下所示:第二章 系统设计系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。即在图书管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。完全从业务管理功能和管理对象出发,按照信息系统中应有的数据流和数据结构来勾画系统的概貌。2.1 数据流图(简称为DFD)数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将
7、信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。首先,分析管理系统的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;然后划分出几个主要的信息管理功能,并明确各功能之间的联系,绘制出数据流程图。数据流程图的符号说明如图2.1所示。 外部实体 处理 数据流 数据存储 图2.1 数据流程图的符号图书借阅管理系统的顶层数据流程图如图2.2所示。图2.2 借书业务第一层DFD图书借阅管理系统的数据流程图如图2.3所示图2.3 借书业务第二层DFD2.2 数
8、据字典(简称为DD)绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。 据项的DD表列举如下(限于篇幅,仅列举部分):表2.1 书籍编号的数据字典 数 据 项系统名:图书借阅系统 编号:I001 名称:书籍编号 别名: 图书编号数据
9、项值: 类型:字符型 长度:10个字节 取值范围:简述:每部书籍都具有唯一的编号,它是某本书籍的唯一标识符,如“Tp0460000”通常用前两位字符表示分类号,中间破折号,最后四位表示该书在该类书中的序号。修改记录:编写日期审核日期表2.2 类别名称的数据字典 数 据 项系统名:图书借阅系统 编号:I002 名称:类别编号 别名: 数据项值: 类型:字符型 长度:10个字节 取值范围:简述:图书类别有社会、人文、数理等每个类别都有一个编号修改记录:编写日期审核日期表2.3 用户名的数据字典 数 据 项系统名:图书借阅系统 编号:I003 名称:用户名 别名: 数据项值: 类型:字符型 长度:1
10、0个字节 取值范围:简述:使用本系统的图书管理员名称,可以是英文字母数字或汉字修改记录:编写日期审核日期表2.4 读者编号的数据字典 数 据 项系统名:图书借阅系统 编号:I004 名称:读者编号 别名: 数据项值: 类型:字符型 长度:10个字节 取值范围:简述:借阅图书的学生或教职工的编号 修改记录:编写日期审核日期 据流的DD表列举如下(限于篇幅,仅列举一个):表2.5 数据流的DD表数 据 流系统名:图书借阅系统 编号:F1 条目名称:借书来源:读者 去处:图书借阅管理员数据流组成:借书借阅编号读者编号读者姓名书籍编号书籍名称借出日期还书日期简要说明: 修改记录:编写日期审核日期 据存
11、储的DD表列举如下(限于篇幅,仅列举一个):表2.6 数据存储的DD表数 据 存 储系统名:图书借阅系统 编号:D1 条目名称:借书情况主关键字:借阅编号 数据量: 记录数: 相关处理:数据存储组成:借书证号藏书号借书日期 简要说明:按借书的先后顺序排列修改记录:编写日期审核日期 据处理加工的DD表列举如下:表2.7 数据处理加工的DD表 数据处理加工系统名:图书借阅系统 编号: 条目名称:查询图书输入:借书信息 输出:查询结果处理逻辑:进行图书的查询简要说明: 当查询图书时发生,根据读者的图书的分类号和类别号查询修改记录:编写日期审核日期2.3 系统逻辑模型的提出根据前面的分析与评价结果,提
12、出新系统逻辑模型如图3.4所示。读者类别数据编辑读者类别信息文件借阅信息书籍信息图书类别图书类别读者信息借阅信息读者信息文件数据编辑数据编辑数据编辑书籍信息数据编辑用户信息数据编辑用户信息读者信息管理系统管理借阅管理图书管理图2.4 系统逻辑模型系统边界输入边界读者类别信息、读者信息、借阅信息和书籍信息、图书类别信息、系统管理信息。输出边界读者类别信息、读者信息、借阅信息和书籍信息、图书类别信息、系统管理信息等。第三章系统详细设计3.1 软件模块结构设计3.1.1 系统方案确定通过对系统调研与分析,系统主要应完成的功能如下:书库信息管理、读者档案管理、借阅管理、还书管理、图书检索、系统维护。3
13、.1.2 系统结构设计图书馆管理系统包含图书采编、读者管理、流通、查询等功能。该系统执行时,先输入数据,然后根据输入的数据选择执行路径;购入图书进行登记、编目调用图书采编功能,借书、还书调用功能,查询调用查询功能。图书馆借阅管理系统属于事务型系统,其系统示意图如下图所示:接受数据事务中心图书采编读者管理图书流通查询图3.1 图书馆管理系统示意图系统结构图示意如下:图书馆管理系统图书采编读者管理图书流通 查询输入图书信息 借书 还书图3.2 图书馆管理系统结构图系统功能图如下:图书馆管理系统系统登陆系统管理图书管理借书证管理借 书添加管理员修改密码退 出图书类别管理图书信息管理新开借书证借书证查
14、询借 书还 书读者管理读者类别管理读者信息管理图3.3 系统功能模块图3.2 数据库设计数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段,使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强。数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作
15、为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。3.2.1 概念结构设计 在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以采用ER图的方法来进行数据结构分析,ER设计方法是一种通过ER图来描述现实世界信息结构的DB设计方法。ER图由实体、属性、联系三部分组成。ER图的符号说明如图
16、44所示。 实体 属性 实体间的联系图3.4 ER图图例各分E-R图说明如下: 读者类别E-R图如图3.5所示:读者类别种类名称借书数量借书期限有效期限 图3.5 读者类别E-R图读者E-R图如图3.6所示:读者编号类别工作单位家庭住址电话号码登记日期已借书数量性别图3.6 读者E-R图借阅E-R图如图3.7所示: 借阅信息借阅编号读者姓名书籍编号书籍名称借出日期还书日期读者编号图3.7 借阅E-R图书籍信息书籍编号类别作者出版社出版日期登记日期是否被借出书名书籍信息的E-R图如图3.8所示: 图3.8 书籍信息E-R图图书类别类别名称类别编号图书类别的E-R图如图3.9所示:图3.9 图书类
17、别E-R图系统管理的E-R图如图3.10所示:系统管理员用户名密码权限图3.10 系统管理E-R图3.2.2 本系统中所涉及到的主要实体及其属性有读者类别:类别名称,借书数量,借书期限,有效期限读者信息:读者编号,性别,读者类别,工作单位,家庭住址,电话号码,登记日期,已借书数量借阅信息:借阅编号,读者编号,读者姓名,书籍编号,书籍名称,借出日期,还书日期书籍信息:书籍编号,书名,类别,作者,出版社,出版日期,登记日期,是否被借出图书类别:类别名称,类别名称系统管理:用户名,密码,权限3.2.3 本系统的实体联系(E-R)图为了使E-R图表示得更加清晰,现将分E-R图组合成实体及其属性图和实体
18、及其联系图。如图3.11所示(实体的属性没有标出):读者书籍图书馆工作人员mn借阅借阅还书nm登记维护nmnm还书图3.11 实体联系(E-R)图E-R图向关系模型转换的结果如下(带下划线的字段为此关系的码):读者类别表:类别名称,借书数量,借书期限,有效期限读者信息表:读者编号,性别,读者类别,工作单位,家庭住址,电话号码,登记日期,已借书数量借阅信息表:借阅编号,读者编号,读者姓名,书籍编号,书籍名称,借出日期,还书日期书籍信息表:书籍编号,书名,类别,作者,出版社,出版日期,登记日期,是否被借出图书类别表:类别编号,类别名称系统管理表:用户名,密码,权限3.2.4 各表的物理结构如下读者
19、类别表结构如表4.1所示:字段名称类型宽度小数位数类别名称文本型10借书数量数字5借书期限数字5有效期限数字5表3.1 读者类别表读者信息表结构如表3.2所示:表3.2 读者信息表字段名称类型宽度小数位数读者编号文本10性别文本2读者类别文本8工作单位文本18家庭住址文本18电话号码文本10登记日期日期/时间已借书数量数字5字段名称类型宽度小数位数借阅编号文本10读者编号文本10读者姓名文本8借书日期日期/时间书籍编号文本10书籍名称文本10还书日期日期/时间借阅信息表结构如表3.3所示:表3.3 借阅信息表书籍信息结构如表3.4所示: 表3.4 书籍信息字段名称类型宽度小数位数书籍编号文本1
20、0书名文本50类别文本50作者文本50出版社文本50出版日期日期/时间登记日期日期/时间是否被借出逻辑型图书类别结构如表3.5所示: 字段名称类型宽度小数位数类别编号文本10类别名称文本10表3.5 图书类别系统管理结构如表3.6所示:字段名称类型宽度小数位数用户名文本10密码文本10权限文本10表3.6 系统管理3.3计算机系统的配置方案硬件环境:表3.7 硬件环境内容最低配置建议配置主机奔腾二代300MP4 1.6GHZ以上内存64MBDDR256MB以上硬盘20GB40GB以上显示器VGA以上操作系统:Windows 2000或Windows XP中文版编程软件和数据库:Visual B
21、asic6.0中文版+Access2000中文版第四章 图书借阅系统的实现4.1 建立公共模块 运行VisualBasic后,选择“文件”“新建工程”菜单,然后从工程模板中选择“标准EXE”项,单击“确定”按钮。VisualBasic就会自动生成一个窗体,这个窗体的属性采用的都是默认设置。在这个实例中,先删除这个窗体,然后选择“文件”“保存工程”菜单,在出现的“文件另存为”对话框中输入这个工程项目的名称“book”,并且选择要保存这个工程的目录,单击“保存”按钮,保存工程。 为了提高代码的效率方便维护,在VisualBasic中可以用公用模块来存放工程中经常使用的函数、过程和全局变量等。在这个
22、系统中,每个功能模块都要使用数据库,因此可以使用一个公用有数据操作函数,来执行一系列的SQL语句。 在项目资源管理器中为这个工程添加一个模块,保存为Module1.bas.代码如下:Option ExplicitPublic conn As New ADODB.Connection 标记连接对象Public select_menu As String 标记所选择的菜单Public userID As String 标记当前用户IDPublic userpow As String 标记用户权限Public book_num As String 要借的书的编号4.2 登录窗体界面及最终运行效果如图
23、4.1所示。图4.1 登录界面用户可输入系统管理员的用户名,如“aa”,然后输入密码,系统对输入的用户名及相应的密码进行校验。具体流程图如下图所示:开始提示登录本程序输入用户密码调用密码检测子程序进入图书借阅管理系统显示错误 图4.2 密码验证流程图有关代码如下:Private Sub Command1_Click()Dim sql As StringDim rs_login As New ADODB.RecordsetIf Trim(txtuser.Text) = Then 判断输入的用户名是否为空 MsgBox 没有这个用户, vbOKOnly + vbExclamation, txtus
24、er.SetFocusElse sql = select * from 系统管理 where 用户名= & txtuser.Text & rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then MsgBox 没有这个用户, vbOKOnly + vbExclamation, txtuser.SetFocus Else 检验密码是否正确 If Trim(rs_login.Fields(1) = Trim(txtpwd.Text) Then userID = txtuser.Text
25、userpow = rs_login.Fields(2) rs_login.Close Unload Me Form1.Show Else MsgBox 密码不正确, vbOKOnly + vbExclamation, txtpwd.SetFocus End If End IfEnd Ifcnt = cnt + 1If cnt = 3 Then Unload MeEnd IfExit SubEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim connectionstring As Strin
26、gconnectionstring = provider=Microsoft.Jet.oledb.4.0; & _ data source=book.mdbconn.Open connectionstringcnt = 0End Sub4.3 系统运行主界面如图所示。系统运行主界面5.4 读者信息管理菜单如图所示。5.5 借书主界面如图所示。图 借书主界面 首先进行馆藏图书的查询如图所示。图馆藏图书查询界面然后单击命令按钮“借这本书”,若这本书已被借出,则弹出如图所示的对话框。图书已借出对话框否则进入到“借书”界面如图所示。图 借书界面有关代码如下:a、馆藏图书查询表单的有关代码:Option
27、 ExplicitDim panduan As StringPrivate Sub Command1_Click()Dim rs_findbook As New ADODB.RecordsetDim sql As StringIf Check1.Value = vbChecked Then sql = 书名= & Trim(Text1.Text & ) & End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 类别= & Trim(Combo1.Text & ) & Else sql = sql & and 书名= &
28、 Trim(Combo1.Text & ) & End IfEnd IfIf Check3.Value = vbChecked Then If Trim(sql) = Then sql = 作者= & Trim(Text2.Text & ) & Else sql = sql & and 作者= & Trim(Text2.Text & ) & End IfEnd IfIf Check4.Value = vbChecked Then If Trim(sql) = Then sql = 出版社= & Trim(Text3.Text & ) & Else sql = sql & and 出版社= &
29、Trim(Text3.Text & ) & End IfEnd IfIf Check5.Value = vbChecked Then If Trim(sql) = Then sql = 书籍编号= & Trim(Text4.Text & ) & Else sql = sql & and 书籍编号= & Trim(Text4.Text & ) & End IfEnd IfIf Trim(sql) = Then MsgBox 请选择查询方式!, vbOKOnly + vbExclamation Exit SubEnd Ifsql = select * from 书籍信息 where & sqlrs
30、_findbook.CursorLocation = adUseClientrs_findbook.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseSet DataGrid1.DataSource = rs_findbookrs_findbook.CloseEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Su
31、b Command3_Click()If Trim(book_num) = Then MsgBox 请选择要借阅的图书!, vbOKOnly + vbExclamation Exit SubEnd IfIf panduan = 是 Then MsgBox 此书已被借出!, vbOKOnly + vbExclamation Exit SubEnd Iffrmborrowbook.ShowEnd SubPrivate Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)book_num = DataGrid
32、1.Columns(0).CellValue(DataGrid1.Bookmark)panduan = DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark)End SubPrivate Sub Form_Load()Dim rs_find As New ADODB.RecordsetDim sql As Stringsql = select * from 图书类别rs_find.Open sql, conn, adOpenKeyset, adLockPessimisticrs_find.MoveFirstIf Not rs_find.EOF Th
33、en Do While Not rs_find.EOF Combo1.AddItem rs_find.Fields(0) rs_find.MoveNext Loop Combo1.ListIndex = 0End Ifrs_find.CloseEnd Sub b、借书表单的有关代码:Private Sub Command1_Click()Dim rs_borrowbook As New ADODB.RecordsetDim sql As Stringsql = select * from 读者信息 where 读者编号= & Combo1.Text & rs_borrowbook.Open s
34、ql, conn, adOpenKeyset, adLockPessimisticleibie = rs_borrowbook.Fields(3)shumu = rs_borrowbook.Fields(8)rs_borrowbook.Closesql = select * from 读者类别 where 种类名称= & leibie & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimisticqixian = rs_borrowbook.Fields(2)maxnum = rs_borrowbook.Fields(1)rs_b
35、orrowbook.CloseIf shumu = maxnum Then MsgBox 该读者借书数额已满!, vbOKOnly + vbExclamation Exit SubEnd Ifsql = select * from 借阅信息rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimisticrs_borrowbook.AddNewrs_borrowbook.Fields(1) = Combo1.Textrs_borrowbook.Fields(2) = Combo2.Textrs_borrowbook.Fields(3) =
36、 Label8.Captionrs_borrowbook.Fields(4) = Label9.Captionrs_borrowbook.Fields(5) = Daters_borrowbook.Fields(6) = DateAdd(Ww, qixian, Date)rs_borrowbook.Updaters_borrowbook.Closesql = select * from 书籍信息 where 书籍编号= & book_num & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimisticrs_borrowbook.
37、Fields(7) = 是rs_borrowbook.Updaters_borrowbook.Closesql = select * from 读者信息 where 读者编号= & Combo1.Text & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimisticrs_borrowbook.Fields(8) = rs_borrowbook.Fields(8) + 1rs_borrowbook.Updaters_borrowbook.CloseMsgBox 本书借阅成功!, vbOKOnly + vbExclamationUn
38、load MeEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim rs_borrow As New ADODB.RecordsetDim rs_reader As New ADODB.RecordsetDim sql As Stringsql = select * from 书籍信息 where 书籍编号= & book_num & rs_borrow.Open sql, conn, adOpenKeyset, adLockPessimisticLabel8.Caption = rs_borrow.Fields(0)Label9.Caption = rs_borrow.Fields(1)Label10.Caption = rs_borrow.Fields(2)Label11.Caption = rs_borrow.Fields(3)Label12.Caption = rs_borrow.Fields(4)Label13.Caption = rs_borrow.Fields(5)Label14.Caption = rs_borrow.Fields(6)sql = select * from 读者信息rs_reader.Open sql,