基于ASP.NET的高校成教管理系统设计与实现

来源 :计算机时代 | 被引量 : 0次 | 上传用户:nimakule119
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:介绍了基于ASENET技术的高校成教管理系统,该系统采用B/S结构。文章就系统的体系结构、数据库设计和快速开发方法作了简要的说明,并着重阐述了组件、系统安全、动态报表等技术在系统中的应用。
  关键词:成人教育;教务管理;组件技术;ASP.NET
  
  0 引言
  
  苏州大学的成人教育事业由于开办历史长,基础好,近年来发展非常迅速,学生超过数万人。随着成教事业的发展,对成教院的管理工作提出了更高的要求。本系统主要目的是解决各学院成人教育相关信息的计算机管理,允许上级主管部门、成教院和各学院能在统一的平台下操作。系统将成教院用户作为高级管理员,可管理所有院系的数据;而院系用户作为一般管理员,只能操作相应院系的数据,其他院系的数据将被限制访问,部分重要数据的操作,必须通过成教院用户审核后方可生效。在安全性方面采用用户、用户组、模块及其他方式如临时表、日期限定等相结合的形式进行控制。该系统的实施使得成教管理从报名入学到毕业审核一系列的工作流进行得更加规范,且达到方便、省时、高效、安全的目的,实现了成教学生、报名考试、成绩、毕业等信息管理的数字化、系统化和科学化。
  
  1 数据库E—R图设计
  
  本系统涉及的主要实体有:学生、班级、专业、院系、课程、开课计划、课表、学生考试成绩、学籍变动、用户、用户组、模块等。它们之间的联系如图1数据库逻辑设计所示。
  


  数据库逻辑设计中需要重点说明的是:
  (1)新生录取的数据主要包括“省下达招生计划”和“录取学生名单”,该信息主要来源于省教委,每次录取时需要从省教委下发数据导入。导入前将上次数据全部移入备份库。专业、班级和学生是录取学生正式报到注册后的学籍数据。
  (2)教学计划是一切教学活动的依据和判断学生毕业的依据,也是申报新专业时必须提供的主要材料。
  专业的教学计划可以随着时间的变化而进行修订。因此,同一个专业不同年级的教学计划可能不同。但同一专业同一年级的各个班级的教学计划必须相同(指课程相同),只允许课程开课的时间不同。
  按照不同的级别,教学计划分为两类:①专业教学计划(模版);②教学班的教学计划(开课计划)。
  (3)用户、用户组、模块及用户组权限分配。
  本系统是一个授权访问的系统。用户是有权使用本系统的人。同一类用户定义为一个组。用户组分为两类:
  ①系统组:即系统一开始就设定的组。系统组包括:超级管理员组、一般管理员组、院系管理员组、学生组、过客组。系统组是系统初始设定好的,不允许管理员删除。
  


  ②自定义组:由超级管理员用户定义的组。例如,可以定义:全权浏览组、审核组等。
  一个用户可以隶属于多个组。用户与组的多对多联系通过“用户组成员”体现。学生作为特殊的用户,不记录在该表内,而是在学生表内保存密码,用学号作为登录账号。
  (4)模块及用户组权限分配。
  模块是描述一组或一个功能页面的实体。模块组可以包含子组。子模块组或功能模块页面通过“父编号”标识指定属于哪个上级组。从而构成一颗模块结构树。模块实体中的“文件名”是指包含相对路径的完全文件名;“开始时间”和“结束时间”是指对记录进行添加、删除、修改的开放时间。若未指定,则表示无时间限制。
  定义每个用户组对每个模块或模块组的权限。如果某个用户组对某个模块没有相关记录,则认为该用户组对该模块没有任何权限。一个用户对某模块是否具有某种权限,是由其所在组的权限、组对模块的权限和模块本身开放的权限三者共同限制的。判断模块开放时间限制的代码如下(如果一个用户属于多个组,则取这些组对于某权限的或即“0r”):
  User.Rights=UserGroups Rights And UserGroupModuleRights.
  Rights And Modules.Rights And(When IsNull(Modules.
  BeginDate,0)=0 Then 1 Else getDate0>=Modules.BeginDate
  End)And(When IsNull(Modules.EndDate,0)=0 Then 1 Else
  getDate()<=Modules.EndDate End)
  
  2 系统体系结构
  
  系统体系结构如图2所示。本系统是一个完全基于ASP.NET技术的Web应用程序。系统体系结构为三层模式:表示层、业务逻辑层、数据访问层。在表示层中,各个功能页面划分成许多自定义用户控件及服务器控件,控件搭建成完整的功能页面,数据访问和安全设置放在控件中,使用模块表进行管理,其目的是便于装配和安全控制。数据访问及业务逻辑层主要采用微软提供的标准数据应用访问块ApplicationBlocks for.NET。该类库集成了数据库的连接、方法重载返回DataSet和DataReader访问数据库、以及ExecuteScalar方法重载更新和修改数据库。在本系统中扩充了标准数据应用访问块的功能,以满足数据访问的要求和实现部分业务逻辑。数据库采用微软SQL Server2000。
  
  3 系统快速实现方法
  
  本系统采用快速开发方法,既保证了系统的功能又缩短了开发周期。
  在基于SQL Server数据库的逻辑和物理实现之后,就可用RapidTier工具软件快速生成基于VB或C#代码的三层架构的框架源代码。自动生成的项目中BuildSolution.bat批处理文件为编译产生源代码文件;Import.bat批处理文件帮助产生Sql存储过程(包括所有表的Insert、Add、Delete和Modify操作)。RapidTier工具产生的三层实现模式如图3所示。在RapidTier工具产生的解决方案中包括如下三个独立的工程:
  Model工程该项目中的类为数据实体,类中只包含属性,其属性对应数据库中表的各个字段信息。即数据实体类的实例对应一条记录,可从数据库提取记录信息到该实体对象,或用该实体对象添加或修改数据库中表的记录。
  DAL工程该项目为数据访问层,所有的类均从DaoBase基类继承,该基类提供可扩展的数据访问功能,如连接信息、共有属性等。该项目中的每一个类中的接口(即方法)提供一个表的Select、Insert、Updam等数据库操作方法:Select方法通常返回DataTable或DataSet对象;Insert、Update方法返回Boolean或Integer。对于Insert和Update方法,参数类型为Model项目中的相应数据实体,该项目中实体对象的方法通常被BLL层中的对象调用。底层操作数据库所采用的技术为微软提供的数据应用访问块Application Blocks for.NET,其中SqlHelper类 中的共享方法直接操作数据库。
  BLL工程该层为业务逻辑层,为表示层提供访问接口。业务逻辑层控制如字段级的验证。一些不能在单个列中表示的包含不同实体或概念的更高级的业务规则等,通常都放在该层中。业务逻辑层对象通过访问DAL层中的方法返回DataTable、DataSet或数据实体到表示层。
  三个工程的关系是:DAL工程负责直接对数据库中的数据表进行存取。BLL工程通过调用DAL工程中的方法来实现对数据库的间接操作,同时添加业务逻辑代码;只有BLL工程可以直接调用DAL工程中的方法,不可以跨层调用(Web层不能直接访问DAL层中的对象)。Web表示层(或桌面应用程序)通过调用BLL层的方法来实现与用户的交互,同时Web层中对输入数据进行一些初级验证。Model提供数据实体供Web、BLL、DAL三层之间进行数据传递。DAL工程、BLL工程和Model工程均为类库工程,编译后为DLL动态连接库。在ASP.NET中。它们的引用关系是Web工程引用BLL工程和Model工程即包含Imports qgI.BLL和Imports qgl.Model语句;BLLI程引用DAL工程和Model工程,其中qgl为该项目的名称空间。
  
  4 系统关键技术的实现
  
  4.1 组件技术
  在本系统中,主要使用了下列用户控件:班级列表、学院列表、专业列表、课程列表以及它们的各种组合列表,另外还涉及验证、日志记录等自定义服务器控件。用户控件的扩展名为ascx。其实它是一种小型的Web页面,只是它不能作为独立的Web页来运行,而被包含在.aspx页面文件中,用户控件才能工作。可以将每个页面中的共同部分、页面初始化时所要执行的操作(如登录验证,角色验证)封装在用户控件当中。
  比如学院列表用户控件Depart.ascx,该页面中只包括一个标签控件和一个下拉列表框控件DropDownXueYuan。在后台代码中集成了对院系表的访问方法,提供的外部方法有:根据用户级别填充下拉列表框FillDepartMent;获得院系ID号GetDepartlD,因为ASP.NET的内部运行机制不允许简单通过属性的方式将控件在运行时的值传递到外部,所以必须通过方法来获取控件的值;根据院系ID号在DropDownXueYuan中同步显示相应的院系名称TongBuDropDownDepartlD;以及提供DepartSelectChanged事件,在外部响应院系下拉列表框改变时,进行一些额外的操作。要想在aspx页面中触发下拉列表框的SelectedlndexChanged事件,必须在用户控件中增加触发事件功能。其实现代码如下:
  Public Event DepartSelectChanged(ByVal sender As Object.
  ByVal e As EventArgsl Private Sub DropDownXueYuan_SelectedlndexChanged(ByVal
  sender As_System.Object.ByVal e AS System.EventArgs)_ Handles DropDownXueYuan SelectedlndexChanged
  RaiseEvent DepartSelectChanged(Me,e)End Sub
  其它用户控件的实现与学院列表用户控件类似。
  
  4.2 动态报表技术
  目前基于ASP.NET的报表开发工具比较流行的主要有水晶报表设计器Crystal Report Designer,微软的报表工具SQLServer 2000 Reporting Services以及各种第三方开发的报表设计器,如Data Dynamics公司开发的ActiveReports for.NET。本系统采用AcfiveReports for.NET组件进行报表设计。该组.件安装后能与NET完美结合,用其设计的在Web上运行的报表与在桌面应用程序上运行的报表具有完全相同的模式。
  在报表设计中,往往要根据用户需求显示不同字段数的动态报表,这类报表因在设计时不能固定字段的位置,设计难度较大。本系统班级学生基本信息打印,就具有该类动态报表性质。因为学生基本信息包括22个字段,在A4纸上根本不可能打印如此多的信息,通常只能选择其中的若干个字段打印,而具体选择哪些字段,是用户自己决定的。此时需要考虑的问题有:字段头标题的总长度、各字段变量值的总长度和单个字段值的最大长度(例如通讯地址字段,该字段数据可能都为空,也可能刚好具有30个汉字)、以及标题与值的对齐等。考虑到重用性,专门为动态生成报表创建了类DynamicReportServer,在构造函数中传入纸张宽度、每行的宽度、要打印的数据表字段、以及标题名称等信息。用私有过程SetEachFieldWidth从数据库中获得选择字段的长度填充HASH变量HashFieldWidth,计算总长度和各字段所占比例,并通过GetFieldWidth属性传递给外部。在过程SetEachFieldWidth中有一点要注意的是,当打印字段标题的长度大于该字段值的长度时,使用的宽度应该是标题的宽度。
  
  5 结束语
  
  本系统在经过6个多月的快速分析开发后,现已在苏州大学成教院试用和测试,测试期间系统运行稳定、可靠。开发时间短和成本低廉是本系统的特色,这为其它同类管理系统的开发提供了借鉴。
其他文献
摘要:分析比较了ASP.NET中常用的内置缓存技术及使用场合,在此基础上提出了一种新的基于泛型技术的缓存方法。新方法通过泛型技术与静态方法的结合,达到了对缓存数据的强类型引用,避免了装箱,拆箱操作,提高了系统的性能,并可由开发者根据不同情况自行配置缓存。最后分析了新方法的优缺点及适用场合。
期刊
摘要:为了更好地实现对二级倒立摆系统的控制,在基于BP神经网络的PID控制器的基础上,引入增量式函数观测器。以便更好反馈系统的状态来帮助PID控制器作出鲁棒性和适应性更高的控制策略。仿真实验表明,该技术成功地实现了对二级倒立摆系统的控制,其稳定性要优于LQR控制策略。
期刊
摘要:针对webGIS海量数据传输瓶颈问题和普通压缩传输方案的不足,提出分卷压缩传输解决方案。并设计、实现和实验分析了一组分卷压缩传输组件。实验结果表明,采用等量并行分卷压缩传输组件,可大幅提高数据的传输效率和显著缩短传输时间,满足了企业级交通GIS(GIS-T)高效传输海量数据的要求。
期刊
摘要:介绍了CSMA(Carrier sense Multiple Access)协议及其相关概念;对其中的持续型CSMA协议和非持续型CSMA协议进行了简单的比较。充分利用相关概率的知识,结合CSMA协议的理解,对该协议中的p值进行了深入分析,得出p的最优值。对该协议Ad hoc网络中单个节点和所有节点成功访问信道的概率进行了计算。
期刊
摘要:高级照明技术是3DS MAX中提供的渲染功能,能够通过计算场物体彼此照明的相互影响来创建更为真实的照明环境。高级照明技术包含了光线跟踪(raytrace)和光能传递(radiosity)两种照明算法。光跟踪器能为明亮场景提供边缘柔和的阴影和颜色渗出,它通常用于模拟环境日光的天光对象。光能传递计算场景中所有曲面的强度,比光跟踪器更精确。文章主要讨论3DS MAX中光跟踪器和光能传递的基本工作原
期刊
摘要:介绍了Oracle 11g中一种提高查询速度的新技术——Server Result Cache。一系列的实验测试表明,ServerResult Cache技术通过直接共享SQL执行后的结果,使相同的SQL语句只需执行计算一次,再次执行时可直接得到结果,无须重新计算,从而提高了查询速度。  关键词:查询速度;Server Result Cache;Oracle 11g    0 引言    随
期刊
摘要:设计了多线程数据库应用系统,采用每个线程分配专用的运行上下文机制,共享连接池中的若干个物理连接,以降低资源占用、提高系统性能。实验表明,使用连接池的系统的运行速度远远优于不使用连接池的运行速度。  关键词:多线程;连接池;运行上下文;数据库    0 引言    在传统的数据库连接方式中,每一个数据库连接对象均对应一个物理数据库连接,数据库连接的建立以及关闭对系统而言是耗费系统资源的操作。在
期刊
摘要:在众多的关联规则挖掘算法中Apriori算法是最为经典的一个,但Apfiofi算法有两个缺陷,即:需要扫描多次数据库以及生成大量的侯选集。文中对该算法进行改进提出了一种对项进行编码的方法,通过对项编码来减少扫描数据库次数并通过删除项来减少生成候选集的数量,从而提高算法的效率。实验结果表明,优化后的算法能有效地提高关联规则挖掘的效率。  关键词:数据挖掘;关联规则;Apfiofi算法;编码  
期刊
摘要:基于OLAP的辅助决策系统,主要应用多维数据分析技术,从多个角度对数据进行观察和处理,将业务型数据转化为管理型数据,最终获得有用信息。文章在BusinessObjects平台上,为某省电力公司构建了一个辅助决策系统,对业务型数据应用了多维数据分析技术,让企业的高层管理人员全面详细地了解和掌握企业运营情况,如:收入、利润、运营中的问题及风险等,以便发现企业运营规律,做出科学的决策。  关键词:
期刊
摘要:随着电子商务的深入发展,互联网已成为电子商务的基础。电子商务环境下,如何从互联网中挖掘和利用数据是企业非常关心的问题。文章结合当前的电子商务环境,对重要信息的搜索问题进行了分析,提出了采用Web挖掘在互联网中搜索重要信息的方法,给出了该方法的一个实现技术。实验结果表明该方法可以在互联网中高效准确地搜索重要信息。  关键词:Web挖掘;电子商务;检索;元搜索引擎    0 引言    随着全球
期刊