成教管理系统需求分析范本_第1页
成教管理系统需求分析范本_第2页
成教管理系统需求分析范本_第3页
成教管理系统需求分析范本_第4页
成教管理系统需求分析范本_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

年4月19日成教管理系统需求分析文档仅供参考1绪论1.1成教管理系统需求分析当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不但提高了工作效率,而且大大的提高了其安全性。特别对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好我校成人教育学生学籍、成绩信息而设计的。在学校里,学校学生资料繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,她们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于学生成绩的统计和核实等往往采用算盘,计算器等工具进行,对学生考试资料,以及成绩管理多用手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,可是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。学校采取手工方式对教务档案进行管理,由于信息比较多,信息的管理工作混乱而又复杂;平时档案资料放在档案柜里,教师和教务处的管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的成绩进行更改就更困难了。基于这此问题,我认为有必要建立一个成人教育管理系统,使学生学籍、成绩管理工作规范化,系统化,程序化,避免教务管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改信息本系统基于WEB设计,采用B/S三层结构体系(前端即浏览器,中间层即响应层,后端即数据端)。所有应用数据安装在服务器端(后端),由中间层封装了所有业务逻辑,负责前端与后端之间的数据传递和处理,数据库的维护和系统功能升级只需在服务器端进行即可,客户端不进行任何模块的安装与设置,从而实现客户端的零维护,大大减轻管理员的工作量,而且提高了工作效率。1.2功能模块介绍1.2.1学籍管理模块(如图1.1所示)实现对学校在校成教班学生、离校生档案信息资源的查询、统计、维护与管理。包括:(1)后台管理员添加、修改(姓名、密码、性别、身份证号、准考证号、专业、学习形式、民族、籍贯、学号、政治面貌、健康状况、婚否、参加工作时间、放学前最高学历、入学时间、现在工作单位名称、详细地址、联系电话、邮政编码、家庭地址、简历、社会关系、结业时间、毕业证编号、学籍变动情况、注册日期)。〔2〕前台学生登陆后查询自己的档案信息,并可修改除姓名、准考证号、专业、学号、结业时间、毕业证编号之外的所有信息。注册日期为程序自动提取并录入数据库。1.2.2班主任管理模块(如图1.1所示)实现对学校在校成教班学生、离校生成绩信息资源、毕业设计信息的查询、统计、维护与管理。包括:班主任登陆后台可添加修改删除本班的所有学期的所有课程。班主任登陆后台将本班学生成绩添加到相应课程中,并可修改、删除。输入成绩时按成绩一(第一次考试成绩)、成绩二(如有补考,则输入成绩二),最终记入数据库的成绩为成绩一和成绩二的最高成绩。班主任登陆后台可对本班学生的毕业设计信息进行增删改查等日常维护。学生登陆后可查询自己的所有成绩,及自己的毕业设计信息。1.2.3超级管理模块(如图1.1所示)新闻管理超级管理员admin登陆后台,可对本系统新闻公告进行增删改查等维护。留言管理

超级管理员admin登陆后台,可回复、删除学生提问及访客留言。班主任、专业、管理

