《郑州大学毕业设计.doc》由会员分享,可在线阅读,更多相关《郑州大学毕业设计.doc(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、郑州大学彼业设计(论文)题 目:图书馆管理系统的设计与实现指导教师:职为梅 职称:讲师 学生姓名:闫鸿飞 学号:5 专 业:计算机科学与技术 院(系):信息工程学院 完成时间:2011年 月 日 2011年 月 日基于ASP.NET的图书馆管理系统设计与实现摘 要图书馆作为一个专门收集、整理、保存、传播文献并提供利用的科学、文化、教育机构,是人们获取知识的主要来源之一。同时,数据库的管理和开发是一项重要内容,在教学实践中占有十分重要的地位。本网站服务器端的代码主要使用c#编写,使用VS2008 和SQL Server 2005相结合开发网站。论文首先论述了系统的开发背景和设计目标,并对系统开发
2、所用到的技术进行了相关的简单介绍;其次,介绍了项目的需求分析;再次详细介绍了系统的详细设计;最后,介绍了系统的详细设计。关键词:数据库,SQL语言,MS SQL Server,C#Based on the ASP.NET library management system design and ImplementationTake toLibrary as a specialized collection, collation, preservation, dissemination of literature and provide the use of the scientific, cu
3、ltural, educational institutions, is that people get the one of major source of knowledge. At the same time, database management and development is an important content in the teaching practice, plays a very important role. The web server code is written using c#, using VS2008 and SQL Server 2005 co
4、mbined development site.The paper first discusses the background of the system development and the design goal, and system development techniques were related briefly; secondly, introduces the project needs analysis; once again introduced the detailed design of the system; at last, introduces the de
5、tailed design of the system.Key words: database, SQL language, MS SQL Server, C #目 录1绪论61.1图书管理系统概述61.2开发环境61.1系统设计目标分析72图书管理系统设计分析82.1系统目标82.2应用需求分析82.3系统业务流程92.4系统功能模块划分102.5功能模块介绍102.5.1读者管理模块102.5.2图书管理模块103数据库设计分析113.1数据库设计E-R图113.2系统数据表设计133.3数据连接164功能模块类174.1 DataBase.cs (数据库操作类)174.1.1打开数据库连
6、接184.1.2关闭连接184.1.3释放数据库连接资源194.1.4传入参数并且转换为SqlParameter类型194.1.5执行参数命令文本204.1.6将命令文本添加到SqlDataAdapter214.2ValidateClass.cs(数据验证类)234.2.1验证输入为数字234.2.2验证输入为邮编244.2.3验证输入为电话号码244.2.4验证输入为Email244.2.5验证输入为网址244.3OperatorClass.cs(基础数据操作类)254.4AdminManage.cs(管理员功能模块类)264.4.1自动生成管理员编号,方法为GetAdminID274.4.
7、2添加管理员信息284.4.3修改管理员信息294.4.4删除管理员信息294.4.5管理员登录294.4.6查询管理员信息305系统功能的实现315.1主页面设计315.2图书馆信息模块设计345.3图书档案管理模块设计345.4图书借还管理模块设计366 结论36致谢38参考文献391STEPHEN WALTHER:ASP.NET3.5技术揭秘人民邮电出版社,2009391绪论1.1图书管理系统概述 长期以来人们才用人工方式来管理图书馆的日常业务,其操作流程比较繁琐,工作效率很低,并且不能及时了解图书的种类和学生们比较需求的图书等,不能更好的适应当前学生的借阅要求。手工管理还存在这许多弊端
8、,由于不可避免的人为因素,造成数据的遗漏、误报。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对学生们的借阅过程形成一整套动态的管理能够极大地提高图书馆管理的效率。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科
9、学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库的建立要求建立起数据一致性和完整性强.数据安全性好的库。而对于前端应用程序则要求应用程序功能完备,易使用等特点。1.2开发环境本系统的开发采用的是 ASP+VS2008 +SQL SERVER 2005的模式开发,在本项目中服务器端的代码主要是C#编写,基于浏览器/服务器应用方式。SQL SERVER 2005SQL SERVER是微软重要的管理系统,其中SQL SERVER 2005版本的
10、功能最为强大。它不仅拥有支持存储和检索大量关系数据的核心数据库引擎及能够提供快速查询、访问数据的顶级优化器,该具备了许多其他组件。他们大大提高了数据和应用程序的可用性和可扩展性。ASP.NET是微软公司构建高交互性、高扩展性的旗舰技术。许多在因特网上提供服务的网站都够建于ASP.NET Framework之上。1.1系统设计目标分析 作为学生对图书管理系统的要求有:1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。2. 能够方便地借阅图书、续借图书、归还图书。3. 能够查询自己的基本资料、借阅图书情况。4. 能够熟悉图书管理系统的使用。 作为图书管理员,他们对图书管理系统的要求有
11、:1. 能方便的对图书进行录入登记,注销陈旧的书籍。2. 能够方便地对读者进行登记,或注销读者生信息(基本信息,借阅信息)。2图书管理系统设计分析2.1系统目标本系统主要实现对图书馆的信息进行管理,图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理。2.2应用需求分析图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者
12、的借阅及还书要求进行操作,图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。图书馆管理人员功能的信息量大,数
13、据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行设计不同用户的操作权限和登陆方法借阅者维护借阅者个人部分信息借阅者查看个人借阅情况信息维护借阅者个人密码查询及统计各种信息维护图书信息维护工作人员和管理员信息2.3系统业务流程2.4系统功能模块划分2.5功能模块介绍2.5.1读者管理模块读者管理模块主要
14、说明读者权限及操作。读者模块主要包括:登录、修改个人信息、查询图书、退出管理。读者有管理员注册。登录是已是图书馆读者使用的。修改个人信息的操作对象为已是图书馆读者,读者可以查看自己的相关资料和修改。退出登录为已登录读者使用。2.5.2图书管理模块图书管理模块主要是管理员对图书的操作;图书管理模块包括:查找图书、增加图书、删除图书、修改图书相关信息。 图书管理员可以向数据库中增加书目,主要包括图书的名称、所属的种类、价格、详细说等。管理员可以删除图书信息,管理员也有权限的划分。管理员可以修改书库中图书的相关信息。3数据库设计分析在程序开发过程中,数据库设计是一个非常重要的环节。本系统使用SQL
15、SERVER 2005。3.1数据库设计E-R图为了把问题清楚的表达出来,通常要建立一个概念性的数据模型。概念性的数据模型是面向问题的数据模型。最常用的表示概念性数据模型的方法,是实体联系方法(EntityRelationship Approach)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含“实体”,“联系”和“属性”。图书管理系统涉及的实体包括:(1) 读者:读者ID、读者姓名、性别、读者类型、出生日期、读者证件类型、证件号码、电话、读者邮箱、读者注册日期、注册操作员、备注、借阅次数、总次数。(2)
16、 图书:图书条形码ID、图书名称、类型、图书作者、翻译、出版社、价格、页码、存储数量、入图库时间、图书借阅次数。(3) 管理员:管理员ID、名称、密码。(4) 图书书架:书架ID、书架名称。综合子模块要实现的功能,通过前面的分析的到:管理员信息表、书架信息表、图书信息表、图书类型信息表、图书借还信息表、权限信息表、读者信息表、读者类型表的概念模型(E-R)。读者信息E-R图如图4-1所示。图4-1 读者E-R图管理员E-R图如图4-2所示。图4-2 管理员E-R图图书信息E-R图如图4-3所示。图4-3 图书信息E-R图书架信息E-R图如图4-4所示。图4-4 书架信息E-R图3.2系统数据表
17、设计(1)读者信息表,此表主要保存读者的信息。其结构如表4-1。表41 读者信息表列名含义类型长度缺省值允许空id读者编号varchar30无NOT NULLname读者名称varchar50无NULLsex性别char4无NULLtype读者类型varchar50无NULLbirthday出生日期Smalldatetime无NULLpaperType读者证件类型varchar20无NULLpaperNum读者证件号码varchar30无NULLtel读者出生日期varchar20无NULLemail读者的邮箱varchar30无NULLcreateDate读者注册日期smalldatetim
18、e无NULLoper读者注册时操作员varchar30无NULLremark备注text无NULLBorrownum读者借阅图书的次数int40NULLnum读者借阅图书的总次数int40NULL(2)管理员信息表,此表用于存放管理员的基本信息。其结构如表4-2所示。表42 管理没信息表列名含义类型长度缺省值允许空id编号carchar50无NOT NULLName名称varchar50无NULLpwd密码varchar30无NULL(3)图书信息表,此表用于存放图书有关信息。其结构如表4-3所示。表43 图书信息表列名含义类型长度缺省值允许空bookcode图书条形码varchar30无NO
19、T NULLBookname图书名称varchar50无NULLtype图书类型varchar50无NULLauthor图书作者varchar50无NULLtranslator图书翻译varchar50无NULLpubname出版社varchar100无NULLprice图书价格money4无NULLpage图书页码int4无NULLbcase图书书架信息varchar50无NULLstorage图书存储数量bigint8无NULLinTime图书入库时间Smalldatetime无NULLOper图书入库时操作员varchar30无NULLborrownun图书借阅次数int40NULL(4
20、)图书借阅表,此表用于存放图书借阅信息。图书借还信息表列名含义类型长度缺省值允许空id读者借阅编号varchar30无NOT NULLreaderid借阅读者varchar20无NULLbookcode图书条形码varchar30无NULLborrowTime图书借阅时间smalldatetime无NULLygbackTime图书应该归还时间smalldateTime无NULLsjbackTime图书实际归还时间smalldateTime无NULLborrowoper图书借阅室的操作员varchar30无NULLbackoper图书归还时的操作员varchar30无NULLisback判断该图
21、书是否归还bit0NULL3.3数据连接使用目前流行的数据库连接技术ADO.NET。Web和分布式应用程序要求非连接的计算机环境,就是在初始化客户连接时,短暂的打开一个数据连接,一旦从数据库中检索完请求的数据,即关闭连接。然后客户应用程序独立维护这些数据。在客户应用程序修改后要将它们发送回数据库服务器时,会再次短暂打开一个连接,将客户应用程序将进行的修改用一条更新批处理命令发送给数据库后,再次断开连接。后以这种非连接的机制把系统的开销降到了最低限度,提高了应用程序的吞吐量和可伸缩性。4功能模块类在网站开发项目中以类的形式组织、封装一些常用的方法和事件,将会在开发的过程中起到事半功倍的效果。本系
22、统中创建了13个公共类文件,位于App_Code文件夹中。分别为:DataBase.cs 数据库操作类AdminManage.cs 管理员功能模块类 BookcaseManage.cs 书架管理功能模块类BookManage.cs 图书管理功能模块类BorrowandBackManage.cs 图书借还管理功能模块类BTypeManage.cs 图书类型管理功能模块类LibraryManage.ce 图书馆信息功能模块类PubManage.cs 出版社信息功能模块类PurviewManage.cs 管理员权限功能模块类ReaderManage.cs 读者管理功能模块类RTypeManage.c
23、s 读者类型功能模块类OperatorClass.cs 基础数据操作类ValidateClass.cs 数据验证类各种功能模块类主要用于处理业务逻辑功能。 4.1 DataBase.cs (数据库操作类)DataBase.cs文件主要用来访问SQL SERVER 2005数据库,由于要访问数据库,首先要添加命名空间using System.Data.SqlClient,代码:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using Syst
24、em.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;DataBase.cs 中每一个方法都要用到数据库连接对象,所以创建了个全局数据库连接对象con。有八个方法,ConnectionString节点在webconfig文件中定义了连接数据库的字符串。public class DataBase:IDisposablepublic DataBase()/ TODO:
25、 在此处添加构造函数逻辑private SqlConnection con; /创建连接对象4.1.1打开数据库连接判断连接对象是否为空,如果为空为它赋值,在判断连接对象是否打开,如果关闭Open()方法将其打开。 #region 打开数据库连接 / 打开数据库连接 private void Open() / 打开数据库连接 if (con = null) /判断链接对象是否为空 con = new SqlConnection(ConfigurationManager.AppSettingsConnectionString); if (con.State = System.Data.Conne
26、ctionState.Closed) con.Open(); #endregion4.1.2关闭连接如果打开Close()方法将其关闭。 #region 关闭连接 / 关闭数据库连接 public void Close() if (con != null) con.Close(); #endregion4.1.3释放数据库连接资源用重写的Dispose方法释放资源。 #region 释放数据库连接资源 / 释放资源 public void Dispose() / 确认连接是否已经关闭 if (con != null) con.Dispose(); con = null; #endregion4
27、.1.4传入参数并且转换为SqlParameter类型本系统都是用参数读入数据,好处是可以防止一些注入,比如阻止一些非法字符。ParameterDirection Direction属参数方向判断是输入还是输出参数。 #region 传入参数并且转换为SqlParameter类型 / 转换参数public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) /命令为本 要转换的参数类型 参数大小 参数值 return MakeParam(ParamName, DbType, S
28、ize, ParameterDirection.Input, Value); / 初始化参数值 public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) SqlParameter param; if (Size 0) param = new SqlParameter(ParamName, DbType, Size); else param = new SqlParameter(ParamName, DbType
29、); param.Direction = Direction; if (!(Direction = ParameterDirection.Output & Value = null) param.Value = Value; return param; #endregion4.1.5执行参数命令文本RunProc用来执行参数命令文本,可重载,不返回数据库中的数据。 #region 执行参数命令文本(无数据库中数据返回) / 执行命令 public int RunProc(string procName, SqlParameter prams) SqlCommand cmd = CreateCo
30、mmand(procName, prams); cmd.ExecuteNonQuery(); this.Close(); /得到执行成功返回值 return (int)cmd.ParametersReturnValue.Value; / 直接执行SQL语句 public int RunProc(string procName) this.Open(); SqlCommand cmd = new SqlCommand(procName, con); cmd.ExecuteNonQuery(); this.Close(); return 1; #endregion #region 执行参数命令文本
31、(有返回值) / 执行查询命令文本,并且返回DataSet数据集 public DataSet RunProcReturn(string procName, SqlParameter prams, string tbName) SqlDataAdapter dap = CreateDataAdaper(procName, prams); DataSet ds = new DataSet(); dap.Fill(ds, tbName); this.Close(); /得到执行成功返回值 return ds; / 执行命令文本,并且返回DataSet数据集 public DataSet RunPr
32、ocReturn(string procName, string tbName) SqlDataAdapter dap = CreateDataAdaper(procName, null); DataSet ds = new DataSet(); dap.Fill(ds, tbName); this.Close(); /得到执行成功返回值 return ds; #endregion4.1.6将命令文本添加到SqlDataAdapter(1)实例化SqlDataAdapter对象。(2)设置设置他的命令为本。(3)判断参数是否为空。 #region 将命令文本添加到SqlDataAdapter
33、/ 创建一个SqlDataAdapter对象以此来执行命令文本 private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter prams) this.Open(); SqlDataAdapter dap = new SqlDataAdapter(procName, con); dap.SelectCommand.CommandType = CommandType.Text; /执行类型:命令文本 if (prams != null) foreach (SqlParameter parameter in prams)
34、dap.SelectCommand.Parameters.Add(parameter); /加入返回参数 dap.SelectCommand.Parameters.Add(new SqlParameter(ReturnValue, SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null); return dap; #endregion #region 将命令文本添加到SqlCommand / 创建一个SqlCommand对象以此来执行命令文
35、本 private SqlCommand CreateCommand(string procName, SqlParameter prams) / 确认打开连接 this.Open(); SqlCommand cmd = new SqlCommand(procName, con); cmd.CommandType = CommandType.Text; /执行类型:命令文本 / 依次把参数传入命令文本 if (prams != null) foreach (SqlParameter parameter in prams) cmd.Parameters.Add(parameter); / 加入返
36、回参数 cmd.Parameters.Add( new SqlParameter(ReturnValue, SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null); return cmd; #endregion4.2ValidateClass.cs(数据验证类)ValidateClass.cs文件用于对修改、控件输入等数据的验证。方法都是用正则表达式来判断输入是否正确。代码:/ ValidateClass 的摘要说明public clas
37、s ValidateClasspublic ValidateClass()/ TODO: 在此处添加构造函数逻辑4.2.1验证输入为数字 #region 验证输入为数字 / 验证输入为数字 public bool validateNum(string str) return Regex.IsMatch(str, 0-9*1-90-9*$); #endregion4.2.2验证输入为邮编 #region 验证输入为邮编 / 验证输入为邮编 public bool validatePCode(string str) return Regex.IsMatch(str, d6); #endregion
38、4.2.3验证输入为电话号码 #region 验证输入为电话号码 / 验证输入为电话号码 public bool validatePhone(string str) return Regex.IsMatch(str, (d3,4)-(d7,8)$); #endregion4.2.4验证输入为Email #region 验证输入为Email / 验证输入为Email public bool validateEmail(string str) return Regex.IsMatch(str, w+(-+.w+)*w+(-.w+)*.w+(-.w+)*); #endregion4.2.5验证输入为
39、网址 #region 验证输入为网址 / 验证输入为网址 public bool validateNAddress(string str) return Regex.IsMatch(str, http(s)?:/(w-+.)+w-+(/w- ./?%&=*)?); #endregion 4.3OperatorClass.cs(基础数据操作类) OperatorClass.cs文件用来根据当前日期获得星期几。 代码:/ OperatorClass 的摘要说明public class OperatorClasspublic OperatorClass()/ TODO: 在此处添加构造函数逻辑/ #region 判断星期几 / 判断星期几 public string getWeek() string str = Date