1、目 录内容摘要:1关键词:1ABSTRACT:1KEYWORDS:11.引言21.1 系统开发意义21.2 系统开发目的21.3 现状研究22.系统模型与结构42.1 系统功能需求分析42.2 功能模块设计42.3 数据库需求分析52.4 数据库概念结构设计52.5 数据库逻辑结构设计72.6系统流程及功能模块划分103.系统详细设计123.1 登录模块123.2 管理员功能设计143.3 操作员功能设计163.4 读者功能设计184.性能测试与分析204.1性能测试204.2 性能分析20参考文献:21致谢22- 24 -内容摘要:二十一世纪是信息的世纪,随着社会经济的发展,社会信息化程度也
2、越来越高,学校作为教育与科技的先行者,优秀的技术往往会被所率先学校采用。优秀的学校管理决策者一定会毫不犹豫地选择或者自主开发一个适合本校校情的图书管理系统。图书管理系统实现了分角色登录功能,读者只能进行查询。图书操作员能实现图书借阅、图书归还、新书入库等功能,系统管理员对系统用户进行添加和维护。ASP.NET是目前最流行的Web开发技术之一,它基于.NET环境开发,具体的开发平台使用的是Visual Studio 2005,在数据库方面使用的是Access 2003。本系统开发的总体任务是实现与图书相关的各种信息的系统化,规范化和自动化。关键词:图书管理系统数据库设计管理信息系统VisualS
3、tudio2005 Access 2003Abstract:The twenty-first century is the century of information, with the social and economic development, social information is also growing high school education and technology as forerunner, outstanding technical tend to be the first to schools.Good school management decision
4、-makers would not have hesitated to choose or develop a self-love for our school library management system.Library management system to achieve the sub-login feature role, the reader can only query.Books to borrow books to achieve the operator, book return, book storage and other functions, the syst
5、em administrator to add users on the system and maintenance.ASP.NET is the most popular Web development technology, one of which is based on. NET development environment, the specific development platform using Visual Studio 2005, the use of the database is Access 2003.The overall task of the system
6、 development is to achieve a variety of information and books related to the systematic, standardized and automated.Keywords:Book Management SystemAccess 2003 Visual Studio 20051.引言1.1 系统开发意义 随着我国的经济的发展,大量的人才是社会发展的强大推动力,正因为如此政府也越来越重视教育。随着一系列措施的实施,我国的教育现状大为改观,学生的入学率大大提高,同时也有很多的学校建立了起来。为了给同学们增加课外知识,大部
7、分的学校都考虑到要建立图书馆。从但是手工化的管理方式,显然成了学校正常工作中为了使学校的图书馆更好的服务与广大的老师和学生,提升对图书管理的信息化,编写了本图书管理系统。1.2 系统开发目的信息系统是对信息进行管理的系统,而要对信息进行管理就必须先对数据进行存储,所以数据库在任何信息管理系统中都占有非常重要的地位,所以数据库设计的好坏直接影响着该信息系统的性能,效率会大打折扣。管理信息系统的最大特点就是从数据库中提取数据,将这些数据信息显示给用户,用户通过对这些数据的分析,来达到对信息的掌握。当然有时系统还会提供一些常用分析模型,来为用户提供一些智能分析,有点像专家支持系统的管理信息系统。作为
8、当今Web应用程序的兴起,已经越来越受到用户和软件开发人员青睐。早期的ASP技术是这种软件的开发方式成为可能,随后微软公司推出了一种更为先进的.NET Framework 开发平台,基于此框架的ASP.NET使Web开发变得更加方便与快捷。C#是Microsoft.NET的核心编程语言,能够最大限度的发挥Visual Studio.NET平台的威力,使用户能够在该平台上快速开发各种类型的应用程序。正是由于以上这些工具的优点所以本系统的开发就使用.NET平台进行开发,具体的工具是Visual Studio 2005。数据库采用的是Access2003 因为它界面友好,容易操作并且支持ODBC。本
9、系统开发总体任务目的是:使用Access 2003 创建数据库,实现借书相关信息的系统化、规范化、自动化。为图书馆的工作人员减少工作强度,提高工作效率,为学校的广大的师生服务。1.3现状研究随着社会的快速发展,技术的进步,信息爆炸的时代来临了,而如何对庞大的数据进行高效的管理,是开发信息系统时必须要考虑的一个问题。作为图书馆的辅助管理工具,主要是围绕图书的管理来进行。因为图书馆里有大量的书籍,而这些书籍有一个庞大的分类,并且有很多人借书,每个人不只借一本书,其中还包括丢失的书的情况,或者超过借书期限罚款的管理等等。因此开发一套图书馆图书管理系统就显得尤为重要,有了这一套系统就可以实现上述的种种
10、优点。2.系统模型与结构2.1 系统功能需求分析系统功能需求分析,是确定系统功能简单和最有效的方法。通过这种方法,实现图书馆对图书的管理。首先是对角色进行划分,先介绍图书操作员的功能。因为这是一个图书管理系统,所以首先要实现对书籍信息的管理,因此在系统中有一个图书信息管理功能模块来实现对图书信息的管理。然后是用户借书,当读者借书的时候,涉及两个角色,一个是读者,另一个是图书操作员。如何实现讲书借给读者呢?这就需要借阅管理模块,图书操作员通过图书借阅管理模块来完成借书的功能。当读者还书时需要首先判断该书是否超期,不超期时就调用图书归还管理模块管理,来实现读者还书的功能。如果超期,同样首先调用图书
11、归还模块实现还书,然后再调用调用超期罚款功能模块来实现对还书超期的情况的处理。当图书被借阅和归还时会产生图书数量的变化,这就需要对图书库存信息的管理,因此系统中存在图书库存信息管理模块来说实现此功能。然后是系统管理员的功能,系统管理员必须具备添加读者用户和图书操作员用户的功能,所以在系统中设计了用户管理功能模块来实现这一功能。当然还需要对书籍的类别进行管理,类别管理模块就是为此而设计的。最后是读者,读者的功能最为简单,读者也可以平自己的用户名和密码登录系统,但是他只能查询自己的借书信息,防止在超期的状态下还书和由于还书超期而被罚款的记录。2.2功能模块设计经过初步的需求分析,进行了大致的功能的
12、模块的划分,主要划分成几个模块:图书信息管理、读者信息管理、书籍类别信息管理、库存信息管理、借阅信息管理、图书归还管理、超期罚款的管理、用户登录管理。 系统登录控制:用户必须使用自己的用户名和密码登录系统才能够使用系统。系统根据账户的级别自动跳转到相应的功能页面。并防止用户在未登录的情况下访问某一功能页面。 图书信息管理:新书入库时,图书基本信息的输入,对已有图书的基本信息的修改,删除等。 读者信息管理:读者账户和图书操作员账户的添加,修改和删除等功能。 书籍类别信息管理:图书类别的制定,图书类别的修改和删除。如果某一个类别被删除,那么该分类的下的图书将会成为未分类的图书,需要通过图书信息管理
13、模块,重新对图书进行分类。 库存信息管理:用户可以查询图书数量,盘存图书的数量数据输入,并自动更新盘存时间。当新书入库时会自动记录图书的数量。 借阅信息管理:实现用户借书时,借书信息的自动记录,并记录图书的借阅时间和归还时间。 图书归还管理:实现用户还书功能,当用户还书时用户的借书的信息记录会被删除。 超期罚款管理:实现用户交超期罚款的更新和删除,当用户还书时会判断图书是否超期,如果超期就跳转到罚款管理页面,先计算超期的天数,然后算出罚款的金额。2.3 数据库需求分析数据库的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据,数据结构
14、,已经数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。通过对图书管理系统功能的分析,总结出一下基本的需求信息。 图书信息涉及分类信息、借阅信息、归还信息、罚款信息。 用户信息涉及级别信息。用户名必须是唯一的。 图书的编号必须是唯一的。 用户根据权限判断授予特定的功能。2.4 数据库概念结构设计根据规划出的实体有:图书信息实体、读者信息实体、图书借阅信息实体、罚款信息实体。各个实体具体的业务流程图如下:读者是否可借借书操作员还书操作员是否超期可借不可借借书图书信息新书入库操作员借书信息还书信息罚款信息否图2-1 系统业务流程图图书信息图书编号书名入库日期作者 图2-2 图书信息
15、实体E-R图读者信息读者编号借阅证号注册日期密码 图2-3 读者信息实体E-R图借阅信息图书编号书名归还日期作者 图2-4 借阅信息实体E-R图罚款信息罚款编号书名罚款日期罚款金额 图2-5 罚款信息实体E-R图2.5 数据库逻辑结构设计字段名称数据类型备注BookBH文本图书编号SortName文本图书分类号Bookname文本书名BookISBN文本ISBN号码BookAuthor文本作者BookPress文本出版社PublicationsDate日期/时间出版日期BookPrice数字价格DateStorage日期/时间入库日期LentOr文本借否表2-1 tb-Book(图书信息表)数
16、据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。下面是各个数据表的字段设置信息。字段名称数据类型备注SortBH自动编号SortID文本图书分类号SortName文本分类名称表2-2 tb-BookSort(图书分类表)字段名称数据类型备注BorrowID自动编号借书编号BookBH文本图书编号BookName文本书名BookAuthor文本作者BookPress文本出版社LibraryCardID文本借书证号ReaderName文本读者姓名BorrowDate日期/时间借书日期LentDate日期/时间应还书还书日期表
17、2-3 tb-Borrow(图书借阅信息表)字段名称数据类型备注FineID自动编号过期罚款编号LibraryCardID文本借书证号ReaderName文本读者姓名BookBH文本图书编号BookName文本书名BookPress文本出版社DateNum数字超期天数PriceNum数字罚款单价FineNumber数字罚款金额RealFine数字实际缴款金额FineDate日期/时间罚款日期表2-4 tb-Fine(罚款单信息表)字段名称数据类型备注LevelID自动编号级别编号LevelName文本级别名称OverdueFines数字过期罚款BorrowNumber数字借书总数BorrowD
18、ays数字借书天数表2-5 Level(各用户的借书权限表)字段名称数据类型备注readerID自动编号读者编号LibraryCardID文本借书编号Readerpwd文本用户密码readerName文本姓名ReaderSex文本性别ReaderUnits文本单位ReaderLevel文本级别BorrowBookNumber数字借书总数RegistrationDate日期/时间登记日期表2-6 tb-Reader(用户信息表)字段名称数据类型备注ReturnBookID自动编号还书编号BookBH文本书籍编号BookName文本书籍名称BookAuthor文本图书作者Bookpress文本出版
19、社LibraryCardID文本借书证号ReaderName文本读者姓名BorrowDate日期/时间借书日期ReturnDate日期/时间实际还书日期LentDate日期/时间应该还书日期表 2-7 Return(图书借阅者信息表)字段名称数据类型备注StockID自动编号库存编号BookName文本书名BookNumber数字库存图书数量BookNumber2数字盘存图书数量BoookNumberDate日期/时间盘查图书数量的时间SortName文本分类名称RegistrationDate日期/时间登记日期bookISBN文本图书ISBN号表 2-8 tb-StockInformatio
20、n(图书库存信息表)2.6系统流程及功能模块划分根据系统功能分析,得出下图:2-6系统功能图图书管理系统读者登录操作员登录管理员登录添加用户用户信息修改、删除添加类别类别信息修改、删除图书借阅图书归还借阅信息维护罚款信息管理图书数量管理新书入库管理图书信息维护借书信息查询罚款记录查询修改密码修改密码修改密码图2-6 系统功能图3.系统详细设计本系统的设计的最大的特色是采用了分层的设计思想,系统界面采用Web页面作为表现层和数据粘合层,为了进行一些常用的逻辑处理的需要还创建了业务逻辑层,为了为逻辑处理提供数据有创建了数据层,同时为了数据访问创建了数据模型层。在本节中示例的功能代码,都比较短并且不
21、具体,那是因为很多功能都封装的功能类库里了,这里说明一下。具体请看系统源代码。各个功能层关系如下图(3.1):用户表示层数据粘合层数据层数据模型业务逻辑层图3-13.1 登录模块图3-2 系统登录界面如果使用系统就必须先登录到系统,用户使用登录模块登录系统。界面效果如图3-2: 单击“登录”按钮的处理代码如下:string str_name; string str_password; string str_sql; /获取用户输入的登录用户名和密码 str_name = TextBoxUserName.Text.ToString().Trim(); /去除用户名两边的空格 str_passwo
22、rd = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBoxMM.Text.ToString(), MD5); /查询相应的用户名和密码的SQL语句 str_sql = select ReaderName,ReaderLevel,readerID from tb_Reader where LibraryCardID= + str_name + and Readerpwd= + str_password + ; OleDbDataReader dr = ms.Datareader(str_sql); if (dr.Read
23、() = true) /session变量记录用户名 Sessionuser = drReaderName.ToString().Trim(); /session变量记录管理员级别 Sessionuserlevel = drReaderLevel.ToString().Trim(); /Session变量记录读者的ID号 SessionuserID = drreaderID.ToString().Trim(); /Session变量记录读者的借阅证号 SessionuserCardID = str_name; /session变量记录读者的密码 SessionuserPwd = str_pas
24、sword;/ ms.Close(); /返回跳转的目的页 string strweb = LoginManager.UserLevel(Sessionuserlevel.ToString(); Response.Write( alert(登录成功!即将跳转!);location= + strweb + ); else ms.Close(); this.LabelErrorMessage.Visible = true; this.LabelErrorMessage.Text = 您必须输入有效的用户名和密码!;提示登录成功图3-3 登录成功提示登录的用户先弹出提示登录成功并按用户级别自动跳转到
25、相应的功能页面,判断用户级别的代码在业务逻辑层,代码如下:switch (strLevel) case 系统管理员: strLevel = a_UserReg.aspx; break; case 图书管理员: strLevel = BookBorrow.aspx; break; default: strLevel = ReaderQuery.aspx; break; return strLevel;3.2 管理员功能设计图3-4 管理员功能截图当用户登录成功后,在功能列表中会显示当前用户的用户姓名。管理员功能列表如图3-4:所示。限于篇幅这里只介绍一下用户注册功能,和图书类别管理。因为用户名必
26、须是唯一的,所以当用户点击提交时先判断用户名是否可用,如果已经有此用户则提示。为了增强用户密码的安全性,用户的密码是经过md5加密以后再图3-5 提示注册成功存入数据库的。主要代码如下:string str_sql; /判断该用户是否已经注册 string str_sqlName = select LibraryCardID from tb_Reader where LibraryCardID=+TextBoxUserName.Text.Trim()+; OleDbDataReader dr = ms.Datareader(str_sqlName); if (dr.Read() TextBox
27、UserName.Text = null; ms.Close(); Response.Write( alert(该用户已经注册!);location=javascript:history.go(-1); else string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBoxpwd2.Text.ToString().Trim(), MD5); /在用户表中插入新数据的SQL语句 str_sql = insert into tb_Reader(LibraryCardID,Readerpwd,ReaderLev
28、el,ReaderName,ReaderSex,ReaderUnits,RegistrationDate) values ( + TextBoxUserName.Text + , + pwd + , + DropDownListLevel.SelectedValue.ToString() + , + TextBoxRealName.Text + , + RadioButtonListSex.SelectedItem.Text + , + TextBoxUnits.Text + ,+DateTime.Now+); ms.ExecSql(str_sql);/执行插入操作 TextBoxUserNa
29、me.Text = null; TextBoxRealName.Text = null; TextBoxUnits.Text = null; Response.Write( alert(数据提交成功!);location=javascript:history.go(-1); 图3-6 图书类别管理功能截图图3-7 提示删除需要重新分类可以对分类进行编辑和更新等操作,当然也可以把它删除,但是删除时必须该分类下的图书就没办法表示了,我设计了一个“未分类”的分类,如果某一个分类的图书被删除后那么该分类下的图书的分类就是未分类。为防止用户无删除,我设计了,即使是用户无意中点中了“删除”按钮,也不要紧,
30、因为它会提示(如图3-7)用户是否删除。3.3 操作员功能设计图3-8 操作员功能操作员的功能是最复杂的,它包含了系统的大部分的功能(功能列表如右图),其中包括图书借阅、图书归还、罚款管理、借阅管理、新书入库、图书管理、库存管理和修改密码等功能。同样这里仅仅介绍了图书数量管理。当用户进行新书入库操作时,图书会自动统计图书的数量,实现数量的自动化管理。用户还要定期盘存图书的实际在架的数量,在库存信息管理中输入,当用户更新了盘存信息后,系统会记录下图书的盘存时间,以便于提供参考。用户可以根据图书分类和图书名称来进行模糊查询,图书的库存信息。在查询条件选择要查询的方式,再在文本框内输入要查询的内容,
31、点击查询按钮就行了,查询的结果会在下面列表显示。“返回”按钮的作用是返回到用户查询前的状态。主要功能代码如下:(图3-9)图3-9 库存信息管理/通过图书名称用Label显示统计信息,选择按钮的Click处理事件 string strbName=(Label)(dgbookStock.Items1.FindControl(lbookName).ToolTip.ToString(); int sum = new bStockManager().bNumCount(strbName); int all = new bStockManager().bNumCountAll(strbName); in
32、t myPlus = all - sum; string strSum = sum.ToString(); string strAll = all.ToString(); string strmyPlus = myPlus.ToString(); lbmessage.Text = 本书共有 + strAll + 册,已借出 + strmyPlus + 册,现存 + strSum + 册;/更新按钮的Click处理事件 string strbName = (Label)(e.Item.Cells1.FindControl(lbookName2).ToolTip.ToString(); int s
33、trNum = Convert.ToInt32(TextBox)(e.Item.Cells3.Controls0).Text.ToString(); new bStockManager().bUpdateForBName(strbName, strNum); dgbookStock.EditItemIndex = -1; Bind();/查询按钮的Click处理事件DataTable dt = null; /根据查询类别和文本框的内容查询 string strSort = dropSelect.SelectedItem.Text.ToString(); string strSele = txt
34、Select.Text.Trim().ToString(); dt=new bStockManager().selectCase(strSort, strSele); dgbookStock.DataSource = dt; dgbookStock.DataBind();3.4 读者功能设计图3-10 读者功能读者的功能相对简单只是简单调出用的借书记录和因超期还书的罚款记录。它根据用户登录的用户名,查询相应的记录,直接显示当前用户的借书记录。界面截图如图:下面的代码是用户查询借书记录代码: 图-11 罚款信息功能页面加载事件的处理代码 if (!IsPostBack) string reUse
35、r = SessionuserCardID.ToString(); string strSort = dropSort.SelectedItem.ToString(); Bind(strSort, reUser); 数据绑定方法的代码 DataTable dt = null; dt = new ReaderQueryManager().seleBorroForSort(mSort, libId); dgBorrow.DataSource = dt; dgBorrow.DataBind(); string strSort = dropSort.SelectedItem.ToString(); s
36、tring reUser = SessionuserCardID.ToString(); Bind(strSort, reUser);4.性能测试与分析4.1性能测试软件的测试与证明是软件设计中必不可缺少的阶段,只有通过测试和证明,软件的质量才能得到肯定,才能投入正式的使用。软件测试主要任务是发现并排除在设计、编程和阶段中所产生的各种类型的错误,以得到可运行的软件系统。测试分为三个阶段,分别是单元测试、集成测试和系统测试。对单个程序或模块的测试称之为单元测试,验证每个模块是否满足系统设计的要求。目的是为了消除可能导致程序异常中断的执行错误,以及在程序逻辑分析过程中疏忽的逻辑错误。由于本系统的业
37、务处理模块和数据提供模块,都进行了独立封装,因此比较容易测试。在测试中分别用了黑盒测试法和白盒测试法对系统的各个封装的类和方法进行逐一测试,在这中间进行了排除了大量的错误,当然还包括数据格式错误,和数据库连接的错误,另外还包括一些源码调用错误,功能模块之间的脱节,等等问题。对几个相互有联系的模块进行的测试叫集成测试。集成测试数据既要考虑正常情况也要考虑到各种可能的异常情况。经过上面的单元测试,进入这一步的集成测试,首先测试的是各个子程序模块在功能模块整体结构上的逻辑关系是否有错误的连接,在测试各个子程序模块之间能否保证数据的有效传输和数据的完整性及一致性。经过系统的集成性测试,排除了各个功能模
38、块在相互连接上出现的逻辑上的错误。基本实现了各个功能模块的数据正常传输。保证了数据的一致性。系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅发现了部分设计和编码的错误,并及时得到了改正,另外还验证了确实能够提供相应的功能。4.2 性能分析经过测试各个功能模块基本能够运行。基本符合毕业设计的要求。由于本人能力、时间有限,本系统的功能不是十分完善,其中或许还有很多不足的地方,有待于改进,然而,系统的开发完成并不代表任务的完成,还应该对他进行维护,望各位能提出批评与建议。参考文献:1. ASP.NET2.0实用教程 c#版/崔良海主编 北京:人民邮电出版社,2008.52.A
39、SP.NET+SQL server动态网站设计实例精解 /孙印杰等编著 北京:电子工业出版社,2005.103.ASP.ENT后台数据库网站制作实例经典 /来宾等著 北京:冶金工业出版社,2004.44.c#数据库系统开发完全手册 /明日科技编著 北京:人民邮电出版社,2006.125.网络数据库实用教程 SQL server2000 /张登宏,梁晓宏主编 北京:北京交通大学出版社,2007.076.HTML&CSS标准教程 /胡崧 编著 北京:中国青年出版社,20037.c#面向对象程序设计院 /邵鹏鸣编著 北京:清华大学出版社,2008.048.管理信息系统 /赵晖主编 北京:交通大学出版
40、社,2008.12致谢随着毕业设计完成和毕业论文的收尾,意味着我的大学的学习生活将要结束了。光阴似箭,日月如梭,这三年来学习的时光是多么的短暂。在这三年的时间里,感觉自身的知识和思想不断提高,除了自己的努力之外,还离不开老师们的教导,同学和朋友的关心和帮助。在这里我要感谢我的毕业设计的指导老师张老师,感谢她的辛勤栽培和孜孜教诲,如果不是她我的论文就不会顺利完成。在我做毕业设计时老师给我的情切关怀和细心指导,在ASP.NET方面,老师给我提供技术帮助。在论文方面,张老师积极给我指点迷津,帮助我开拓思路。张老师严谨的态度, 精益求精的作风,不仅授予知识,而且授予做人。感谢张老师的鼓励和支持,祝愿您
41、工作顺利,心想事成。最后也感谢三年来教育我的老师,非常感谢他们,没有他们的辛勤付出就没有我的今天。同时也感谢我的同学和朋友,有了你们的鼓励,使我有了追求进步的信心。祝愿你们事事如意!目 录第一章 总论1第一节 项目背景1第二节 项目概况2第二章 项目建设必要性5第三章 市场分析与建设规模7第一节 汽车市场需求分析7第二节 市场预测12第三节 项目产品市场分析13第四节 建设规模16第四章 场址选择17第一节 场址所在位置现状17第二节场址建设条件17第五章 技术方案、设备方案、工程方案22第一节 技术方案22第二节 设备方案28第三节 工程方案33第六章 原材料、燃料供应38第七章 总图布置与公用辅助工程39第一节 总图布置39第二节 公用辅助工程43第八章 环境影响评价52第一节 环境保护设计依据52第二节 项目建设和生产对环境的影响52第三节 环境保护措施54第四节 环境影响评价56第九章 劳动安全卫生与消防57第一节 劳动安全卫生57第二节 消防64第十章 节能与节能措施67第一节 项目概况67第二节 项目综合能耗69第三节 节约及合理利用能源的主要措施71第十一章 项目实施进度与人力资