高校教材管理系统的设计与实现_第1页
高校教材管理系统的设计与实现_第2页
高校教材管理系统的设计与实现_第3页
高校教材管理系统的设计与实现_第4页
高校教材管理系统的设计与实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业第1章 绪 论1.1 开发背景教材管理工作是高等院校教学管理工作的一项重要组成部分。在高等教育不断深化改革和全面实施素质教育的今天,教材管理的信息化建设尤其具有重要的现实意义。这主要体现在以下两个方面:近年来,随着高教改革的深入和持续多年的扩招,高等院校的在校大学生和研究生数量迅速增加,因而对教材的需求量和使用也相应地大幅度增加,同时,由于在各大高校,为适应人才市场的需要,也在不断地进行着专业的调整和更新,课程改革也在逐步推进,从而使得学校里所使用的教材种类越来越多,手工或效率较低的软件

2、对于教材管理而言,工作人员和管理部门的劳动强度越来越大,为获取有效的信息所花费的时间也越来越长;现代科学技术和人文管理等知识更新很快,相应的是大学的教材也应该随之快速更新,但在使用传统的方法进行教材管理时,在教材选用计划的制定、订购、进货、入库、发放、结算、统计、信息收集和反馈等一系列的管理过程中,其周期过长,使得教材的选用和淘汰等明显地滞后于知识、技术的发展和教材本身版本的更新,而很多的用人单位在聘用大学毕业生时,却要求他们具有较新、甚至是最新的知识结构。因此,教材管理水平的高低直接影响教学工作的进行、教学质量的提高和合格人才的培养,开发和使用高校教材管理信息系统是改善和提高教材管理水平的一

3、个重要途径。1.2 开发目的本课题旨在解决我校和其他高校教材管理工作还是依靠教材管理人员的手工管理的现状,并且在现有基础上考虑了如何完善和解决现有的两层结构的C/S(客户端/服务器)教材系统本身所固有的缺陷,把两层结构中服务器部分和客户端部分的应用单独划分出来,从而满足大型系统的需求。通过本系统不仅可以方便教材管理人员管理教材,还可以方便教务部门和广大师生查询教材和查看教材管理记录。1.3 开发内容(1)系统的用户需求分析和B/S和C/S混合模式各自要实现的功能,两种模式的界面设计。(2)系统开发所使用的工具,开发语言和相关技术。(3)系统的各个功能模块的设计和实现其功能的方法。(4)每个功能

4、模块的详细介绍和使用方法。(5)课题设计的总结和体会,总结了此次毕业设计的主要思想和收获,分析了今后继续努力的方向。第2章 系统分析2.1 概述现阶段我校和其他一些高等院校的教材管理工作还是依靠教材管理人员的手工管理,比如我学院教材管理人员利用制作Excel表格的方法来管理教材的实际情况。又考虑到教材管理工作是一项既复杂又艰辛的工作,管理人员每天都要做大量的进书、出书、做账等工作。并且对于近年来学校招生人数的数量越来越大,专业越来越多,教材的使用量和使用种类也在不断扩大和增加,基于此情况对于以往的手工管理教材方法而言,其将面临的难度之大和效率之低是勿容置疑的,特别是盘点(即清查库存量)和收集统

5、计信息时,这些工作有时甚至需要人工花很多天时间才能完成,常常使人疲惫不堪。而且有时发现,花了大量心血的结算清单是错误的,或者是所收集的信息是不准确的,则更使人头疼,而这些工作又是教材管理中非常重要的工作,需要经常地做。显然这种手工管理方式既费时又费力,不能适应目前教材管理的实际需要。为此,基于我校和其他有着类似状况的院校我们设计开发一个教材管理系统,并且遵循着软件工程的设计想象,尽量使我们设计的系统具有专用性,同时又有具有一定的通用性和具有先进性、实用性、可靠性、和安全性;也要具有良好的开放性,可扩展性和可维护性。2.2 功能需求2.2.1 对于老师用户每个讲课老师可以通过系统的B/S部分功能

6、在网上预定自己理想的教材,方便学校主管部门收集教材使用情况的信息,以更合理的制定用书计划,使订购的教材更适合老师和学生的使用。2.2.2 对于学校教务部门通过赋予使用权限,系主任和学校主管部门可以通过系统的B/S部分查看网上搜集到的教师预订教材计划,然后由系主任和教务主管部门对教师预定计划表审核批准,形成订购计划表,供教材管理人员查看。2.2.3 对于教材管理人员教材管理人员可以通过使用B/S和C/S任何一个功能界面去看到由教务主管部门和系主任审核批准的教材订购计划表,然后依教材订购计划表去采购教材。教材采购来以后,教材的入库,教材的管理,教材出库和库存管理等工作由教材管理员在C/S功能界面完

