基于c 图书馆管理系统设计与实现_第1页
基于c 图书馆管理系统设计与实现_第2页
基于c 图书馆管理系统设计与实现_第3页
基于c 图书馆管理系统设计与实现_第4页
基于c 图书馆管理系统设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕毕 业业 设设 计计 题目题目 基于基于 C#图书馆管理系统设计与实现图书馆管理系统设计与实现 姓 名 白露 学 号 201104410192 系(院) 信息工程系 班 级 P13 软件技术 2 班 指导教师 职 称 二 O 一六 年 六 月 一 日 摘要 随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富 的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要, 我国图书馆计算机等信息技术的应用起步于 20 世纪 70 年代末期,随着改革开 放的步伐得迅速发展,特别是 90 年代以后,我国图书馆信息网络建设取得了较 大发展图书馆信息化建设迈向了一个新台阶。 本系统是利用 B/S 架构的图书管理系统,用于实现院校图书馆办公系统的 自动化,信息化,简单化。该系统采用 Microsoft Visual Studio 2008 为开发 工具,利用现今比较流行的 C#开发语言,以 SQL Server 2008 为存储数据库来 进行系统开发,最终实现用户和管理员两个方面的基本功能。如:如游客注册 成为用户登录系统后可对图书馆中的图书信息进行查询,可对图书馆申请借书, 查询自己的历史借书记录及修改个人用户信息及密码。管理员登录系统后对用 户的信息进行管理如添加、修改、删除及查询,图书分类管理如添加、修改、 删除及查询,图书信息进行管理如添加、修改、删除及查询,图书借还管理对 用户所申请的图书进行审核借书、归还、驳回,及查询所有用户历史借书记录, 还可以对管理进行添加、修改及删除。 本系统不仅维护方便,节省了图书馆的资源,方便图书馆进行图书管理, 同时,用户也能够更容易更直观的查询书籍、使借书、还书、查书的过程大大 简化,更加的方便和容易。 关键词: B/S SQL Server 2008 Visual Studio 2010 ASP.NET 图 书管理系统 目目 录录 第一章第一章 绪论绪论 1 1.1 研究背景及意义 1 1.2 国内外研究现状及发展前景.2 1.3 课题设计目标 3 第二章第二章 相关技术介绍相关技术介绍 .4 2.1 SQL SERVER 2008 技术.4 2.2 ASP.NET 技术 .5 2.3 C#6 2.4 三层结构 8 2.5 系统开发及运行环境 8 第三章第三章 需求分析需求分析.10 3.1 需求分析概述.10 3.2 功能需求.10 3.3 可行性分析 11 3.4 性能分析12 第四章第四章 系统概要设计系统概要设计 .14 4.1 系统体系结构设计 14 4.2 系统总体模块结构设计.15 4.3 系统总体处理流程 16 4.4 数据库设计.17 4.4.1 概念结构设计.17 4.4.2 逻辑结构设计18 4.4.3 数据库表之间关系20 第五章第五章 系统详细设计与实现系统详细设计与实现21 5.1 注册界面详细设计与实现.21 5.2登录运行界面详细设计与实现22 5.3.1 图书分类管理模块设计与实现.23 5.3.2 图书信息管理模块设计与实现.27 5.3.3 图书借还管理模块设计与实现.28 5.3.4 用户管理模块设计与实现.33 5.3.5 系统管理模块设计与实现.34 5.3用户角色模块的详细设计与实现35 5.4.1 修改信息模块设计与实现.35 5.4.2 我要借书模块设计与实现.36 5.4.3 借阅记录模块设计与实现.36 5.4.4 密码维护模块设计与实现.37 第六章第六章 系统测试系统测试.38 6.1 测试的目的 38 6.2 测试的方法与结果 38 第七章第七章 问题与解决方案问题与解决方案40 7.1 图书睠借出 40 7.2 图书的归还 41 7.3 图书的整理.44 第八章第八章 总结总结 46 致谢致谢47 参考文献参考文献48 基于 C#图书馆管理系统设计与实现 1 第一章 绪论 1.1 研究背景及意义 近些年来,图书馆事业的巨大进步已为图书馆在新世纪的发展打下了坚实的 基础.全球信息化和高新技术的发展也为图书馆提供了更好的发展机遇,传统的 单一以书本作为单元信息服务手段已不能满足读者的需求,现代化服务手段的实 施势在必行。随着社会的发展,信息社会的建立,图书馆开始冲破传统服务模 式,紧密地配合社会需求,提供特色服务,有针对性的服务,不断提高读者的 满意率。随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数 量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方 便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若 采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管 理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料 的管理需要有效的图书管理软件。 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是 计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够 进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的 提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。 计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理 的前提。本图书管理系统系统就是为了管理好图书馆信息而设计的。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多 的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用 计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于 文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定 借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅 者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量 大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统, 规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没 基于 C#图书馆管理系统设计与实现 2 有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取 手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管 理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记 录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长, 如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。 如要对很长时间以前的图书进行更改就更加困难了。 基于这此问题,我认为在枝江市有必要建立一个图书管理系统,使图书管 理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速 度和准确性,能够及时、准确、有效的查询和修改图书情况。 1.2 国内外研究现状及发展前景 90 年代中期,我国图书馆自动化系统的研发曾经出现了一个高潮时期,当时推出了 目前在国内较有影响的几个大型自动化系统(如南京汇文、北邮 MELINETS) ,并提出了 “第三代图书馆自动化系统”的概念。在此之后,国内图书馆自动化系统处于相对平淡的一 个历史时期,无论在理论上,还是在整体技术实现上,都没有大的突破,有的研究人员甚 至认为图书馆自动化系统已经到达了顶点,没有发展的余地。 国外自动化系统已经在我们所说的“第三代图书馆自动化系统”的基础之上,在多个方 面(如体系结构、移动计算、门户集成)得到了较大的发展。国外图书馆自动化系统的起 源可以追溯到 1954 年,当时,美国海军兵器中心(NOTS)就在 IBM 701 机器上进行了单 元词匹配检索。1958 年,IBM 的研究员卢恩进行了著名的自动抽词试验,开创了自动分类、 自动标引、信息检索等多个与图书馆学情报学密切相关的研究领域之先河。 图书馆自动化系统的真正发展是在 1964 年 LC 发起研制机读目录之后。特别是 20 世 纪 70 年代,以编目系统为基础的各种自动化系统已经成形,同时还出现了以编目系统为纽 带的联机编目协作网,例如 OCLC,BALLOTS,RLIN,WLN 等;当时的图书馆自动化系 统是由大学图书馆或有条件的大型图书馆自主开发的,如东伊利诺斯大学的联机图书流通 系统,华盛顿州立大学的图书采购系统等。 从 20 世纪 70 年代末 80 年代初,图书馆自动化系统由单一功能性系统转向图书馆集成 基于 C#图书馆管理系统设计与实现 3 管理系统,其典型代表是西北大学的 NOTIS 系统;这期间还出现了专门为图书馆研制计算 机管理系统的公司,其中 Innovative Interface.Inc 成立于 1978 年,Sirsi 成立于 1979 年, Dynix(epixtech)成立于 1983 年,Notis 成立于 1983 年,Ex libris 成立于 1980 年。商品化 的图书馆自动化系统的出现,本身就是社会分工的体现,使得图书馆能更进一步地专注于 资源建设和服务质量的提高。事实上,从上个世纪八十年代中期开始,发达国家的图书馆 基本上不再自己独立研制软件,而是直接购买商品化的软件系统本文希望通过对这些国外 图书馆自动化系统的分析,总结国外图书馆自动化系统的主要趋势,一方面为有志于提高 国内自动化系统水平的有识之士提供参考;另一方面,也为一些希望引进国外自动化系统 的图书馆提供一个当前国外图书馆自动化系统的基本概况。 1.3 课题设计目标 本系统是基于 B/S 架构以 ASP.NET 技术,以推进图书管理无纸化,过程电 子化,管理智能化的发展。本文从理论和实践两个角度出发,对一个具有数据 分析功能的图书管理系统进行设计与实现分析。论文首先较为详尽地介绍了面 向对象分析与设计的有关概念与技术,特别深入介绍了在本系统中运用到的知 识,如:面向对象的分析设计流程;系统中所用到的开发技术 ASP.NET 的特点。 接着对图书管理系统的可行性进行了分析,然后对系统的设计思想、设计目标 与系统的整体结构进行了明确的规划。最后对系统的主要页面、数据库、应用 程序的设计与实现作了较为详细的讲解。本图书管理系统是在 Visual Studio.Net 平台上运用 ASP.NET 技术、SQL Server 2008 数据库来实现的。其 主要功能有:用户管理,图书信息管理,数据备份等。论文在撰写过程中,力 求将理论与实践应用相结合,对各种理论进行阐述的同时配合系统从实际应用 和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中 的应用与实现。 基于 C#图书馆管理系统设计与实现 4 第二章 相关技术介绍 本系统是基于 B/S 架构的图书管理系统,主要运用到的相关技术有 SQL Server 2008、ASP.NET、C#、三层结构,相关技术详细介绍如下: 2.1 SQL Server 2008 技术 SQL Server 2008 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。 SQL Server 2008 数据库引擎为关系 型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理 用于业务的高可用性和高性能的数据应用程序。 Microsoft SQL Server 作为 Microsoft 公司在 Windows 平台上开发的数据 库,是经过若干实践所证实的优秀的数据库管理系统,是一个全面的、集成的、 端到端的数据解决方案。SQL Server 2008 扩展了 SQL Server 2005 的性能, 成为大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库 平台。和以往的数据解决方案相比,SQL Server 2008 将给我们带来空前的价 值、超强的功能和激动人心的全新体验。SQL Server 2008 中包含了非常丰富 的新特性,通过提供一个更安全、可靠和高效的数据管理平台,增强企业组织 中用户的管理能力,大幅提升 IT 管理效率并降低运行风险和成本,通过提供先 进的商业智能平台满足众多客户对业务的实时统计分析、监控预测等多种复杂 管理需求,推动企业管理信息化建设和业务发展;同时,SQL Server 2008 将 提供一个极具扩展性和灵活性的开发平台,不断拓展应用空间,实现 Internet 数据业务互联,为我们带来新的商业应用机遇。由于大大减少了应用程序宕机 时间,提高了系统的可伸缩性和性能,并加以更严格的安全控制,SQL Server 2008 在支持现实中最苛刻的企业级系统要求的道路上,迈出了极大的一步。 SQL Server 是微软服务器家族中重要的一部分,通过微软服务器系列产品共有 的 Engineering strategy 所实现的增强的管理性和集成性,客户可以有效降 低总体拥有成本并从更快的开发部署时间中受益。SQLServer2008 具有以下优 点: 基于 C#图书馆管理系统设计与实现 5 1、安全、可靠、高效的企业级数据管理平台 2、极具扩展性和灵活性的开发平台 3、先进、一体化的商业智能平台 正是基于以上的优势,所以物流管理系统将 SQL Server2008 作为数据库, 这样一方面能够加快开发进度、减小部署代价,另一方面也能够提升系统数据 运行效率、易于数据库数据管理工作。 2.2 ASP.NET 技术 ASP.NET 是统一的 Web 应用程序平台,是一种新的编程模型和基本结构, 通过 ASP.NET 能够构建更安全、更强、可升级、更稳定的网络应用程序。 其主要特点是: (1)高效的运行性能 由于 ASP.NET 采用代码页面(.cs 文件)与前台页面(.aspx 文件)分离存 储,这使得 ASP.NET 应用程序可以像一般 Windows 下的应用程序一样,编译这 些代码页面成 DLL 文件。ASP.NET 在服务器上运行时,可以直接运行编译好的 DLL 文件,这比 ASP 等程序需要在边编译边运行的运行性能要好很多。而且 ASP.NET 采用缓存机制,使页面的运行性能更好。 (2)简易性 ASP.NET 完全基于面向对象开发技术,使整个网络应用程序开发根据页面 各个对象的属性、方法、事件进行各个功能的开发。例如,页面中添加一个按 钮,单击该按钮,就可以为按钮设置一个 Click 事件,在该事件中添加一些处 理代码,则可以实现单击按钮时,处理一些功能。 (3)灵活性 ASP.NET 不依赖于任何 Web 浏览器,也与任何语言无直接关系,在 ASP.NET 开发中可以结合多种程序语言,构建功能丰富的应用程序。ASP.NET 网 络应用程序甚至可以调用 API、Windows 其他应用程序进行联合开发,这使 ASP.NET 的开发更具有灵活性。 (4)可管理性 ASP.NET 2.0 之后的版本,是基于 Web.config 文件进行配置管理的应用程 基于 C#图书馆管理系统设计与实现 6 序,这使 ASP.NET 的应用程序不依赖于本地开发环境,方便该应用程序的移植。 例如,要将网站发布到虚拟主机上,只要将 Web.config 文件复制到该虚拟空间, 就可以完成在虚拟主机上配置开发环境。如果对应用程序进行修改变化,响应 一些相关配置,只要将该配置文件上传到服务器,就可以使服务器上的应用程 序也得到更新变化。这就是 ASP.NET 的可管理性。 (5)可调试性 ASP.NET 可以像 Windows 应用程序那样进行调试,并跟踪调试的错误或异 常。同时也提供了处理这些错误或异常的处理机制,保证应用程序始终可以正 常运行。 (6)自定义性和扩展性 ASP.NET 可以将一个 ASP.NET 页面程序修改设置为一个自定义用户控件, 并可以添加插入到不同的 ASP.NET 页面中,实现更具有个性化的功能组件。同 时这些组件也可以应用到其他站点中,这样提高了 ASP.NET 代码的重复使用及 功能扩展。 2.3 C# C#(C Sharp)是微软公司.NET 战略部署的重要一环,是面向对象(OO,Open to Object)的编程语言(PL,Programming Language)。从.NET1.0、.NET2.0 到. NET3.5,C#也经历了 C#1.0、C#2.0 和 C#3.0 的过程,发展成为一门成熟的语言, 也使微软一次拿出以 C#为“内核” ,XAML 为“外壳” ,WPF、WCF、LINQ 等为 “包装” ,ASP.NET AJAX 和 Silver Light 等为“深度扩展”的全方位“阻击” Java 和 Flash 等技术的部署。 C#和 Java 相似,需要运行在特定的环境中,而不同的是,Java 运行在 JVM(Java 虚拟机)上,而 C#运行在.NET Framework(准确的说是 CLR,Common Language Runtime)上。比如 C#2.0 可运行在.NET2.0 和.NET3.5 上,而 C#3.0 只能运行在.NET3.5 上。要运行 C#程序,电脑必须安装了 Windows(XP 以上版 本最佳,Linux 平台下的虚拟机和.NET Framework 还在研究阶段) ,并安装必要 的.NET Framework。其实,在 Windows Vista 中,微软已经加入了.NET3.0。而 要是想要编译 C#程序,则至少要安装.NET Framework SDK。 基于 C#图书馆管理系统设计与实现 7 对于 C#的争论从来没有停止过,特别是 Java 阵营和 C/C+阵营,其实,术 业有专攻,扫大街的和看自行车的有何可争的?况且现在的状况是多门语言并 存,至于哪门语言会遭淘汰(或许是几十年后才会出现的事情,或许不会出现) , 还是让时间去说明。 C#、VB 和 C+托管语言(C+/CLR,是微软对 C+的扩展)的源代码经过 C#编 译器和连接器编译成中间语言(ML, Mid-Language),功能相同语言不同的代码 可能会编译成相同的 ML,这使得 C#、VB、C+/CLR 等语言工作者可以在同一个 工程里合作,使得不同编程语言的使用者可以在同一个团队中融洽相处。当第 一次运行 C#程序时,CLR 会根据系统配置,将其优化编译成最终程序,今后再 次运行时就无需经过 CLR 编译而能够快速运行,这使得开发者可以最大程度的 从不同系统平台上的不同代码编辑和优化中解放出来。CLR 还支持延迟编译的 技术,使得不同模块在使用时才编译,减少了编译的工作量,加快了程序第一 次启动的速度。下面对它的几个突出特点进行了描述: 1、简洁的语法 C#取消了指针,也不定义烦乱的伪关键字,它使用有限的指令、修饰符和操 作符,语法上几乎不存在任何冗余,整个程序结构十分清晰。初学者可以轻松 快速地掌握 C#的基本特性,而 C 和 C+程序员转入 C#则几乎不会有任何障碍。 2、精心的面向对象设计 C#具有面向对象的语言所应有的基本特性:封装、继承和多态性。它禁止多 重继承,禁止各种全局方法、全局变量和常量。C#以类为基础来构建所有的类 型,并通过命名空间对代码进行层次化的组织和管理,减少了发生命名冲突的 可能性。 3、与 Web 的紧密结合 借助 Web 服务框架,C#使得网络开发和本地开发几乎一样简单。开发人员 无需了解网络的细节,可以用统一的方式来处理本地的和远程的 C#对象,而 C# 组件能够方便地转变为 Web 服务,并被其他平台上的各种编程语言调用。 4、完整的安全性与错误处理 C#符合通用类型系统的类型安全性要求,并用公共语言运行时所提供的代码 访问安全特性,从而能够在程序中方便地配置安全等级和用户权限。此外,垃 基于 C#图书馆管理系统设计与实现 8 圾收集机制自动管理对象的生命周期,开发人员无须再负担内存管理的任务。 应用程序的可靠性进一步得到了提高。 5、版本管理技术 C#在语言中内置了版本控制功能,并通过接口和继承来实现应用的可扩展性。 应用程序的维护和升级更加易于管理。 6、灵活性与兼容性 C#中允许使用非托管代码,能够与各种现有的组件和程序(包括 COM 组件、 WIN32 API 等)进行集成和交互。它还可以通过代表(delegates)来模拟指针 的功能,通过接口来模拟多继承的实现。 为了吸引软件开发人员和合作伙伴对. NET 的认同,Microsoft 推出了新一代的集成开发环境 Microsoft Visual Studio.NET。该环境提供了对 C#语言编程的可视化支持,使得开发人员能够方 便地创建、运行、调试和发布 C#程序,从而针对.NET 平台快速地构建广泛的应 用。 2.4 三层结构 三层架构通常意义上的三层架构就是将整个业务应用划分为:表现层(UI) 、业 务逻辑层(BLL) 、数据访问层(DAL) 。区分层次的目的即为了“高内聚,低耦 合”的思想。 1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统 的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操 作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、 删除、修改、查找等。 2.5 系统开发及运行环境 本文是基于 ASP.NET 开发的图书管理系统,对系统的软件、硬件都有相应 的要求,有关系统的软件、硬件要求如下: 开发语言:C# 基于 C#图书馆管理系统设计与实现 9 开发技术:ASP.NET SQL Server 2008 系统开发平台:Microsoft Visual Studio 2010 系统运行框架:.NET 4.0 配置要求: 系统:Windows XP 或 Win7 (32bit/64bit) 内存:256MB 硬盘:1GB 可用空间 基于 C#图书馆管理系统设计与实现 10 第三章 需求分析 3.1 需求分析概述 进行数据库设计首先必须准确了解与分析用户需求(即用户想要做什么)。 需求分析是整个设计过程的基础,是最困难、最耗费时的一步。需求分析是否 做得充分、准确,决定了在此基础上创建的数据库及应用程序的速度与质量。 需求分析做得不好,轻则使应用程序的开发反复性比较大,重则会导致整个数 据库设计返工重做。无论哪一种都将造成巨大的经济浪费,给企业、单位和个 人造成一定程度的影响。 需求描述与分析设计一个性能良好的数据库系统,明确应用环境对系统的要求是首要 的和最基本的。特别是数据应用非常广泛,非常复杂,要是事先没有对信息进行充分和细 致的分析,这种设计就很难取得成功。通过需求分析阶段对图书管理系统的整个应用情况 作全面的、详细的调查,确定图书管理的目标,收集支持系统总的设计目标的基础数据和 对这些数据的要求,确定用户的需求,并把这些写成用户和数据库设计者都能够接受的文 档。事实上,需求分析是数据库开发中最难的任务之一。因为,第一,系统本身是可变的, 用户的需求必须不断调整,使之与这种变化相适应。第二,用户很难说清某部分工作的功 能处理过程。所以,设计人员必须认识到:在整个需求分析以及系统设计过程中,用户参 与的重要性,通过各种方法展开调查分析。 3.2 功能需求 该系统分为两种角色,一种是用户即借书者,另一种为管理员即图书馆管理员。游客 浏览网站时可注册成为用户,用户登录进系统后可分为以下几个模块操作: 1)修改信息:用户可对自己的信息进行修改,如姓名、身份证、地址、联系电话。 2)我要借书:用户可对图书馆里的所有图书进行查询,可按图书的条形码、图书名称 或图书类型条件进行组合查询,可查看到图书的条形码、图书名称、图书价格、图书库存 及入库日期等信息,并可对自己喜好的图书进行借阅的操作。 3)借还记录:用户可查看到自己个的的历史借还书记录。如:借书人、图书条形码、 基于 C#图书馆管理系统设计与实现 11 图书名称、借书日期、到期日期、归还日期及状态,该状态这里分有四种可能:第一种为 “审核中”用户对图书进行借阅时,还没经过管理员审核时状态为“审核中”。第二种为 “驳回”用户对图书进行借阅时,管理员可对用户申请借阅的图书进行审核,如果管理员 不同意借阅时状态为“驳回”,反之同意时借阅状态为“借出”也是第三种情况。此时借 书日期默认为当前日期,到期日期默认为当前日期加上三个月。第四种为“归还”,当用 户把借阅的书箱归还给图书馆时,此时借阅状态为“归还”,并且归还日期为用户归还的 日期。 4)密码维护:用户可对自己的密码进行修改,当用户提供输入原密码及输入新密码和 确认新密码后,保护原密码正确以及新密码和确认密码一致时可修改成功,反之修改失败。 管理员登录进系统后可分为以下几个模块操作: 1)图书分类管理:管理员可对图书的类型进行添加、修改、删除及查询。 2)图书信息管理:管理员可对新书信息进行录入,对图书的信息进行相应的修改、删 除,及可按图书的条形码、图书名称或图书类型条件进行组合查询,可查看到图书的条形 码、图书名称、图书价格、图书库存及入库日期等信息。 3)图书借还管理:管理员可对用户申请借阅的信息进行审核,当不同意时,借阅信息 状态为“驳回”同意时,借阅信息状态为“借出”,当用户把借阅的书箱归还给图书馆时, 此时借阅状态为“归还”,并可以查看所有用户历史的借书还书记录。 4)用户管理:管理员可对注册后的所有用户进行修改、删除、及查看,并可设置用户 类型。 5)系统管理:管理员可对系统添加多个管理员账号及密码,同时也可以修改及删除。 3.3 可行性分析 为了对问题进行研究,以最小代价在最短的时间内确定问题是否可解,经过对此项目 进行详细调查研究,初拟本系统的实现报告,对软件开发中将要面临的问题及其解决方案 进行初步设计及合理安排,明确开发目标。 1) 技术可行性 本系统采用 Microsoft Visual Studio 2010 平台进行开发,它是一个集成于代码编写、 运行、调试及发布等功能于一身的强大的开发环境。开发工程的效率非常高,环境也提供 基于 C#图书馆管理系统设计与实现 12 了自动代码生成机制,可以有效的减少代码编写量。基于 VS 的应用程序,对于程序的发 布也是十分的容易,因此,开发本系统在技术上完全可行。 2) 经济可行性 该系统成本主要集中在软件的开发上,当系统投入使用后可以为图书馆管理部门节约 大量的人力、物力。同时该系统也实现了开放性图书馆管理的现代化管理模式,达到充分 利用管理资源,进行科学和规范化管理,提高了管理人员的素质和工作质量。它所带来的 效益远远大于系统软件的开发成本,在经济上完全可行。 3) 操作可行性 在设计系统的过程中,充分考虑到管理人员和学生的习惯。界面风格使用简单大方形 式呈现。使用方便,而无需进行任何软件的安装,操作简单;按权限使用并提供多种查询 手段,在操作上可行。 3.4 性能分析 1. 用户特点 操作人员:懂计算机基础的操作人员即可。 2. 时间特性要求 1 响应时间: 更新处理时间: 数据转换时间: 数据传送时间: 设备客户端机器要求:普通 PC 机即可 基于 C#图书馆管理系统设计与实现 13 2 支持系统运行环境:Windows XP/Windows 2000/Windows 2003 等一 系列操作系统。 3 开发背景 开发期限:6 周 开发语言:C# 开发技术:ASP.NET 系统开发平台:Microsoft Visual Studio 2010 数据库:SQL Server 2008 基于 C#图书馆管理系统设计与实现 14 第四章 系统概要设计 4.1 系统体系结构设计 本系统所面向的对象是广大的互连网用户。因此,将要采用比较流行的 B/S 结构。B/S 结构即浏览器和服务器结构。B/S 模式把服务器部分分解为一个 数据服务器和一个或多个应用服务器(Web 服务器),从而构成一个三层结构的客 户服务器体系,表示层、中间层和资料层被分成三个相对独立的单元,如图 4-1 所示。 图 4-1 三层结构图 中间层通常包括业务逻辑层(Business Logic Layer,简称 BLL) 、数据 访问层(Database Access Layer,简称 DAL)和数据对象模型层(Database Object Model Layer,简称 DOM) 。此时的三层结构软件模型如图 4-2 所示。 图 4-2 三层结构软件模型图 用户界面(User Interface,简称 UI) ,也称表示层,位于最上层,用 于显示和接收用户提交的数据,为用户提供交互式的界面。表示层一般为 Windows 窗体应用程序或 Web 应用程序。 业务逻辑层是表示层和数据访问层之间沟通的桥梁,主要负责数据的传递 和处理。 数据访问层主要实现对数据的读取、保存和更新等操作。 数据对象模型层即业务实体层。主要用于表示数据存储的持久对象。在实 际应用程序中的实体类是跟数据库中的表相对应的,也就是说一个表会有一个 对应的实体类。当然有些三层结构并不包含单独的数据对象模型层,而将其功 基于 C#图书馆管理系统设计与实现 15 能分解到业务逻辑层和数据访问层之中。 在三层结构中,表示层直接依赖于业务逻辑层;业务逻辑层直接依赖于数据访 问层;数据访问层直接依赖于数据对象模型层。 三层架构的优点: 三层结构主要体现出对程序分而治之的思想:数据访问层只负责提供原原 始数据,并不需要了解业务逻辑;业务逻辑层调用数据访问层提供的方法自定 义一些业务逻辑,对数据进行加工,本身不需要了解数据访问层的实现;表示 层直接调用业务逻辑提供的方法把数据呈现给用户。 三层结构的优点在于不必为了业务逻辑上的微小变化而迁至整个程序的修 改,只需要修改商业逻辑层中的一个函数或一个过程;增强了代码的可重用性; 便于不同层次的开发人员之间的合作,只要遵循一定的接口标准就可以进行并 行开发了,最终只要将各个部分拼接到一起构成最终的应用程序。 三层结构的应用程序将业务规则、数据访问、合法性校验等工作放到了中 间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过 COM/DCOM 通讯与中间层建立连接,再经由中间层与数据库进行交互,这样会大 大提高系统的安全性。 三层结构的应用程序更能够适应企业级应用日益增长的复杂度和灵活性的 要求,并且通过软件分层的高内聚、低耦合原则,实现扩展、维护和重用的要 求,可以大大提高开发效率。 4.2 系统总体模块结构设计 图书管理系统总体结构的设计分为两个部分的设计,分别是用户角色模块 设计,管理员角色模块的设计。其中用户模块的设计,系统总体模块结构图如 下图 4-3 所示。 基于 C#图书馆管理系统设计与实现 16 图书管理系统 用户角色模块 管理员角色模块 块 修 改 资 料 我 要 借 书 借 还 记 录 修 改 密 码 图 书 分 类 管 理 图 书 信 息 管 理 图 书 借 还 管 理 用 户 管 理 系 统 管 理 添 加 图 书 分 类 图 书 分 类 查 询 录 入 新 书 图 书 查 询 借 出 管 理 归 还 管 理 借 还 记 录 用 户 添 加 用 户 查 询 修 改 密 码 图 4-3 系统总体模块结构图 4.3 系统总体处理流程 图书管理系统总体流程图的设计分为两个部分的设计,分别是用户角色模 块的设计,管理员角色模块的设计。其中用户角色模块的设计,即供用户进行 图书查询,图书借阅,个人基本信息、密码修改;而管理员模块的设计,即供 管理员对整个系统中的用户,图书分类,图书信息,图书借还以及管理员自身 进行操作,管理。 系统总体的流程图如图 4-4 所示。 基于 C#图书馆管理系统设计与实现 17 图书管理系统 登录 用户角色模块 修 改 资 料 我 要 借 书 借 还 记 录 修 改 密 码 管理员角色模块 图 书 分 类 管 理 图 书 类 型 添 加 图 书 类 型 修 改 图 书 类 型 删 除 图 书 类 型 查 询 图 书 信 息 管 理 录 入 新 书 信 息 修 改 图 书 信 息 删 除 图 书 信 息 查 询 图 书 信 息 图 书 借 还 管 理 借 出 管 理 归 还 管 理 借 还 记 录 系 统 管 理 修 改 密 码 用 户 管 理 添 加 用 户 修 改 用 户 删 除 用 户 查 询 用 户 注册为用户 图 4-4 系统总体的流程图 4.4 数据库设计 4.4.1 概念结构设计 通过了解图书管理系统要实现的功能,可以得出图书管理数据库包含的实 体有“用户表” 、 “图书类型表” 、 “图书信息表”和“借阅信息表” 。 用户表:ID、用户名、密码、姓名、身份证、地址、电话、是否为管理员 图书类型表:ID、图书类型名称 图书信息表:ID、图片编号、图书类型 ID、图书名称、图书价格、图书 库存数量、图书图片路径、入库日期。 基于 C#图书馆管理系统设计与实现 18 借阅信息表: ID、图书信息 ID、用户 ID、状态、借出日期、归还日期。 在本系统中,涉及到用户信息、图书类型、图书信息、借阅信息等实体。 它们之间的关系如图 4-5 的 E-R 图所示。 用户表 用户 ID 电话 地址 身份证 姓名 是否为管理员 用户名 图书类型表 图书类型 ID 图书类型名 称 1:n 图书信息表 图书编号 图书类型 ID 图书图片路 径 图书名称价格 图书库存数量 m: n 借阅图书表 借阅 ID 用户 ID 状态 入库日期 借出日期 归还日期 图书信息 ID 图书信息 ID 图 4-5 实体间的 E-R 图 4.4.2 逻辑结构设计 数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。在本系统 中,主要设计了用户表、图书类型表、图书信息表、借阅信息表的具体设计如 基于 C#图书馆管理系统设计与实现 19 下: 用户表的结构如下表 4-1 所示 Users(用户表) 表 4-1 用户表 字段类型备注 UserIdint用户 ID(PK) UserNameNvarchar(50)用户名 PwdNvarchar(50)密码 RealNameNvarchar(50)姓名 IdCardNvarchar(50)身份证 AddressNvarchar(50)地址 PhoneNvarchar(50)联系电话 IsAdminint是否为管理员(1 为是,0 为 否) 图书类型表的结构如下表 4-2 所示 表 4-2 图书类型表 字段类型备注 BookTypeIdint图书分类 ID(PK) TypeNameNvarchar(50)分类名称 图书信息表的结构如下表 4-3 所示。 表 4-3 图书信息表 字段类型备注 BookInfoIdint图书信息 ID(PK) BookNoNvarchar(50)图书编号 BookNameNvarchar(50)图书名称 Pricedecimal(18, 2)价格 Inventoryint库存 PhotoNvarchar(100)图书路径 InTimedatetime入库时间 BookTypeIdint图书分类 ID(FK) 借阅信息表的结构如下表 4-4 所示。 表 4-4 借阅表 字段类型备注 BorrowIdint图书借阅 ID(PK) UserIdint用户 ID(FK) BookInfoIdint图书信息 ID(FK) Stateint状态(0 为审核中,1 为借出, 2 为归还,3 为驳回) BorrowTimedatatime借出日期 ReturnTimedatatime归还日期 基于 C#图书馆管理系统设计与实现 20 4.4.3 数据库表之间关系 数据库表关系图用于表示数据库中表与表之间关系,关系图如下图 4-6 所示。 图 4-6 数据库表关系图 基于 C#图书馆管理系统设计与实现 21 第五章 系统详细设计与实现 5.1 注册界面详细设计与实现 该界面是用于给用户注册,当游客注册成到用户后就可以登录图书管理系 统。注册界面,如图 5-1 所示。 图 5-1 注册界面 该注册实现此功能的代码如下: / / 用户注册 / / / protected void btnAdd_Click(object sender, EventArgs e) Users st = new Users(); st.Pwd = txtPwd.Value.Trim(); st.RealName = txtRealName.Value.Trim(); st.IsAdmin = 0; /是否为管理员(1为是,0为否) st.Phone = txtPhone.Value.Trim(); st.UserName = txtUserName.Value.Trim(); st.Address = txtAddress.Value.Trim(); st.IdCard = txtIdCard.Value.Trim(); if (!UsersBLL.IsTrue(st.UserName) if (UsersBLL.AddUsers(st) 0) this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(注册成功!);window.location.replace(login.aspx) 基于 C#图书馆管理系统设计与实现 22 “); return; else this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(注册失败!);“); return; else this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(该用户名已存在,请用别名!);“); return; 5.2登录运行界面详细设计与实现 登录分为两种角色人群操作,在进入系统进行各项具有相关权限操作功能 的操作之前,首先会先进入登录界面,在此需要输入相关的用户名和密码,并 选择是管理员登录还是用户登录,登录运行界面如图 5-2 所示。 图5-2 注册界面 该登录实现此功能的代码如下: / / 账号登录 / / / 基于 C#图书馆管理系统设计与实现 23 protected void btnLogin_Click(object sender, EventArgs e) try Users users = new Users(); if (UsersBLL.GetUsersLogin(txtUserName.Value.Trim(), txtPwd.Value.Trim(), out users) Session“Users“ = users; Response.Redirect(“index.aspx“,false); else this.Page.ClientScript.RegisterStartupScript(this.GetType(), “myalert“, “alert(用户名或者密码错误!);“); return; catch (Exception ex) Response.Write(ex.Message); this.Page.ClientScript.RegisterStartupScript(this.GetType(), “myalert“, “alert(登录失败!);“); return; 基于 C#图书馆管理系统设计与实现 24 管理员角色模块的详细设计与实现管理员角色模块的详细设计与实现 5.3.1 图书分类管理模块设计与实现 图书分类管理模块主要实现了对图书类型的添加、修改、删除及查询。 图书类型添加、修改界面,如图 5-3 所示 图5-3 图书类型添加、修改界面 实现图书类型添加、修改此功能的代码如下: / / 添加,修改 / / / protected void btnAdd_Click(object sender, EventArgs e) if (btnAdd.Text = “添加“) BookType model = new BookType(); model.TypeName = txtTypeName.Value.Trim(); if (BookTypeBLL.AddBookType(model) 0) 基于 C#图书馆管理系统设计与实现 25 this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(添加成功!);window.location.replace(BookTypeManage.aspx); “); return; else this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(添加失败!);“); return; else BookType model = BookTypeBLL.GetIdByBookType(Convert.ToInt32(Request.QueryString“id“); model.TypeName = txtTypeName.Value.Trim(); if (BookTypeBLL.UpdateBookType(model) 0) this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(修改成功!);window.location.replace(BookTypeManage.aspx); “); return; else this.Page.ClientScript.RegisterStartupScript(this.GetType(), “, “alert(修改失败!);“); return; 基于 C#图书馆管理系统设计与实现 26 图书类型查询、删除界面,如图 5-4 所示。 图5-4 图书类型查询、删除 实现图书类型查询、删除此功能的代码如下: public string strWhere = “; public Users users = new Users(); protected void Page_Load(object sender, EventArgs e) if (Session“Users“ != null) users = (Users)Session“Users“; else users = new Users(); Response.Write(“parent.window.locatio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论