基于ASP.NET的答辩考试管理系统的设计与实现

2010-12-27 09:17:02高丽平
中原工学院学报 2010年6期
关键词:单元格报表题目

高 亮,高丽平,赵 冬

(中原工学院,郑州 450007)

基于ASP.NET的答辩考试管理系统的设计与实现

高 亮,高丽平,赵 冬

(中原工学院,郑州 450007)

介绍了利用ASP.NET和AJAX技术开发答辩考试管理系统的方法.该系统实现了答辩考试全过程的信息化管理,使答辩考试这一考核方式的实施更加合理、高效,成绩更准确.

ASP.NET;Ajax;答辩考试系统

随着高校各专业尤其是计算机相关专业的不断改革和发展,越来越多的课程开始采用答辩作为课程考核的方式[1],但是答辩考试的考核过程及成绩管理方式却依然采用传统方式.例如,多数院校在学生申请答辩题目、教师对题目审批、答辩现场打分等关键环节仍然采用纸质记录或半信息化方式,造成了答辩考试实施过程的实时性、准确性、公平性等都不够好[2].本答辩考试系统拟将答辩考试的准备环节、实施环节直到最终评分环节的全过程都管理起来,使教师从大量繁琐的纸质记录工作中解放出来,并使成绩评定的整个过程对学生实现很大程度的透明化,从而有效地解决上述传统管理方式中存在的问题,为推进课程考核方式改革提供有力的支持.

1 系统需求分析

1.1 需求概述

答辩考试的实施过程包括以下几个重要环节:①学生申报题目:学生向教师提交自拟的答辩题目;②教师审批题目:教师对学生申报的题目进行审批,审批通过即定为最终的答辩题目,不可再更改;③答辩顺序抽签:考试前参加答辩的所有组(或个人)要通过抽签决定各自的答辩顺序;如果此课程在答辩时需要学生同时提供某种形式的作品,学生应在答辩起始日的前一天将自己的作品、资料等提交给答辩教师,进入答辩期则不允许再修改自己的作品和资料;④答辩:在进行答辩时,需要有评委和答辩记录人;评委负责为每个参加答辩的学生的各项表现评分,答辩记录人则负责记录每个学生参加答辩的题目、自述情况、教师提问的问题及学生回答问题的情况等各项信息;⑤课程成绩总评:按事先制定好的规则汇总出每个学生的答辩成绩后,还需要结合学生的平时成绩,最终计算出学生本课程的综合成绩;⑥提交考试相关资料:教师在学期末需向教务部门提交本门课程考试的相关资料,包括学生作品(可刻盘或可打印的)、文档、答辩用资料及答辩记录等.

1.2 系统用户分析

系统角色分为5类:系统管理员、教师、学生、答辩评委和答辩记录人.系统管理员是教师用户中特殊的一类人员,他除了具有普通教师的全部权限外,还具有一些维护系统运行所必需的基础数据的权限.答辩评委可由任课老师协同若干个熟悉此课程的老师组成,也可由任课老师和全体学生组成.答辩记录人可以是一位教师,也可以是班级中一位有能力且值得信任的学生,他具有记录整个答辩过程的权限.

2 系统设计

2.1 功能模块设计

系统主要功能模块有答辩课程管理、答辩题目管理、考试过程管理、报表打印、综合查询及基础数据管 理.系统功能结构如图1所示.

图1 系统功能结构图

2.1.1 答辩课程管理

(1)课程基本信息管理.教师可以通过该模块添加自己本学期所教授的需要进行答辩考试的课程信息及学习该课程的班级信息.教师在同一学期可上多门需要答辩考试的课程,学习每门课程的班级可以是多个.

(2)评分表定制.教师可以通过该模块设置自己本学期各门课程在答辩时要使用的评分表样式,包括评分表的评分项及各评分项分值的管理.

(3)规则设定.教师可以设置自己各门课程的成绩计算规则.规则内容包括:

①答辩评委结构:评委可全部由教师构成或者由教师加全班学生构成;

②答辩成绩计算规则:如果是全教师评委,计算规则可以选择是否去掉一个最低分、一个最高分,是按比例求成绩,还是按平均值求成绩;如果是按比例求成绩,还要设置任课教师和其他评委教师的占分比例;如果是教师加全班学生构成的评委组,要设置学生打分与教师打分的占分比例;

③总分计算比例设置:教师可以设置平时成绩与答辩成绩的占分比例.

2.1.2 答辩题目管理