超级管理员admin登陆后台,可对班主任、专业、课程进行增删改查等日常维护。管理员登陆(login.asp)超级管理员班主任新闻管理专业及班主任管理添加超级管理员课程管理学生档案管理学生成成绩管理毕业设计管理学生备注管理管理员登陆(login.asp)超级管理员班主任新闻管理专业及班主任管理添加超级管理员课程管理学生档案管理学生成成绩管理毕业设计管理学生备注管理图1.1成教管理系统功能模块介绍1.3B/S模式分析Browser/Server(简称B/S)即浏览器/服务器模式,是一种从传统的二层C/S模式发展起来的新的网络结构模式,其本质是三层结构C/S模式。B/S模式是基于Intranet的需求而出现并发展的,Intranet是应用TCP/IP协议建立的企事业单位内部专用网络,它采用诸如TCP/IP、HTTP、SMTP和HTML等Internet技术和标准,能为企事业单位内部交换信息提供服务。在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给Web服务器,Web服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器以友好的Web页面形式显示出来。B/S模式管理信息系统基本上克服了C/S模式管理信息系统的不足,其主要表现在:●系统开发、维护和升级的经济性对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,B/S模式所具有的框架结构能够大大节省这些费用,同时,B/S模式对前台客户机的要求并不高,能够避免盲目进行硬件升级造成的巨大浪费。●B/S模式提供了一致的用户界面B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而能够降低软件的培训费用。●B/S模式具有很强的开放性在B/S模式下,外部的用户亦可经过通用的浏览器进行访问。●B/S模式的结构易于扩展由于Web的平台无关性,B/S模式结构能够任意扩展,能够从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。●B/S模式具有更强的信息系统集成性在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。●B/S模式提供灵活的信息交流和信息发布服务B/S模式借助Internet强大的信息发布与信息传送能力能够有效地解决企业、高等学校内部的大量不规则的信息交流。

