001图书管理系统VB.NET
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
系统提供的功能:
针对图书馆管理员设计的部分:
管理部分是一个基于WinForms的windows窗体应用程序,主要为图书馆管理人员提供服务。截图如下:
图1 图书管理员的用户界面
管理部分提供以下功能:
用户功能。(提供登陆验证、用户切换,管理员锁定系统等功能。)
事务处理
图书证挂失管理。(可以针对读者情况对图书证进行挂失,以防冒借。)
借书、还书管理。(实现日常图书借阅及归还。)
数据管理
图书、读者管理。(实现图书、读者的添加,删除,编辑。)
综合查询统计。(可以根据不同条件的组合检索图书或读者以及借阅数据,对检索出来的数据可提供多种方式的操作:导出为Excel格式、或导出为水晶报表以便打印等。)
系统设定。(设置一些图书馆基本规则,如读者类别、图书类别、读者借阅最大天数等,此外设定数据服务器信息也在这里。)
【www.think58.com计算机毕业论文网】
内容来自think58 [资料来源:www.THINK58.com]
[来源:http://think58.com]
帮助功能。(提供一个chm帮助文档,帮助图书馆工作人员快速适应本系统,此外还提供在线问题反馈,软件更新提示等功能。)
针对读者设计的部分:
由于读者的多元性和位置不确定性,该部分采取基于B/S的方式实现。代码使用ASP.NET编写,利用ASP.NET的优点,可以自动适应多种客户浏览器。[11]截图如下:
图2客户端的用户界面
读者只需要有一台联网的计算机和一个常用WEB浏览器。就可以轻松的进行图书查询、更改个人信息、向图书馆反馈信息等。该部分主要提供以下功能:
登陆验证。(防止读者信息被盗用。)
图书查询。(一个综合的图书查询系统,可以方便的使读者查到需要的书籍。)
读者个人信息查询以及管理。(可以适当的更改一些读者个人的资料,如email等,此外在这里还可以查到读者当前的、所有的借阅记录等。)
信息服务。(定期公布超期的读者列表,以及新到的图书等信息。)[12]
2.2系统的一些特点
1) 首先本软件是基于.net平台构建的,这是以前从未有过的。
2) 软件很好的解决了一个关于时间冲突的问题。
时间冲突问题阐述如下:
图书馆管理信息系统是一个网络版的系统,其运作方式是有一台主数据服务器、还有若干个负责各项功能的客户端。举个例子:图书馆可能有若干台客户端电脑用于还书管理、还可能有若干台用于借书管理、还可能有若干台用于图书、读者信息维护等。因为每台电脑的系统时间可能会发生改变,这就会造成数据错误。比如张某于2月10日在负责借书的A号电脑上借了一本书,可能A的系统时间被误设定为2月5日。如果张某的最大借书时间为一个月,则他应该还书的时间就被误设定为3月5日。
copyright think58 [资料来源:www.THINK58.com]
笔者在开发过程中也参考了一些相关的图书馆软件,发现有的系统根本没有注意到这个问题。有的是在软件客户端设定一个时间校准的提示或者干脆就手工输入时间。这样无疑给操作人员增加了负担,而且校准还不一定正确。
在本系统中,所有的时间都是基于服务器时间的。即软件中必要的与时间有关的操作。都采用标准的T-SQL函数GETDATE()从数据服务器返回时间。这就避免了功能上的错误,也避免了给操作人员带来的不必要负担。
3)用ADO.NET的开放式并发进行并发控制
在图书馆系统的使用过程中,可能同时有多台客户机在操作同一个数据行。比如负责修改图书信息的A号电脑正在修改编号为XXX的书籍,而编号为B的电脑正试图删除编号为XXX的书籍。这样做肯定会有一些冲突,这就要讨论并发控制。
当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响。处理这种情况的系统叫做“并发控制”。
在以前的编程模型中,大多使用保守式并发控制,即在从获取记录直到记录在数据库中更新的这段时间内,该行对用户不可用。ADO.NET的数据集DataSet是一个断开式的模型,不适合保守式并发。[15]在我所编写的图书馆管理信息系统中,使用了开放式并发控制(参见附录中我翻译的英文文章),即只有当实际更新数据时,该行才对其他用户不可用。更新将在数据库中检查该行并确定是否进行了任何更改。如果试图更新已更改的记录,则将导致并发冲突。 本文来自think58 [来源:http://think58.com]
4)全部数据层都基于存储过程构建
使用存储过程,可以减少网络流量,提高程序的速度以及安全性。具体内容请参见笔者文章里对存储过程的研究讨论。
think58
3系统设计过程及原理阐述
管理信息系统(以下简称MIS)服务于现代化的企事业管理,是提供企事业工作效率和经济效益的计算机网络系统。
管理信息系统涉及的因素非常多、非常复杂,开发起来具有一定的难度。如果掌握了一套行之有效的开发方法,以及把握好MIS开发中的重点,开发中就可以大量的解约人力、财力等。
我个人经过大量的研究、实践。认为在MIS开发中,首先数据库技术是MIS开发中的重要技术。数据库开发成败直接影响到整个MIS的开发。所以,构架一个优秀的MIS一定要有好的数据库设计。本文讨论的重点就是数据库设计理论。主要是两方面,一是基本的数据库理论;二是.NET平台上的ADO.NET数据访问技术。
其次,在MIS开发过程中,所使用的开发工具和应开发应用程序的种类也很重要。这里就不能不提到Microsoft公司的.NET Framework平台。.NET Framework 是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。它提供一个一致的面向对象的编程环境、提供一个将软件部署和版本控制冲突最小化的代码执行环境等等非常优秀的特点。在以后介绍开发过程中将简单阐述。
再次,界面的设计也是MIS的一个重点。界面一定要具有易学性及易使用性。在当今流行的程序设计中,设计包含用户界面的应用程序时有两种选择:Windows 窗体和 Web 窗体。两者在开发环境中都具有完全的设计时支持,并且可以提供丰富的用户界面和高级应用程序功能以解决业务问题。要根据应用程序的具体功能来选择到底开发何种应用程序。我所开发的这个图书馆管理信息系统是这两者的结合。在管理功能方面,我使用了传统的WinForms技术。而在读者使用方面的功能模块,是用webForms开发的。
think58.com [资料来源:THINK58.com]
3.1 数据库设计
数据库技术是20世纪60年代后期产生何发展起来的一项计算机数据管理技术,现广泛运用与各种信息处理以及科学研究上。数据库技术已经成为当今时代非常重要的技术。
当今流行的数据库系统主要是以关系数据库为代表的第二代数据库系统。[1]主要有SQL Server、Oracle、Sybase等。
图书馆管理信息系统选用的是SQLserver2000数据库管理系统。选择它的原因有:SQLserver2000功能强大,能完整实现数据库系统的所有功能。再者,我们选用的系统开发平台是微软公司的.Net Framework平台,它很好的支持了其公司的数据库产品SQLserver2000,而且为了加快数据处理速度,.NET Framework平台中还专门有一个SQL Server数据提供程序(System.Data.SqlClient)。
图书馆管理信息系统使用SQLserver2000数据库管理系统,最后设计的数据库表如下:
数据库名称lib2004
数据表有
:
表1 管理员表(manager)
名称 类型 长度 说明
Man_id
Man_pwd nvarchar
nvarchar 50
12 管理员账号(主键)
管理员密码(not null)
Man_purview nvarchar 10 管理员权限(not null) 本文来自think58
图书馆信息表(libInfo)存放图书馆信息,只有一条记录
字段名称 类型 长度 说明
No Int 4 等于1
Lib_name nvarchar 50 图书馆名称
Lib_org nvarchar 50 隶属单位
Lib_tel nvarchar 50 电话号码
Lib_adr Nvarchar 100 详细地址 内容来自think58
表2 图书表(book)
字段名称 类型 长度 说明
Book_id Int 4 图书编号(自动增长) unique约束
Book_code nvarchar 50 条码号(主键)
Book_name nvarchar 50 图书题名(not null)
Book_pub nvarchar 50 出版社
Book_isbn nvarchar 50 ISBN号
Book_pubdate smalldatetime 4 出版日期
Book_author nvarchar 50 图书作者
Book_page Int 4 图书页数
Book_price money 8 图书价格
Book_adddate smalldatetime 4 入馆日期
Book_place nvarchar 50 存放位置(外部键- place. Book_place)
Book_sort nvarchar 50 图书分类(外部键- booksort. Book_sort)
Book_remarks nvarchar 4000 备注
本文来自think58
[资料来源:http://think58.com]
think58好,好think58 [版权所有:http://think58.com]
表3 读者表(au)
字段名称 字段类型 长度 说明
Au_serial int 4 读者序号(自动增长) unique约束
Au_id nvarchar 50 借书证号(主键)
Au_name nvarchar 50 读者姓名
Au_sex nvarchar 2 读者性别(只能为‘男’或‘女’)
Au_sort nvarchar 50 读者类别(外部键- ausort.Au_sort)
Au_adddate smalldatetime 4 添加日期
Au_adr nvarchar 50 读者地址
Au_password nvarchar 12 读者密码(12位)
Au_email nvarchar 50 读者email
Au_remarks nvarchar 4000 读者详细资料 think58.com
表4 借阅情况表(borrow)
字段名称 字段类型 长度 说明
Number int 4 编号(自动编号 主键)
Au_id nvarchar 50 读者编号(外部键-au.Au_id)
book_code nvarchar 50 图书编号(外部键-book.book_code)
Borrow_date smalldatetime 4 借阅日期(not null)
Should_date smalldatetime 4 应归还日期(not null)
Return_date smalldatetime 4 归还日期
forfeit money 4 罚款金额
think58.com
[来源:http://www.think58.com]
[资料来源:http://think58.com]
copyright think58 [来源:http://www.think58.com]
[版权所有:http://think58.com]
表5 图书存放位置(place)
字段名称 字段类型 字段长度 说明
Book_place nvarchar 50 存放位置(主键)
Place_remarks nvarchar 4000 存放位置具体说明 [资料来源:www.THINK58.com]
表6 图书分类(booksort)
字段名称 字段类型 字段长度 说明
Book_sort nvarchar 50 图书类型(主键)
Sort_remarks nvarchar 4000 分类具体说明 本文来自think58 [资料来源:http://www.THINK58.com]
表7 读者分类(ausort)
字段名称 字段类型 长度 说明
Au_sort nvarchar 50 读者类型(主键)
Au_borrowdays Int 4 最长借阅时间
Au_borrowbooks Int 4 最大借阅图书数
think58 [版权所有:http://think58.com]
[资料来源:THINK58.com]表8 借书证挂失(aulost)
字段名称 字段类型 字段长度 说明
Lost_id nvarchar 50 挂失的读者编号 主键
Lost_date smalldatetime 4 挂失时间
[版权所有:http://think58.com]
表9图书损坏赔偿 (booklost)
字段名称 字段类型 字段长度 说明
Number Int 4 编号(自动增加,主键)
Au_id nvarchar 50 丢失图书的读者编号
Book_name nvarchar 50 图书名称
Book_isbn nvarchar 50 ISBN
Lost_money Money 8 赔偿金额
think58 [来源:http://think58.com]
[来源:http://www.think58.com]
数据库表关系如下:
think58.com [资料来源:http://THINK58.com]
copyright think58 [来源:http://think58.com]
内容来自think58
think58好,好think58 [资料来源:http://THINK58.com]
本文来自think58 [来源:http://www.think58.com]
图3 数据库关系表
以下我们讨论数据库设计方法时均以图书馆管理信息系统数据库(lib2004)为例.
[来源:http://www.think58.com]