图书管理系统方案.docx
- 文档编号:11133484
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:56
- 大小:971.43KB
图书管理系统方案.docx
《图书管理系统方案.docx》由会员分享,可在线阅读,更多相关《图书管理系统方案.docx(56页珍藏版)》请在冰豆网上搜索。
图书管理系统方案
福建商业高等专科学校2009届毕业论文
图书管理系统
\
学生姓名:
林宏弘学生学号:
09537003
年级:
2009专业:
软件技术
指导教师:
林峰职称:
讲师
2012年05月
毕业论文原创性声明
兹呈交的毕业论文,是本人在指导老师指导下独立完成的。
本人在毕业论文写作中参考的其他个人或集体的研究成果,均在文中心明确方式标明。
本人依法享有和承担由此论文而产生的权利和责任
声明人:
林宏弘
2012年05月
内容摘要
科研管理系统是针对我校日常科研管理工作的具体要求,从科研成果管理、科研项目管理、科研经费管理、科研机构及科研人员等方面进行建设的系统。
随着科研管理系统数据日益增加,数据量的庞大,教师对数据查看的要求也随之提高,尤其是报表方面,旧的报表已经不能满足教师的需求。
为此,对科研系统进行改进,主要是报表数据显示方面。
本系统是在WindowsXP下,采用ASP.NET\WEB技术和MicrosoftSQLServer2000数据库,开发工具为MicrosoftVisualStudio2008,采用C#技术模拟Pet.Shop架构开发的一种系统。
应用数据层基类 、数据层工厂类、接口层 、接口实现层 、实体类 、业务逻辑层、表示层的分层体系结构。
主要用了ASP.NET中的用户自定义控件和UserControl类。
关键字:
C#;SQLserver2005;Pet.Shop架构;报表;科研管理系统
中英文摘要(I)
6.总结(21)
1.引言
计算机是新技术革命的一支主力,也是推动社会向现代化迈进的活跃因素。
计算机科学与技术是第二次世界大战以来发展最快、影响最为深远的新兴学科之一。
计算机产业已在世界范围内发展成为一种极富生命力的战略产业。
随着社会的发展,计算机网络日趋成熟,走进了我们的生活,成为我们生活的主流,同时也被广泛应用于教学,科研,事业等各个方面。
所谓科研管理系统就是针对日常科研管理工作的具体要求而实现科研工作的网络化管理的一种系统,本系统的建设也是计算机网络飞速发展给人们带来方便的一种表现。
本系统模拟Pet.Shop框架开发,在MicrosoftVisualStudio2005平台下使用C#语言开发的,数据库使用MicrosoftSQLServer2005。
通过前用户界面和后台代码的建设共同完成了科研成果管理、科研项目管理、科研经费管理、科研机构及科研人员等模块从而充分展示了科研管理系统所带来的便利。
2.可行性分析
2.1可行性研究的前提
2.1.1目的
尽可能在最短的时间内确定完成系统模块,以便学校科研工作更加顺利进行。
2.1.2条件
现所具有的软、硬件设备如下:
开发设备:
PC机(CPU:
Intel(R)Core(TM)2CPU4300@1.80GHz(2CPUs),内存:
2046MB)
开发环境:
WindowsXP
开发软件:
VisualStudio2008
数据库服务器:
SQLServer2005
其它辅助工具:
Dreamweaver
以上设备可以满足本系统的开发。
2.1.3决定可行性的主要因素
一个良好的科研管理系统可以帮助我校科研工作的网络化管理。
完成此系统有助于科研管理沟通平台的构建,系统维护只要在后台进行编辑,前台的用户界面操作就能很好地按一定方式进行以达到你所要的效果。
服务于学校科研工作人员的工作,具有较强的使用性。
当然,系统的完整性离不开各模块的完整性。
2.2系统技术可行性分析
2.2.1 开发环境的选择
C#(读做"Csharp")是微软推出的一种基于.NET框架的、面向对象的高级编程语言。
C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库作为基础,拥有类似VisualBasic的快速开发能力。
C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角.
其特性:
(1)语言特性
相对于C和C++,这个语言在许多方面进行了限制和增强:
指针(Pointer)只能被用于不安全模式。
大多数对象访问通过安全的引用实现,以避免无效的调用,并且有许多算法用于验证溢出,指针只能用于调用值类型,以及受垃圾收集控制的托管对象。
对象不能被显式释放,代替为当不存在被引用时通过垃圾回收器回收。
只允许单一继承(singleinheritance),但是一个类可以实现多个接口(interfaces)。
C#比C++更加类型安全。
默认的安全转换是隐含转换,例如由短整型转换为长整型和从派生类转换为基类。
而接口布尔型同整型,及枚举型同整型不允许隐含转换,非空指针(通过引用相似对象)同用户定义类型的隐含转换必段被显式的确定,不同于C++的复制构造函数。
数组声明语法不同("int[]a=newint[5]"而不是"inta[5]")。
枚举位于其所在的命名空间中。
C#中没有模版(Template),但是在C#2.0中引入了泛型(Genericprogramming),并且支持一些C++模版不支持的特性。
比如泛型参数中的类型约束。
另一方面,表达式不能像C++模版中被用于类型参数。
属性支持,使用类似访问成员的方式调用。
完整的反射支持。
(2)泛型
泛型,或参数化类型,是被C#支持的.NET2.0特性。
不同于C++模版,.NET参数化类型是在运行时被实例化,而不是编译时,因此它可以跨语言,而C++模版却不行。
它支持的一些特性并不被C++模版直接支持,比如约束泛型参数实现一个接口。
另一方面,C#不支持无类型的泛型参数。
不像Java中的泛型,在CLI虚拟机中,.NETgenerics使用 具化 生成泛型参数,它允许优化和保存类型信息。
(3)静态类
静态类它不能被实例化,并且只能有静态成员。
这同很多过程语言中的模块概念相类似。
(4)两个基本类分部方法
允许代码生成器生成方法声明作为扩展点,如果有人在另一个部分类实现了它才会被包含于原代码编译。
分部方法(Partialmethods)必须定义在分部类(partialclasses)中。
定义分部方法需要用partial做修饰符。
分部方法不一定总是有执行内容的,也就是说定义的方法可以一句操作语句都没有。
分部方法返回值必须是void。
分部方法可以是静态(static)方法。
分部方法可以包含参数,参数可以包含以下修饰词:
this,ref,params。
分部方法必须是私有(private)方法
(5)Linq
语言集成查询(英语:
Language Integrated Query,缩写:
LINQ):
[5] 上下文相关关键字"from, where, select"可用于查询SQL、XML、集合等。
这些标识符在LINQ上下文中被作为关键字,但是它们的增加不会破坏原有的名为from、where或select的变量。
(6)程序的执行
C#并不被编译成为能够直接在计算机上执行的二进制本地代码。
与Java类似,它被编译成为中间代码(MicrosoftIntermediateLanguage),然后通过.NETFramework的虚拟机——被称之为通用语言运行库(CommonLanguageRuntime)——执行。
所有的.Net编程语言都被编译成这种被称为MSIL(MicrosoftIntermediateLanguage)的中间代码。
因此虽然最终的程序在表面上仍然与传统意义上的可执行文件都具有“.exe”的后缀名。
但是实际上,如果计算机上没有安装.NetFramework,那么这些程序将不能够被执行。
在程序执行时,.NetFramework将中间代码翻译成为二进制机器码,从而使它得到正确的运行。
最终的二进制代码被存储在一个缓冲区(Buffer)中。
所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。
这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度明显加快。
(7)索引下标标准化
一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样)以外是相似的. 可以用一个循环器来匿名引用字符串内部数组成员.
微软公司已经向ECMA申请将C#作为一种标准。
在2001年12月,ECMA发布了ECMA-334C#语言规范。
C#在2003年成为一个ISO标准(ISO/IEC23270)。
现在有一些独立的实现正在进行,包括:
自由软件基金会的dotGNUPortable.NET、Mono、Baltie -C#IDEforchildrenandyoung Baltie
(8)编译器
C#有5个著名的编译器(compilers):
最标准的C#的实现当属微软自己推出、并被包含在 .NETFramework 内的C#编译器。
微软的Rotor项目(RotorProject)(目前称为 SharedSourceCommonLanguageInfrastructure),提供了 通用语言运行庫(CommonLanguageRuntime)的实现与c#编译器。
由Novell赞助的 Mono 项目提供了C#编译器,同时也接近百分之百地实现了.NETFramework类库。
DotGNU 项目也提供了另一个自由版本的C#编译器,也提供了.NETFramework类库的实现。
Borland提供了项目级的C#集成开发环境,内部所使用的编译器仍是微软.NETFramework所提供的C#编译器(这也意味着你仍须安装微软的.NETFramework)。
产品:
C#Builder(商业版本),TurboC#Explorer(免费版本)。
2.2.2 编程语言的选择
C#无疑是这个星球上有史以来最好的编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果。
面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……你不可能在另外的一种语言中找到所有这些特性。
C#和JAVA一样,简直就是照搬了C++的部分语法,用C#开发应用软件可以大大缩短开发周期,同时可以利用原来除用户界面代码之外的C++代码。
2.2.3 数据库服务器的选择
该网站的数据库选择Microsoft公司出的SQLServer2005,该数据库具有高可用性,SQLServer2005的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统;管理工具则引进了一套集成的管理工具和管理应用编程接口(APIs),以提供易用性、可管理性、及对大型SQLServer配置的支持;通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。
安全性增强;可伸缩性的先进性包括表格分区、复制能力的增强和64位支持。
较为良好。
SQLServer2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。
SQLServer2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。
从CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。
SQLServer2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。
其服务器强大的性能和完备的功能已能得到大众的认可。
且开发该网站所用的开发工具、开发语言、Web服务器等都是Microsoft公司的产品,所以选择MicrosoftSQLServer2005作为该系统的数据库服务器。
3.模块分析及总体设计
3.1模块需求
此系统主要供学校科研工作者使用,其中报表分析、年度报表模块主要包括以下用户界面:
报表分析:
论文/专著等一览表、研究项目/课题一览表、教材成果一览表、著作成果一览表等
年度报表:
年度报表、年度工作、个人报表
3.1.1模块结构分析
模块结构图如下图3-1所示:
年度报表用户界面
年度报表
个人报表
打印
导出word
导出Excel
查询
查询
科研项目
科研成果
科研活动
年度工作
查询
导出word
导出Excel
打印
图3-1
3.1.2功能描述
报表分析:
(1)论文/专著等一览表:
将各院系的论文/专著使用列表形式展示,使科研工作人员有选择性的查看其想要的论文/专著内容。
并有导出、查询操作。
(2)研究项目/课题一览表:
将各院系的研究项目/课题使用列表形式展示,方便科研工作人员查看历年的研究项目/课题信息。
并有导出、查询操作。
(3)教材成果一览表:
将各院系的教材成果进行汇总,去除重复的数据,并通过列表形式展示,并有导出、查询操作。
(4)著作成果一览表:
以列表的形式将著作成果显示,方便用户查看,同时可对其进行导出、查询操作。
年度报表:
(1)年度报表:
将各院系的教师的科研情况进行汇总,方便科研工作者查看,同时具有打印、导出Word、导出Excel、查询功能,科研工作者可以将选定的年度科研信息备份成文档。
(2)年度工作:
通过该界面可以将个人的科研工作进行年度工作汇总,并支持打印导出功能。
(3)个人报表:
此用户界面主要用于查询当前用户一年内的科研项目、科研成果、科研活动信息。
3.1.3功能模块详细描述
(1)登入界面
程序启动后,进入用户登陆界面。
用户登录页面包括用户名称和用户口令的文本输入框,确定按钮。
输入正确用户名称和用户口令,只有经验证身份成功后,才进入我的主页的功能,通过导航菜单,继而可进行具体模块的操作。
(2)报表分析模块
展示所有的报表数据,根据自己的意愿进行相应的操作。
(3)年度报表模块
显示所有教师的年度科研工作,教师需有这项的权限才可以进行各项具体的操作。
3.2系统开发工具
3.2.1系统开发所用技术
C#:
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。
C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库作为基础,拥有类似VisualBasic的快速开发能力。
此次修改系统的.NET框架是用.NETFramework3.5。
这个版本将包含一个支持C#和VB.Net中心的语言特性的编译器,以及对语言整合查询(LINQ,Language-IntegratedQuery)的支援。
.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(CommonLanguageRuntime)为基础,支援多种语言(C#、VB.NET、C++、Python等)的开发。
SQL:
SQL全名是结构化查询语言(StructuredQueryLanguage),是用于数据库中的标准数据查询语言,IBM 公司最早使用在其开发的数据库系统中。
其功能强大,简单易学,自从推出以来,得到了广泛的应用,如今大多数的数据库管理系统都支持SQL。
JavaScript:
使用JavaScript(客户端脚本语言)实现客户端快速响应的要求以及网页添加动态功能。
XML:
使用XML作为少量数据的存储。
CSS:
使用CSS来控制网站的统一界面风格,方便修改。
Pet.shop的三层架构:
使用分层架构来提高代码的可读性和可重用性。
3.2.2运行环境
MicrosoftVisualStudio2005
SQLServer2005
IIS或IE6.0浏览器
4.模块开发设计
4.1开发框架的设计
1.项目概述与架构分析
微软刚推出了基于ASP.NET2.0下的PetShop4,该版本有了一个全新的用户界面。
是研究ASP.NET2.0的好范例,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能最好、结构最优、生产力最高。
为了用事实说话,通过对项目各方面的性能评估进而在比较.NET和Java的高下。
用户做比较的这个项目就是Petshop。
正因为Petshop肩负着上面所说的重任,各方面必须是最优的,架构设计应该是经过慎重考虑的。
所以其一经推出,便成为了开发者、架构师等人学习、研究的典范。
微软推荐的分层式结构一般分为三层,从下至上分别为:
数据访问层、业务逻辑层(又或成为领域层)、表示层,日前微软推出了基于.NETFramework2.0开发的Petshop4。
新的Petshop4实现了与Petshop3相同甚至更多的特性,由于采用了MasterPages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。
同时,在事务、数据缓存、安全方面使用了.NET2.0附带的特性,构建了一个灵活的最佳实践的应用程序。
所以此系统选择模拟PetShop框架进行完善系统的构建。
PetShop利用了ProjectConversionWizard把项目从ASP.NET1.1移植到了ASP.NET2.0,然后做了以下改动:
1.用System.Transactions代替了原来的ServicedComponents提供的事务功能
代码实现:
PetShop.BLL.OrderSynch的publicvoidInsert(PetShop.Model.OrderInfoorder)。
2.用强类型的范型集合代替了原来的弱类型集合
publicIList
{//Returnnewifthestringisempty
if(string.IsNullOrEmpty(category))
returnnewList
//Runasearchagainstthedatastore
returndal.GetProductsByCategory(category);
}
3.采用ASP.NET2.0Membership来做认证和授权
4.创建了针对Oracle10g的CustomASP.NET2.0MembershipProvider
5.利用ASP.NET2.0的CustomOracle和SQLServerProfileProviders做用户状态管理,包括购物车等
6.采用了MasterPages,取代了原来的用户控件,来实现统一的界面效果
7.使用了ASP.NET2.0Wizard控件实现check-out
8.使用了SqlCacheDependency来实现数据库层次的缓存更新(cacheinvalidation)功能
9.使用了消息队列来实现异时订单处理。
2.整体架构:
项目列表:
从整体可以看出,PetShop4的项目体系已经很庞大,考虑的方面也较3.0更全面复杂。
序号
项目名称
描述
1
BLL
表示层
2
CacheDependencyFactory
业务实体
3
WEB
业务逻辑层
4
DALFactory
数据层的抽象工厂
5
DBUtilty
数据访问层接口定义
6
IBLLStrategy
SQLServer数据访问层
7
ICacheDependency
Oracle数据访问层
8
IDAL
数据库访问组件基础类
9
IMessaging
缓存依赖类的工厂类
10
IProfileDAL
缓存依赖接口
11
Membership
缓存依赖实现类
12
MessagingFactory
同步、异步处理策略接口(实现在BLL根据配置反射选择)
13
Model
异时处理消息列队的抽象工厂
14
MSMQMessaging
异时处理消息列队接口定义
15
OracleDAL
异时处理消息列队的实现
16
OracleProfileDAL
Profile的数据访问层
17
OrderProcessor
ProfileDAL的工厂类
18
Profile
ProfileDAL的数据访问层接口定义
19
ProfileDALFactory
Oracle的ProfileProvider做用户状态管理
20
SQLProfileDAL
SQLServer的ProfileProvider做用户状态管理
21
SQLServerDAL
Membership认证和授权管理
22
TableCacheDependency
后台处理进程,处理订单列队
项目分解:
由于整体已经有22个项目,所以,对于初学者不易接受,经分解,可以大体上分几块去理解。
序号
项目名称
描述
1
WEB
业务逻辑层
2
Model
缓存依赖类的工厂类
3
BLL
表示层
4
DALFactory
数据层的抽象工厂
5
IDAL
数据访问类组建
6
SQLServerDAL
同步、异步处理策略接口
7
OracleDAL
缓存依赖类接口
8
DBUtilty
数据访问层接口定义
9
CacheDependencyFactory
异时处理消息列队接口定义
10
ICacheDependency
ProfileL的数据访问层接口定义
11
TableCacheDependency
Membership认证和授权管理
12
IBLLStrategy
异时处理消息列队的抽象工厂
13
MessagingFactory
业务实体
14
IMessaging
异时处理消息列队的实现
15
MSMQMessaging
Oracle数据访问层
16
Profile
Oracle的ProfileProvider做用户状态管理
17
ProfileDALFactory
后台处理进程,处理订单列队
18
IProfileDAL
Profile的数据访问层
19
OracleProfileDAL
ProfileDAL的工厂类
20
SQLProfileDAL
SQLServer的ProfileProvider做用户状态管理
21
Membership
SQLServer数据访问层
22
OrderProcessor
缓存依赖实现类
3.Petshop4中的设计模式:
工厂模式:
首当其冲的就是工厂模式,很容易就可以看出来,也是应用最多的。
DALFactory:
数据访问层的抽象工厂(决定创建哪种数据库类型的数据访问层。
可以选择:
SQLServer,Oracle)
CacheDependencyFactory:
缓存依赖类的工厂类。
(创建具体表的缓存依赖)
MessagingFactory:
异时处理消息队列的抽象工厂(反射创建具体的异时处理类)
ProfileDALFa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 方案