1、摘要随着时代的发展,人们对工作的效率要求越来越高,综合性越来越强,生产专业化分工越来越细,组织管理日趋复杂。现代图书馆的日常管理工作是非常重要的,而且工作量很大,只有将日常的管理工作规范统一化,管理工作才会事半功倍。图书馆信息管理系统是学校管理机制的重要组成部分,通过对图书馆信息管理系统的运行管理机制进行调查研究, 开发了此图书馆信息管理系统。本系统中解决了学校管理事务中的常用问题及相关工作。根据这些信息,本系统的主要功能有系统管理、用户管理、图书管理、读者管理、图书管理、图书查询管理、图书借还管理等。图书馆信息管理系统的设计采用当今最为流行的编程语言之一的C#制作,数据库采用SQL SERV
2、ER 2005,提高了数据的存储安全性,系统整体框架采用C/S结构,利于系统和用户之间的交互,图书馆信息管理系统的功能设计基本达到了现代图书馆管理实际应用的需要,保障了图书馆信息的完整性,提升了图书馆的管理水平。图书馆信息管理系统是通过对信息管理各要素的闭环整合,实现了工作流、信息流和办公自动化的整合管理,提供了一个科学、合理、先进的信息化管理平台。关键词:图书管理;信息管理;C#;SQL SERVER 2005;C/S结构AbstractWith the development of the times, people are increasingly demanding the effic
3、iency of the work, increasingly integrated, increasingly fine division of labor specialization of production, organization and management become increasingly complex. The daily management of the modern library is a very important and a lot of work, only the daily management of the unified specificat
4、ion, management will be more effective. School library information management system is an important part of management, library information management system through the operation and management mechanism to investigate and study the development of the library information management system. The sch
5、ool management system to solve common problems and matters related to work. According to this information, the main function of the system management, user management, library management, the reader management, library management, library query management, library circulation managementLibrary Infor
6、mation Management System was designed with todays most popular programming languages of C #, databases using SQL SERVER 2005, improved data storage security, the overall framework of the system using C / S structure, between the benefit system and user Interaction, the function of library informatio
7、n management system to achieve the basic design of the practical application of modern library management needs to protect the integrity of the library information to enhance the librarys management. Library information management system of information management through the closed-loop integration
8、of the various elements to achieve a work flow, information flow and integration of office automation, management, and provides a scientific and rational, advanced information management platform.Key word:Library management, information management, C #, SQL SERVER 2005, C / S structure1.绪论1.1开发背景随着计
9、算机技术的飞速发展,计算机科学日渐成熟,作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理无法比拟的优点。图书馆管理信息的自动化处理,对于保障图书馆信息的完整性,加快图书资源的周转,提升管理水平,具有十分重要的意义。计算机管理具有检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等优点。这些优点能够极大的图书馆管理的效率,也是图书馆信息管理的科学化,正规化,与世界接轨的重要条件。任何学科的发展都与当时的环境和条件紧密相联。管理信息系统也是一样,在人类进入信息社会以后,出于对生存与发展的需要,人们开始尝试使用更先进的设备、技术和管理方法来处理各种问题,在图书馆信息管
10、理上,从图书馆日常事务的要求出发,针对性强,功能齐备,旨在实现图书与人员管理,以提高工作效率和管理水平。在迅猛发展的当今社会,知识变得越来越重要,终身学习的观念已经深入人心。而图书馆这一传统的获取知识的场所,它的地位也变的越来越重要。而图书馆的管理方法也更新了很多次,从最初的手工管理到现在的计算机管理等等。图书馆作为提供学习的场所,不仅要求便于管理,而且要求给读者和借阅者提供方便快速的查找、借阅和登记手续。 而目前的图书管理系统普遍存在着一些问题,首先,检索速度慢、效率低;因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行往往非常困难。其次,借书、还书工作量大;当借书、还
11、书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书、登记、实存图书的更新以及借出图书超期等事件的处理,其工作量之大可想而知,人工操作更是难以胜任,而且很容易出现各种各样的差错。另外,图书的更新与管理不能及时完成。图书馆的图书应根据科学技术的发展和管理工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计和管理工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。特别是对于发展中的高校,图书馆的规模和藏书数量都会不断扩大,为了解决海量图书的管理问题,提高工作人员的工作效率和使读者更加方便借阅图书,方改变传统的
12、管理方式也就迫在眉捷了。1.2开发目的传统的图书馆管理方法和手段已经迫切需要改革和变更,怎样更好充分的利用计算机技术来实现办公自动化,提高管理工作的工作效率已经是大势所趋了。由于原来的图书馆管理处理中心进行信息管理主要是基于手工处理,信息处理工作量大,容易出错,缺乏系统、规范的信息管理手段。因此,只有建立一套完备、实用的图书馆管理系统,才能更有效地对图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理。因此基于办公自动化的图书馆信息管理能否有效避免人为主观因素的影响,对提高管理人员的工作效率,更好地为读者服务具有重要的意义。1.3开发意义现代计算机技术、数据库技术以及信息管
13、理技术的飞速发展,为图书馆的管理改革提供了条件,使得办公自动化显得越来越重要。在图书馆的日常管理中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书还书等,及时了解各个环节中信息的变更,要对因此而产生的问题进行及时的处理,为了提高图书馆对图书的自动化管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。图书管理系统是典型的信息管理系统,它采用先进的计算机技术和数据库技术,来实现图书馆图书借阅和归还的管理的自动化,对于图书馆的管理,有效利用人力资源将起到十分重要的作用。1.4系统概述当今世界已处于信息时代,信息已成为与材料、能源并重并且更具基础性的
14、重要的社会资源。尤其是图书馆这种数据量极大的管理,由于信息数量的激增,如果不合理处理,必将降低人们的工作积极性。因此,必须对图书馆信息进行高效、合理处理,使信息真正成为促进图书馆管理与发展的重要资源。图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面,一方面要求建立起数据一致性和完整性强、数据安全性好的数据库;另一方面则要求应用程序具有功能完备,易使用等特点。图书管理涉及图书信息、系统用户信息、读者信息、图书借阅信息等多种数据管理。从管理的角度可将数据管理分为:查询管理、读者管理、借还书管理、图书管理、系统管理、用户管理等几个方面。借助该系统,
15、管理员通过快捷可靠的数据库管理,方便的管理图书馆的信息资料,规范化的管理读者用户,设定不同用户权限,并能方便读者的查询与使用,最终达到提高图书馆资源利用效率的目的。本系统可以根据用户的不同权限,对图书馆的各种信息过行添加、删除、修改或查询操作。本系统的功能主要包括以下几个方面:(1).能随时查询书库中图书的库存量,以便准确、及时、方便地为读者提供借阅信息。但不能修改数据,无信息处理权,即只可以浏览数据,管理权限由系统管理掌握和分配;(2).图书馆各项数据信息必须保证安全性和完整性;(3).系统管理员定时整理系统数据库,实现对图书的借阅、读者的管理、书库的增减等操作,并将运行结果归档。2.系统需
16、求分析2.1项目总体规划系统主要依据用户需求而设计,主要包括信息管理对象的特性、事务流程的内容和数据流量,根据用户需求和方便用户使用的原则来确定相应的功能模块。本系统为学校的图书馆信息管理而设计,这实现信息处理的自动化、规范化,主要用于处理图书馆日常管理事务,主要应具有以下功能:图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息;图书馆工作人员对图书借阅者及还书要求进行操作,同时形成借书和还书报表给借阅者查看和确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,以及对系统状态的查看、维护等。图书馆信息管理系统需要达到以下目标:(1)设计不同用户的操作
17、权限;(2)对所有用户开放的图书查询;(3)图书借还处理;(4)借阅者与读者信息查询;(5)图书信息、读者信息与工作人员的修改与删除;(6)根据借阅情况或还书情况对数据库进行操作。2.2确定系统开发环境由于大多数计算机的平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境:(1)系统采用C/S的体系结构。CLIENT(客户端)负责显示用户界面信息和访问数据库SERVER(服务器端)则用于提供数据服务。(2)数据库服务器:Microsoft SQL SERVER 2005;(3)客户机平台:Windows XPWin7;(4)编
18、程语言采用:C#;(5)前端开发工具:Visual Studio 2005。2.3 系统界面需求界面原则要求:简洁 ,实用,清晰2.4 系统安全性需求在访问数据库时,必须对用户角色进行判断,是否有足够的权限进行该操作,保存数据安全。在对数据库进行操作时,要保存程序的稳定性。2.5 开发语言一、C# 简介C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C+的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C+与Java一样亦为对象导向(object-orien
19、ted)程序语言。C#是一种最新的、面向对象的编程语言。C#使得C程序员可以高效的开发程序,而绝不损失C原有的强大的功能。因为这种继承关系,C#与C具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。(1)效率与安全性 为了适应社会的发展潮流。开发者必须不断缩短开发周期,不断推出应用程序的新版本,而不仅仅是开发一个“标志性”的版本。(2)消除大量程序错误即使是专家级的C程序员也常会犯一些最简单的小错误比如忘了初始化变量,但往往就是这些小错误带来了难以预料的问题,有些甚至需要很长时间来寻找和解决。一旦一个程序作为产品来使用,就算最简单的错误纠正起来也可能要付出极其昂贵的代价。 C#的现代化
20、设计能够消除很多常见的C编程错误。 例如:(1)资源回收减轻了程序员内存管理的负担。 (2)C#中变量由环境自动初始化。 (3)变量类型是安全的。这样,程序员编写与维护那些解决复杂问题的程序就更方便了,C#在设计时就考虑了这些问题。它使开发者用更少的代码做更多的事,同时也不易出错。3.图书馆信息管理系统概要设计3.1系统功能分析3.1.1.系统各功能模块本系统总体的功能是实现图书馆管理的系统化、规范化和自动化。本系统要完成的功能有:查询管理、读者管理、借还书管理、图书管理、系统管理、用户管理等几个模块。查询管理:包括图书查询和借阅者查询;读者管理:包括添加、修改、删除借阅者信息;借还管理:包括
21、借书与还书以及生成相应的表格信息;图书管理:包括图书添加、修改、删除;系统管理:包括添加、修改、删除用户;用户管理:包括修改密码。图书查询查询管理读者管理图书管理借还管理系统管理删除图书图书馆信息管理系统用户管理添加读者删除读者借书还书添加图书修改图书借阅查询添加用户修改用户删除用户修改密码修改读者3.1.2.功能模块图:图3-1系统功能模块图3.2数据库概念设计3.2.1.设计局部ER模式实体和属性的定义:图书(编号,名称,作者,出版社,出版日期,备注,价格,数量,类别)借出图书(借书证号,图书编号,借出时间)借阅者(借书证号,姓名,性别,身份证,电话,密码,罚款,身份编号)身份(身份编号,
22、身份描述,最大借阅数,最长借阅时间)图书类别(图书类别编号,类别描述)3.2.2.设计全局ER模式图书馆信息管理系统的全局ER模式如图所示。借阅者数量名称作者出版社类别出版日期备注价格编号姓名借书证号罚款密码身份证性别电话身份编号借还借阅者图书工作人员管理人员借还维护图3-2全局ER模式图3.3 系统数据流分析3.3.1 系统数据库操作数据库的应用无处不在,C#语言具有强大的数据库操作功能,数据库连接对“图书馆信息管理系统”来说是非常重要的部分,建立与数据库连接,执行查询,提取数据,删除和修改数据等操作。应用程序取得与数据的连接Connection 生成SQL执行对象执行SQL语句数据库图3-
23、3数据库操作图3.4 可行性分析3.4.1 开发语言可行性分析本图书馆信息管理系统主要目的是利用C#编制一个图书馆信息管理系统,用以实现图书馆对管理员信息、读者信息、借还书等信息的集中管理,对整个系统的分析、设计过程给出一个完整论证,图书馆信息管理系统是一种基于C/S的数据库数据操作模式。本系统的建成无疑会提高图书馆的管理效率,以及实现办公自动化带来非常重要的作用。3.4.2 系统可行性分析本系统对电脑的要求配置比较低,是基本电脑都能达到的。作为操作平台的Windows XP以上版本的操作系统功能逐渐的强大完善,故而软件的运行环境是可以满足的。3.4.3 经济可行性分析一、开发经济成本本毕业设
24、计采用C#设计,运行SQL SERVER 2005数据库,运行系统要求为Windows。SQL Server 2005、Visual Studio 2005都是Windows里很常见的开发工具,而Windows系统本身也被广泛使用。因此,开发此系统,所需经费不高,并且此系统操作简单、便捷、效率高。二、使用经济价值随着社会的发展,传统手工的图书馆管理模式已经不能满足现代图书馆快速发展的需要,信息化的不断发展,信息技术的成熟及成本下降也是图书馆信息管理化水平提高的积极因素之一。许多高校把实现图书馆信息管理自动化建设制定为中长期发展规划, 图书馆信息管理自动化建设作为今后几年要抓好的重点任务。与此图
25、书馆信息管理系统作为图书馆管理重要的组成部分,也必将在未来的高校发展中发挥更大的作用。4.图书馆信息管理系统设计和实现4.1 数据库设计4.1.1建立数据库数据库名称为library,数据库中包括:1.图书信息表(book);2.借出图书信息表(book Out);3.借阅者信息表(person);4.身份信息表(identity);5.图书类别信息表(type);6.管理员信息表(manager);其中数据库的表分别如图所示:一、图4-1图书信息表(book) 二、图4-2借出图书信息表(book Out) 三、图4-3借阅者信息表(person) 四、图4-4身份信息表(identity)
26、 五、图4-5图书类别信息表(type) 六、图4-6管理员信息表(manager) 4.2 功能模实现和关键代码4.2.1 用户登陆界面设计图4-7登陆模块登陆模块关键代码:private void btAdd_Click(object sender, System.EventArgs e)if(name.Text.Trim()=|password.Text.Trim()=)MessageBox.Show(请输入用户名和密码,提示);elsesqlConnection1.Open(); SqlCommand cmd = new SqlCommand(, sqlConnection1);if
27、(radioManage.Checked=true) / 管理员角色登录string sql=select * from manager where MName=+name.Text.Trim()+ and MCode=+password.Text.Trim()+;cmd.CommandText=sql;if (null!=cmd.ExecuteScalar()/隐藏登录窗口this.Visible=false; /创建并打开主界面main main=new main();main.Tag=this.FindForm(); SqlDataReader dr;cmd.CommandText=sq
28、l;dr=cmd.ExecuteReader();dr.Read(); main.menuItem1.Visible = (bool)(dr.GetValue(2).ToString().Trim() = 1 ? true : false); /数据库中表dbo.manager的第二列控制菜单栏的menuItem1 menuItem2 menuItem3main.menuItem2.Visible = (bool)(dr.GetValue(2).ToString().Trim() = 1 ? true : false); main.menuItem3.Visible = (bool)(dr.G
29、etValue(2).ToString().Trim() = 1 ? true : false);main.menuItem4.Visible = (bool)(dr.GetValue(3).ToString().Trim() = 1 ? true : false); /数据库中表dbo.manager的第三列控制菜单栏的menuItem4main.menuItem5.Visible = (bool)(dr.GetValue(4).ToString().Trim() = 1 ? true : false); /数据库中表dbo.manager的第三列控制菜单栏的menuItem5main.st
30、atusBarPanel2.Text=name.Text.Trim();main.statusBarPanel6.Text=管理员;main.ShowDialog(); elseMessageBox.Show(用户名或密码错误,警告);else if (radioPerson.Checked=true) / 读者登录string sql=select * from person where PID=+name.Text.Trim()+ and PCode=+password.Text.Trim()+;cmd.CommandText=sql;if (null!=cmd.ExecuteScalar
31、()/隐藏登录窗口this.Visible=false; /创建并打开主界面main main=new main();main.Tag=this.FindForm(); SqlDataReader dr;cmd.CommandText=sql;dr=cmd.ExecuteReader();dr.Read();main.menuItem1.Visible = main.menuItem2.Visible = main.menuItem3.Visible = main.menuItem4.Visible = false; /读者没有menuItem1 menuItem2 menuItem3 men
32、uItem4 的功能main.statusBarPanel2.Text=name.Text.Trim();main.statusBarPanel6.Text=读者;main.ShowDialog(); elseMessageBox.Show(用户名或密码错误,警告); elseMessageBox.Show(没有选择角色,提示);sqlConnection1.Close(); private void password_KeyDown(object sender, KeyEventArgs e) if (e.KeyCode.ToString() = Return) btAdd_Click(nu
33、ll, null); private void btClose_Click(object sender, System.EventArgs e)this.Close(); 4.2.2 主界面设计 图4-8主界面4.2.3系统管理设计图4-9添加用户添加用户关键代码:private void btAdd_Click(object sender, System.EventArgs e)if (textName.Text.Trim()=|textPassword.Text.Trim()=|textPWDNew.Text.Trim()=|radioManage.Checked=false&radioW
34、ork.Checked=false)MessageBox.Show(请输入完整信息!,警告); elseif (textPassword.Text.Trim()!=textPWDNew.Text.Trim()MessageBox.Show(两次密码输入不一致!,警告); elsesqlConnection1.Open(); SqlCommand cmd = new SqlCommand(, sqlConnection1);string sql = select * from manager where MName = +textName.Text.Trim()+;cmd.CommandText
35、 = sql;if (null = cmd.ExecuteScalar()if (radioManage.Checked=true)sql = insert into manager +values (+textName.Text.Trim()+,+textPWDNew.Text.Trim()+,1,0,0);elsesql = insert into manager +values (+textName.Text.Trim()+,+textPWDNew.Text.Trim()+,0,1,0);cmd.CommandText = sql;cmd.ExecuteNonQuery(); Messa
36、geBox.Show(添加用户成功!,提示);this.Close(); elseMessageBox.Show(用户名+textName.Text.Trim()+已经存在!,提示);textPWDNew.Text = ;textPassword.Text=;sqlConnection1.Close();private void btClose_Click(object sender, System.EventArgs e)this.Close(); 4.2.5图书管理设计图4-10图书书目图书书目关键代码:AddBook addBook;private void btAdd_Click(ob
37、ject sender, System.EventArgs e)addBook = new AddBook();addBook.ShowDialog();ModifyBook modifyBook;private void btModify_Click(object sender, System.EventArgs e)if (dataGrid1.DataSource!=null | dataGrid1dataGrid1.CurrentCell!=null) /数据源不为空,被选中的单元格不为空modifyBook = new ModifyBook();modifyBook.textID.Te
38、xt = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim();modifyBook.textName.Text = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber1.ToString().Trim();modifyBook.textWriter.Text = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber2.ToString().Trim();modifyBook.textPublish.Text = ds
39、.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber3.ToString().Trim();modifyBook.date1.Text = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber4.ToString().Trim();modifyBook.textPrice.Text = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber5.ToString().Trim();modifyBook.textNum.Text = ds.Tablesbook.Row
40、sdataGrid1.CurrentCell.RowNumber6.ToString().Trim();modifyBook.textType.Text = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber7.ToString().Trim();modifyBook.textRemark.Text = ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber8.ToString().Trim();modifyBook.Show(); elseMessageBox.Show(没有指定图书信息!,提示);p
41、rivate void btDel_Click(object sender, System.EventArgs e)if (dataGrid1.CurrentRowIndex=0&dataGrid1.DataSource!=null&dataGrid1dataGrid1.CurrentCell!=null)sqlConnection1.Open();string sql=select * from bookOut where BID=+ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim()+; SqlComman
42、d cmd = new SqlCommand(sql, sqlConnection1); SqlDataReader dr;dr = cmd.ExecuteReader();if (dr.Read()MessageBox.Show(删除图书+ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber1.ToString().Trim()+失败,该图书正在流通中!,提示);dr.Close(); elsedr.Close();sql = delete from book where BID not in(select distinct BID from bookOut) and BID += +ds.Tablesbook.RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim()+;cmd.CommandText = sql;cmd.ExecuteNonQuery();MessageBox.Show(删除图书+ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber1.ToString().Trim(