7、成。当然我们的系统在B/S部分也考虑了教材管理人员的异地办公情况,对其有相应的权限去使用。2.2.4 对于其他用户提供对教材库和目录库中书目的检索(按教材的名称,ISBN号码,编作者,出版社),方便学生和其他人员对教材信息的查询。系统用例图如下:图2-1 系统用例图2.3 界面要求要求界面友好,简单实用功能清晰完善,查询速度快具体优化完善工作可根据需要,在以后的程序设计中实时添加2.4 工作流程B/S的功能界面是由能与Web服务器进行动态交互的应用程序来完成的。它的运行机制是:首先由客户浏览器向Web服务器提出.asp文件的请求,然后Web服务器开始调用Asp,由Asp全面读取被请求的.asp

8、文件,执行文件中所有的脚本指令代码,最后将运行结果以HTML网页格式传回客户浏览器。C/S的功能界面则由C#.Net可视化设计工具去实现。充分利用软件自身的各种控件完成界面的设计,以所见即所得,系统自动生成界面的程序代码。因为设计出来的界面具有Windows风格的界面,用户使用起来很方便。即使是对计算机不熟悉的人员也可以在很短时间内学会使用。界面上的各种操作直接对SQL Server数据库进行操作。系统工作流程图如下:图2-2 系统工作流程图2.5 本章小结通过前期的系统分析,我们对用户的要求有了很清楚的了解,对工作流程也给以确定,对以后的开发打下了良好的基础。第3章 应用系统开发工具与技术3

9、.1 概述开发工具与相关技术的选取,对项目开发的难易程度及开发产品的质量有着举足轻重的影响。为实现不同用户端要求,保证系统的通用性,特选择以下环境和开发平台:客户端操作系统:(Windows XP/Windows98/Windows 2000 Professional),数据库管理系统采用SQL Server 2000;Web服务器软件:Microsoft Internet Information Server5.0(IIS5.0)作为服务软件。3.2 系统开发工具C/S部分采用Visual C#.NET 作为开发工具,Visual C#.NET 具有非常优秀的集成开发环境和简单透明的数据库处

10、理机制,使得快速高效的建立数据库应用系统成为可能,而且它本身与SQL Server 2000 同属微软产品,具有可靠的连接。B/S部分的动态网页采用ASP(Active Server Page)技术来实现。ASP也是微软公司推出的基于Web服务器端的脚本编写环境和指令执行环境的动态网页技术,使得它可以创建和运行动态、交互的Web服务器端应用程序。B/S部分的开发环境的采用Dreamweaver, 它支持多种浏览器,有强大的站点管理功能,个人技术含量高,适合开发高质量的网站和各种网页。PWS是单机条件下网页开发的必备环境,通过该环境可以在WINDOWS系统下,将单机虚拟为网络服务器,对所开发的站

11、点和网页进行调试运行,收到与实际B/S环境下完全一致的效果。3.3 ASP技术在系统中的应用Dreamweaver环境再加上ASP技术是开发技术不可缺少的,ASP(Active Server Pages)是一种浏览器/服务器网页制作技术,可减少网络负载,有利于缓解拥塞。ASP技术制作动态网页,可由ASP程序根据需要动态实现预期的界面和功能,便于数据库的管理和操作,是系统开发的首选技术。ASP技术实现的原理图如下:图3-1 ASP工作原理图3.3.1 ASP的组成控件 ASP文件内含许多的组成控件,除了HTML标记之外,还有Script标签含括的脚本语言,以及一些用标注的程序代码等。其中有四个元

12、素是最为重要的,即HTML、ASP的内置对象、ActiveX服务器控件和脚本语言。HTML:一份ASP文件或多或少都会包含几组或几行的HTML标记,目的是控制输出结果的美观,建立的是网页中的“静态”内容。ASP内置对象:ASP的核心是内建对象(Request,Response,Server,Application,Session),它们提供并处理一般应用程序的机制服务,如取得客户信息,响应信息等。ActiveX服务器控件:ASP的内置对象毕竟不能完全涵盖服务器的所有资源,一些偏向于数据存取的机制,如取得浏览器信息,连接数据库等都得依靠服务器现有的控件。脚本语言:ASP支持多种脚本语言,比较常用

13、的是VBScript和JavaScript,前者是ASP默认的编程语言。若用它的其它的脚本语言,则需声明,如在ASP文件的第一行是,则声明了在ASP中使用的脚本语言是JavaScript。3.3.2 ASP内置对象的使用与方法Application对象Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。(1)Application的属性:Application对象没有内置的属性,但是我们可以自行创建其属性。其实大部分Application变量都存放在Contents集合中,当你创建一个新的Application变量时,其实就是

