《广东交通职业技术学院在线考试系统》毕业
(1)
广 东 交 通 职 业 技 术 学 院
毕业设计(论文)
广东交通职业技术学院在线考试系统
(GDCPEOS)
开题日期:2009 年 11 月 08 日
设计期限:2009 年 11 月 08日起 2009年12月11 日起止 答辩日期:2009年12月11日
院 系:计算机
学院软件技术 指导教师:王槐彬 学生姓名:严锦龙(组长)、李华平、陈晓红、陈永红、刘国新
广东交通职业技术学院毕业设计,论文,指导教师评语 指导教师评语:
指导教师
评定成绩:
指导教师签名
年 月 日
广东交通职业技术学院毕业设计,论文,答辩评语 答辩委员会评语:
答辩成绩:
答辩小组组长签名
年 月 日
摘要
本系统全称为广东交通职业技术学院在线考试系统。为了更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试一般要求老师打印试卷、安排考试、监考、收集试卷、评阅试卷等,这是一个很复杂的过程,已不适应现代教学,在线考试则可以对这些改进。系统将随机生成试题,学生可以可以参加课任老师所指定的考试。本系统主要是针对学院开发,比较适用于院校学生与老师专用。
对于一所学校来说,如何利用计算机改变每次考试结束后老师们统计大量的学生成绩时的繁重任务,如何消除因时间紧迫所产生的统计结果错误百出,如何可以更快捷,更准确地出一份质量高的试卷呢,设计出在线考试系统就是一个很好的解决方法。通过本系统,能帮助教研人员利用计算机,快速方便的对本学科的章节和试卷进行管理、输入、输出、统计、查找的所需操作,使散乱的试题和试卷档案能够具体化,直观化、合理化。本系统适用于教育界,对教师的信息、学生的信息、学科的信息、章节、试题和试卷的信息可以随时输入、输出、查找、修改、编制等。
本系统在开发过程中,注意使其符合易于操作的要求,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。在开发工具的选择上,主要利用 ASP.NET 编程语言进行开发,使用 MS SQL SERVER 数据库,从而保证了数据的完整性与一致性。
关键词:在线考试,EOS(ExamOnlineSystem)
目录
第一章 引言 ........................................................................................................................5
1.1 开发平台 ................................................................................................................5
1.2 开发技术 ................................................................................................................5
1.3 在线考试系统的现状...............................................................................................6
1.4 开发学生在线考试系统的意义.................................................................................6
1.4.1 开发学生在线考试系统的原因 .......................................................................6
1.4.2 学生在线考试系统的目标 ..............................................................................7
1.4.3 开发学生在线考试系统的目的 .......................................................................7
第二章 系统的分析和设计 ...................................................................................................8
2.1 管理系统需求分析 ..................................................................................................8
2.2 系统概要设计 .........................................................................................................8
2.2.1 系统功能按角色分配如下描述 .......................................................................8
2.2.2功能描述 .......................................................................................................9
2.2.3 系统的概要结构图....................................................................................... 10
2.2.4 对性能的规定.............................................................................................. 11
2.2.5 对输入输出的要求....................................................................................... 11
2.2.6 数据管理能力的要求 ................................................................................... 11
2.2.7 故障处理要求.............................................................................................. 11
2.2.8 其他专门要求.............................................................................................. 11 第三章 数据描述 ............................................................................................................... 12
3.1静态数据 ............................................................................................................... 12
3.2动态数据 ............................................................................................................... 12
3.3数据库介绍............................................................................................................ 13
3.4数据词典 ............................................................................................................... 18 第四章 系统架构与模式..................................................................................................... 25
4.1 系统架构 .............................................................................................................. 25
4.2 模式设计 .............................................................................................................. 27
4.3 辅助类的设计 ....................................................................................................... 28
4.4 框架总结 .............................................................................................................. 29 第五章 系统的实现和调试系统 .......................................................................................... 29
5.1 系统的部分界面以及程序代码............................................................................... 29
5.2 部分程序代码实现 ................................................................................................ 31
5.2.1 学生端考试页面实现断线和系统崩溃时的考试修复的代码:........................ 31
5.2.2 教师端针对每一位学生随机生成试卷代码: ................................................ 35
总结 .................................................................................................................................. 40
致 谢................................................................................................................................. 41
参考文献 ........................................................................................................................... 41
第一章 引言
当今时代的两个显著特点就是世界经济一体化和以计算机为代表的信息技术的快速发展。一个组织要在激烈的竞争中保持优势和不断发展,必须对迅速变化的环境灵敏地做出有效的反应。学生在线考试系统的应用能够提供这种有效的决策支持。学生在线考试系统运用了先进的、管理的、信息的处理技术来针对环境的挑战,它实际是随着计算机软件和网络技术不断地前进而前进,随着环境不断地变化而变化的。这样就有了新的解答——在线考试管理系统是逐步发展的过程,使之更好地适应社会的发展需求。目前校园网得到了很快普及并且在学校的管理工作中扮演着非常重要的角色,通过这个模块可以实现试题和试卷的录入、查询、修改和编制等功能,使校园网充分发挥服务师生的功能,同时也方便了教研人员对学生的考试管理工作。
1.1 开发平台
在现今信息时代,生活速度的加快,使得人们越来越向信息化、数字化发展,广东交通职业技术学院在线考试系统(GDCPEOS)是一个由人、计算机等组成的能进行学生信息、学科信息、章节信息、试题信息、试卷信息和学生成绩信息的收集、传递、储存、加工、维护和使用的系统,必然能代替过去大量、繁杂的手工操作。 本系统是通过用 ASP.NET 动态网站开发的网页设计在线考试系统,利用软件工程原理,采用生命周期方法学,根据 3NF 的关系模式设计数据库表,用模块化设计方式将系统的各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实现的功能,详细地定义了各个模块的具体功能。 开发主要包括后台数据库的建立和维护以及前端网页应用程序的开发两个方面,实现了学生在线考试信息的数据库的创建及教师信息、学科、章节、学生、试题、试卷、成绩的输入、浏览、维护和统计,使得系统具有功能强大,界面友好的特点。 1.2 开发技术
C#、ASP.NET、MS SQL SERVER、HTML、Javascript、jQuery、Ajax。
1.3 在线考试系统的现状
信息化是当今世界经济和社会发展的大趋势,也是我国产业优化升级和实习工业化、现代化是重要战略。信息化实质上就是不断扩大信息技术在各个领域、各个层次上的应用。以信息技术为代表的高新技术突飞猛进的发展和在传统产业上的广泛应用,必将为企业注入新的活力。信息技术、信息网络和信息资源的综合利用,形成了当代最先进的生产力,正以前所未有的速度为社会创造着大量的物质财富和精神财富。
在学校,尤其是在各大高校,对于学生的考试管理是相当重要,而且也是相当麻烦的,它是学校管理中最基本的一项常规性工作。而长期以来,考试管理都是依赖人工来进行的,面对如此众多的学生考试信息,其工作量是相当相当巨大的。这样不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可预知性,造成考试管理的一些不
,使得信息管理陷入“事倍功半”的地步。而计算机开发的基于单机的学生考试管理系统又只能在特定的时间,地点由特定的管理员才能进行管理,所以造成的管理上的不便性。因此急需要开发学生在线考试来改变这一现状。
1.4 开发学生在线考试系统的意义
1.4.1 开发学生在线考试系统的原因
现在我国的大中专院校的学生考试管理的水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了许多的人力和物力。而且学生考试是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。在现在这个信息化的时代,人们需要更快、更准确的查询,更便捷、更全面的学生考试系统,这样无论是学生、授课老师,还是其他教研人员都可以很方便地去查询信息和进行各种信息管理,提高工作效率。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。如果本系统能被学校所采用,将会改变以前靠手工管理学生考试的状况,可以树立良好的办学形象,提高工作效率。
1.4.2 学生在线考试系统的目标
建立学生在线考试系统,采用计算机对学生考试进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率与准确性,实现学生考试的信息管理工作流程的系统化、规范化和自动化。
1.4.3 开发学生在线考试系统的目的
科学以人为本。随着 IT 行业的飞速发展,人民生活节奏的加快,计算机是现代人学习,工作不可缺少的一个好帮手。只有一台好的计算机是不够的,还需要一些好的系统软件去运行。但一些关于生活上细节的软件还需要去开发。我们这个软件就是根据学校的情况,把学生考试相关信息的输入,输出,查询都集在一起,便于老师的管理和总结。这个系统包括学生信息导入,学科信息,试题信息,试卷信息,在线批阅,随机出题,考试成绩和考试成绩统计导出等功能,这些都大大方便了学校工作的开展,他们可以在这个系统上了解到学生的情况,有利于学校工作的开展。
第二章 系统的分析和设计
建立智能化的考试系统和相应的数据库。实现考试基本功能,确保系统运行的稳定性和安全性。在线考试系统全面提供我校师生使用。使用功能包括考生成绩查询、成绩统计、动态配置班级教师、随机抽题、设置章节、设置考试时间等。 2.1 管理系统需求分析
学生在线考试系统是为了适应新形式下更好的开展老师、学生工作而开发的一套管理系统。学生在线考试系统涉及学科、章节、班级、学生、成绩、试题、试卷等多种数据信息。
这个系统开发大大方便了教研人员对考试的管理和学生对多样性的考试的方便以及老师对学生学习了解的方便性等等,此系统解决了老师,学生,考试等繁琐的问题,对高校的考试管理起到促进的作用.在不断的开发中还会尽量发现各种需求,按照实际情况进行添加和修改„„
学生成绩管理系统的用户包括系统管理员、教师和学生。系统管理员负责对教师的添加和删除,教师的功能是是负责学生信息、学科信息、章节信息、试题信息、试卷信息的管理工作,学生的功能是负责对相应的学科考试和查看本人的成绩等。
2.2 系统概要设计
2.2.1 系统功能按角色分配如下描述
定义:
, 主观题:填空题,简答题;
, 客观题:单选题,多选题,判断题;
教师:
, 教师用表格导入学生信息;
, 教师导出学生成绩;
, 教师统计学生成绩;
, 教师查看学生客观题成绩和批阅主观题,并将所得的成绩和客观题的成绩
相加得到学生总成绩;若无主观题,则客观题的成绩为总成绩; , 教师可以出题(添加试题,含文字,图片);
, 教师可以查看和修改学生信息;
, 教师可以修改个人信息密码;
学生:
, 学生提交或系统自动提交试卷后显示客观题的成绩和保存主观题的答案; , 学生根据不同的时间进行考试;
管理员:
, 管理员添加教师,删除教师;
系统:
, 系统随机出题;
, 考试期间定时保存学生答案和用时;
, 系统出错时可换机或重启;
, 每个的学生试卷在考试前已随机生成;
, 按教师要求生成随机试卷(客观题选项不随机)
, 学生考过试之后不可再重考,则显示考试成绩;
, 到达考试开始时间方可显示试卷;
, 考试时间用完,系统自动交卷;
2.2.2功能描述
, 考生答题时,主观题由考生手动输入答案,系统应该实现题目可加载自定
义图片,以更完善试卷系统
, 试题试卷管理,教师出题时,可根据不同章节,不同题型的数量,随机抽
题完成出卷的功能。
, 成绩管理,成绩统计时,可以导出Excel报表。分类统计,应该划分为
60分以下,61~70分,71~80分,81~90分,90~到100分。
2.2.3 系统的概要结构图
根据系统功能分析得出了在线考试系统是由三个角色组成,分别是学生、管理员和学生。在各个角色中也相应附加了详细的功能。
图2-2 系统的概要结构图
2.2.4 对性能的规定
精度:在精度需求上,根据使用的需要,在各项数据的输入,输出及除数过程中,可以满足各种精度的需求。
时间特性要求:在系统方面,响应时间,更新处理时间都比较快且迅速,完全满足用户要求。
灵活性:当用户需求,如操作方式、运行环境,结果精度,数据结构与其他其他软件借口等发生变化时,设计的软件要做适当调整,灵活性非常大。 2.2.5 对输入输出的要求
该软件给各项录入信息的类型都有进行了严谨的定义,确保信息的精确,用户在输入信息时候,系统会根据用户输入的信息进行判断,确保信息的精确性输入和输出。
2.2.6 数据管理能力的要求
该软件采用Microsoft SQL Server 2005作为后台数据库,对用户数据进行有效的管理,确保数据的完整性和准确性。
2.2.7 故障处理要求
内部故障处理:在开发阶段可以立即修改数据库里的相应内容。外部故障处理:通过适当的编程手段,即使处理发生故障的内容。
2.2.8 其他专门要求
保密性:本系统作为成绩管理辅助工具,规模比较小,可以限定一个程序中的某些区域的规约,给不同的模块分配不同的功能。
可使用性:在装载系统时,正常就运行,异常就停止;系统出现错误,将会产生不可预见的问题,重启。
可维护性:本系统的主要操作为 SQL 语句的增删查改,简单、直观又比较独立。因此该系统的可维护性很强。
第三章 数据描述
3.1静态数据
表3-1 静态数据
类型 数据名称 定义 格式 类型 值域 度量单位 安全控制 考生准考用于在线字符串 “”
号 考试的帐
户名
考生密码 用于浏览字符串 “”
的帐户密
码
教师账号 字符串 “” 控制
教师管理用于管理字符串 “”
账号 系统和管
理试题的
账户名
3.2动态数据
数据输入:
表3-2 动态数据输入
类型 数据名称 定义 类型 格式 值域 度量单位
考生信息 信息集合 集合 考生学号+姓名 “”
10个字符(可由
教师自定义,少班级号 班别 “” Strng 于10个字符组
成)
二级学院+科目科目 学科 “” String 名称
科目名称+章节章节 章节名称 “” String 名称
yyyy-MM-dd yyyy-MM-dd 时间 考试时间 Datetime HH:mm HH:mm
分值 试题分值 由教师自定 Int 0-100
试题 出题目 出题者自定 “” Text
学年度+科目+试卷名称 试卷名称 “” String 考试类型
数据输出:
表3-3 动态数据输出
类型 数据名称 定义 类型 格式 值域 度量单位
试卷 试题 文本 “” Text
考试总时时间 Datetime dd-hh-mm-ss dd-hh-mm-ss 间
时间 所剩时间 Datetime dd-hh-mm-ss dd-hh-mm-ss
科目名称+章节章节 章节名称 String “” 名称
时间 考试时间 Datetime yyyy-MM-dd yyyy-MM-dd
分值 试题分值 由教师自定 Int 0-100
学年度+科目+试卷名称 试卷名称 “” String 考试类型
客观试题分值 Int 0-100 得分
3.3数据库介绍
科目数据表关系图: 学科号varchar(10)
试卷号varchar(10)学科名称varchar(20)
FK__REFERENCE_FK__REFERENCE_
章节教师管理FK_SUBJECT_REFERENCE_EXAM章节号varchar(10)用户名varchar(20)学科号varchar(10)密码varchar(20)章节名称varchar(20)身份varchar(5)学科号varchar(10)老师姓名varchar(10)试卷
试卷号varchar(10)试卷名称varchar(30)FK__REFERENCE_学科号varchar(10)FK__REFERENCE_
FK__REFERENCE_
客观试题库主观试题库题目编号varchar(10)题目编号varchar(10)考生成绩章节号varchar(10)章节号varchar(10)准考号varchar(20)试题题目text试题题目text成绩float题目类型varchar(20)题目类型varchar(20)试卷号varchar(10)分值int分值int主观题成绩float客观题成绩float
FK__REFERENCE_
FK__REFERENCE_主观试题答案FK__REFERENCE_题目编号intFK__REFERENCE_FK__REFERENCE_答案内容text
学生信息准考号varchar(20)班级号varchar(10)客观试题答案编号varchar(20)题目编号varchar(10)姓名varchar(20)答案内容text密码varchar(20)正确选项varchar(10)生成试卷FK__REFERENCE_准考号varchar(20)主观_题目编号nvarchar(800)客观_题目编号nvarchar(800)开始考试时间datetimeFK__REFERENCE_考试总时间datetime答案内容text答卷状态varchar(5)考生已用时间datetime试题号varchar(30) 客观题正确答案text班级信息分值nvarchar(400)图3-1 数据表关系图 主观题目类型nvarchar(400)班级号varchar(10)客观题目类型nvarchar(400)班级名称varchar(20)
数据表:
主观试题答案
题目编号int答案内容text
-2主观试题答案表 图3
图3-3 主观试题表
图3-4 生成试卷表
章节
章节号varchar(10)学科号varchar(10)章节名称varchar(20)
图3-5 章节表
学生信息
准考号varchar(20)班级号varchar(10)编号varchar(20)姓名varchar(20)密码varchar(20)
图3- 学生信息表
客观试题库
题目编号varchar(10)章节号varchar(10)试题题目text
题目类型varchar(20)
图3-6 客观试题表
客观试题答案
题目编号varchar(10)答案内容text
正确选项varchar(10)
图3-7 客观试题答案表
教师管理
用户名varchar(20)密码varchar(20)身份varchar(5)学科号varchar(10)老师姓名varchar(10)
图3-8 教师信息表
班级信息
班级号varchar(10)班级名称varchar(20)
图3-9 班级信息表
考生成绩
准考号varchar(20)成绩float
试卷号varchar(10)主观题成绩float
客观题成绩float
图3-10 考试成绩表
科目
学科号varchar(10)
学科名称varchar(20)
图3-11 学科表
试卷
试卷号varchar(10)
试卷名称varchar(30)
图3-12 试卷表
数据流图(DFD):
登陆信息试卷信息在线考试系统教师-管理端考生-客户端添加、修改试题,试题信息系统功能设置
图3-13 顶层图
教师管理登陆信息登陆系统考生-客户端1
试题信息
配置信息验证信息4
学生信息在线考试添查2加询新信教息师
试卷信息报告
教师-管理端添加、修改试题,出题目系统功能设置3
生成试卷
图3-14 0层图
图3-15 1.1细分图
图3-16 1.2细分图
图3-17 1.3细分图
3.4数据词典
1) 数据流条目
表3-4 数据流条目
数据流名:准考号+密码
别名:无
简述:考生在登陆考试系统时的验证信息
来源:考生
去向:系统审核身份
组成:班级号+学号
数据流量:不限
高峰值:不限
数据流名:教师管理账号
别名:无
简述:管理整个系统,拥有最高权限
来源:教师信息
去向:管理界面
组成:教师姓名(可加识别字)
数据流量:不限
高峰值:不限
数据流名:个人信息
别名:无
简述:个人信息可以更改(账号例外)
来源:管理界面
去向:修改完成返回当前页面
组成:教师管理表、学生信息表
数据流量:不限
高峰值:不限
数据流名:成绩管理
别名:无
简述:考生个人成绩查询
来源:客户端界面
去向:成绩查询
组成:考生成绩
数据流量:不限
高峰值:不限
数据流名:答卷
别名:无
简述:进入正式考试,填写答案
来源:客户端界面
去向:填写答案
组成:生成试卷表
数据流量:不限
高峰值:不限
数据流名:答卷信息
别名:无
简述:提交答案
来源:客户端答题界面
去向:记录答案,返回客观题答案
组成:生成试卷表
数据流量:不限
高峰值:不限
数据流名:配置教师信息
别名:无
简述:可对教师信息进行增、删、改、查等操作
来源:管理端界面
去向:增改信息,返回当前页面
组成:教师管理表
数据流量:不限
高峰值:不限
数据流名:配置考生信息
别名:无
简述:导入Excel数据表,可对学生信息进行增、删、改、查等操作
来源:管理端界面
去向:导入学生信息。增改信息,返回当前页面
组成:学生信息表
数据流量:不限
高峰值:不限
数据流名:试题信息
别名:无
简述:由教师进行编辑试题
来源:管理端界面
去向:编辑试题界面
组成:客观试题库表、主观试题库表
数据流量:不限
高峰值:不限
2) 数据存储条目
表3-5 数据存储条目
文件名:主观试题答案表
别名:SUBJECTIVITY_ITEM_ANSWER
简述:存放库存主观试题答案信息
组成:题目编号+答案内容
组织方式:索引文件,以题目编号为关键字
查询要求:
文件名:主观试题库表
别名:SUBJECTIVITY_QUEATIONS
简述:存放库存主观试题信息
组成:题目编号+章节号+试题题目+题目类型
组织方式:索引文件,以题目编号为关键字
查询要求:
文件名:生成试卷表
别名:GENERATE_TEST
简述:存放库存生成试卷信息
组成:准考号+主观_题目编号+客观_题目编号+开始考试时间+考试总时间+答
案内容+试题类型+答卷状态+考生已用时间+试题名称
组织方式:索引文件,以准考号为关键字
查询要求:
文件名:章节表
别名:CHAPTERS
简述:存放库存章节信息
组成:章节号+学科号+章节名称
组织方式:索引文件,以章节号为关键字 查询要求:
文件名:学生信息表
别名:STUDENT_INFOMATION 简述:存放库存学生信息
组成:准考号+班级号+编号+姓名+密码 组织方式:索引文件,以准考号为关键字 查询要求:
文件名:客观试题库表
别名:IMPERSONAL_QUEATIONS 简述:存放库存客观试题库信息
组成:题目编号+章节号+试题题目+题目类型 组织方式:索引文件,以题目编号为关键字 查询要求:
文件名:客观试题答案表
别名:IMPERSONAL_ITEM_ANSWER 简述:存放库存客观试题答案信息 组成:题目编号+答案内容+正确选项 组织方式:索引文件,以题目编号为关键字 查询要求:
文件名:教师管理表
别名:TEACHER_MANAGEMENT 简述:存放库存教师管理信息
组成:用户名+密码+身份+学科号 组织方式:索引文件,以用户名为关键字 查询要求:
文件名:班级信息表
别名:CLASS_INFOMATION
简述:存放库存班级信息
组成:班级号+班级名称
组织方式:索引文件,以班级号为关键字 查询要求:
文件名:考生成绩表
别名:SUTDENT_RESULTS
简述:存放库存考生成绩信息
组成:准考号+学科号+成绩+试题号 组织方式:索引文件,以准考号为关键字 查询要求:
文件名:科目表
别名:SUBJECT
简述:存放库存科目信息
组成:学科号+学科名称 组织方式:索引文件,以学科号为关键字
查询要求:
文件名:主观题答案记录表 别名:SUBJECTIVITY_ANSWER 简述:存放库存主观题答案记录信息 组成:准考号+题目编号+答案内容+试题号
组织方式:索引文件,以准考号为关键字
查询要求:
文件名:试卷表
别名:EXAM
简述:存放库存试题信息 组成:试卷号+试卷名称 组织方式:索引文件,以试卷号为关键字
查询要求:
3) 数据项条目
表3-6 数据项条目
数据项名:准考号
别名:TEST_NO
简述:考生准考证编号
类型:nvarchar
长度:20
取值范围及含义:
数据项名:题目编号
别名:ITEM_NO
简述:标识题目数据的编号 类型:int
长度:4
取值范围及含义:
数据项名:章节号
别名:CHAPTER_ID
简述:标识各个章节的编号 类型:varchar
长度:10
取值范围及含义:
数据项名:学科号
别名:SUBJECT_ID
简述:标识各个科目的编号 类型:varchar
长度:10
取值范围及含义:
数据项名:班级号
别名:CLASS_ID
简述:标识各个班级的编号 类型:varchar
长度:10
取值范围及含义:
数据项名:题目类型
别名:ITEM_TYPE
简述:标识题目的类型
类型:int
长度:4
取值范围及含义:
数据项名:用户名
别名:USER_NAME
简述:教师管理的账号
类型:varchar
长度:20
取值范围及含义:
数据项名:试卷号
别名:EXAM_NO
简述:标识每一份试卷的编号 类型:varchar
长度:10
取值范围及含义:
4) 加工条目(加工逻辑说明)
表3-7 加工条目
加工逻辑名:考生身份验证 编号:1.1
激活条件:输入考生身份验证信息 加工逻辑:{准考号+登陆密码} 执行频率:
加工逻辑名:成绩查询
编号:1.2
激活条件:考生选择查询条件 加工逻辑:根椐考生所选择的条件 执行频率:
加工逻辑名:修改密码
编号:1.3
激活条件:考生修改个人密码 加工逻辑:根椐考生的准考号,可以修改相应的密码
执行频率:
加工逻辑名:验证当前状态
编号:2.1
激活条件:考生进入考试
加工逻辑:根椐考生的进入的状态进行判断是否第一次进入
执行频率:
加工逻辑名:答卷
编号:2.2
激活条件:考生进入考试系统答卷 加工逻辑:考生进行答卷,系统自动对答卷记录答案信息
执行频率:
加工逻辑名:提交
编号:2.3
激活条件:考生提交答案触发
加工逻辑:{考生答案+时间少于答卷规定时间} 执行频率:
加工逻辑名:管理端验证信息
编号:3.1
激活条件:输入教师账号密码
加工逻辑:{管理账号+登陆密码}
执行频率:
加工逻辑名:编辑试题
编号:3.2
激活条件:教师增加试题触发
加工逻辑:根椐所选的科目和章节添加所对应的题目
执行频率:
加工逻辑名:配置考生信息
编号:3.3
激活条件:教师配置考生信息或导入Excel数据表触发
加工逻辑:根椐所选的班级导入或配置对应的考生信息
执行频率:
加工逻辑名:导出考试成绩
编号:3.4
激活条件:教师导出考试成绩触发 加工逻辑:根椐所选的班级和试卷名称 执行频率:
加工逻辑名:配置教师信息
编号:3.5
激活条件:高级管理员对教师信息进行编辑 加工逻辑:高级管理员添加新教师 执行频率:
第四章 系统架构与模式 4.1 系统架构
为了各个队员的分工合作和日后的便于维护为目的,本系统采用三层架构部署的框架来开发。
图 4-1 数据访问层
图 4-2 业务逻辑层
图 4-3 用户界面层
图 4-4 Model实体类设计
4.2 模式设计
为了增加系统的环境适应性和降低各层之间的耦合度,我们在DAL层和BLL
层之间采用了反射工厂模式的设计模式开发
图 4-5 反射工厂模式
在IDAL中,分别包含接口:
图 4-6 系统中所有的接口
在DALFactory中,DataAccess负责各个接口对象的创建:如下例子:
public sealed class DataAccess
{
public static readonly string path = ConfigurationManager.AppSettings["WebDAL"].ToString();
public DataAccess()
{
//
}
public static IDAL.IGENERATE_TEST CreatGENERATE_TEST()
{
string classname = path + ".GENERATE_TEST";
return
(IDAL.IGENERATE_TEST)Assembly.Load(path).CreateInstance(classname);
}
}
4.3 辅助类的设计
Account类是用于存储学生登录时保存其信息;
ExcelWork类是用于辅助导入Excel表格;
PageClass类是用于学生在考试现场的所有操作的保存;
Rules类是用于教师生成试卷时保存条件的;
4.4 框架总结
本系统是模仿PetShop4.0的设计框架开发的,采用反射工厂模式的三层架构开发,针对静态的三层架构,我们设计了动态的三层架构理念,在DAL层中只是负责功能的传输和数据的返回,而真正的功能实现是在UI层,这样可以根据业务的需求而动态的更改。这样可以做到风险最低的效果。
第五章 系统的实现和调试系统 5.1 系统的部分界面以及程序代码
图 5-1 系统登录页
图 5-2 教师管理页
图 5-3 学生考试页
图 5-4 管理员管理页
5.2 部分程序代码实现
5.2.1 学生端考试页面实现断线和系统崩溃时的考试修复的代码:
原理:通过考生试卷表的状态判断考生当前是出于什么情况,0:未登录,1:
已登录,2:已交卷;3,已批阅。然后根据不同的状态处理数据,如:考生当前
状态为1(已登录),但是他的电脑突然死机,在次登录的时候,系统判断当前考试
时间,登录后系统会自动调用该学生的试卷并显示已答题的答案数据出来。最大
限度的保证了学生的权益。
private StringBuilder Initialization()
{
StringBuilder StringB = new StringBuilder();
string[] ImpersonalTypesArr = _ImpersonalTypes.Split('$');
string[] SubjectivityTypesArr = _SubjectivityTypes.Split('$');
string[] ImpersonalExemArr = _ImpersonalExem.Split('$');
string[] SubjectivityExemArr = _SubjectivityExem.Split('$');
string[] AnswerContentArr = _AnswerContent.Split('$');
string[] StudentValueArr = _StudentValue.Split('$');
string[] SubjectivityValueArr = _SubjectivityValue.Split('$');
StringB.Append("");
//老师阅卷
if (_UserType == "Marking")
{
StringB.Append("");
}
//读取数据
Gen = GenManager.GetOnlyGENERATE_TEST("TEST_NO='" + _TestNo + "' and
EXAM_NAME='" + _ExamName + "'");
if (Gen == null || string.IsNullOrEmpty(Gen.ANSWER_CONTENT)) {
StringB.Append("");
return StringB;
}
//试卷状态
if (Gen.STATE == "3")
{
ImageButton2.Visible = false;
}
string[] ArrANSWER_CONTENT = Gen.ANSWER_CONTENT.Split('$'); StringB.Append("");
return StringB;
}
5.2.2 教师端针对每一位学生随机生成试卷代码:
原理:教师添加条件(不同的题型和不同的章节),调出教师选择的班级的学
生名单为每位学生保存一份随机抽出的题目。按照单选,多选,判断,填空,简
答的顺序排好,并且抽出答案保存(便于考生提交试卷是评出客观题成绩)
protected void Save_Click(object sender, EventArgs e) {
if (Session["Rules"] != null)
{
Rules[] rules = (Rules[])Session["Rules"];
DataTable AllIPQIDT = new DataTable();
AllIPQIDT.Columns.Add("ITEM_NO");
AllIPQIDT.Columns.Add("ITEM_TYPE");
AllIPQIDT.Columns.Add("CORRECT_OPTION");
AllIPQIDT.Columns.Add("TEST_VALUE");
DataTable AllSJQIDT = new DataTable();
AllSJQIDT.Columns.Add("ITEM_NO");
AllSJQIDT.Columns.Add("ITEM_TYPE");
DataTable SIIDT = SIM.GetSTUDENT_INFOMATIONs("CLASS_ID = " +
ClassDropDownList.SelectedValue);
try
{
for (int i = 0; i < SIIDT.Rows.Count; i++)
{
GENERATE_TESTInfo GTI = new GENERATE_TESTInfo();
for (int r = 0; r < rules.Length; r++)
{
if (rules[r].Category == null)
{
continue;
}
else
{
switch (int.Parse(rules[r].CategoryValue)) {
case 1:
case 2:
case 3:
DataTable IPQIDT =
IPQM.GetIMPERSONAL_QUEATIONSs("ITEM_NO in(SELECT TOP " + rules[r].Count + " ITEM_NO FROM [IMPERSONAL_QUEATIONS] WHERE CHAPTER_ID = " + rules[r].ChapterVlaue + "and ITEM_TYPE = " + rules[r].CategoryValue + " ORDER BY NEWID())");
for (int j = 0; j < IPQIDT.Rows.Count; j++)
{
DataRow AllIPQIDR = AllIPQIDT.NewRow();
AllIPQIDR["ITEM_NO"] =
IPQIDT.Rows[j]["ITEM_NO"].ToString();
AllIPQIDR["ITEM_TYPE"] =
IPQIDT.Rows[j]["ITEM_TYPE"].ToString();
AllIPQIDR["CORRECT_OPTION"] =
IPIAM.GetOnlyIMPERSONAL_ITEM_ANSWER("ITEM_NO
= " +
IPQIDT.Rows[j]["ITEM_NO"].ToString()).CORREC
T_OPTION;
AllIPQIDR["TEST_VALUE"] =
IPQIDT.Rows[j]["TEST_VALUE"].ToString();
AllIPQIDT.Rows.Add(AllIPQIDR);
AllIPQIDT.AcceptChanges();
}
break;
case 4:
case 5:
DataTable SJQIDT =
SJQM.GetSUBJECTIVITY_QUEATIONSs("ITEM_NO in(SELECT TOP " + rules[r].Count + " ITEM_NO FROM [SUBJECTIVITY_QUEATIONS] WHERE CHAPTER_ID = " + rules[r].ChapterVlaue + "and ITEM_TYPE = " + rules[r].CategoryValue + " ORDER BY NEWID())");
for (int j = 0; j < SJQIDT.Rows.Count; j++)
{
DataRow AllSJQIDR = AllSJQIDT.NewRow();
AllSJQIDR["ITEM_NO"] =
SJQIDT.Rows[j]["ITEM_NO"].ToString();
AllSJQIDR["ITEM_TYPE"] =
SJQIDT.Rows[j]["ITEM_TYPE"].ToString();
AllSJQIDT.Rows.Add(AllSJQIDR);
AllSJQIDT.AcceptChanges();
}
break;
default:
break;
}
}
if (r == rules.Length - 1)
{
string SQ_ITEM_NO = ""; // 主观题题号
string IMP_ITEM_NO = ""; // 客观题题号
string ANSWER_CONTENT_TRUE = ""; // 客观题正确答案
string TEST_VALUE = ""; // 客观题每题的分数
string SUBJECTIVITY_TYPE = ""; // 主观题题型
string IMPERSONAL_TYPE = ""; // 客观题题型
if (AllIPQIDT.Rows.Count > 0)
{
AllIPQIDT.DefaultView.Sort = "ITEM_TYPE ASC";
DataTable DataTemp =
AllIPQIDT.DefaultView.ToTable();
for (int j = 0; j < AllIPQIDT.Rows.Count; j++)
{
IMP_ITEM_NO +=
DataTemp.Rows[j]["ITEM_NO"].ToString() + "$";
ANSWER_CONTENT_TRUE +=
DataTemp.Rows[j]["CORRECT_OPTION"].ToString() +
"$";
IMPERSONAL_TYPE +=
DataTemp.Rows[j]["ITEM_TYPE"].ToString() + "$";
TEST_VALUE +=
DataTemp.Rows[j]["TEST_VALUE"].ToString() + "$";
}
AllIPQIDT.Rows.Clear();
IMP_ITEM_NO = IMP_ITEM_NO.Substring(0, IMP_ITEM_NO.Length - 1);
ANSWER_CONTENT_TRUE =
ANSWER_CONTENT_TRUE.Substring(0,
ANSWER_CONTENT_TRUE.Length - 1);
IMPERSONAL_TYPE = IMPERSONAL_TYPE.Substring(0, IMPERSONAL_TYPE.Length - 1);
TEST_VALUE = TEST_VALUE.Substring(0, TEST_VALUE.Length - 1);
}
if (AllSJQIDT.Rows.Count > 0)
{
AllSJQIDT.DefaultView.Sort = "ITEM_TYPE ASC";
DataTable DataTemp =
AllSJQIDT.DefaultView.ToTable();
for (int j = 0; j < DataTemp.Rows.Count; j++)
{
SQ_ITEM_NO +=
DataTemp.Rows[j]["ITEM_NO"].ToString() + "$";
SUBJECTIVITY_TYPE +=
DataTemp.Rows[j]["ITEM_TYPE"].ToString() + "$";
}
AllSJQIDT.Rows.Clear();
SQ_ITEM_NO = SQ_ITEM_NO.Substring(0, SQ_ITEM_NO.Length - 1);
SUBJECTIVITY_TYPE = SUBJECTIVITY_TYPE.Substring(0,
- 1); SUBJECTIVITY_TYPE.Length
}
GTI.TEST_NO = SIIDT.Rows[i]["TEST_NO"].ToString(); GTI.SQ_ITEM_NO = SQ_ITEM_NO;
GTI.IMP_ITEM_NO = IMP_ITEM_NO;
GTI.BEGIN_TEST_TIME =
DateTime.Parse(StartTime.Value);
GTI.TEST_ALL_TIME =
int.Parse(AllTimeTextBox.Text.Trim()) * 60; GTI.ANSWER_CONTENT = "";
GTI.STUDENT_VALUE = "";
GTI.STATE = "0";
GTI.USE_TIME = DateTime.Now;
GTI.EXAM_NAME = ExamDropDownList.SelectedItem.Text; GTI.ANSWER_CONTENT_TRUE = ANSWER_CONTENT_TRUE; GTI.TEST_VALUE = TEST_VALUE;
GTI.SUBJECTIVITY_TYPE = SUBJECTIVITY_TYPE; GTI.IMPERSONAL_TYPE = IMPERSONAL_TYPE; try
{
GTM.AddOnlyGENERATE_TEST(GTI);
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
ScriptManager.RegisterStartupScript(UpdatePa
nel1, UpdatePanel1.GetType(), "", "alert('该班级
的学生已添加了该份试卷!')", true);
return;
}
}
}
}
}
}
catch
{
GTM.DeleteGENERATE_TEST("EXAM_NO = " + ExamDropDownList.SelectedValue); }
finally
{
Session["Rules"] = null;
ScriptManager.RegisterStartupScript(UpdatePanel1,
UpdatePanel1.GetType(), "", "alert('添加成功!')", true); }
}
RuleDataBinder();
}
总结
据了解,学校以前的在线考试有很多不足之处,针对现状的修改和未来发展的趋势,实现以学生为本,方便教师的准则,该系统做到教师端随即抽题,达到学生不能作弊的功能,学生端能够定时保存答案,达到学生在考试时无论发生什么事都可以最大限度的保存学生的考试成绩。该系统是从教师和学生双方的利益出发而开发。可以为一些有这方面需求的学校使用。
期间我们分工合作,发挥了各个队友间的特长。以达到最好的效益和质量。论文方面由组员陈晓红和陈永红负责,界面美工方面由组员刘国新负责,设计和代码实现由组员李华平和组长严锦龙负责。测试阶段多亏了我们的指导老师王槐彬老师,是他指出了系统的不足之处和身为教师和用户的一方,给我们提了很好的建议。
毕业设计是对我们大学三年来所学知识的一次总结和检测,我们认为只有通过这样的毕业设计,才能对毕业生的知识进行一次全面的检验,从而使我们认识到知识内容的不足和知识框架的缺陷之处,然后有的放矢地加以弥补。
致 谢
在本次毕业设计过程中,王槐彬老师从选题、构思、资料收集到最后定稿的各个环节给予我们小组细心指引与教导,使我们对在线成绩管理系统有了深刻的认识,使我们得以最终完成毕业设计,在此表示衷心感谢。王老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度、积极进取的科研精神以及诲人不倦的师者风范是我们终生学习的楷模。
同时,我们要感谢软件技术专业授课的各位老师,正是由于他们的传道、授业、解惑,让我们学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。我们也要感谢我们的母校广东交通职业技术学院,是她提供了良好的学习环境和生活环境,让我们的大学生活丰富多姿,为我们的人生留下精彩的一笔。另外,感谢 07 软件班全体同学的帮助和勉励。同窗之谊和手足之情,我们将终生难忘~感谢所有帮助和关心过我们的朋友们!
最后,我要向在百忙之中抽时间对本文进行审阅、评议和参加论文答辩的各位师长表示感谢~
参考文献
[1]戴上平 丁士锋 等编著 完全自学手册 北京 机械工业出版社
[2](美)Andrew Troelsen 著 朱晔 肖逵 张大磊 王少葵 等译
与.NET 3.5 高级程序设计(第四版) 北京 人民邮电出版社 C#
[3]冯曼菲 编著 精通Ajax 北京 人民邮电出版社
[4]勒华 编著 ASP.NET 3.5 宝典 北京 电子工业出版社