2数据库理论基础一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。本章着重从SQL应用、数据库设计范式和查询优化等方面来分析本系统的关键技术和实现难点。2.1数据库系统设计及范式分析信息系统的主要任务是经过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都能够迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。2.1.1数据库系统设计数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是:数据库结构定义数据表定义数据使用权限设置数据字典设计2.1.2数据库设计范式分析建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全能够认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表示中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表示还规定在每一个基本表中必须定义一个数据元素为关键字(key),它能够唯一地标识出该表中其它相关的数据元素。在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常见系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。第一范式(firstnormalform,简称1NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1NF。第二范式(secondnormalform,简称2NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。只要知道了一个合同记录的合同号,就能够唯一地在同一行中找到该合同的任何一项具体信息。一般我们称这种关系为函数依赖(functionaldepEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(thirdnormalform,简称3NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了2NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。

2.2SQL语言介绍2.2.1SQL基础SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。SQL一般使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句一般见于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、MicrosoftSQLServer、Access等等。虽然绝大多数的数据库系统使用SQL,可是它们同样有它们自立另外的专有扩展功能用于它们的系统。可是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。SQL语言有着非常突出的优点,主要是:非过程化语言统一的语言是所有关系数据库的公共语言2.2.2SQL语句SQL功能强大,是一种完备的数据处理语言,不但用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它能够分成以下几组:DML(DataManipulationLanguage,数据操作语言):用于检索或者修改数据;DDL(DataDefinitionLanguage,数据定义语言):用于定义数据的结构,比如创立、修改或者删除数据库对象;DCL(DataControlLanguage,数据控制语言):用于定义数据库用户的权限。DML组能够细分为以下的几个语句:SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据。DDL语句能够用于创立用户和重建数据库对象。下面是DDL命令:CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX下面是一个简单SQL语句的例子:我们使用SQL语句来从Students中检索stu_ID为15的学生姓名:SELECTNameFROMStudentsWHEREstu_ID=15数据定义语言DDL:它是用来创立和修改数据库结构的一种语句,包括Create、Alter和Drop语句。数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。用于修改数据库内容的SQL语句主要有以下三个:(1)Insert,向一个表中加入新的数据行(2)Delete,从一个表中删除数据行(3)Update,更改数据库中已经存在的数据

3ASP数据库编程3.1ASP简介MicrosoftActiveServerPages即我们所称的ASP,其实是一套微软开发的服务器端脚本环境,ASP内含于IIS3.0和4.0之中,经过ASP我们能够结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。以下罗列了ActiveServerPages所独具的一些特点:1.使用VBScript、Jscript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。2.无须compile编译,容易编写,可在服务器端直接执行。3.使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。4.与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML码的浏览器,即可浏览ActiveServerPages所设计的网页内容。ActiveServerPages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。5.ActiveServerPages能与任何ActiveXscripting语言相容。除了可使用VBScript或Jscript语言来设计外,还经过plug-in的方式,使用由第三方所提供的其它脚本语言,譬如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。6.ActiveServerPages的源程序,不会被传到客户浏览器,因而能够避免所写的源程序被她人剽窃,也提高了程序的安全性。7.可使用服务器端的脚原来产生客户端的脚本。8.物件导向(Object-oriented)。9.ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。能够使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写你所需要的ActiveXServerComponent。3.2ASP内置组件介绍什么叫组件(ActiveServerCompontents)?组件是基于Activex技术的代码片断,经过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象。你能够理解成组件是一种程序,经过调用这种程序,你能够实现你在ASP程序中无法实现或者很难实现的功能,组件是一种很好的代码重用方法。我们能够运用ActiveServerPages设计制作动态、交互的Web页面,可是一旦你开始着手工作,参与一些实际工作的时候,你会发现asp在某些方面功能不强,甚至不借助服务器端组件就很难实现某些功能,例如:数据库操作(我们一般使用ADO,ADO就是一个组件),邮件功能,文件系统操作,图形功能...可是幸运的是我们能够找到很多组件来提高ASP编程应用能力,下面对ASP内置组件作简单的介绍。·ADROTATOR组件

广告轮显组件

属性:Border,Clickable,TargetFarms

方法:GetAdvertisement·FILEACCESS组件

文件操作组件

FileSystemObject对象

方法:CreateTextFile,OpenTestFile,CopyFile,DeleteFile,

FileExists,GetExtensionName,GetFile,GetFileName,MoveFile,

CopyFolder,GetParentFolderName,GetSpecialFolder,GetTempName,

GetDrive,GetDriveName,DriveExists,Drives,

GetAbsolutePathName,GetBaseName..·CONTENTLINKING组件

此组件主要用于管理网页网址间的超文本链接

方法:GetListCount,GetNextURL,GetPreviousDescription,

GetListIndex,GetNthDescription,GetPreviousURL,

GetNextDescription,GetNthURL...·BROWERCAPABILITIES组件

浏览器性能组件

属性:browser,version,majorver,minorver,beta,Platform,ActiveXControls,backgroundsounds,Cookies,Frames,

Javaapplets,Tables,Vbscript,Javascript,cdf...

建立方法

SetBrowerType=Server.CreateObject("MSWC.BrowserType")3.3SQL语言在ASP中的应用数据库查询语言(SQL)是使用于关系数据库的标准语言,被很多类型的数据库所支持。下面简单介绍我们平时使用最频繁,也是本系统所使用的主要语句:SELECT的语法以及使用。语句的语法如下:

SELECT[all|*|distinctcolumn1,column2]

FROMtable1[,table2]

WHERE[condition1|expression1][ANDcondition2|rxpression2]

在上面的语法中,[]外的语句是必须的,而[]内的是可选的,对于以|分割的操作符,则表明语法中必须从|分割的操作符中选择一个。下面的语法描述同上。在SELECT...FROM...WHERE语句中其中SELECT指定需要检索的字段,FROM指定要查询的表,WHERE指定选择纪录的条件,另外还能够包含ORDERBY语句来制定排序纪录。语法如下:

ORDERBYcolumn1|Integer[ASC|DESC]其中column1制定排序的字段,也能够使用Integer指定的字段索引来排序,ASC为升序、DESC为降序。在SELECT语句的WHERE中,我们能够使用操作符号>来比较大小以及使用LIKE进行匹配。在WHERE语句中,能够使用的操作符有以下几类:

1、比较操作符

包含=、<>、>、<、>=、<=等若干类

2、逻辑操作符包含以下若干类:LIKE、IN、BETWEEN、UNIQUE、ISNULL、EXISTS、ALL和ANYLIKE操作符经过使用通配符将一个值同其它值比较,在ASP的SQL查询中,能够使用的通配符是*和?其中*代表任意的若干个字符,而?代表一个字符,例如上面语句中的LIKE'*Beginner*代表查找所有包含字符串Beginner的值。不过要注意的是使用*和?作为通配符是VB的专利。真正的SQL语言的通配符是%和_,其中%代表任意多个字符,_代表一个字符。另外MicrosoftJetEngine对于LIKE操作符还提供了其它一些的过滤选项。IN操作符用于比较某一个值是否等于几个值中的一个值,例如下面的语句:

"SELECT[stu_name],[Year]FROM[student]WHERE[Year]IN(,,)"将从表Titles中选择所有在,,入学的学生名单。BETWEEN操作符勇于在两个值之间搜索,例如WHERE[Year]BETWEENAND指定入年份必须在1989年和1991年之间。对于逻辑操作符,能够结合NOT操作符实现改变查询条件的方向。例如WHERE[Year]NOTIN(,,)

3、连接符WHERE中的连接符包括AND和OR,使用AND时,所有查询都必须是True时,条件才成立,而使用OR时,只要连接的一个查询为True,条件就成立。在使用比较操作符时要注意,在ASP操作数据库引擎时对于查找的字符串,要使用单引号或者双引号将字符串括起来,例如WHERE[Name]='LiGang'。而对于日期类型的数据,要使用#号将日期括起来,例如WHERE[BirthDay]>#1980-10-01#而在使用通配符和LIKE操作符时,需要使用引号而不是#号,例如WHERE[BirthDay]LIKE"1990-01-*"。引号告诉数据库引擎将日期当字符串处理,而#号告诉数据库引擎将日期当数字处理。

4成教管理信息系统设计4.1成教管理系统数据库设计4.1.1概念设计在概念设计阶段中,应该从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。(1)设计局部ER模式(如图4.1)实体和属性的定义:学生{id(自动编号)、stu_name(姓名)、stu_pw(密码)、stu_sex(性别)、stu_card(身份证号)、stu_id(准考证号)、spe_name(专业)、stu_style(学习形式)、stu_mz(民族)、stu_jg(籍贯)、stu_xh(学号)、stu_zz(政治面貌)、stu_jk(健康状况)、stu_hf(婚否)、stu_cjgz(参加工作时间)、stu_xl(入学前最高学历)、stu_rxsj(入学时间)、stu_now_name(现在工作单位名称)、stu_now_address(详细地址)、stu_now_tel(联系电话)、stu_now_post(邮政编码)、stu_home(家庭地址)、stu_resume(简历)、stu_shgx(社会关系)、stu_jysj(结业时间)、stu_byzh(毕业证编号)、stu_xjbd(学籍变动情况)、stu_date(注册日期)}管理员表(超级管理员、班主任){id(自动编号)、admin_name(管理员名)、admin_pw(管理员密码)、check(检查是否为超级管理员)spe_name(专业名)}学生成绩表{stu_xh(学生学号)、cou_id(课程编号)、stu_cj_1(学生第一次成绩)stu_cj_2(学生补考成绩)、stu_cj_3(学生最终成绩)}毕业设计表{stu_xh(学生学号)、gra_title(毕业论文题目)、gra_teacher(指导老师)、gra_db(答辩负责人)、gra_cj(答辩成绩)}奖惩情况表{stu_xh(学生学号)、stu_award(奖惩情况)}课程表{cou_id(课程编号)、cou_name(课程名)、cou_teacher(开课教师)、cou_term(开课学期)}专业表{spe_name(专业名)spe_teacher(班主任)}学生学号姓名性别密码身份证号专业地址准考证号简历毕业证编号结业时间学生学号姓名性别密码身份证号专业地址准考证号简历毕业证编号结业时间其它…图4.1局部ER图的设计示例(部分属性未列出)学学生成绩课程专业来、拥有学生MNN1专业拥有课程NM

图4.2联系定义ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图4.2所示。解释如下:一个学生能够选择多门课程学习,而一门课程有多个学生学习;一个专业能够拥有多名学生,而一名学生只能选择一个专业;一个专业能够拥有多门课程,而一门课程也可在不同的专业讲授。(2)设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不但要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。专业班主任专业专业班主任专业名1拥有拥有学生学号N学生学号学生1学生课程编号M课程编号第一次成绩拥有成绩

第一次成绩拥有成绩最终成绩N最终成绩课程N课程开课学期开课教师课程编号课程名开课学期开课教师课程编号课程名

图4.3“成教管理系统”的全局ER模式(1)确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。(2)局部ER模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。(3)消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。(4)全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。综上所述,“成教管理系统”的全局ER模式图4.3所示。4.1.2数据库的实现本系统选用了SQL数据库来进行数据库的逻辑设计。首先创立一个数据库:huoyan、然后建立七个基本数据库表如表4.1表4.7所示。表4.1学生基本信息表的结构字段名数据类型长度是否关键字必填说明Stu_idint4是是自动编号stu_namenvarchar50否是学生姓名stu_pwnvarchar50否是密码stu_sexnvarchar50否是性别stu_cardnumeric9否是身份证号stu_idnumeric9否否准考证号spe_namenvarchar50否是专业stu_stylenvarchar50否是学习形式stu_mznvarchar50否是民族stu_jgnvarchar50否是籍贯stu_xhnumeric9是否学号stu_zznvarchar50否是政治面貌stu_jknvarchar50否是健康状况stu_hfnvarchar50否是婚否stu_cjgzdatetime8否否参加工作时间stu_xlnvarchar50否是放学前最高学历stu_rxsjdatetime8否是入学时间stu_now_namenvarchar50否否现在工作单位stu_now_addressnvarchar50否是详细地址stu_now_telnumeric9否是联系电话stu_now_postnumeric9否是邮政编码stu_homenvarchar50否是家庭地址stu_resumentext16否是简历stu_shgxntext16否是社会关系stu_jysjdatetime8否否结业时间stu_byzhnumeric9否否毕业证编号stu_datedatetime8否是注册日期stu_xjbdnvarchar50否否学籍变动情况

表4.2学生成绩表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号stu_xhnumeric9是是学生学号cou_idnumeric9是是课程编号stu_cj_1numeric9否是学生第一次成绩stu_cj_2numeric9否否学生补考成绩stu_cj_3numeric9否是学生最终成绩

表4.3课程表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号Cou_idnumeric9是是课程编号Spe_namenvarchar9否是所属专业名cou_namenvarchar50否是课程名cou_teachernvarchar50否是开课教师cou_termnvarchar50否是开课学期

表4.4专业表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号spe_namenvarchar50是是专业名teacher_pwnvarchar50否是班主任密码spe_teachernvarchar50否是班主任表4.5毕业设计表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号stu_xhnumeric15是是学生学号gra_titlenvarchar30否是毕业论文题目gra_teachernvarchar15否是指导老师gra_dbnvarchar15否是答辩负责人gra_cjnumeric10否是答辩成绩

表4.6管理员表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号Admin_checknvarchar50否否是否为超级管理员Spe_namenvarchar50否是专业名admin_namenvarchar50否是管理员名admin_pwnvarchar50否是管理员密码

表4.7新闻表的结构字段名数据类型长度是否关键字必填说明idnumeric15是是自动编号News_datedatetime50否是添加/修改日期News_titlenvarchar50否是新闻名News_contentntext16否是新闻内容4.2学籍管理模块的实现学籍管理模块分成学生前台注册,管理员后员添加、修改、删除两个板块。

学生前台注册不包括学号、毕业证号等学生无权填写的项目。stu_reg.asp文件包含script脚本语言对输入数据进行检查,若不允许为空的字段未输入数据,则提示错误。对于学号等数字类型字段,由stu_reg_save.asp进行验证,若这些字段为非数字类型,则定义SESSION("ERROR")="YES",并response.Redirect("stu_reg.asp")跳转到stu_reg.asp文件,由if语句判断并输出出错信息“sorry!身份证号、准考证号、学号、电话、邮编、毕业证编号必须为数字!”。若所有输入都正确,则连接数据库huoyan,查询并打开student表,用addnew方法将发出请求的数据录入数据库,并跳转到成功页面ok.htm。

Stu_reg.asp报错程序流程图见图4.4

Stu_reg.asp报错IF判断IF判断否 是Stu_reg_save.asp录入判断输入是否完整Student表判断学号等字段输入是否正确是否IF判断删除Stu_edit.asp修改Stu_del.asp搜索Stu_search.asp是Stu_reg_save.asp录入判断输入是否完整Student表判断学号等字段输入是否正确是否IF判断删除Stu_edit.asp修改Stu_del.asp搜索Stu_search.asp图4.4程序流程图stu_reg.asp-学生注册页面(部分代码)<!--#includefile="../include/conn.asp"-->//头文件包含数据库连接文件<!--#includefile="../include/pass.asp"-->//头文件包含密码验证文件<script>functionerror(){if(document.form1.stu_name.value==""){alert("请输入姓名!"); returnfalse;}……elsereturntrue;}</script>//检查输入是否完整正确<%ifSESSION("ERROR")="YES"then%><tablewidth="59%"border="0"align="center"cellpadding="0"cellspacing="0"><tr><tdheight="13"><divalign="center"><spanclass="font1style2">sorry!身份证号、准考证号、学号、电话、邮编、毕业证编号必须为数字!</span></div></td></tr></table><%endifSESSION("ERROR")=""%>//用SESSION方法检查输入错误,并显示信息<formname="form1"method="post"action="stu_reg_save.asp"onSubmit="returnerror()"><selectname="spe_id"size="1"id="spe_id"><%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMspecialitywherespe_name='"&SESSION("SPE_NAME")&"'"RS.OPENSQL,CONN,1,1 DIMSPE_NAME:SPE_NAME=RS("spe_name")DIMID:ID=RS("id")%><optionselectedvalue="<%=ID%>"><%=SPE_NAME%></option><%rs.close setrs=Nothing%></select>//用speciality中查询并列出专业表供学生注册时选择</form>用户界面如图4.5所示图4.5用户前台登陆查看档案界面stu_reg_save.asp学生学籍信息存入数据库(部分代码)<%DIMstu_card:stu_card=REQUEST("stu_card")If not(isnumeric(stu_card)) Ornot(isnumeric(REQUEST("stu_id")))ornot(isnumeric(REQUEST("stu_xh")))Ornot(isnumeric(REQUEST("stu_now_post")))ornot(isnumeric(REQUEST("stu_byzh")))thenSESSION("ERROR")="YES"response.Redirect("stu_reg.asp")ENDIF%>//检查学号等属性是否为数字,如果不是数字类型,只跳转到注册页面,并定义session方法<%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMstudent"RS.OPENSQL,CONN,1,3rs.addnewrs("stu_name")=request("stu_name")……rs.update%>//将注册信息录入数据库stu_del.asp删除学生文件<%DimID:ID=Request("id")%>//将发出请求的id定义成变量ID<%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMstudentWHEREid="&IDRS.OPENSQL,CONN,1,3RS.DELETERS.UPDATEResponse.Redirect("../include/ok.htm")RS.CLOSESETRS=NothingCONN.CLOSESETRS=Nothing%>//从学生表中将编号为ID的记录删除4.3成绩管理模块的实现成绩管理模块是本系统的重点和难点。它涉及到专业信息管理、课程信息管理、成绩的录入修改与查询三大板块。专业信息管理板块由超级管理员操作,一个专业由一个班主任管理,因此添加专业信息时包括专业代号、名称,及班主任的用户名和密码。课程信息管理板块由班主任操作,所添加的课程信息包括课程编号、课程名等。成绩的录放修改与查询板块也由班主任操作,班主任录入本班学生各科成绩;按学生学号查询该生所有科目成绩;按课程代号查询本班所有学生的该科成绩。需要说明的是,班主任只能够对本专业的课程、及专业的学生进行管理操作(select[]from[]where[]orderby[]语法)。程序说明:login.asp登陆,若“是否为超级管理员”一项为空,则视为班主任管理员,并进行验证。查询speciality表中spe_teacher字段中是否存在该记录,若不存在则报错,若存在则验证其密码,并获取该记录的专业名spe_name,重新定义为SPE_NAME从courses表中查询专业名为SPE_NAME的所有记录,可进行修改、添加等操作,唯一不可修改的是专业名。从achievement表中查询专业名为SPE_NAME的所有记录,并获取到stu_id字段,定义为STU_ID,再从student表中查询STU_ID所在的记录,获取其stu_name字段。同样的方法,从courses表中查询到所cou_id(课程编号)所对应的cou_name(课程名)4.3.1专业信息管理spe_add.asp添加专业(代码略)spe_add_save.asp将添加的专业信息录入数据库(部分代码)<%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMspeciality"RS.OPENSQL,CONN,1,3rs.addnewrs("spe_name")=SPE_NAMErs("spe_teacher")=SPE_TEACHERrs("teacher_pw")=TEACHER_PWrs.update%>spe_all.asp列出所有专业(部分代码)<%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMspecialityorderbyiddesc"RS.OPENSQL,CONN,1,1%><tablewidth="365"border="0"align="center"cellpadding="1"cellspacing="1"bgcolor="#66CC00"><%whilenotrs.eof%><trbgcolor="#319A00"><tdheight="25"><divalign="center"><fontcolor="#FFFFFF"><%=RS("spe_name")%></font></div></td><td><divalign="center"><fontcolor="#FFFFFF"><%=RS("spe_teacher")%></font></div></td><td><divalign="center"><ahref="spe_edit.asp?id=<%=RS("id")%>"class="style2">修改</a></div></td></tr><%Rs.movenextwend%></table>spe_edit.asp修改所选专业信息(代码略)spe_edit_save.asp保存修改信息(代码略)4.3.2课程信息管理cou_add.asp添加课程(代码略)cou_add_save.asp保存添加课程信息(部分代码)<%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMcourses"RS.OPENSQL,CONN,1,3rs.addnewrs("cou_id")=COU_IDrs("cou_name")=COU_NAMErs("cou_teacher")=COU_TEACHERrs("cou_term")=COU_TERMrs("spe_name")=SESSION("SPE_NAME")rs.updaters.close%><%DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMcourseswherespe_name='"&SESSION("SPE_NAME")&"'orderbycou_iddesc"RS.OPENSQL,CONN,1,1%><tablewidth="696"border="0"align="center"cellpadding="1"cellspacing="1"bgcolor="#66CC00"><%whilenotrs.eof%><trbgcolor="#3AB500"><tdheight="25"><divalign="center"><fontcolor="#FFFFFF"><%=RS("cou_id")%></font></div></td><tdheight="25"><divalign="center"><fontcolor="#FFFFFF"><%=RS("cou_name")%><td><divalign="center"><fontcolor="#FFFFFF">第<%=RS("cou_term")%>学期</font></div></td><td><divalign="center"><ahref="cou_edit.asp?id=<%=RS("id")%>"class="style2">修改</a></div></td><td><divalign="center"><ahref="cou_del.asp?id=<%=RS("id")%>"class="style2">删除</a></div></td></tr><%Rs.movenextwend%></table><%rs.closeSetrs=Nothingconn.closeSetconn=Nothing%>cou_all.asp列出所有课程(部分代码)cou_edit.asp修改所选课程(代码略)cou_edit_save.asp保存(代码略)4.3.3成绩的录入与查询ach_add.asp录入学生成绩(代码略)ach_add_save.asp录入学生成绩保存(代码略)ach_search_xh.asp按学生学号查询各科成绩(部分代码)<%DIMID:ID=Request("stu_xh")IFID=""THENRESPONSE.Redirect("../include/fail.htm")ENDIFDIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMachievementwherestu_xh="&ID&"orderbyiddesc"RS.OPENSQL,CONN,1,1IFRS.EOFTHENResponse.Write("暂时没数据")ELSEwhilenotrs.eofDIMSTU_XH:STU_XH=RS("stu_xh")…..%>….//在成绩表中查询是否存在请求的”stu_xh”,并找出其所选课程的编号<% SETRS1=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMstudentwherestu_xh="&STU_XHRS1.OPENSQL,CONN,1,1 DIMSTU_NAME:STU_NAME=RS1("stu_name") RS1.CLOSE SETRS1=Nothing%>….//在学生表中查询学号为stu_xh的学生的姓名<% SETRS1=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMcourseswherecou_id="&COU_IDRS1.OPENSQL,CONN,1,1 DIMCOU_ID_:COU_ID_=RS1("cou_id") DIMCOU_NAME:COU_NAME=RS1("cou_name") DIMCOU_TERM:COU_TERM=RS1("cou_term") DIMCOU_TEACHER:COU_TEACHER=RS1("cou_teacher") RS1.CLOSE SETRS1=Nothing%>….//在课程表中查询该生所选课程ID的课程名ach_search_xh.asp按学生学号查询各科成绩(代码略)ach_edit_save.asp学生成绩修改保存(代码略)ach_all.asp本专业所有学生各科成绩表(代码略)4.4管理员模块的实现本系统的管理模块分为超级管理和班主任管理,班主任管理由学生学籍管理、学生成绩管理组成,在本文上一节已对它们作了较为详尽的说明,本节主要介绍超级管理员板块,该板块分为专业管理和新闻留言管理。

程序流程如图4.6所示:判断aspLogin.asp班主任否超级管理员是学籍管理成绩管理专业管理新闻、留言管理超级管理员管理判断aspLogin.asp班主任否超级管理员是学籍管理成绩管理专业管理新闻、留言管理超级管理员管理增、删、改、查等操作增、删、改、查等操作图4.6管理板块程序流程图专业管理的部分代码在上一节已有介绍,在这里就不再累述。下面就本系统的管理模块的代码作详细介绍。login.asp管理登陆文件(代码略)admin_check.asp管理员密码验证文件(部分代码)<%DIMADMIN_NAME:ADMIN_NAME=REQUEST("admin_name")DIMADMIN_PW:ADMIN_PW=REQUEST("admin_pw")DIMADMIN_CHECK:ADMIN_CHECK=REQUEST("check")%>//定义变量<%IFADMIN_CHECK=NOTHEN//检查用户是否是超级管理员DIMRSSETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMspecialityWHEREspe_teacher='"&ADMIN_NAME&"'ANDteacher_pw='"&ADMIN_PW&"'"RS.OPENSQL,CONN,1,3IFRS.EOFTHENRESPONSE.Write("您不是合法用户")ELSESESSION("PASS")="PASSED"SESSION("ADMIN_NAME")=RS("spe_teacher")SESSION("SPE_NAME")=RS("spe_name")SESSION("SPE_ID")=RS("id")RESPONSE.Redirect("../admin/index_teacher.asp")ENDIFRS.CLOSESETRS=NOTHING%>//不是超级用户<%ELSESETRS=SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT*FROMadminWHEREadmin_name='"&ADMIN_NAME&"'ANDadmin_pw='"&ADMIN_PW&"'"RS.OPENSQL,CONN,1,3IFRS.EOFTHENRESPONSE.Write("您不是合法用户")ELSESESSION("PASS")="

温馨提示

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

评论

0/150

提交评论