14、在Contents集合中添加了一项。(2)Application的方法: Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。(3)Application的事件:Application_OnStart()当事件应用程序启动时触发。Application_OnEnd() 此事件应用程序结束时触发。这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。一个数组能够被定义成Applica

15、tion对象,不过这个数组只能作为一个对象保存,而不能用Application(0)取出其值。可以定义一个临时数组实现这种功能。同样要修改这个Application对象也可以定义一个临时数组,把Application对象赋给数组,然后修改这个数组的元素,最后把数组赋回Application对象。Request 对象 从客户端用户提取信息。代表了由各客户程序发往 HTTP 的请求报文。方法Request.BinaryRead(Count) 接收一个HTML表单的未经过处理的内容。当调用此方法时,Count指明要接收多少字节。在调用此方法后,Count指明实际上接收到多少个字节。属性Request

16、.TotalBytes查询体的长度,以字节为单位Request.Form(Parameter)(Index).Count填写在HTML的表单中所有的数据的集合。Parameter是在HTML表单中某一元素的名称。当某一参数具有不止一个值(比如,当在中使用MULTIPLE属性时)时,使用Index。当某一参数具有多值时,Count指明多值个数。Request.QueryString(Varible)(Index).Count查询字符串的所有值的集合。Varible是在查询字符串某一变量的名称。当某一变量具有多于一个值时,使用Index。当某一参数具有多值时,Count指明值的个数。Request

17、.ServerVaribles(Server Environment Variable) 环境变量的集合。允许读取HTTP头。Response 对象将信息送给客户端用户。用户可以使用该对象将服务器的数据以 HTML 的格式发送到用户端的浏览器 ,它与 Request 组成了一对接收、发送数据的对象 ,这也是实现动态功能的基础。Buffer属性 该属性用于指定页面输出时是否要用到缓冲区,默认值为False。当它为True时,直到整个Active Server Page执行结束后才会将结果输出到浏览器上。Expires属性 该属性用于设置浏览器缓存页面的时间长度(单位为分),必须在服务器端刷新。W

18、rite方法 该方法把数据发送到客户端浏览器。Redirect方法该方法使浏览器可以重新定位到另一个URL上,这样,当客户发出Web请求时,客户端的浏览器类型已经确定,客户被重新定位到相应的页面。End方法 该方法用于告知Active Server当遇到该方法时停止处理ASP文件。如果Response对象的Buffer属性设置为True,这时End方法即把缓存中的内容发送到客户并清除冲区。Server 对象Server 对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。语法Sperty|method属性ScriptTimeout:ScriptTimeout

19、属性指定脚本在结束前最大可运行多长时间。 当处理服务器组件时,超时限制将不再生效。语法 Server.ScriptTimeout = NumSeconds参数 NumSeconds指定脚本在被服务器结束前最大可运行的秒数。默认值为 90 秒。方法CreateObjectCreateObject 方法创建服务器组件的实例。如果该组件执行了 OnStartPage 和 OnEndPage 方法,则此时就会调用 OnStartPage 方法。语法 Server.CreateObject(progID )HTMLEncode HTMLEncode方法对指定的字符串应用 HTML 编码。语法 Serve

20、r.HTMLEncode( string )参数 string 指定要编码的字符串。MapPath MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。 语法 Server.MapPath( Path )参数 Path MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。因为 MapPath 方法只映射路径而不管指定的目录是否存在,所以,您可以先用 MapPath 方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定目录或文件的组件。URLEncode URLEncode 方法将 URL 编码规则,包括转义字符,应用到指定的字符串。语法Server.

21、URLEncode( string )参数String 指定要编码的字符串。Session对象Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。1、SessionID属性 该属性返回当前会话的唯一标志,为每一个Se

22、ssion分配不同的编号。2、TimeOut属性 该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。3、Abandon方法 该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。4、Session_OnStart和Session_OnEnd事件 和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触

23、发此事件,并建立一个Session对象。当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。3.4 Visual C#在系统设计中的应用Visual C#是目前最新、最先进的软件开发工具之一,它汇集了Microsoft公司的技术精华,不仅全面贯彻了面向对象技术,而且在编译优化技术方面较其他同类产品具有明显的优势,是一个彻底的程序员的开发环境,可视化的设计减少了不少编程的工