(1)题目审批.教师可以对学生申报的题目进行审批,对不合格的题目予以驳回,已通过审批的题目学生不能再修改.

(2)申请题目.教师通过考试进度控制模块开放题目的申报权限后,每个项目组的组长可以通过该模块申请题目.组员可以加入或退出组长申请的题目,前提是该题目尚未通过教师的审核.组长在题目未通过教师审核前,也可修改题目.

2.1.3 考试过程管理

(1)考试现场角色设定.如果教师在规则设定模块中指定该门课程的答辩评委全部由教师组成,则教师可在该模块中指定答辩委员会的其他评委(任课教师被默认在评委会中).教师也可通过该模块指定各门课程的答辩记录人,被指定为答辩记录人的学生,可访问答辩记录管理模块,对学生的答辩情况进行记录.

(2)考试进度控制.任课教师可控制整个答辩考试的进度,如开放及关闭题目申报,开放及关闭答辩顺序抽签,开放及关闭个别答辩组的打分录入等.

(3)答辩顺序抽签.教师开放答辩顺序抽签功能后,每个项目组组长可登录为自己的项目抽取答辩顺序.

(4)评分管理.评委可对任课教师开放的具打分录入功能的项目及答辩学生进行打分.系统会自动根据相关比例规则,汇总出答辩成绩,再结合任课教师录入的平时成绩,计算出学生的最终成绩.最终评分结果可通过综合查询模块查看.

(5)答辩记录.如果学生或教师被赋予答辩记录人的身份,他在登录时,除具有他原有角色的全部功能外,还具有录入学生的答辩记录的权限.

2.1.4 基础数据管理

该模块可维护教师、学生、班级、专业等基础信息.除具有标准的增、删、改、查等功能外,还具有批量导入教师信息、学生信息的功能.

2.2 数据库设计

本系统采用了SQL Server2005作为DBMS.系统涉及的几个主要实体E-R如图2所示.

图2 系统 E-R图

3 系统采用的关键技术

3.1 打分列表自动生成

根据调研所得,每个评委在给答辩人打分时所用的评分表样式如表1所示.

表1 评分表格式

根据用户的要求,评分模块中的评分页面要按照表中的样式制作.由于评分项的个数不固定,即表格的列数不固定,再加上该表格还是不规则表格,涉及到合并单元格的问题,因此用DataGrid,Repeater等控件很难满足需求.本系统所采用的方法是:在服务器端先创建 HtmlTable对象,再用Controls.Add()方法将该对象加入到在设计时创建的HtmlGenericControl对象中,HtmlGenericControl对象必须设置为“在服务器端运行”.

创建 HtmlTable对象及向内添加行和列的基本代码如下 :

HtmlTable tb=new HtmlTable();//创建一个HtmlTable即

标签

HtmlTableRow tr=new HtmlTableRow();//创建一个行对象 HtmlTableRow即

标签

HtmlTableCell tc=new HtmlTableCell();//创建一个单元格对象 HtmlTableCell即

tc.InnerText="题目一";//令该单元格的内容为“题目一”

tr.Cells.Add(tc);//将该单元格添加到tr中,即构成了一行一列的样式

TexgBox txt=new TextBox();txt.Id="txt1";//创建一个文本框对象,并设置其ID

tc=new HtmlTableCell();//再次创建一个单元格tc.Controls.Add(txt)//将文本框放入单元格内如果单元格需要跨行,可使用 TableCell的 Row-Span属性来完成.

3.2 打分报表RDLC文件自动生成

因为评分项个数不定,报表样式也应该根据评分项的个数来自动生成.本系统采用的是VisualStudio下自带的 RDLC报表.关于RDLC报表的使用较为简单,但该处的难点在于如何能够做到用代码来自动生成RDLC报表文件.

RDLC报表文件实际上是一个XML文档,其中用了各种具有特殊含义的XML节点来控制报表的数据源、各列的样式及绑定字段等信息.只要能够通过程序合理生成这样的一个XML文档即可.现在,互联网上可查询到的有关自动生成RDLC报表的解决方案有2种:第一种,通过序列化方式,利用 System.Xml.Serialization命名空间中的类,构造一个完整的RDLC报表对象,再将其序列化成XML流,写入到文件中.这种方式需要用程序生成整个RDLC文档,所以要书写大量的代码,工作量较大.第二种,先设计好报表在最大列数状态下的样式,以此作为母版,程序每次运行时根据用户的实际需要,删除其中不必要的若干节点.这种方式虽然是部分修改RDLC,但依然有一定的局限性,它只适合报表的列数最大值固定且每列的列名和绑定的字段名固定不变的情况.本系统显然已经超出了这个范畴,其列数最大值不固定,列名及字段名也不固定.针对这种情况,本系统参考第二种方案“部分修改RDLC”的思想,采用了一种新的方案:变删除列为动态添加列的方式.

