本科毕业设计基于c#的图书馆管理系统的设计与实现Word文档下载推荐.docx
《本科毕业设计基于c#的图书馆管理系统的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《本科毕业设计基于c#的图书馆管理系统的设计与实现Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
本论文所介绍的图书馆管理信息系统就是为了使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
2.开发工具介绍
2.1SQLSERVER2000
SQLServer2000是微软公司大型数据库服务器,它使用了最先进的数据库构架,与WindowsNT/2000平台紧密集成,具有完全的Web功能,人们用它可方便地管理数据库和开发应用程序。
它通过对高端硬件平台、网络和存储技术的支持,为最大的Web站和企业的应用提供了可扩展性和高可靠性,能在Internet商业领域快速建立应用。
此外,还增强了安全性,保护防火墙内外的数据,支持基于角色的安全并拥有安全审计工具。
SQLServer2000数据库服务器的自动调整和自动管理技术在数据库领域中处于领先地位。
因此,我选择了SQLServer2000作为开发本系统使用的数据库。
2.2ASP.NET
在.NET环境下使用了ADO.NET构建数据库应用系统中的数据访问层的步骤和方法。
由于ADO.NET技术对ADO数据访问技术有了较大的改进,使得开发人员能够以较为灵活的方式查询和操作数据以及更新数据源,是所有数据驱动的.NET应用程序或者Web服务的核心部件。
通过对这些技术的了解,使我们对.NET环境下如何开发数据库应用系统有了一个系统的、感性的认识。
在后台代码的功能实现上,ASP.NETWeb应用程序可以使用多种语言来开发,但是VisualC#.NET作为专门针对Microsoft的.NET战略而推出的语言,它对.NETFramework和ASP.NET具有最为全面的支持。
可以说,VisualC#.NET是开发ASP.NETWeb应用程序较好的语言。
结合使用VisualC#.NET和ASP.NET,用户可以方便的开发出功能强大的Web应用程序。
ASP.NET的另一个强大的功能是它的网页处理时的三层构架,即浏览页面的前台HTML实现、浏览页面的后台C#代码的编写及后台代码与数据库的连接,正是其有这样的三层结构,所以它的安全性得到了很好的保障,这即为我们在上面所说的ADO.NET的一个具体的形式,也是对ADO.NET的实现方式有一个大概的了解,我们可以通过下面的数据访问流程图2.1所示:
图2.1ASP.NET的三层结构
从图片中可以很明显的看出,在显示层中,ASP.NET有自己的显示页面(.aspx),在这个显示页面中存在着本身的后台代码(CodeBehind),之后在页面运行时,后台代码开始对逻辑层中的BusinessLayer的调用,触发系统后台的另外的.dll文件的运行,然后就是BusinessLayer通过关键字对DataLayer层文件的连接,最后对数据库的直接的访问是DataLayer中的层文件,通过数据库的访问后取得的数据按每层相连的方式再返回到ASP.NET的显示页面显示出来,用户即可以浏览取到的数据。
通过前台的首次请求到最后数据的显示通过几个层次,所以要想通过非法的手段去修改数据库那将是非常困难的。
也正是由于ASP.NET的这种功能,所以所做的图书馆管理系统也就选择了这种开发平台。
3.中小型图书馆管理系统的需求分析
本系统主要实现图书的录入,查询等功能,采用面向对象的分析方法对图书馆管理系统功能需求进行划分,可将需求划分为:
管理员对功能的需求和读者对功能的需求两大部分。
具体列举如下
3.1图书馆管理员的需求
通过详细分析可知,管理员对功能的需求又可以分为图书馆总管和书库管理员对各自的功能需求。
由于系统开发的总体任务是实现各种信息的系统化、规范化和自动化。
所以图书馆总管对系统需要完成的功能有:
读者信息的管理、图书信息的管理、书库管理员的管理等。
书库管理员的功能主要为:
出借图书、归还图书操作及自己密码的修改等功能。
对读者信息的添加:
当有新的读者需要加入到图书馆管理系统中时,图书馆总管就要对读者的各种信息进行集体录入。
此外由于我们所做图书馆管理系统的读者主要针对的是学校的学生,故我们录入的主要是学生的各种信息,包括读者编号、读者姓名、通用密码、读者性别、所属年级、用户所属的权限。
其中读者的编号可以是学生入学时的学号,唯一性的。
权限的级别在下面的数据表中我们可以看到。
读者信息的查询、修改和删除:
当图书馆总管需要查询某个读者的基本信息和借阅信息时,他们在服务端可以通过学号或者姓名可以找到这些信息,在找到后可以对这些基本的信息进行修改和保存。
另外对于删除的功能则为,当某些学生快要毕业了,图书馆的管理人员就要对这些读者在图书馆中的一些基本信息进行删除掉,在这个删除的过程中,图书馆的管理人员主要是进行模糊查找,找到学生编号前面的年份即可,然后可以很方便、快捷地进行数据删除功能。
对图书信息的录入:
由于图书馆在每年都要购买许多的新书,所以对这些新买的新书进行编号添加到图书馆管理系统中将是一个非常巨大的工程,因此在图书的录入过程中包含了图书的一些基本的信息,有:
图书编号、图书名称、图书作者、图书出版社、ISBN编号、出版日期、图书价格、图书所属书库、图书到馆日期等信息。
图书信息的查询、修改及删除:
在这个过程中,我们是为了及时的了解图书在馆的最新的情况,图书馆总管首先可以通过查询找到某一类编号的图书,然后查看它们的在馆信息,另外在查找到该图书后可以修改及保存图书修改后的信息,再一个重要的功能就为当某些图书在借阅过程中破损或遗失什么的,我们暂时就要对该图书进行删除或者是修改该图书,只有这样及时的修改图书信息,读者在借阅过程中就可以很方便的找到所需要的图书,省去了许多不必要的麻烦,实现了快捷的目标。
对书库管理员的管理:
在该过程中,主要是对新到的书库管理员进行添加,修改和删除等操作。
这些操作我们可以仿照在对读者的操作中实现,只是我们在做数据库表时是不一样的。
书库管理员的信息主要为:
管理员编号、管理员密码、管理员名称、管理员权限等级问题等。
图书借阅管理:
在这个功能模块中,主要是书库管理员对图书馆中的图书进行借出的操作,在这一步的实现过程中,当读者找到了自己所要的图书后交给书库管理员,书库管理员通过读取读者的借阅信息,看该读者是不是已经达到了借书的上限了,如果达到了,则该读者不能读图书的借阅,若没有达到上限,就可以对图书的借阅,书库管理员在系统中填写图书出借信息,然后显示借书成功提示信息。
因此书库管理员填写的借书单包括的信息有:
读者编号、图书编号、图书名称,另外在该表中还存在借书日期、应还日期、超期天数、罚款钱数的一些信息都是由系统自己去统计和完成。
图书归还管理:
这个模块的操作是比较简单的,当读者把把所要归还的图书给书库管理员时,书库管理员执行的是一个与借阅管理相反的操作,在借阅管理中是图书后台数据库借书表的插入操作,而归还图书则为对后台数据库借书表的删除操作,它删除的记录是同时满足了读者编号和图书编号都相符合的记录。
同时,如果该读者在当前的还书日期超过了图书应还的日期,那么后台数据库对借书表中的超期天数、罚款钱数都有相应的计算,并在读者还书时显示出来该读者是否欠费,若是的话,就限制该读者的在图书馆的借阅功能和其它的一些功能;
如果当前日期没有超过应还日期,则会提示图书归还成功。
管理员密码的修改:
书库管理员在这个功能模块上可以修改自己的密码,而且这些操作是属于与自己本人编号相对应的改动,对系统上并没有多大的影响。
和读者密码的修改在代码实现方式上有许多相似性。
3.2读者的需求
由于读者对主数据库表的修改权限不大,所以读者主要是浏览方面的功能。
包括了读者本身信息的查看及修改、图书信息的查询、购书推荐、预约图书、查看新书通报、查看图书馆公告、图书馆留言等功能。
读者本身信息查看及修改:
当一个读者到图书馆借阅图书或者归还图书时,他要对自己的一些基本的信息和借阅信息都要有相应的查看,通过查看这些已经存在的信息,读者可以了解到他是否还可以再借阅图书,现在已经借阅了几本图书,是哪几本书,并且这些书本的归还时间是什么时候,是否超期等,这样读者对自己的借阅信息就有了一个大概了解,就可以避免不盲目的跑去借阅图书了。
对于修改操作主要的还是读者自己的密码的修改,因为这只关系到他自己的事情,所以对数据库中其它的数据没有太大的影响。
图书信息查询:
在这个模块中,读者可以对图书的信息进行查询,查询的方法有两种,一种是模糊查询,另一种是精确查询。
对于模糊查询只是对图书的某一个字段查找,而且是任意匹配的形式。
而对于精确查询则为对图书的各个字段进行查找,当添加了某个查询条件后,查询结果的记录集都在变化,这样读者可以方便的找到自己所要的图书。
另外在查看记录集的过程中读者可以了解到该书本是否在馆可借,如果可借就可以在图书所在书库中找到,若没有的话,在图书所在书库中则不可以找到。
这就是读者对图书的查询功能。
预约图书:
在该模块中,当读者去图书馆借阅图书时,图书馆中的该书或许已经出借了且现在的库存数目为0,那样的话,读者暂时就不可以借阅该图书了,所以读者可以在网络上对该书进行预约操作,这样当图书馆中该书有了库存后,他就有对该图书的优先借阅的权利,所以这可以帮助读者在借阅这方面提供很大的便利,由此也就产生了一个图书预约表,包含信息有:
读者编号、图书编号、图书名称、图书作者、ISBN编号、所属书库等信息。
查看图书馆留言及公告:
在这个功能模块上,我们主要是对图书馆最近的公告和信息进行查看,了解图书馆最近的一些图书管理方面的信息和最新图书的信息,另外在留言板上读者可以提出自己对图书馆在管理方面自己的意见或建议什么的,这对加强图书馆的管理次序是有很大的帮助,另外读者自己在规范次序上也会有很大的改变。
3.3性能需求
图书馆在正常运行中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息,因此需要对读者资源、书籍资源、借书信息,还书信息进行及时处理,及时了解各个环节中信息的变更,力求提高管理效率。
检验图书馆服务水平的重要标准。
1.环境:
图书室、阅览室环境清洁、安静、整齐、舒适;
2.人员:
图书馆管理工作人员热情、认真、主动,有专业能力;
3.设备:
图书馆设施先进、齐全,能满足功能需要;
4.文献:
图书馆的文献资源符合工作性质与目标,数量多,质量好,有特色。
一般的性能需求是指相互消息传递顺利,协议解析正确,界面友好,运行时间满足使用需要,安全性得到安全保证,不会出现基本的错误等。
4.图书馆管理系统的可行性分析
4.1结构的选择(B/S与C/S)
随着技术的进步,更多的层次被划分出来。
目前,在Internet应用体系结构中,商务逻辑处理被单独划分为一层,作为Internet服务器。
它对用户通过浏览器提交的表单进行分析,并得出对数据库服务器进行的查询,交给数据库服务器去执行并得到查询的结果,最后由Internet服务器用标准的HTML语言反馈回浏览器,称为B/S(Brother/Server)结构。
计算机技术发展日新月异,传统的C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。
而B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件,没能提供用户真正期望的开放环境;
B/S结构则不同,它的前端是以TCP/IP协议为基础的,企业内的WWW服务器可以接受安装有Web浏览程序的Internet终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。
4.2技术可行性
技术可行性是从前台和后台的开发工具选择上进行分析的。
微软公司开发的ASP.NET远远超越了ASP及其它开发软件,同时也给Web开发人员提供了更好的灵活性,有效缩短了Web应用程序的开发周期。
而SQLServer是Microsoft公司开发的大型关系数据库管理系统,具有强大的关系数据库创建、开发、设计和管理功能。
其版本SQLServer2000将数据库与Internet紧密连接,可以通过Web浏览器显示数据的操作,具有客户机/服务器的结构。
SQLServer2000提供了对分布式事务处理的支持,并对开发工具具有良好的支持,为大型数据库项目提供了企业级解决方案,因此我们在图书馆管理系统中使用了在.NET环境基于Web页面的B/S服务模式。
4.3经济可行性
在系统运行后的维护是非常重要的,并且其维护的费用还是很大的,如果是一个WindowsForm的管理系统,要对数据的维护将要付出很大的代价,而且它的维护人员也比较的多和分散,因此对数据库的操作在各个时间段都是很频繁的,人也很容易出现疲劳,问题也就会比较容易发生。
但是我们现在用基于Web的B/S模型,我们修改数据的操作只在服务器端就可以了,而且它的人员也比较集中,对数据的修改只是在某段时间内比较的频繁,过了这个时间后就较轻松,所以人的精力也比较集中,那么数据库的操作也就不怎么会出现问题,因此在这方面的维护费用也大大的减少。
4.4操作环境及运行环境
软件环境:
操作系统:
WindowsXP,数据库;
SQLSverver2000,前台环境:
Dreamweaver,VisualStudio.NET
硬件环境:
Cpu:
Pentium166MHz以上,内存至少128MB,硬盘空间80M,显示器800*600或更高分辨率。
5.图书馆管理系统的设计
5.1E-R图分析与设计
利用ER方法进行数据库的概念设计,可分成三步进行:
首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。
5.1.1设计局部E-R模式
实体和属性的定义:
图书(图书编号,图书名称,作者,出版社,出版日期,价格)
借阅者(借书证号,姓名,性别,年级,密码)
图书类别(图书类别编号,类别描述)
ER模型的“联系”用于刻画实体之间的关联。
一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。
若有联系,进一步确定是1:
N,M:
N,还是1:
1等。
还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。
联系定义如图所示。
解释如下:
一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;
一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;
一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。
5.1.2设计全局E-R模式
所有局部E-R模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
一.确定公共实体类型
为了给多个局部E-R模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。
在这一步中我们仅根据实体类型名和键来认定公共实体类型。
一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
二.局部E-R模式的合并
合并的原则是:
首先进行两两合并;
先和合并那些现实世界中有联系的局部结构;
合并从公共实体类型开始,最后再加入独立的局部结构。
设计全局E-R模式的目的不在于把若干局部E-R模式形式上合并为一个E-R模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
首先在该过程中发生的实体是图书信息和用户信息,他们之间产生的关系是借阅关系,在这个借阅关系中,产生的对应关系为:
图书信息:
用户=1:
1,用户:
图书=1:
N,从这个关系中我们可以看到:
每一本图书只能被一个读者借阅,而一个读者又可以借阅多本图书的这层关系。
另外在上图中我们可以看到图书信息和用户信息又有自己的一些关系属性,通过这些关系属性可以唯一的区别这些实体。
这在下面的图5.1—图5.6中可以看出
nnm
m
mn
图5.1总体E-R属性图
图5.2图书属性图
图5.3借阅信息属性图
图5.4用户信息属性图
图5.5预约信息属性图
图5.6推荐信息属性图
由于概念设计的结果是E-R图,DBMS一般采用关系型(该系统所使用的MSSQLServer就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。
由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行,导出系统主要的初始关系模式如图所示:
图5.7关系模型
5.2数据表的创建
我们可以设计出了后台数据库的各个数据表。
如表5.1—表5.10所示:
表5.1管理员表
字段代号
字段类型
字段长度
是否可以为空
备注
Admin_no(关键字)
Nvarchar
16
否
管理员编号
Admin_pwd
可以为空
管理员密码
Admin_name
4
管理员名称
Admin_uppower
20
管理员权限
表5.2借书表
Duzhe_no
50
读者编号
Book_no
图书编号
Book_name
图书名称
Borrow_date
Datetime
8
借书日期
Back_date
归还日期
Pass_date
Int
超期天数