24、作量,拥有丰富而且功能强大的类库,Visual C#的类库就是.NET框架,在Visual Stuido.NET中,Visual Basic和Visual C#都支持RAD(Rapid-Application Development,快速应用程序开发),例如项目模板、设计器和其他开发环境特性。使用Visual C# 能够在代码中方便地创建自己的组件或配置.NET框架类中的复杂组件。使用非可视化组件能够在自己的应用程序中方便地使用消息队列、事件日志、性能计数等资源。Visual C#提供了以下特性,以构造可靠的系统及组件:通过冗码收集和类型安全提供稳固性。通过内建代码信任机制提供安全性。完全支持

25、可扩展的元数据概念。 开发效率与安全性。与WEB开发相结合 。减小开发中的错误 C#的先进设计思想可以消除C/C+开发中的许多常见错误:垃圾收集机制将减轻开发人员对内存的管理负担;C#中的变量将自动根据环境被初始化,变量是类型安全的; 使用C#将会使开发人员更加轻易的开发和维护各种商业应用。提供内置的版本支持来减少开发费用 可扩展的协作能力 C#是一种先进的,面向对象的开发语言,并且能够方便快捷的MS网络平台建立各种应用和建立能够在网络间相互调用的WEB服务。从开发语言的角度来讲C#可以更好帮助开发人员避免错误,提高工作效率,而且同时具有C/C+的强大功能。3.5 相关技术3.5.1 ASP/

26、ADO技术访问SQL Server2000数据库ASP中,访问数据库是通过内置数据库访问组件Database Access Component的对象ADO(ActiveX Data Object)来实现。ADO可以使用不同的数据接口访问数据库。在ASP中,ADO访问数据库可以使用默认OLEDB(Object Linking & Embeding Database)的开放式数据库链接ODBC(Open Database Connectivity)驱动程序,其OLEDB是一组底层的数据存取接口,它分成两部分:一部分提供给“消费”数据的前端应用程序;一部分提供给数据库提供者。此外ADO访问数据库还可

27、以使用OLEDB的SQL Server 驱动程序直接把ADO绑定到数据库而不用OLEDB作为一个附加层。这两种方法各有优劣,OLEDB的执行效能要比ODBC好,而ODBC可以提供较具弹性的程序设计与数据库一直环境。下图可表示使用ADO访问SQL Server数据库涉及到的驱动程序和层图3-2 访问数据库原理图当客户端使用浏览器执行IIS(Internet Information Server)中的ASP文件时,可以通过OLEDB或ODBC驱动程序链接到数据库,并执行SQL语句,然后将查询结果以HTML格式返回客户机。由上图不能看出,客户机访问SQL Server2000数据库时只要有浏览器即可

28、,而服务器端则需要有ADO。ASP应用程序通过ADO与OLEDB或ODBC后才能真正的链接与存取数据库。ASP要访问SQL Server2000数据库,必须首先建立数据库的链接。在此系统设计中我们使用OLEDB,因为其执行效能较ODBC更高,用户使用OLEDB实现与Server2000数据库的链接语法格式如下:其中链接字符串有以下两种格式:当用户登录SQL Server2000使用WindowsNT/2000集成安全验证模式时,应使用以下的链接字符串:Connectionstring=“DSN=数据源名称;Server=SQL服务器名称;Database=数据库名称”。这里指明了登录SQL S

29、erver时使用的是WindowsNT安全验证模式。链接串中不能提供链接SQL Server的用户名和口令。当登录SQL Server2000使用SQL Server混合安全验证模式时,使用的链接字符串如下:Connectionstring=“DSN=数据源名称;UID=用户名;Pwd=密码;Database=数据库名称”。DSN:指定连接ODBC的数据源名称。UID:提供用户ID(身份标识),用以登录服务器端的数据库,如果没有修改,SQL服务器中的数据库提供了“sa”用户身份,密码为空。Pwd:验证密码,SQL Server是一个十分注重安全性的数据库,存取数据库之前,必须以合法的“用户名称

30、”及“密码”进行登录。链接串中的用户名和密码为用户登录SQL Server时的用户名和密码。Database:可选,指定应该建立到它连接的数据库。尽管这个参数是可选的,但通过连接访问SQL Server 服务器时,可以默认从一个数据库切换到另外一个数据库。3.5.2 执行和操作数据库执行数据库访问命令并返回结果可以通过三种方法执行该命令:A、Connection对象的Execute方法;B、Command对象的Execute方法;C、RecordSets对象的Open方法。Execute方法的参数是一个标准的SQL语句字符串,因此可以利用SQL的强大功能方便地执行对数据库的记录进行过滤、更新、

