1、目次1 引言22 系统的开发背景、开发环境、目的和意义32.1 开发背景32.3 开发的目的及意义32.3 开发环境43 系统需求分析和可行性分析53.1 系统需求分析53.2 可行性分析64 系统数据库设计74.1 系统数据库E-R图74.2 系统数据库84.2.1 操作用户表84.2.2 读者挂失表84.2.3 读者信息表94.2.4 会员级别表94.2.5 借阅管理表94.2.6 图书类别表104.2.7 图书信息表105 总体设计115.1 系统功能115.2 系统流程图135.2.1 图书流通流程135.2.2 系统管理流程146 系统功能模块结构与实现146.1用户登录界面146.
2、2 系统主界面156.3 系统功能界面156.3.1 图书管理功能156.3.2 读者管理功能166.3.3 借阅管理功能186.3.4 查询管理功能196.3.5 系统管理功能226.4 相关代码23结 论28致 谢29参 考 文 献301 a引言 在当今社会随着计算机的发展及网络技术的应用,计算机应用在全球范围内的普及。当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。而在日常生活中信息技术的不断融入,在技术越来越先进的同时,我们应该从以前繁琐的事务中解放出来 ,来提高了我们的工作效率。而目前在大型的图书馆已经有一整套比较完整的信息管理系统,而在一般小型的图书馆中工作大部分还是进
3、行着手工管理,工作起来效率很低,并且不能及时了解图书馆各类图书的库存,图书的入库和更新比较麻烦等等,不便于动态及时调整图书结构。由于不可避免的人为因素也可能会造成数据的遗漏、误报。图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息,传统的管理方法既浪费人力物力财力,又容易导致各种错误的发生,面对图书馆数以万计的图书、纷繁复杂的读者信息、频繁更替的借还书信息,传统的直接方法不但管理起来及其不方便,而且极容易出现漏洞。随着电子计算机和通信技术的发展人类已经逐渐地进入信息化社会,人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此开发相关的管
4、理信息系统已经成为各行各业的必要和必需了。管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看可以提高工作效率,对外来看获得竞争优势。为了更好的适应图书馆租借的管理需求,缓解手工管理存在的弊端,利用计算机信息化管理有着储存信息量大,速度快、便于管理等特点,实现一个智能化、系统化、信息化的管理系统是十分必要的。这不但减缓了工作压力,同时也提高了工作人员的自身素质。充分利用计算机的功能实现对图书的管理,将会使图书管理工作大大减轻,方面友好的图形用户界面,简便的操作,完善的数据库管理,将会使得图书管理系统极大限度地
5、应用于现代化图书管理,成为图书管理人员的得力助手。2 系统的开发背景、开发环境、目的和意义2.1 a开发背景一直以来人们使用传统的人工方式管理图书馆的日常工作,在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工,对于图书馆的借书和还书过程,想必大家都已很熟悉。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成
6、了。 以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。目前,国内外许多软件商已经开发出很多较好的商品化图书管理软件,这些图书管理软件大多数是面向大型图书馆而开发的,其专业性强、分工较细、操作复杂,难以满足社区图书馆管理工作的需要。一般情况下,较多的图书馆规模较小,在功能上不应太复杂,应以简单为主。比如,一个图书租借管理系统提供包括客户信
7、息管理、图书信息管理、用户信息管理、租还书、报表显示和综合查询等功能。这样的小型图书租借管理系统运用灵活,成本大大降低,而且其功能基本满足图书管理的需要。2.3 开发的目的及意义图书馆在正常运行过程中需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆对图书借阅信息的自动化的管理,能够更快速的满足读者的借阅需求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。随着科学技术的发展,办公自动化、计算机辅助设计越来越广泛的应用,促使文件从传统的纸质形态转变为以电子形态为主,未来多数文件将以电子文件的形式存在
8、。文件载体的这一变化,给我们的生活和工作带来新的生机和活力,也在管理形式、管理方法等诸多方面给广大档案工作者提出严峻的挑战。电子档案的现代化手段,在档案存储、输出、处理等方面,具有纸质档案无法比拟的优越性,日益为档案界瞩目。作为计算机应用的一部分,使用本系统对图书类资源进行管理,具有着手工管理所无法比拟的优点。如:检索快、查找方便、可靠性高、存储量大、保密性好等,对于加快我国图书馆自动化整体发展都具有重要意义。2.3 开发环境1)C#语言C#是一种安全的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不
9、允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。2)SQL Sever 2005介绍SQL Sever 2005是一个全面的、集成的、端到端的数据解决方案,他为企业中的用户提供了一个安全、可靠和高效的平台,用于企业数据管理和商业智能应用。SQL Sever 2005为信息工作者带来了强大的、熟悉的工具,同时减少了再从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。通过全面的功能集和现有系统的集成性,以及对日常任务的自动化管理能力,SQL
10、 Sever 2005为不同规模的企业提供了一个完整的数据解决方案。3)Microsoft Visual Studio 2008介绍Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境,Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。3 系统需求分析和可行性分析3.1 系统需求分析图书租借业务流程:(1)读者在目录厅查阅索引卡;(2)读者写出图书租借的图书编号、图书书名交给图书租借管理员,并出示借书证;(3)管理者输入读者借书证号。系统首
11、先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过会员权限,若已达权限,拒借,未达权限,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。) (4)图书管理员根据图书租借的图书编号、图书书名到书库找书;(5)图书管理者确认被租借图书及图书租借者的相关信息;(6)确认无误后将图书交给读者。(7)还书时,从借书文件中读出与读者有关的记录,查阅所借日期,如超期(根据读者会员权限的规定)作罚款处理。否则,修改库存目录与借书文件。 对图书管理者可查看及更改图书馆图书租借情况和读者的相关信息,读者只能够凭借个人相关证件到图书馆
12、经图书管理员同意方可查询和修改个人信息。图书租借管理系统的信息量大,数据安全性和保密性要求高。本功能实现图书租借信息、读者信息、总体借阅情况信息的管理。图书管理员可以浏览、查询、添加、修改图书租借的基本信息;浏览、查询、添加、删除和修改图书租借读者的基本信息;浏览、查询图书租借的借阅信息;能添加、删除和修改借阅信息。3.2 可行性分析 通过对图书馆各个方面的具体了解,现对本图书租借系统的可行性进行分析。(1)经济可行性分析作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,
13、系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。(2)技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用SQL Sever 2005,这些软件在系统开发中已被
14、大量应用,技术上都比较成熟,计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。(3)操作可行性分析操作可行性主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到:(a)对传统管理理念的冲击,可能引起管理层的变动和人员的调整。(b)对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。(c)对图书馆与读者之
15、间业务方式的转变和扩充。4 系统数据库设计41 系统数据库E-R图操作用户职责说明用户名称用户姓名密码所在部门联系电话管理权限图4-1-1 操作用户实体E-R图读者性别读者读者姓名出生日期证件名称证件号码会员级别办证日期联系方式电子邮件读者编号图4-1-2 读者信息实体E-R图图书图书书号存放位置图书单价图书页数库存数量图书印数遗失数量出借数量图书版次图书规格图书书名所属丛书图书作者出版公司入库数量入库日期图4-1-3 图书信息实体E-R图nmn操作用户管理图书读者借阅nm图4-1-4 实体关系E-R图42 系统数据库4.2.1 操作用户表用来记录图书馆各部门管理者的登录名和密码以及管理权限,
16、如表4-2-1所示。表4-2-1 列名数据类型长度允许空备注用户名称nvarchar()20NPK密码nvarchar()20N用户姓名nvarchar()10Y所在部门nvarchar()30Y联系电话nvarchar()15Y职责说明nvarchar()50Y图书管理intY读者管理intY借阅管理intY查询管理intY分配权限intY4.2.2 读者挂失表用来记录挂失读者的相关信息,如表4-2-2所示。表4-2-2 列名数据类型长度允许空备注读者编号intNPK读者姓名nvarchar()10Y证件名称nvarchar()10Y证件号码nvarchar()30Y挂失日期datetime
17、Y补充说明nvarchar()50Y4.2.3 读者信息表用来记录读者相关信息,如姓名、证件号码等,如表4-2-3所示。表4-2-3 列名数据类型长度允许空备注读者编号intNPK读者姓名nvarchar()20N读者性别nvarchar()4Y出生日期datetimeY证件名称nvarchar()10Y证件号码nvarchar()30N会员级别nchar()10Y办证日期datetimeN联系电话nvarchar()20Y手机号码nvarchar()20Y电子邮件nvarchar()30Y补充说明nvarchar()100Y4.2.4 会员级别表用来记录读者的是否为会员及所属会员级别,如表4
18、-2-4所示。表4-2-4 列名数据类型长度允许空备注编号intN级别名称nchar()10NPK出借天数intY出借册数intY会员金额floatY补充说明nvarchar()150Y4.2.5 借阅管理表用来记录图书的借阅信息,如表4-2-5所示。表4-2-5 列名数据类型长度允许空备注编号intNPK读者编号nvarchar()20Y读者姓名nvarchar(10)Checkednvarchar()10Y会员等级nvarchar(5)Checkednvarchar()5Y图书书号nvarchar()20Y图书书名nvarchar(20)20Y借出日期datetimeY应还日期dateti
19、meY归还日期datetimeY遗失图书intY补充说明nvarchar(50)Checkednvarchar(50)50Y4.2.6 图书类别表用来描述图书类别,方便对图书的放置位置、读者借阅查询进行管理,如表4-2-6所示。表4-2-6 列名数据类型长度允许空备注类别编号intY类别名称nvarchar()50PK补充说明nvarchar()1504.2.7 图书信息表用来记录图书相关信息,如表4-2-7所示。表4-2-7 列名数据类型长度允许空备注图书书号intNPK图书书名nvarchar()20Y图书作者nvarchar()20Y出版公司nvarchar()30Y图书类别nvarch
20、ar()10Y图书版次nvarchar()5Y图书规格nvarchar()50Y图书印数intY图书页数intY图书单价floatY所属丛书nvarchar()30Y入库日期datetimeY入库数量intY出借数量intY遗失数量intY存放位置nvarchar()50Y补充说明nvarchar()150Y5 总体设计5.1 系统功能通常,图书馆总是要面临大量的读者信息、书籍信息以及两者互相作用产生的借书信息和还书信息,因此,图书租借管理系统应该能够及时对读者资源、书籍资源、借书信息、还书信息进行管理,并了解各个环节中发生的信息变更,力求提高管理效率。该租阅管理系统可以协助管理人员进行浏览、
21、查询、添加、删除、修改等相关数据,有效的提高工作效率,便于对书籍进行统计和管理。本系统要完成的功能有: 图书管理部分:这一部分包括图书类别管理和图书信息管理两部分。其中,图书类别管理包括添加图书类别、修改图书类别等:图书信息管理包括图书信息的添加、图书信息的修改、图书信息的查询、图书信息的删除等。借阅管理部分:借阅管理包括借书信息的添加、借书信息的修改、借书信息的删除等。图书借阅,可根据读者级别提示读者是否还能借书,提示读者不能借相同的书,图书归还时可提示是否超期等。系统管理部分:包括用户的添加、删除和修改,还可以设置用户的权限,不同的用户根据自己的权限访问系统。借书借还图书管理图书管理系统系
22、统维护管理设置系统用户添加用户删除用户修改用户密码分配用户权限读者数据修改读者数据删除读者数据添加添加读者级别修改读者级别删除读者级别读者登记处理读者查询处理编辑读者权限读者管理图书信息添加图书信息修改图书信息删除图书入库处理图书查找处理图书管理借还图书管理系统功能模块:图5-1-1 系统功能模块图本系统有如下优点:1 安全化:因为系统环境不是一般办公室环境,而是带有一定复杂性的商业环境,所以如进行操作错误,将会带来一定的经济损失,为了确保安全性,对进入本系统设置了密码,不知道密码的人是无权进入本系统。2 模块化:依据系统结构化设计方法,把整个系统分为若干个功能模块。这样可以方便用户进入系统的
23、操作和使用。3 智能化:在添加客户和新书籍时,本系统设计多客户编号、书籍编号采取了自动加1的功能,防止空号和重号,客户租借与归还时能智能计算。5.2 系统流程图 5.2.1 图书流通流程YES罚款借书选择项YESNO退出系统启动系统输入口令检验YESNOYES更新数据库继续NONO还书用户选择显示主菜单继续更新数据库确认错误信息输入书号输入有效证号检验输入书号退出NOYES过期用户管理图书管理读者管理退出增、删、改、查询图书或读者信息增、删、改系统用户分配使用权限选择项YES启动系统输入用户口令检验退出系统NO5.2.2 系统管理流程6 系统功能模块结构与实现6.1用户登录界面登录界面中输入用
24、户名和密码,如果输入正确则进入主界面,反之视为非法用户,无法进入该系统。图6-1-1 系统登录界面6.2 系统主界面登录成功则进入系统主界面,系统包括图书管理、读者管理、借阅管理、查询管理、系统管理、帮助等功能。主界面是管理系统的重要部分,勾勒出整个应用程序的概况,其上的所有更能也就是系统的所有功能,相当于所有操作的大本营,要想进入所有的其他窗口都要通过主界面,它就像一个母窗口,在系统运行周期内,始终在后边显示,知道推出系统。图6-2 系统主界面6.3 系统功能界面6.3.1 图书管理功能 在这个窗体上实现了图书类别设置、图书信息管理,还可以通过查找功能找到特定的图书对之进行修改。图6-3-1
25、-1 图书类别设置界面图6-3-1-2 图书信息管理界面6.3.2 读者管理功能 图书管理包括读者办证管理、会员级别设置、读者挂失管理。图6-3-2-1 读者办证管理界面图6-3-2-2 会员级别设置界面图 6-3-2-3 读者挂失管理6.3.3 借阅管理功能 借阅管理包括图书出借管理、图书归还管理。图 6-3-3-1 图书出借管理界面图 6-3-3-2 图书归还管理界面6.3.4 查询管理功能借阅管理包括在借图书查询、在馆图书查询、挂失图书查询、挂失读者查询、图书借史查询。图6-3-4-1 在借图书查询界面图6-3-4-2 在馆图书查询界面图6-3-4-3 挂失图书查询界面图6-3-4-4
26、挂失读者查询界面图6-3-4-5 图书借史查询界面6.3.5 系统管理功能系统管理包括切换操作用户、用户管理、修改用户密码。选择切换用户操作则进入到登录界面,输入用户名和密码,如果输入正确则进入主界面,查看相应用户的管理权限,反之视为非法用户,无法进入该系统。图6-3-5-1 操作用户管理界面图6-3-5-2 用户修改密码界面6.4 相关代码(1)归还图书:private void btnGh_Click(object sender, EventArgs e) string sql = ; if (lblGh.Text.Trim()!=) MessageBox.Show(您已经归还该图书,无需
27、再归还!); return; else /是否超期 DateTime returndate = DateTime.Parse(this.dtpDatetime3.Text.Trim(); TimeSpan myspanreturn = returndate.Subtract(DateTime.Parse(dtpDatetimeH.Text);/是否超期 if (myspanreturn.Days 0) MessageBox.Show(您已经超期 + myspanreturn + 天!); if (lblYs.Text.Trim() = 是) sql = update 借阅管理 set 归还日期
28、= + dtpDatetime3.Text.Trim() + ,遗失图书=null where 读者编号= + txtFindNum.Text.Trim() + and 编号= + lblBh.Text.Trim() + ; string s = update 图书信息 set 遗失数量=遗失数量-1 where 图书书名= + txtBookName.Text.Trim() + and 图书书号= + txtBookNum.Text.Trim() + ; operatedb.ExecuteSql(s); else sql = update 借阅管理 set 归还日期= + dtpDateti
29、me3.Text.Trim() + where 读者编号= + txtFindNum.Text.Trim() + and 编号= + lblBh.Text.Trim() + ; operatedb.ExecuteSql(sql); MessageBox.Show(归还图书成功!); string sql2 = update 图书信息 set 出借数量=出借数量-1,库存数量=库存数量+1 where 图书书名= + txtBookName.Text.Trim() + and 图书书号= + txtBookNum.Text.Trim() + ; operatedb.ExecuteSql(sql2
30、); FillDataGridView(); else if (lblYs.Text.Trim() = 是) sql = update 借阅管理 set 归还日期= + dtpDatetime3.Text.Trim() + ,遗失图书=null where 读者编号= + txtFindNum.Text.Trim() + and 编号= + lblBh.Text.Trim() + ; string s = update 图书信息 set 遗失数量=遗失数量-1 where 图书书名= + txtBookName.Text.Trim() + and 图书书号= + txtBookNum.Text
31、.Trim() + ; operatedb.ExecuteSql(s); else sql = update 借阅管理 set 归还日期= + dtpDatetime3.Text.Trim() + where 读者编号= + txtFindNum.Text.Trim() + and 编号= + lblBh.Text.Trim() + ; operatedb.ExecuteSql(sql); MessageBox.Show(归还图书成功!); string sql3 = update 图书信息 set 出借数量=出借数量-1,库存数量=库存数量+1 where 图书书名= + txtBookNa
32、me.Text.Trim() + and 图书书号= + txtBookNum.Text.Trim() + ; operatedb.ExecuteSql(sql3); FillDataGridView(); (2)图书挂失: private void btnGs_Click(object sender, EventArgs e) if (lblGh.Text.Trim() != )MessageBox.Show(您已经归还该图书,无需再挂失!); return; if (lblYs.Text.Trim() = 是) MessageBox.Show(您已经挂失该图书,无需再挂失!); retur
33、n; else string sql3 = update 借阅管理 set 遗失图书=是 where 读者编号= + txtFindNum.Text.Trim() + and 编号= + Convert.ToString(dgvBookGh0, dgvBookGh.CurrentCell.RowIndex.Value).Trim(); operatedb.ExecuteSql(sql3); MessageBox.Show(挂失图书成功!); string sql4 = update 图书信息 set 遗失数量=遗失数量+1 where 图书书名= + txtBookName.Text.Trim
34、() + and 图书书号= + txtBookNum.Text.Trim() + ; operatedb.ExecuteSql(sql4); FillDataGridView(); (3)读者信息管理:private void tsbSave_Click(object sender, EventArgs e) if (txtName.Text = ) MessageBox.Show(读者姓名不能为空!); return; if (cbxSex.Text = ) MessageBox.Show(读者性别不能为空!); return; if (cbxVip.Text = ) MessageBox
35、.Show(会员级别不能为空!); return; if (txtZjnum.Text.Trim() = ) MessageBox.Show(证件号码不能为空!); return; if (!Regex.IsMatch(txtPhone.Text.Trim(),d3,4-d7,8) errorPhone.SetError(txtPhone,联系电话格式不正确!); return; if (!Regex.IsMatch(txtTelephone.Text.Trim(), d11,11$) errorTelPhone.SetError(txtTelephone, 手机号码格式不正确!); retu
36、rn; if(!Regex.IsMatch(txtEmail.Text.Trim(),w+(-+.w+)*w+(-.w+)*.w+(-.w+)*$) errorEmail.SetError(txtEmail,电子邮件格式不正确!); return; errorPhone.Clear(); errorTelPhone.Clear(); errorEmail.Clear();if (AddOrEdit = 0) string sqlString1 = select * from 会员级别 where 级别名称= + cbxVip.Text.Trim() + ; DataSet ds1 = oper
37、atedb.GetDataSet(sqlString1, 会员级别); int count1 = ds1.Tables会员级别.Rows.Count; if (count1 = 0) string sql = insert into 会员级别(级别名称)values( + cbxVip.Text.Trim() + ); operatedb.ExecuteSql(sql); string sqlString2 = select * from 读者信息 where 证件号码= + txtZjnum.Text + ; DataSet ds2 = operatedb.GetDataSet(sqlStr
38、ing2, 读者信息); int count2 = ds2.Tables读者信息.Rows.Count; if (count2 != 0) MessageBox.Show(该读者信息已存在,请重新输入!); txtName.Focus(); return; string sqlString3 = insert into 读者信息(读者姓名,读者性别,出生日期,证件名称,证件号码,会员级别,办证日期,手机号码,联系电话,电子邮件,补充说明)values( + txtName.Text.Trim() + , + cbxSex.Text.Trim() + , + Convert.ToDateTime
39、(dtpDatetime1.Text.Trim() + , + txtZjname.Text.Trim() + , + txtZjnum.Text.Trim() + , + cbxVip.Text.Trim() + , + Convert.ToDateTime(dtpDatetime2.Text.Trim() + , + txtTelephone.Text.Trim() + , + txtPhone.Text.Trim() + , + txtEmail.Text.Trim() + , + txtBcsm.Text.Trim() + ); operatedb.ExecuteSql(sqlString3); MessageBox.Show(添加读者信息已成功!); FillDataGridView(); tsbCancel.Enabled = false; tsbSave.Enabled = false; if (AddOrEdit = 1) string sqlString = select * from 会员级别 where 级别名称= + cbxVip.Text.Trim() + ; DataSet ds= operatedb.GetDataSet(sqlString, 会员级别); int count = ds.Tables会员级别.Rows.Count; if (