计算机在线考试系统项目总结
计算机在线考试系统项目总结
《多学科远程在线考试系统》总结报告二〇一三年五月目录一、开发背景 (1)二、开发目标 (2)1.系统的总体目标: (2)2.对教师的系统目标: (3)三、系统的功能简介 (3)1.系统功能设计 (3)2.系统运行环境 (6)3.功能模块说明 (7)3.1 题库管理 (7)3.2 考生管理 (9)3.3考试监控 (11)3.4成绩管理 (12)3.5 基本流程 (13)四、系统应用及推广 (14)五、系统突破点 (16)六、非常规题型 (16)1.计算机操作题(Office操作:word、ppt、excel等) (16)2.医学操作题(听诊、心电图、视频等) (17)3.英语(听力、阅读理解等) (19)4.基本题型(单选、多选、填空、简答、打字等) (20)一、开发背景现阶段学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。
这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。
同时,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机信息技术、网络技术和软件技术的不断发展和完善,促进了人们很多传统的工作手段和方法也随之改变。
如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。
尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。
“多学科远程在线考试系统”就是利用计算机信息技和网络平台结合软件技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现试题管理、考务管理、随机生成试卷、在线监考、自动阅卷和成绩统计等功能,达到节约资源,提高工作效率,保证考试结果客观公正性的目的,同时它可以利用互联网络和局域网,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。
计算机在线考试系统项目总结
计算机在线考试系统项目总结(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--附件: 总结计算机在线考试系统项目随着计算机信息技术、网络技术和软件技术的不断发展和完善,促进了人们很多传统的工作手段和方法也随之改变。
“在线考试系统”就是利用计算机信息技和网络平台结合软件技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现试题管理、考务管理、随机生成试卷、在线监考、自动阅卷和成绩统计等功能,达到节约资源,提高工作效率,保证考试结果客观公正性的目的。
一、系统可行性由于《计算机文化基础》这门课程的考试题型通常为判断、单项选择、多项选择、填空和文字录入等,而这类题型的答案通常又具有单一性、确定性或有限枚举性等特点,所以便于计算机编码和标准化,以实现无纸化考试。
二、系统需求目前,学院每年学习《计算机文化基础》人数约3000余人,根据以往惯例,该课程的考核方式采用闭卷笔试,由此产生的试卷印刷、装订、分袋、回收试卷、阅卷、成绩统计等工作量非常庞大,且由于考核方法的落后,基本上难以准确、客观、公正地反映学生具有的基本职业技能和素质,其结果是培养的学生,懂理论多些,会实践操作少些,从而偏离了高职学院培养高技能专业人才的目标。
针对《计算机文化基础》课程实践性强的特点,探索与之相适应的,将考核和实践过程有机的结合在一起的较为准确、客观、公正地反映学生具有的计算机文化基础技能和素质的考试方式,减少成绩考核中的片面性,真实反映学生的计算机文化基础技能水平,提高学生对实践教学的重视程度,促进学生学习和实践的积极性和主动性,促使学生朝着提高自身基础技能的方向发展。
三、系统设计1.系统功能设计根据系统需求可知,该在线考试系统应具有以下主要功能,包括考务管理(考生管理、考场安排)、题库管理(试题录入、删改)、试卷管理(定义试卷模板)、考试管理(在线监考、异常处理)、成绩管理(自动阅卷、成绩报表)和系统管理等。
关于考试系统总结报告
关于考试系统总结报告简介本报告旨在对最近使用的考试系统进行总结和评估。
我们将对考试系统的性能、用户体验、功能等进行分析,并提出改进的建议和优化方案。
背景考试系统是一种在线测试工具,用于管理和执行各种形式的考试。
通过使用考试系统,可以方便地创建、分发和评估考试。
使用考试系统还可以减少考试过程中的错误和作弊情况。
我们使用的考试系统是一款开源软件,具有丰富的功能和灵活的配置选项。
性能评估首先,我们对考试系统的性能进行了评估。
通过进行压力测试,我们测试了系统在多个并发用户的情况下的表现。
在测试中,系统能够处理100个并发用户的载荷,响应时间平均在1秒以内。
考虑到我们目前的用户规模,系统的性能表现是稳定的,并且有很大的扩展潜力。
然而,在高峰期,一些用户报告了网站加载速度较慢的问题。
为了解决这个问题,我们建议对后台服务器进行优化,并考虑增加服务器资源以提高响应速度。
用户体验评估我们还对用户体验进行了评估。
通过用户反馈和使用情况的调查,我们发现系统的界面设计简洁、直观,并且易于使用。
大多数用户对系统的操作流程和功能都感到满意。
然而,一些用户提到他们在使用考试系统过程中遇到了一些困难。
主要问题包括:1.注册和登录流程复杂。
2.部分用户界面不够直观,导致用户迷失。
3.考试过程中的页面刷新速度较慢。
针对这些问题,我们建议简化注册和登录流程,提供更多的帮助文档和使用指南,并对考试页面进行性能优化,以提高用户体验。
功能评估我们还对考试系统的功能进行了评估。
总体而言,系统提供了丰富的功能集,包括题库管理、试卷生成、考试监控和成绩统计等。
这些功能能够满足我们的需求,并提供了灵活的配置选项。
然而,一些用户提出了一些改进的建议。
其中包括:1.添加题目搜索和分类功能,以便用户更方便地查找题目。
2.增加自动评分功能,减少人工评分的工作量。
3.提供更多的考试形式,如单项选择、多项选择和填空题。
我们认为这些建议是非常有价值的,并计划在未来的版本中逐步实施它们。
计算机专业在线考试系统开放的社会实践报告
计算机专业在线考试系统开放的社会实践报告
近日,我们团队成功开发了计算机专业在线考试系统并进行了开放测试。
该系统可支持多种题型,提供实时评分和反馈,有效提升了考试效率和公正性。
在开放过程中,我们积极收集用户反馈,不断优化系统性能。
通过此次实践,我们深刻体会到技术与社会需求的紧密结合,以及团队协作在项目开发中的重要性。
此次在线考试系统的开放,不仅为计算机专业学生提供了便捷的考试平台,也为其他领域在线考试系统的开发提供了有益参考。
未来,我们将继续完善系统功能,拓展应用领域,为推动在线教育的发展贡献更多力量。
在线考试系统的测试与总结
06 测试总结与报告
测试结果汇总
测试覆盖率
性能测试结果
本次测试覆盖了在线考试系统的所有 功能模块,包括用户管理、题库管理、 试卷生成、考试监控和成绩管理等。
在线考试系统在并发用户数为100时, 响应时间小于2秒,且未出现系统崩 溃或数据丢失的情况。
测试用例执行情况
所有测试用例均已执行,其中通过的 用例占比达到95%,剩余5%的用例因 为系统异常或数据问题导致失败。
稳定性测试
总结词
验证系统的持续稳定性和可靠性
VS
详细描述
通过长时间运行测试用例,检测系统在长 时间运行过程中是否出现异常、崩溃等问 题,评估系统的稳定性和可靠性,确保系 统能够持续提供高质量的服务。
05 安全测试
总结词
验证用户权限的正确性和安全性
详细描述
测试不同用户角色(如管理员、教师、学生)的权限设置,确 保各角色只能访问其对应的功能和数据,防止越权操作。
在线考试系统的测试与总结
目录
• 在线考试系统概述 • 测试环境与准备 • 功能测试 • 性能测试 • 安全测试 • 测试总结与报告
01 在线考试系统概述
系统简介
在线考试系统是一种基于互联网的考 试平台,它能够实现考试的全流程自 动化,包括题库管理、试卷生成、在 线考试、自动评分等功能。
该系统旨在提高考试效率、降低考试 成本、方便考生参加考试,同时保证 考试的公正性和安全性。
总结词
验证数据传输和存储的安全性
详细描述
测试在线考试系统在数据传输过程中是否采用加密技术,确保 数据在传输过程中不被窃取;同时验证数据存储是否加密,防 止未经授权的访问。
总结词
检测系统潜在的安全漏洞
详细描述
在线考试系统小结
小结在线考试系统的总目标是:在当前网络环境下,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的在线考试系统,实现企业或者是学校考试的无纸化,为企业或者学校选拔人才提高更方便,更有效的途径。
根据可行性研究的结果和用户的要求,分析现有情况及问题,采用brower/Server结构,将在线考试系统分成了一下功能模块。
本系统的用户可分为管理员、学生和教师三类。
本系统共分成三个界面:一个界面用于管理员登录,主要负责进行学生基本信息的修改、删除、添加,教师基本信息的删除、添加,试题基本信息的删除、添加,考试科目的设置,考试结果的管理,管理员密码的修改。
一个界面用于学生登录,主要负责在线考试、查看考试记录,也可以选择考试。
另一方界面用于教师登录,主要负责试题基本信息的删除、修改、添加以及试题的查询,考试结果的查询,个人信息的修改。
从总体上考虑,系统应该实现下列功能:对管理员来说,包括学生信息管理,教师信息管理,试题信息管理,科目信息管理,考试结果管理,管理员信息维护。
1、学生信息管理:包括学生基本信息的查询,根据查询条件学号和姓名以及关键字进行查询,学生基本信息的修改,添加、删除。
2、教师信息管理:包括教师基本信息的删除、添加。
3、试题学习管理:包括试题基本信息的查看、修改和删除以及试题的添加4、科目信息管理:管理员可以设置考试科目。
5、考试结果管理:管理员可以删除考试结果。
6、管理员信息维护:管理员密码修改。
对教师来说,包括在试题信息管理,考试结果管理,个人信息维护。
1、试题信息管理:包括试题基本信息的查看、修改、删除以及试题基本信息的添加。
2、考试结果管理:对学生考试结果的查询。
3、个人信息维护:教师密码的修改。
对学生来说,可以在线考试,选择考试科目,考试成绩的查询1、试题信息管理:学生可以任选时间进行在线测试,在规定的时间内完成作答并交卷。
在线考试总结范文
随着信息技术的飞速发展,在线考试已经成为教育行业的一种新兴教学模式。
近期,我参加了学校组织的一次在线考试,通过这次考试,我对在线考试的优势与挑战有了更深刻的认识。
以下是我对这次在线考试的总结。
一、在线考试的优势1. 时间灵活:在线考试不受时间和地点的限制,学生可以根据自己的时间安排进行考试,极大地提高了学习效率。
2. 成本节约:在线考试减少了纸张和印刷成本,同时降低了考试的组织和管理成本,对于学校和学生来说都是一种经济实惠的选择。
3. 安全可靠:在线考试系统采用了加密技术,确保了考试过程的公平性和安全性,减少了作弊的可能性。
4. 个性化反馈:在线考试系统能够即时生成考试成绩和详细的分析报告,帮助学生了解自己的学习状况,实现个性化学习。
5. 环保节能:在线考试减少了纸张的使用,有利于保护环境,符合绿色低碳的生活理念。
二、在线考试的挑战1. 技术依赖:在线考试对网络环境和技术设备有较高要求,部分学生可能因为设备故障或网络不稳定而影响考试。
2. 监考难度:与传统的纸质考试相比,在线考试的监考难度更大,需要教师对考试过程进行实时监控,防止作弊行为。
3. 自律性要求:在线考试需要学生具备较强的自律性,否则容易受到外界干扰,影响考试质量。
4. 考试质量评估:在线考试的成绩与传统的纸质考试相比,其信度和效度有待进一步验证。
三、改进措施1. 提高网络环境:学校应加大对网络环境的投入,确保学生能够稳定地进行在线考试。
2. 加强技术培训:对学生和教师进行在线考试系统的操作培训,提高使用效率。
3. 完善监考机制:建立在线监考制度,加强对考试过程的监控,确保考试的公平性。
4. 提高自律意识:加强学生的自律教育,提高学生的自律意识,减少作弊行为。
5. 优化考试评价体系:结合在线考试的特点,建立科学合理的考试评价体系,确保考试质量。
总之,在线考试作为一种新型的教学模式,具有诸多优势,但也面临一定的挑战。
通过不断改进和完善,相信在线考试将在教育领域发挥更大的作用。
在线考试系统(项目开发总结报告)
在线考试系统(项目开发总结报告)项目开发总结报告1引言1.1编写目的编写此计划的目的是为了对“在线考试系统”项目的完成情况进行总结。
它说明了本项目软件开发的方法,可以为本项目的相关专题计划的制定提供指导和参考,供项目组全体人员阅读。
1.2背景随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。
远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。
在线考试系统项目报告
在线考试系统项目报告目录第一章需求分析 (5)1.1概念分析 (5)1.1.1管理员需求分析 (5)1.1.2 学生需求分析 (6)1.1.3教师需求分析 (6)1.2系统分析 (7)1.3功能分析 (8)1.3.1功能模块图设计 (8)1.4.1学生用例图设计 (9)1.4.2教师用例图设计 (9)第二章系统设计 (9)2.1总体时序图设计 (10)2.2数据库设计 (10)2.2.1试卷类型表设计 (10)2.2.2试题表设计 (11)2.2.3试题内容表设计 (11)2.2.4试卷表设计 (12)2.2.5试卷详情表设计 (12)2.2.6试卷分值表设计 (13)2.2.7考生答卷表设计 (13)2.2.8考生答卷详情表设计 (14)2.3表见关系设计 (14)2.3.1试题 (14)2.3.2章节试题统计 (15)2.3.3试卷 (15)2.3.4试卷详细 (16)2.3.5试卷考题详细 (17)2.3.6考卷列表 (17)第三章程序设计 (18)3.1在线考试系统后台程序实现 (18)3.1.1母版页设计 (18)3.1.2后台题库添加页面设计 (19)3.1.3后台题库管理页面设计 (19)3.1.4后台试卷生成 (20)3.1.5后台试卷详情查看页面 (21)3.1.6后台试卷管理页面 (22)3.2在线考试系统前台程序实现 (22)3.2.1试卷列表页面设计 (22)3.2.2前台考试页面设计 (23)第四章编码设计 (23)4.1试卷详情的编码 (23)4.2题库管理的编码 (25)第五章编码测试 (27)5.1页面测试 (27)5.2数据表测试 (27)第六章部署维护 (29)6.1创建Windows安装程序包部署Web应用程序 (29)6.2 Web.config 配置 (33)第一章需求分析1.1概念分析本系统的用户可分为管理员、学生用户及教师用户三类。
本系统共分为三个界面:一个界面用于管理员登录,主要负责进行基本资料。
在线考试系统小结
学号:20121112117 班级:12软件班姓名:谭蕾在线考试系统小结在线考试系统提高了考试的可靠性、有效性和工作效率,降低了考试成本,顺应了社会的网络化趋势,必将成为一种不可或缺的考试方式。
本文研究的目的是开发一个易于管理和维护的面向教学的考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。
为教师开展平时考核及期末考核提供一个考核平台。
为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于B/S 的三层体系结构:用户层、业务逻辑层、数据库层。
要求建立后台数据库,内含一个试题样库,教师可以在题库中添加、编辑和删除试题;教师可以增加新的考试科目;可以充分利用题库中的试题由系统随机组卷,并能在指定时间内发布试卷;学生参加完考试能立即得到答案,并分析考试中答错的题目;教师能得到学生考试后传送到系统的反馈信息,可方便的对成绩进行查询和分析,同时对学生考试中出现的错误进行统计以便今后的教学。
此外,还应具有良好的用户界面,操作方便,尽量减少误操作率,具有安全保密机制。
在网络技术逐渐渗入社会生活各个层面的今天随着科学技术的不断发展,考试的手段和媒介也在发生着革命性的变化,从传统的纸笔考试到计算机辅助考试,其实现方法由单机形式逐步向不同时间、不同地点的网络考试方式发展,基于网络的计算机辅助考试系统以其特有的优势在教育中扮演着十分重要的角色在线考试系统是利用计算机技术,对试题库进行存储管理,并由计算机完成智能组卷、标准化测试、试卷评阅等工作,以取代传统的基于纸和笔的考试方式主要体现在:出卷方便快捷、阅卷准确快速、成绩分析统计科学直观;通过题库系统,只要输入考卷的难度级别、待测试知识点及其它相关条件,教师就可以很容易地(自动或半自动)组织出标准考卷;通过计算机阅卷(包括操作过程的自动跟踪、分析和评测),可以大大减轻教师阅卷的工作量,同时大幅度提高阅卷的准确性;成绩分析统计由计算机自动统计由计算机自动完成,可以方便地进行学生成绩查询、打印、统计和分析等处理统计由计算机自动完成,可以方便地进行学生成绩查询、打印、统计和分析等处理在线考试可实现真正意义上的无纸化考试,不仅是建设节约社会的需要,同时在线考试还具有快捷、方便、高效、安全等许多优点,考试的信度、效度都可大大提高分析设计管理员维护系统及考生考试系统。
在线考试系统项目报告
在线考试系统项目报告目录第一章需求分析 (4)1.1概念分析 (4)1.1.1管理员需求分析 (4)1.1.2 学生需求分析 (5)1.1.3教师需求分析 (5)1.2系统分析 (5)1.3功能分析 (7)1.3.1功能模块图设计 (7)1.4.1学生用例图设计 (7)1.4.2教师用例图设计 (8)第二章系统设计 (8)2.1总体时序图设计 (8)2.2数据库设计 (9)2.2.1试卷类型表设计 (9)2.2.2试题表设计 (9)2.2.3试题内容表设计 (9)2.2.4试卷表设计 (10)2.2.5试卷详情表设计 (10)2.2.6试卷分值表设计 (10)2.2.7考生答卷表设计 (11)2.2.8考生答卷详情表设计 (11)2.3表见关系设计 (12)2.3.1试题 (12)2.3.2章节试题统计 (12)2.3.3试卷 (13)2.3.4试卷详细 (13)2.3.5试卷考题详细 (14)2.3.6考卷列表 (14)第三章程序设计 (14)3.1在线考试系统后台程序实现 (15)3.1.1母版页设计 (15)3.1.2后台题库添加页面设计 (15)3.1.3后台题库管理页面设计 (16)3.1.4后台试卷生成 (17)3.1.5后台试卷详情查看页面 (17)3.1.6后台试卷管理页面 (18)3.2在线考试系统前台程序实现 (18)3.2.1试卷列表页面设计 (18)3.2.2前台考试页面设计 (19)第四章编码设计 (19)4.1试卷详情的编码 (19)4.2题库管理的编码 (21)第五章编码测试 (23)5.1页面测试 (23)5.2数据表测试 (23)第六章部署维护 (24)6.1创建Windows安装程序包部署Web应用程序 (24)6.2 Web.config 配置 (29)第一章需求分析1.1概念分析本系统的用户可分为管理员、学生用户及教师用户三类。
本系统共分为三个界面:一个界面用于管理员登录,主要负责进行基本资料。
在线考试系统报告
在线考试系统报告摘要随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。
在线考试系统是为了方面学生考试、老师阅卷、提高考试的公正性、公平。
一、项目名称1.1 在线考试系统二、项目目标2.1 使用Gridview进行数据的添加、删除、更新2.2 运用Javascript来进行考试倒计时三、项目中的具体任务3.1 学生在线考试3.2 后台编辑试题3.3 当场评卷四、工具与设备5.1 软件Visual Studio 2005和SQL 2005五、流程图分析4.1 数据库的组织结构A、这是SQL 2005的表B 、数据库的流程图4.2 前台结构 学生和管理员(Users ) 选择考试科目(Course ) 试卷的类型(Paper )试卷的题目类型(PaperDetail ) 单选题(SingleProblem ) 多选题(MultiProblem ) 判断题(JudgeProblem ) 填空题(FillBlankProblem )分数(Score )A、前台登录B、准备考试C、卷面计时代码:<SCRIPT language="javascript"><!--var sec=0;var min=0;var hou=0;flag=0;idt=window.setTimeout("ls();",1000);function ls(){sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}document.getElementById("lbltime").innerText=min+"分"+sec+"秒"; idt=window.setTimeout("ls();",1000);if(min==30){document.getElementById("imgBtnSubmit").click();}}//--></SCRIPT>编写卷面的后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using MyOnLineExam.DataAccessLayer;using System.Data.SqlClient;using MyOnLineExam.BusinessLogicLayer;public partial class Web_UserTest : System.Web.UI.Pageprotected void Page_Load(object sender, EventArgs e){if (!IsPostBack){lblPaperName.Text = Session["PaperName"].ToString();InitData();}}//初始化试卷,从数据库中将试题取出protected void InitData(){//Response.Write(Session["PaperID"].ToString());//Response.End();SqlParameter[] Params1 = new SqlParameter[2];DataBase DB = new DataBase();int paperID = int.Parse(Session["PaperID"].ToString());Params1[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params1[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "单选题"); //题目类型DataSet ds1 = DB.GetDataSet("Proc_PaperDetail",Params1);GridView1.DataSource = ds1;GridView1.DataBind();((Label)GridView1.HeaderRow.FindControl("Label27")).Text =((Label)GridView1.Rows[0].FindControl("Label4")).Text;SqlParameter[] Params2 = new SqlParameter[2];Params2[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params2[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "多选题"); //题目类型DataSet ds2 = DB.GetDataSet("Proc_PaperDetail", Params2);GridView2.DataSource = ds2;GridView2.DataBind();((Label)GridView2.HeaderRow.FindControl("Label28")).Text =((Label)GridView2.Rows[0].FindControl("Label8")).Text;SqlParameter[] Params3 = new SqlParameter[2];Params3[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params3[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "判断题"); //题目类型DataSet ds3 = DB.GetDataSet("Proc_PaperDetail", Params3);GridView3.DataSource = ds3;GridView3.DataBind();((Label)GridView3.HeaderRow.FindControl("Label29")).Text =((Label)GridView3.Rows[0].FindControl("Label12")).Text;SqlParameter[] Params4 = new SqlParameter[2];Params4[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params4[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "填空题"); //题目类型DataSet ds4 = DB.GetDataSet("Proc_PaperDetail", Params4);GridView4.DataSource = ds4;GridView4.DataBind();((Label)GridView4.HeaderRow.FindControl("Label30")).Text =((Label)GridView4.Rows[0].FindControl("Label17")).Text;}//提交试卷,生成成绩protected void imgBtnSubmit_Click(object sender, ImageClickEventArgs e){int score = 0;int singlemark = int.Parse(((Label)GridView1.Rows[0].FindControl("Label4")).Text);//取出单选题的每题foreach (GridViewRow dr in GridView1.Rows)//对单选题每题进行判断用户选择答案{string str = "";if (((RadioButton)dr.FindControl("RadioButton1")).Checked){str = "A";}else if (((RadioButton)dr.FindControl("RadioButton2")).Checked){str = "B";}else if (((RadioButton)dr.FindControl("RadioButton3")).Checked){str = "C";}else if (((RadioButton)dr.FindControl("RadioButton4")).Checked){str = "D";}if (((Label)dr.FindControl("Label3")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + singlemark;}}int multimark = int.Parse(((Label)GridView2.Rows[0].FindControl("Label8")).Text);//取出多选题每题分值foreach (GridViewRow dr in GridView2.Rows)//对多选题每题进行判断用户选择答案{string str = "";if (((CheckBox)dr.FindControl("CheckBox1")).Checked){str += "A";}if (((CheckBox)dr.FindControl("CheckBox2")).Checked){str += "B";}if (((CheckBox)dr.FindControl("CheckBox3")).Checked){str += "C";}if (((CheckBox)dr.FindControl("CheckBox4")).Checked){str += "D";}if (((Label)dr.FindControl("Label7")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + multimark;}}int judgemark = int.Parse(((Label)GridView3.Rows[0].FindControl("Label12")).Text);//取出判断题每题分值foreach (GridViewRow dr in GridView3.Rows)//对判断题每题进行判断用户选择答案{bool j = false;if (((CheckBox)dr.FindControl("CheckBox5")).Checked){j = true;}if (j == bool.Parse(((Label)dr.FindControl("Label11")).Text.Trim())){score = score + judgemark;}}int fillmark = int.Parse(((Label)GridView4.Rows[0].FindControl("Label17")).Text);//取出填空题每题分值foreach (GridViewRow dr in GridView4.Rows){string str = "";str = ((TextBox)dr.FindControl("TextBox1")).Text.Trim();if (str == ((Label)dr.FindControl("Label16")).Text.Trim()){score = score + fillmark;}}Scores insertScore = new Scores(); //创建Scores类对象erID = Session["userID"].ToString();//设置Scores对象的属性insertScore.PaperID=int.Parse(Session["PaperID"].ToString());insertScore.Score = score;if (insertScore.InsertByProc())//调用InsertByProc方法向数据库中插入成绩{if (score >= 8)//根据成绩给出相应提示{Response.Write("<script language=javascript>alert('您太棒了!您的成绩为:"+score+"分!')</script>");}else if (score >= 6){Response.Write("<script language=javascript>alert('合格!您的成绩为:"+score+"分!')</script>");}else{Response.Write("<script language=javascript>alert('需要努力了!您的成绩为:"+score+"分!')</script>");}Panel1.Visible = true;}}protected void imgBtnAnswer_Click(object sender, ImageClickEventArgs e){Response.Redirect("TestAnswer.aspx");}}D、算出分数E、跳去后台管理添加科目的后台代码:protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){Course course = new Course(); //创建考试科目对象 = txtName.Text; //设置考试科目对象属性if (course.InsertByProc()) //调用添加考试科目方法添加考试科目{lblMessage.Text = "成功添加该考试科目!";}else{lblMessage.Text = "添加该考试科目失败!";}}}F、录入试题单选题单选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}多选题多选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}填空题填空题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int fillblankProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象if (fillblankproblem.LoadData(fillblankProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = fillblankproblem.CourseID.ToString();txtFrontTitle.Text = fillblankproblem.FrontTitle;txtBackTitle.Text = fillblankproblem.BackTitle;txtAnswer.Text = fillblankproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象fillblankproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为填空题对象各属性赋值fillblankproblem.FrontTitle=txtFrontTitle.Text;fillblankproblem.BackTitle = txtBackTitle.Text;fillblankproblem.Answer = txtAnswer.Text;if (Request["ID"] != null) //如果是修改题目信息{fillblankproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (fillblankproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该填空题!";}else{lblMessage.Text = "修改该填空题失败!";}}else//如果是添加试题if (fillblankproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该填空题!";}else{lblMessage.Text = "添加该填空题失败!";}}}}判断题判断题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null) //如果是修改题目,初始化数据InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int judgeProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象if (judgeproblem.LoadData(judgeProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = judgeproblem.CourseID.ToString();txtTitle.Text = judgeproblem.Title;rblAnswer.SelectedValue = judgeproblem.Answer.ToString();}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象judgeproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为判断题对象各属性赋值judgeproblem.Title = txtTitle.Text;judgeproblem.Answer = bool.Parse(rblAnswer.SelectedValue);if (Request["ID"] != null) //如果是修改题目信息{judgeproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (judgeproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该判断题!";}else{lblMessage.Text = "修改该判断题失败!";}}else//如果是添加试题{if (judgeproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该判断题!";}else{lblMessage.Text = "添加该判断题失败!";}}}}G、输出总成绩计算总成绩的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){ImageButton1.Attributes.Add("OnClick", "javascript:return confirm('确实要删除这些用户吗?')");InitData(); //绑定用户信息}}//初始化成绩表格protected void InitData(){Scores score = new Scores(); //创建Scores对象DataSet ds = score.QueryScore(); //调用QueryScore方法查询成绩并将查询结果放到DataSet数据集中GridView1.DataSource = ds; //为GridView控件指名数据源GridView1.DataBind(); //绑定数据}//GridView控件RowDeleting事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){Scores score = new Scores(); //创建Scores对象int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //取出要删除记录的主键值if (score.DeleteByProc(ID)){Response.Write("<script language=javascript>alert('成功删除该用户!')</script>");}else{Response.Write("<script language=javascript>alert('删除该用户失败!')</script>");}GridView1.EditIndex = -1;InitData();}//批量删除成绩protected void ImageButton1_Click(object sender, ImageClickEventArgs e){Scores score = new Scores();//创建Scores对象foreach (GridViewRow dr in GridView1.Rows)//对GridView中的每一行进行判断{if (((CheckBox)dr.FindControl("xuanze")).Checked)//如果选择了进行删除{int ID = int.Parse(((Label)dr.FindControl("Label1")).Text);score.ID = ID;score.DeleteByProc(ID);}}}。
在线考试系统项目报告
在线考试系统项目报告目录第一章需求分析...............................................错误!未定义书签。
概念分析..................................................错误!未定义书签。
管理员需求分析........................................错误!未定义书签。
学生需求分析..........................................错误!未定义书签。
教师需求分析..........................................错误!未定义书签。
系统分析..................................................错误!未定义书签。
功能分析..................................................错误!未定义书签。
功能模块图设计........................................错误!未定义书签。
用例图设计................................................错误!未定义书签。
学生用例图设计........................................错误!未定义书签。
教师用例图设计........................................错误!未定义书签。
第二章系统设计...............................................错误!未定义书签。
总体时序图设计............................................错误!未定义书签。
数据库设计................................................错误!未定义书签。
在线考试系统报告
在线考试系统报告摘要随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。
在线考试系统是为了方面学生考试、老师阅卷、提高考试的公正性、公平。
一、项目名称1.1 在线考试系统二、项目目标2.1 使用Gridview进行数据的添加、删除、更新2.2 运用Javascript来进行考试倒计时三、项目中的具体任务3.1 学生在线考试3.2 后台编辑试题3.3 当场评卷四、工具与设备5.1 软件Visual Studio 2005和SQL 2005五、流程图分析4.1 数据库的组织结构A、这是SQL 2005的表B 、数据库的流程图4.2 前台结构 学生和管理员(Users ) 选择考试科目(Course ) 试卷的类型(Paper )试卷的题目类型(PaperDetail ) 单选题(SingleProblem ) 多选题(MultiProblem ) 判断题(JudgeProblem ) 填空题(FillBlankProblem )分数(Score )A、前台登录B、准备考试C、卷面计时代码:<SCRIPT language="javascript"><!--var sec=0;var min=0;var hou=0;flag=0;idt=window.setTimeout("ls();",1000);function ls(){sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}document.getElementById("lbltime").innerText=min+"分"+sec+"秒"; idt=window.setTimeout("ls();",1000);if(min==30){document.getElementById("imgBtnSubmit").click();}}//--></SCRIPT>编写卷面的后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using MyOnLineExam.DataAccessLayer;using System.Data.SqlClient;using MyOnLineExam.BusinessLogicLayer;public partial class Web_UserTest : System.Web.UI.Pageprotected void Page_Load(object sender, EventArgs e){if (!IsPostBack){lblPaperName.Text = Session["PaperName"].ToString();InitData();}}//初始化试卷,从数据库中将试题取出protected void InitData(){//Response.Write(Session["PaperID"].ToString());//Response.End();SqlParameter[] Params1 = new SqlParameter[2];DataBase DB = new DataBase();int paperID = int.Parse(Session["PaperID"].ToString());Params1[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params1[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "单选题"); //题目类型DataSet ds1 = DB.GetDataSet("Proc_PaperDetail",Params1);GridView1.DataSource = ds1;GridView1.DataBind();((Label)GridView1.HeaderRow.FindControl("Label27")).Text =((Label)GridView1.Rows[0].FindControl("Label4")).Text;SqlParameter[] Params2 = new SqlParameter[2];Params2[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params2[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "多选题"); //题目类型DataSet ds2 = DB.GetDataSet("Proc_PaperDetail", Params2);GridView2.DataSource = ds2;GridView2.DataBind();((Label)GridView2.HeaderRow.FindControl("Label28")).Text =((Label)GridView2.Rows[0].FindControl("Label8")).Text;SqlParameter[] Params3 = new SqlParameter[2];Params3[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params3[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "判断题"); //题目类型DataSet ds3 = DB.GetDataSet("Proc_PaperDetail", Params3);GridView3.DataSource = ds3;GridView3.DataBind();((Label)GridView3.HeaderRow.FindControl("Label29")).Text =((Label)GridView3.Rows[0].FindControl("Label12")).Text;SqlParameter[] Params4 = new SqlParameter[2];Params4[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID); //试卷编号Params4[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "填空题"); //题目类型DataSet ds4 = DB.GetDataSet("Proc_PaperDetail", Params4);GridView4.DataSource = ds4;GridView4.DataBind();((Label)GridView4.HeaderRow.FindControl("Label30")).Text =((Label)GridView4.Rows[0].FindControl("Label17")).Text;}//提交试卷,生成成绩protected void imgBtnSubmit_Click(object sender, ImageClickEventArgs e){int score = 0;int singlemark = int.Parse(((Label)GridView1.Rows[0].FindControl("Label4")).Text);//取出单选题的每题foreach (GridViewRow dr in GridView1.Rows)//对单选题每题进行判断用户选择答案{string str = "";if (((RadioButton)dr.FindControl("RadioButton1")).Checked){str = "A";}else if (((RadioButton)dr.FindControl("RadioButton2")).Checked){str = "B";}else if (((RadioButton)dr.FindControl("RadioButton3")).Checked){str = "C";}else if (((RadioButton)dr.FindControl("RadioButton4")).Checked){str = "D";}if (((Label)dr.FindControl("Label3")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + singlemark;}}int multimark = int.Parse(((Label)GridView2.Rows[0].FindControl("Label8")).Text);//取出多选题每题分值foreach (GridViewRow dr in GridView2.Rows)//对多选题每题进行判断用户选择答案{string str = "";if (((CheckBox)dr.FindControl("CheckBox1")).Checked){str += "A";}if (((CheckBox)dr.FindControl("CheckBox2")).Checked){str += "B";}if (((CheckBox)dr.FindControl("CheckBox3")).Checked){str += "C";}if (((CheckBox)dr.FindControl("CheckBox4")).Checked){str += "D";}if (((Label)dr.FindControl("Label7")).Text.Trim() == str)//将用户选择结果和答案进行比较{score = score + multimark;}}int judgemark = int.Parse(((Label)GridView3.Rows[0].FindControl("Label12")).Text);//取出判断题每题分值foreach (GridViewRow dr in GridView3.Rows)//对判断题每题进行判断用户选择答案{bool j = false;if (((CheckBox)dr.FindControl("CheckBox5")).Checked){j = true;}if (j == bool.Parse(((Label)dr.FindControl("Label11")).Text.Trim())){score = score + judgemark;}}int fillmark = int.Parse(((Label)GridView4.Rows[0].FindControl("Label17")).Text);//取出填空题每题分值foreach (GridViewRow dr in GridView4.Rows){string str = "";str = ((TextBox)dr.FindControl("TextBox1")).Text.Trim();if (str == ((Label)dr.FindControl("Label16")).Text.Trim()){score = score + fillmark;}}Scores insertScore = new Scores(); //创建Scores类对象erID = Session["userID"].ToString();//设置Scores对象的属性insertScore.PaperID=int.Parse(Session["PaperID"].ToString());insertScore.Score = score;if (insertScore.InsertByProc())//调用InsertByProc方法向数据库中插入成绩{if (score >= 8)//根据成绩给出相应提示{Response.Write("<script language=javascript>alert('您太棒了!您的成绩为:"+score+"分!')</script>");}else if (score >= 6){Response.Write("<script language=javascript>alert('合格!您的成绩为:"+score+"分!')</script>");}else{Response.Write("<script language=javascript>alert('需要努力了!您的成绩为:"+score+"分!')</script>");}Panel1.Visible = true;}}protected void imgBtnAnswer_Click(object sender, ImageClickEventArgs e){Response.Redirect("TestAnswer.aspx");}}D、算出分数E、跳去后台管理添加科目的后台代码:protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){Course course = new Course(); //创建考试科目对象 = txtName.Text; //设置考试科目对象属性if (course.InsertByProc()) //调用添加考试科目方法添加考试科目{lblMessage.Text = "成功添加该考试科目!";}else{lblMessage.Text = "添加该考试科目失败!";}}}F、录入试题单选题单选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}多选题多选题录入的后台代码:protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"]!=null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int SingleProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号SingleProblem singleproblem = new SingleProblem(); //创建单选题对象if (singleproblem.LoadData(SingleProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = singleproblem.CourseID.ToString();txtTitle.Text = singleproblem.Title;txtAnswerA.Text = singleproblem.AnswerA;txtAnswerB.Text = singleproblem.AnswerB;txtAnswerC.Text = singleproblem.AnswerC;txtAnswerD.Text = singleproblem.AnswerD;ddlAnswer.SelectedItem.Text = singleproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){SingleProblem singleproblem = new SingleProblem(); //创建单选题对象singleproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为单选题对象各属性赋值singleproblem.Title = txtTitle.Text;singleproblem.AnswerA = txtAnswerA.Text;singleproblem.AnswerB = txtAnswerB.Text;singleproblem.AnswerC = txtAnswerC.Text;singleproblem.AnswerD = txtAnswerD.Text;singleproblem.Answer = ddlAnswer.SelectedItem.Text;if (Request["ID"] != null) //如果是修改题目信息{singleproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (singleproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该单选题!";}else{lblMessage.Text = "修改该单选题失败!";}}else//如果是添加试题{if (singleproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该单选题!";}else{lblMessage.Text = "添加该单选题失败!";}}}}填空题填空题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null)//如果是修改题目,初始化数据{InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int fillblankProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象if (fillblankproblem.LoadData(fillblankProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = fillblankproblem.CourseID.ToString();txtFrontTitle.Text = fillblankproblem.FrontTitle;txtBackTitle.Text = fillblankproblem.BackTitle;txtAnswer.Text = fillblankproblem.Answer;}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){FillBlankProblem fillblankproblem = new FillBlankProblem(); //创建填空题对象fillblankproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为填空题对象各属性赋值fillblankproblem.FrontTitle=txtFrontTitle.Text;fillblankproblem.BackTitle = txtBackTitle.Text;fillblankproblem.Answer = txtAnswer.Text;if (Request["ID"] != null) //如果是修改题目信息{fillblankproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (fillblankproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该填空题!";}else{lblMessage.Text = "修改该填空题失败!";}}else//如果是添加试题if (fillblankproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该填空题!";}else{lblMessage.Text = "添加该填空题失败!";}}}}判断题判断题录入的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){InitDDLData(); //初始化考试科目下拉列表框if (Request["ID"] != null) //如果是修改题目,初始化数据InitData();}}}//初始化考试科目protected void InitDDLData(){Course course = new Course(); //创建考试科目对象DataSet ds = course.QueryCourse(); //查询考试科目信息ddlCourse.DataSource = ds; //指名考试科目列表框数据源ddlCourse.DataTextField = "Name"; //DataTextField显示Name字段值ddlCourse.DataValueField = "ID"; //DataValueField显示ID字段值ddlCourse.DataBind(); //绑定数据}//初始化数据protected void InitData(){int judgeProblemID = int.Parse(Request["ID"].ToString()); //取出传递过来的试题编号JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象if (judgeproblem.LoadData(judgeProblemID)) //如果取出题目信息,分别放在相应控件显示{ddlCourse.SelectedValue = judgeproblem.CourseID.ToString();txtTitle.Text = judgeproblem.Title;rblAnswer.SelectedValue = judgeproblem.Answer.ToString();}else//查询出错,给出提示{lblMessage.Text = "加载数据出错!";}}//添加或修改事件protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){JudgeProblem judgeproblem = new JudgeProblem(); //创建判断题对象judgeproblem.CourseID = int.Parse(ddlCourse.SelectedValue);//为判断题对象各属性赋值judgeproblem.Title = txtTitle.Text;judgeproblem.Answer = bool.Parse(rblAnswer.SelectedValue);if (Request["ID"] != null) //如果是修改题目信息{judgeproblem.ID = int.Parse(Request["ID"].ToString()); //取出试题主键if (judgeproblem.UpdateByProc(int.Parse(Request["ID"].ToString())))//调用修改试题方法修改试题{lblMessage.Text = "成功修改该判断题!";}else{lblMessage.Text = "修改该判断题失败!";}}else//如果是添加试题{if (judgeproblem.InsertByProc()) //调用添加试题方法添加试题{lblMessage.Text = "成功添加该判断题!";}else{lblMessage.Text = "添加该判断题失败!";}}}}G、输出总成绩计算总成绩的后台代码:protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){ImageButton1.Attributes.Add("OnClick", "javascript:return confirm('确实要删除这些用户吗?')");InitData(); //绑定用户信息}}//初始化成绩表格protected void InitData(){Scores score = new Scores(); //创建Scores对象DataSet ds = score.QueryScore(); //调用QueryScore方法查询成绩并将查询结果放到DataSet数据集中GridView1.DataSource = ds; //为GridView控件指名数据源GridView1.DataBind(); //绑定数据}//GridView控件RowDeleting事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){Scores score = new Scores(); //创建Scores对象int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //取出要删除记录的主键值if (score.DeleteByProc(ID)){Response.Write("<script language=javascript>alert('成功删除该用户!')</script>");}else{Response.Write("<script language=javascript>alert('删除该用户失败!')</script>");}GridView1.EditIndex = -1;InitData();}//批量删除成绩protected void ImageButton1_Click(object sender, ImageClickEventArgs e){Scores score = new Scores();//创建Scores对象foreach (GridViewRow dr in GridView1.Rows)//对GridView中的每一行进行判断{if (((CheckBox)dr.FindControl("xuanze")).Checked)//如果选择了进行删除{int ID = int.Parse(((Label)dr.FindControl("Label1")).Text);score.ID = ID;score.DeleteByProc(ID);}}}。
在线考试系统(项目开发总结报告)
项目开发总结报告1引言1.1编写目的编写此计划的目的是为了对“在线考试系统”项目的完成情况进行总结。
它说明了本项目软件开发的方法,可以为本项目的相关专题计划的制定提供指导和参考,供项目组全体人员阅读。
1.2背景随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。
远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附件: 总结计算机在线考试系统项目随着计算机信息技术、网络技术和软件技术的不断发展和完善,促进了人们很多传统的工作手段和方法也随之改变。
“在线考试系统” 就是利用计算机信息技和网络平台结合软件技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现试题管理、考务管理、随机生成试卷、在线监考、自动阅卷和成绩统计等功能,达到节约资源,提高工作效率,保证考试结果客观公正性的目的。
、系统可行性由于《计算机文化基础》这门课程的考试题型通常为判断、单项选择、多项选择、填空和文字录入等,而这类题型的答案通常又具有单一性、确定性或有限枚举性等特点,所以便于计算机编码和标准化,以实现无纸化考试。
二、系统需求目前,学院每年学习《计算机文化基础》人数约3000 余人,根据以往惯例,该课程的考核方式采用闭卷笔试,由此产生的试卷印刷、装订、分袋、回收试卷、阅卷、成绩统计等工作量非常庞大,且由于考核方法的落后,基本上难以准确、客观、公正地反映学生具有的基本职业技能和素质,其结果是培养的学生,懂理论多些,会实践操作少些,从而偏离了高职学院培养高技能专业人才的目标。
针对《计算机文化基础》课程实践性强的特点,探索与之相适应的,将考核和实践过程有机的结合在一起的较为准确、客观、公正地反映学生具有的计算机文化基础技能和素质的考试方式,减少成绩考核中的片面性,真实反映学生的计算机文化基础技能水平,提高学生对实践教学的重视程度,促进学生学习和实践的积极性和主动性, 使学生朝着提高自身基础技能的方向发展。
三、系统设计1.系统功能设计根据系统需求可知,该在线考试系统应具有以下主要功能, 考务管理(考生管理、考场安排)、题库管理(试题录入、删改)卷管理(定义试卷模板)、考试管理(在线监考、异常处理)、成绩管理(自动阅卷、成绩报表)和系统管理等。
其系统构成如下图。
2.系统运行环境包括、试f----------------在线考试系统* ______________________ 丿设计在线考试系统的主要目的之一就是要提高工作效率,降低工作量,而系统运行环境与软件架构模式的选择就显得尤为重要。
系统运行环境和软件架构模式既要安全、稳定、可靠又要简单、易用、易于配置和管理。
由于Windows 操作系统是我们最常用的系统环境,而基于WEB浏览器B/S模式的多层应用程序其客户端具有零配置的优点,且基于Microsoft .NET 架构的XML Web services 平台允许应用程序通过Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。
Microsoft .NET 平台提供创建XML Web services 并将这些服务集成在一起,可有效均衡系统负载,保证系统在大并发量访问下安全、可靠、稳定地运行。
所以该系统运行境和软件架构模式选择如下。
服务器端:Windows 2003 Server + SQL Server 2000 +Microsoft .NET + 。
客户端:Win dows操作系统+及以上。
系统运行环境和结构如下图。
lentsWebDatabases App licationXML WebServices四、系统实现1.数据库设计由于关系数据库具有描述的一致性、可直接表示多对多关系、结构简单、操作方便、理论性好等特点,且是目前应用最为广泛的数据系统,所以该“在线考试系统”选择的是关系数据库,从关系数据库设计的基本原则出发,对该系统数据库的设计既要保证便于数据检索,又要尽量减少数据冗余,避免操作异常。
“在线考试系统”数据库的设计与一般事务系统数据库的设计相类似,如考生基本信息表、各种基础代码表的设计等等,所不同的是题库表的设计,在这里作一个重点说明。
对题库表的设计应从试卷涉及的题型来分析,试卷涉及的题型包括判断、单项选择、多项选择、填空与文字录入,可把判断、单项选择和多项选择定义在一个表(st_bz_table )内来进行管理,把填空与方字录入定义在一个表(st_ex_table )内进行管理。
这两个表的结构如下。
① st bz tableCREATE TABLE [dbo].[st_bz_table][stid] [i nt] IDENTITY (1, 1 ) NOT FOR REP LICATION NOT NULL ,[sttg] [varchar] (1024) COLLATE Chi nese_ PRC_CI_AS NOT NULL ,[stxx] [varchar] (2048) COLLATE Chi nese_ PRC_CI_AS NOT NULL ,[stfjlx] [ti nyi nt] NULL ,[stfj] [image] NULL ,[stda] [varchar] (16) COLLATE Chi nese_ PRC_CI_AS NOT NULL ,[stlx] [t inyint] NOT NULL ,[stkm] [smalli nt] NOT NULL ,[stld] [ti nyint] NULL ,[stjrsj] [datetime] NULL ,[stzt] [ti nyi nt] NULL ,[stzsd] [ti nyint] NULL ,[mtjs] [i nt] NULL)ON [P RIMARY] TEXTIMAGE_ON [P RIMARY]② st ex tableCREATE TABLE [dbo].[st_ex_table][stid] [i nt] IDENTITY (1, 1 ) NOT FOR REP LICATION NOT NULL ,[sttg] [varchar] (2048) COLLATE Chi nese_ PRC_CI_AS NOT NULL ,[stda] [varchar] (2048) COLLATE Chi nese_ PRC_CI_AS NULL ,[stlx] [t inyint] NOT NULL ,[stkm] [smalli nt] NOT NULL ,[stld] [ti nyint] NULL ,[stjrsj] [datetime] NULL ,[stzt] [ti nyi nt] NULL ,[stzsd] [ti nyint] NULL ,[mtjs] [i nt] NULL)ON [P RIMARY]2.模块功能实现该在线考试系统的大部分模块功能的实现与其他事物系统模块功能的实现相类似,如考务管理、题库管理等,最要是对后台数据系统实现插、删、改等操作,在此不在敖述,这里主要说明该考试系统两个特有功能模块的实现, 是试题抽取,生成试卷;二是试卷批改,成绩统计。
(1)试题抽取,生成试卷考生登录考试系统,通过身份验证后,开始进行抽题。
抽题时,根据考试系统预定义试卷模板规则(试卷模板规则主要包括一一考试时间;卷面总分;试卷包含题型、难易程度、知识点、题量;每小题分数等),随机抽取试题,使每位考生抽取的试卷都是随机的。
抽题过程:①根据试卷模板和题库生成一张二维表②遍历上述二维表,根据二维表每一行的条件,检索题库表,在检索题库表的同时,临时添加一个随机列,按该随机列进行排序,并取出前“题量”行记录,得到随机抽取的试题编号(stid)。
SELECT TOP [b.题量]NEWID() as sjl, FROM [题库]a,[二维表]b WHERE.题型二b.题型ANDa.知识点二b.知识点AND a.难度二b.难度ORDER BY sjl③根据抽取的试题编号(stid),从题库在提取试题,生成试卷。
(2)试卷批改,成绩统计考生在考试结束交卷时,考试系统自动为该考生批改试卷,并统计出卷面成绩。
①判断、单项选择、多项选择的批改由于上述题型的答案具有唯一性,所以可根据试题编号(stid)在题库表中检索出标准答案,并与考生答案相比较,如果完全吻合则正确,否则错误。
②填空题的批改由于部填空题答案并不是唯一的,所以在批改填空时,只需要考生答案与该空标准答案的其中之一吻合则判正确,没有一个吻合则判错误。
另由于部份填空题有多个空,所以在计分时以该题的分数除以该题的总空数,然后乘以考生填正确的空数[即:得分=(小题分数/小题空数)X正确空数]。
③文字录入的批改对文字录入题进行批改时,我们首先对原文中出现的不同字符个数进行统计,然后对考生答案中不同字符个数进行统计,比较两个统计结果,得出考生录入的正确字符个数,在计分时以该题的分数除以要求录入字符的总数,然后再乘以考生录入的正确字符个数[(文字录入题分数/原文字符数)X正确字符数],得到该考生文字录入部份的得分。
五、系统应用效果在该考试系统代码编制结束后,经过多次系统测试,并在系统测试过程中修正了发现的错误和问题,保证了该系统在应用中安全、稳定可靠地运行。
在2007至2008学年《计算机文化基础》期末考试与补考中共6000余人次采用了该系统进行考试,该系统对学生掌握《计算机文化基础》这门课程的情况进行了客观公正地考核评价。
在考试程中, 该系统运行稳定可靠。
利用该考试系统,改变了《计算机文化基础》这门课程传统的考核方法,实现了无纸化考试,既节约了纸张资源,减轻了试卷印刷、试卷批改等繁重的工作量,提高了工作效率,又客观公正地对学生基础知识掌握情况和实践动手能力进行了考核评价。
说明:远程在线考试请访问(评审专家模拟)1、考试系统入口、监考和异常处理密码为:1234563、准考证号、考生姓名(注意:请在浏览器工具栏目将弹出窗口阻止程序关闭,再进行考试)。
可以任选其中一学生登陆,然后进行在线考试。