31、添加、删除等操作。关闭数据库对象和连接。在ADO对象使用完毕后,要想更好的使用连接,就应更快的使用Connection对象的Close方法终止Connection对象和数据库的连接。至此,可以完成一个数据库的访问。3.5.3 SQL语言和语句SQL语言SQL语言是SQL 语言是结构化查询语言 (Structured Query Language)。它最初是 IBM 提出的一组关系数据库查询语句, 具有功能丰富、使用方式灵活、语言简洁易学等特点, 1986 年被美国国家标准局ANSI 批准为关系数据库语言的国家标准, 后又被国际标准化组织 ISO 批准为国际标准, 成为不同数据库系统共同的数据库

32、存取语言和标准接口。它是一种非过程化的语言,允许用户在高层的数据结构上工作,即可操作记录集。所有的SQL语句接受集合作为输入,返回集合作为输出。SQL不要求用户指定对数据的存放方法,使用户更易集中精力于要得到的结果。所有的SQL均使用查询优化器,由它决定对指定数据存取的最快速度的手段。SQL 语句SQL 语言的功能包括数据定义功能和数据操纵功能 , 其中数据操纵功能又包括数据查询功能(SELECT 语句) 和数据更新功能( IN SERT、DEL ETE 和U PDA TE 语句)。下面给出利用ASP 技术实现动态网页和WEB 数据库连接的四条 SQL 语句的语法和功能。SQL 查询语句语法:

33、 SELECT 字段列表FROM 基本表 视图WHERE条件表达式ORDER BY字段列表ASC DESC 功能: 根据WHERE 子句的条件表达式, 从基本表或视图中查询满足条件的记录。SQL 插入语句语法: INSERTINTO基本表(字段列表)VALU ES (表达式列表)功能: 插入一条记录到W EB 数据库中, 被插入的记录放在基本表的末尾。SQL 删除语句语法:DELETEFROM 基本表WHERE条件表达式功能: 根据WHERE 子句中的条件表达式, 从基本表中删除所有满足条件的记录。SQL 修改语句语法:U PDATE基本表SET字段= 表达式, 字段= 表达式WHERE条件表

34、达式功能: 根据WHERE 子句中条件表达式, 从基本表中修改所有满足条件的记录。3.5.4 网页的显示格式根据用户端界面需求,需要对系统界面的弹出位置、页面大小,以及地址栏、工具栏的显示状态进行设置。在该系统的运行过程中,对用户界面采取统一的处理方式:网页主页分三部分,用框架实现,分上、左、右三部分,上部是菜单部分,及本系统的主要功能简菜单,左部分为日历和友情链接。为实现以上效果,我们采用表单的target 属性来完成,如果有的查询结果比较长,我们采用分页显示。3.5.5 分页技术在详细设计过程中我们已经知道,几乎所有的控制台页面和所有的查询功能都需要进行分页处理,在这里将详细分析这一技术的

35、实现。分页显示的代码(大致框架,具体的显示内容用省略号表示)如下:此段代码主要判断要显示的是哪一页,若是刚进入此页面,那么pagenumber传递的值是空值,表明要显示的是第一页,将currentpage值赋为1,否则,显示指定页,将currentpage值从热request对象的querystring集合中取出,赋给currentpage变量。 这两条代码非常重要,是分页处理的关键。他们设置了Recordset的对象rs的属性:pagesize设置的是每一页要显示的记录条数;absolutepage设置的是显示那一页的内容,并将记录指针设置为此页第一条纪录。 上面这段代码是显示相应页的纪录,

36、比较简单。但若该页不足所设置的每页纪录数,那么要做特别的处理:如果rs已到纪录的最后,则必须跳出循环。 共页 此段代码用recordset的recordcount属性显示总共纪录的条数%for i=1 to rs.pagecount if icurrentpage then % a href=tbbm.asp?pagenumber= 上面这段代码显示了每页的页码,并显示链接,以链接到当前页面去显示选取页面的纪录,每按一个页码便传出pagenumber值给当前页面,并重新提交此页面。若是当前页则不必显示链接,这也是要控制的。3.6 本章小结本章介绍主要介绍了系统设计中所用到的工具和编成语言,还有