经过研究发现,在已经绑定好数据源的RDLC报表中添加一个列并绑定字段后,新的RDLC报表文件与添加该列之前相比,有4个节点发生了变化:

(1)“/Body/ReportItems/Table/Header/TableRows/TableRow/TableCells/”节点下多了一个“TableCell”子节点,该子节点代表新列“列头”单元格的样式信息.

(2)“/Body/ReportItems/Table/Details/TableR-ows/TableRow/TableCells”节点下多了一个“Table-Cell”子节点,该子节点代表新列“详细信息”单元格的样式信息.

(3)“/Body/ReportItems/Table/TableColumns”节点下多了一个“TableColumns”子节点,该子节点代表新列的样式信息.

(4)“/DataSets/DataSet/Fields”节点下多了一个“Field”节点,该子节点代表新列绑定的字段信息.

通过以上的研究,只需用程序向上述4个节点中写入适当的子节点即可达到向RDLC中添加新列的目的.

3.3 AJAX技术实现数据列表的无刷新更新

AJAX(Asynchronous JavaScript and XML)是一种创建交互式网页应用的网页开发技术,多用于无刷新的页面设计,即页面局部刷新[3].到目前为止,AJAX技术在ASP.NET中的实现方式已有若干种.本系统是采用 AjaxPro实现的,原因在于它要比AJAX.NET更为灵活.

本系统中打分列表页面的状态是需要不断更新的.在前面提到了任课教师可以使用“考试进度控制”模块,随时控制各评委当前能否对某个学生进行打分.也是说,打分列表页面应时刻监视学生是否允许被打分的状态,并实时更改各“提交”按钮控件的可用性.

其详细实现如下:

(1)在aspx文件中添加以下脚本:

(2)在cs文件中,首先需要在 Page_Load事件处理函数中注册AjaxPro:

AjaxPro.Utility.RegisterTypeForAjax(typeof(Grade))

然后再创建一个用Ajax调用的服务器端方法:

[AjaxPro.AjaxMethod]

public string[]SetEnable(){

……

}

SetEnable函数的核心内容是从数据库的相应表中获取被关闭打分的学生列表,并以字符串数组的形式返回.

4 结 语

本文详细介绍了答辩考试管理系统的设计和实现过程,重点论述了灵活生成打分列表和RDLC报表的原理和方法.本系统能够完成答辩考试全业务的自动化管理,大大提高了工作效率,有效保证了数据的及时性和准确性.系统现在处于试运行阶段,运行情况良好.

[1] 陈殿生,陈彧欣,王田苗.项目研究式教学中的“自评互评”考核评价方法[J].计算机教育,2010(19):87-89.

[2] 肖宇.基于ASP技术的考核评分系统的设计与实现[J].硅谷,2008(20):108-109.

[3] 修桂华,李红光.AJAX技术在ASP.NET开发中的应用[J].科技资讯,2009(33):7-8.

Design and Implementation of Replying Testing Managing System Based on ASP.NET

GAO Liang,GAO Li-ping,ZHAO Dong
(Zhongyuan University of Technology,Zhengzhou 450007,China)

This article introduces a method to develop testing system using ASP.NET and AJAX.The whole process of testing can be managed by this system which can make the application of replying testing method more reasonable,more efficient and more accurately.

ASP.NET;Ajax;replying testing managing system

TP315

A

10.3969/j.issn.1671-6906.2010.06.016

1671-6906(2010)06-0068-05

2010-10-11

高 亮(1981-),男,内蒙古赤峰人,讲师.

猜你喜欢
单元格报表题目
唐朝“高考”的诗歌题目
文苑(2020年7期)2020-08-12 09:36:22
玩转方格
玩转方格
关于题目的要求
本期练习类题目参考答案及提示
LabWindows/CVI中Excel报表技术研究
测控技术(2018年8期)2018-11-25 07:42:28
浅谈Excel中常见统计个数函数的用法
西部皮革(2018年6期)2018-05-07 06:41:07
从三大报表读懂养猪人的成绩单
一道不等式题目的推广
求知导刊(2015年15期)2015-05-30 00:51:54
月度报表
中国纺织(2009年7期)2009-08-07 06:56:16