37、各种技术、技巧,我们通过这章的了解、总结可以对自己用什么方法和工具去实现要实现的系统。并且通过掌握一些相关工具和语言的使用技巧和简便方法,使我们在设计过程中更有效率。第4章 系统设计4.1 概述系统的整体设计在软件开发中具有很重要的地位,对整个项目的开发具有指导性的作用,将直接影响到系统的整体性能。本章根据项目的用户要求,从宏观角度出发,对系统的功能模块,基本数据库,主要界面,控制流程,开发环境等作整体性介绍,从而形成该项目的基本框架;也使各位读者和用户对系统有一个概括性的了解。系统结构采用B/S-C/S混合模式的结构,我们之所以采用此结构主要是由于以前的客户服务器(CS,ClientServ

38、er)结构有:可靠的数据完整性和安全性控制;高效的联机事务处理性能;很好的开放性和易扩充性;高效的应用程序开发等优点,并且CS结构的应用系统易于扩展,处理效率更高。所以我们还保留此结构作为系统的基础结构。但由于这种模式同时又具有内在缺陷:客户端具有平台相关性;随着应用逻辑和程序界面占用越来越多的硬件资源,客户端变得越来越“胖”;客户端管理复杂,维护困难。为解决CS模式的这些内在缺陷,并且基于Internet的快速发展的现状,我们还设计添加了基于Web的BrowserServer模型(浏览器服务器模型,即BS模型)。该模型是把CS模型的服务器端进一步深化,分解成一个应用服务器(Web服务器)和一

39、个或多个数据库服务器,从而形成一个类似3层CS模型。BS结构优点主要体现在:用户界面更加友好,操作更加直观,更易满足用户的使用习惯。对用户跨平台支持,可跨平台使用数据库、超文本、多媒体等多种形式的信息。提高了系统的可靠性、整体性以及可扩展性。客户端只需配置操作系统和Web浏览器,降低了对客户机的软硬件要求。更利于软件的开发、安装、升级,节省开发维护费用。基于Web的BS模式客户端只需安装浏览器便可与服务器进行交互, 同时由于基于互联网构架, 保证了B/ S 模式具有优秀的开放性和共享性能, 所以在基于校园网, 以B /S 模式建立发布、查询系统, 使广大师生通过浏览器便可查看到相关教材信息。而

40、CS体系结构比较适用于局域网, 同时又有运行速度快、利于处理大容量的数据、有更安全的存取模式的特点。根据系统的开发要求和系统目标,我们将这两种模式有机的结合,这样系统既能发挥传统CS模式成熟的技术,又能借Internet技术充分发挥BS模式的优点。前台部分主要功能是实现各类数据的查询和部分数据的收集,报送,如师生查询教材信息,教务处及其他部门查询教材出入库记录等。本文根据系统的设计过程和整体结构,分别从需求分析、整体设计和模块设计等几大部分,对系统的实现过程做出了全面阐述。需求分析部分着重介绍了用户端是实际需求,包括功能需求,界面需求,流程要求等必要信息;对于以后的模块化划分和方案设计将产生指

41、导性作用。整体设计部分主要从宏观角度出发,对系统的功能模块,基本数据库,主要模块,控制流程,开发环境等做整体性介绍,从而形成该系统的基本框架,是系统开发中最为关键的一步。这种混合模式的体系结构如下图:图4-1 系统体系结构图4.2 系统的主要功能模块设计系统B /S 部分的主要功能: 提供对教材库和目录库中书目的检索(按 ISBN、书名、出版社、作者为关键字) , 方便老师预订和教务部门审核和预订教材,方便老师、学生查询教材.提供学生查询其所在班级及个人领书记录的功能, 方便教材管理部门与班级对帐.系统 C /S 部分的主要功能:其主要功能模块包括: 教材预订, 教材入库, 教材管理, 教材出

42、库, 字典管理, 查询统计, 系统维护等。4.2.1 教师模块介绍了老师通过有效身份验证后,可使用B/S部分的教材预订模块,主要功能有:学校的所有授课老师可以通过预订表提交自己想使用的教材。可以查看教材预订表,浏览教材的出入库记录,并且可以通过教材查询模块查询教材的详细信息。4.2.2 教务部门模块学校教务部门可以通过自己的权限,察看教师提交的教材预订表,并且可以对教材预订表的信息进行修改、删除。确定最终的预订教材,形成预订表。教务部门还可以查看所有出库入库表并且可以打印表,可以查询教材信息,库存信息,可以查看基础信息。4.2.3 教材管理人员模块教材管理人员可以通过B/S部分察看已经由教务部

43、门审批形成的教材预订表,并可以打印或以Excel表的形式导出预订表。教材管理人员还可以通过B/S功能部分察看基础信息,查询教材,并且可以打印,导出各个表单,比如:入库记录,出库记录,库存记录等。4.2.4 其他用户其他用户主要指在校学生和一些在网上浏览本网站的用户,经过注册的本校学生和用户经过身份验证就可以通过B/S查询教材,可以查看出库记录,以方便核对本班是否已经领取应该领取的教材。并且可以查看入库、库存记录并进行打印。4.3 系统数据库的设计在教材管理过程中对于涉及到的入、出库数据的处理,我们在SQL Server数据库底层通过触发器去实现。4.3.1 数据库基本表格的设计初订表的设计de

44、partment订书系别(char20);profession订书专业(char30);grade订书班级(char10);ISBNISBN号(char20);bookname教材名称(char40);bookauthor编作者(char30);bookpublish出版社(char30);publishdate-出版日期(包含版次)(char20);预定审核表:ISBNISBN号(char20);bookname教材名称(char40);price单价(money);bookauthor编作者(char30);bookpublish出版社(char30);publishdate-出版日期(包

45、含版次)(char20);quantity预定数量(int)。预订计划表/预订历史记录表:booknumber教材编码(char10);quantity预定数量(int);datetime预定时间入库表:booknumber教材编码(char10);quantity入库数量(int);datetime入库时间(datetime)。出库表:num标识号(系别+专业+年级+班级),由8位数字表示(char8),它的组成部分为:前两位为系别号,其次两位为专业号,接着两位为年级号,最后两位为班级号;booknumber教材编码(char10);quantity出库数量(int);datetime出库时

46、间(datetime)。库存表:booknumber教材编码(char10);quantity库存量(int)。教材信息表:booknumber教材编码(char10);ISBNISBN号(char20);bookname教材名称(char40);price单价(money);bookauthor编作者(char30);bookpublish出版社(char30);publishdate-出版日期(包含版次)(char20)。系别表:departmentID系别号(char2);department系别名称(char30)。专业表:professionID专业号(char2);professi

47、on专业名称(char30)。年级表:gradeID年级号(char2);grade年级名称(char10)。班级表:classID班级号(char2);class班级名称(char10)。教材类别表:typeID类别号(char3);type类别名称(char20)。登录表:customer用户帐号(char10);由数字、字母及特殊符号组成;password登录密码(char16),由数字、字母及特殊符号组成。type用户类型(char10),由汉字组成。4.3.2 基本信息表的关系图图4-2 五大信息表关系图4.3.3 数据库触发器的实现入库表与预定计划表教材入库时,可以通过触发程序利用

48、教材编码相同来检索预订记录,并且核对教材数量,即:入库数量是否等于预订数量,或者因为订购时教材数量不足,而出现的入库数量小于预订数量;如果入库数量大于预订数量,则系统提示错误信息,并重新输入,触发器程序代码如下:CREATE TRIGGER rukubiao_yudingbiao ON dbo.rukubiao FOR INSERTASdeclare bh char(10),shl int /*定义变量及变量的数据类型*/select bh=booknumber,shl=quantity from inserted /*在插入表中查询变量教材编码,入库数量*/if exists(select

49、quantity from yudingjihuabiao where booknumber=bhand quantity=shl ) /*在预订计划表中查询预订数量条件是:教材编码=插入表中的教材编码,并且预订数量=插入的入库数量*/ commit /*提交*/else begin raiserror(入库信息输入有误,请重新输入,12,12) /*输入错误提示信息,并制定错误严重级别*/ rollback transaction /*回滚*/ end入库表与库存表教材入库时,可以通过触发程序利用教材编码相同来检索库存里是否有该书的库存记录,如果存在该书的记录,则在原有的记录上增加;如果库存

50、里没有该书的库存记录,则新增加该书的库存记录。完成对库存表的更新,减少了重复输入的麻烦,程序如下:CREATE TRIGGER updata_kucun ON dbo.rukubiao FOR INSERT ASdeclare shl int,bh char(10)select bh=booknumber,shl=quantity from inserted if exists (select * from kucunbiao where booknumber=bh) update kucunbiao set quantity =quantity+shl where booknumber=bh

51、 /*更新库存表中的内容,当教材编码=插入表中的教材编码时,令库存数量=原库存数量+插入表中的入库数量*/else if exists(select *from kucunbiao where booknumberbh) /*查询库存表中的所有项,条件是教材编码不等于插入表中的教材编码*/ begin insert into kucunbiao(booknumber,quantity) values (bh,shl) /*在库存表中插入教材编码、库存数量,数据为插入表中的教材编码、入库数量的数据*/ end出库表与库存表管理人员将教材出库时,通过触发程序利用教材编码相同来检索该教材是否存在于库

52、存中,如果存在且出库数量不大于库存数量,则在库存数量上减少相应的数量,如果不存在,则说明,输入的教材编码有误,系统提示错误信息,同时,如果该教材存在,但出库的数量大于库存的数量,则系统提示错误信息,并重新输入。代码如下:CREATE TRIGGER update_kucun ON dbo.chukubiao FOR INSERTASdeclare shl int,bh char(10),shj datetimeselect bh=booknumber,shl=quantity from inserted if exists (select * from kucunbiao where book

53、number=bh and shl=quantity) update kucunbiao set kucunbiao .quantity = kucunbiao .quantity shl where booknumber=bhelse begin raiserror(出库量大于库存,出库不成功,16,2) rollback transaction end出库表与基本信息表管理人员在教材出库时,可以通过触发程序来检查所输入的标识号是否正确,即:标识号前两位为系别号,通过触发程序检索系别表中是否存在该数据来确定信息的正确性;同样,专业、年级、班级也通过触发程序来检索相应的表格,从而确定信息的正确

54、性。只要有一项错误,则系统提示错误信息,并重新输入。代码如下:CREATE TRIGGER chukubiao_jichubiao ON dbo.chukubiao FOR INSERTASdeclare depid char(8)select depid=num from inserted if exists(select departmentid from xibiebiao where departmentid= substring(depid,1,2)/*从系别表中查询系别编号,条件是系别编号数据=标识号从第一位起取两位的数据*/ and exists(select professio

55、nid from zhuanyebiao where professionid= substring(depid,3,2) and exists(select gradeid from nianjibiao where gradeid= substring(depid,5,2) and exists(select classid from banjibiao where classid= substring(depid,7,2) commitelse begin raiserror(标识符输入有误,请重新输入,12,12) rollback transaction end教材信息表与类别表在输

56、入教材信息时,首先会给该教材归类编码,在输入该教材编码时,通过触发程序来检索类别表,从而确定教材编码前3位的正确与否(检索类别表中是否存在此编号),如果输入出现错误,则系统提示错误信息,并重新输入。类别表与基本信息表当管理员认为类别编号需要修改时,相应教材编号的前三位也修改。因此,在类别表中建立触发器,使得管理员修改类别表中的类别编号后,不必再去修改教材信息表中的相应三位,该三位就可以自动修改。程序代码如下:CREATE TRIGGER typeid_booknumber ON dbo.leibiebiao FOR UPDATEASdeclare de char(3),up char(3),b

57、sh char(10)select de=typeid from deleted select up=typeid from insertedif update(typeid) begin update jiaocaixinxibiao set jiaocaixinxibiao.booknumber = up+right( jiaocaixinxibiao.booknumber,7 ) from jiaocaixinxibiao,deleted,inserted where de=left( jiaocaixinxibiao.booknumber,3) end系别、专业、年级、班级表与出库表类

58、似于类别表与教材信息表的触发关系,区别在于所对应的字符位置不同。系别编号对应出库表中标识号的前两位,专业表对应第三四位,年级表对应第五六位,班级表对应最后两位。4.3.4 视图的设计预订计划表教材信息表将教材信息先录入教材信息表,预订教材时,通过核对教材编码来确定预订信息的正确性:如果教材信息表中存在该编码,则可预订;反之系统提示错误信息,并重新输入。并且在有必要的时候可以通过视图来查询该教材的详细信息。入库表教材信息表管理人员将教材入库时,可以通过核对教材编码来确定教材信息的正确性,并且在有必要的时候可以通过视图来查询该教材的详细信息。出库表教材信息表管理人员将教材出库时,可以通过核对教材编

59、码来确定出库教材信息的正确性,并且在有必要的时候可以通过视图来查询该教材的详细信息。库存表教材信息表库存表通过教材编码与教材信息表相连,通过视图就可以查询库存中教材的详细信息。4.4 系统工作流程用户进入B/S系统后,根据自己的不同需要和所拥有的权限进入自己的模块,当用户输入自己的帐号和密码后进行身份验证,如果有的模块功能用户没有权限访问,则网页拒绝访问并进行越权提示,若合法则可以进行相应的操作。4.5 B/S主界面通过标有系统标题的登录界面登录以后可以进入教材管理系统的主界面。主界面由三部分组成,即把屏幕用框架分成上、左、右三部分,上部是主功能菜单,左侧是日历和学校主业的链接地址,右侧一张图

60、像背景。在主菜单中教师可以点击教材预订模块,进行教材预订。并且教师可以在预订模块查看现有的预订信息和以前的教材入库、出库记录,还可以在教材查询模块通过教材的名称、ISBN号码,作者和出版社去查询教材库存中教材的详细信息。教务部门可以在教材预订模块看到教师的预订信息并对其进行修改和删除,确认后形成教材预订表。教务部门还可以打印和导出各种表单,比如教材入库记录,教材出库记录,库存记录等。也可以查询教材的详细信息,查看系统的基础信息。教材管理人员可以点击教材预订模块的教材预订一览表,查看要购买的书籍,教材管理人员同样可以查看、打印、导出教材预订表、教材入库、出库记录表等。并且可以查看基础信息。并且可

温馨提示

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

评论

0/150

提交评论