基于ASP.NET的在线考试系统开发 毕业论文.doc_第1页
基于ASP.NET的在线考试系统开发 毕业论文.doc_第2页
基于ASP.NET的在线考试系统开发 毕业论文.doc_第3页
基于ASP.NET的在线考试系统开发 毕业论文.doc_第4页
基于ASP.NET的在线考试系统开发 毕业论文.doc_第5页
免费预览已结束,剩余54页可下载查看

下载本文档

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

文档简介

i 摘 要 随着计算机网络的迅速发展,传统的考试方式面临着改革,而网络考试则 是一个很重要的发展方向。在线考试系统可以借助于 internet 进行,考试既可以 在本地进行,也可以在异地进行,大大拓展了考试的灵活性。 本在线考试系统是利用微软最新的.net 平台并用 b/s 结构的模式和 sql server 2000 数据库编写的网络应用程序。它有应用简单、升级和部署方便、扩 展性强等特点。它实现了无纸化考试、批量添加试题、动态随机生成试题、客 观题部分计算机自动阅卷即时评分、成绩直接存到数据库进行统计排名等功能。 本系统的开发,对于提高教师的工作效率、减轻教师的工作负担、提高考试 的质量、减少考试的成本等具有重要的意义。 【关键词】.net 平台;在线考试;自动阅卷 ii abstract with the rapid development of computer network, traditional test methods are facing reforms, but the network examination is an important direction of development. online examination system can be carried out by means of internet, the examination can be carried out in different places, which greatly expands the flexibility of the exam. this online examination system is a netowork applications programmed by using latest microsoft . net platform and the b / s structure mode and sql server2000 database. it has many characteristic such as simple using, easier upgrade and deployment, strong exponsibility and so on. it implements many functons such as paperless examination, batch add of questions, dynamicly generating of random questions, the computer automatically marking some objective questions immediately and score directly store in a database , statistical ranking and so on. this systems development have the vital significance to raise teachers working efficiency, light teachers work load, enhance test quality, reduce test cost and so on. 【key word】.net platform;online examination;automatic marking 1 目录 第 1 章 绪 论 1 1.1 研发背景 1 1.2 前景意义 1 1.3 论文组织结构 2 第 2 章 相关技术 3 2.1 asp.net 技术 .3 2.2 c#语言 4 2.3 visual studio 2008.4 2.4 sql 语言 .4 2.5 小结 5 第 3 章 系统分析 6 3.1 可行性分析 6 3.2 需求分析 6 3.3 小结 7 第 4 章 总体设计 8 4.1 b/s 体系结构 .8 4.2 开发及运行环境 8 4.3 项目规划 9 4.4 系统功能结构图 9 4.5 小结 10 第 5 章 系统详细设计 12 5.1 设计目标 12 5.2 逻辑结构设计 12 5.3 小结 19 第 6 章 系统实现 20 6.1 系统前、后台首页的运行结果 20 6.2 登录模块主要功能设计 21 6.2.1 登录模块功能划分 .21 6.2.2 登录功能实现方法 .22 6.2.3 学生注册 .25 6.2.4 密码找回 .26 6.3 系统前台主要功能模块设计 26 6.3.1 个人相关 .26 6.3.2 考试相关 .28 2 6.3.3 练习相关 .37 6.3.4 成绩相关 .37 6.3.5 退出系统 .38 6.4 系统后台主要功能模块设计 39 6.4.1 管理员模块设计 .39 6.4.2 学生信息管理 .39 6.4.3 科目管理 .41 6.4.4 考试信息管理 .42 6.4.5 练习信息管理 .44 6.4.6 试题管理 .44 6.4.7 人工阅卷 .49 6.4.8 成绩管理 .51 6.4.9 退出系统 .53 第 7 章 系统测试 54 第 8 章 总结与展望 55 8.1 总结 55 8.2 展望 55 参考文献 1 致 谢 3 1 第 1 章 绪 论 1.1 研发背景 随着网络技术的飞速发展,现在很多国和地区都已经开设了远程教育,通 过计算机网络实现异地教育和培训。远程教育包括很多环节,例如教学系统、 答疑系统和考试系统等等。其中很重要的一个环节就是在线考试系统,同时它 也是最难实现的环节。在我国远程教育已经地发展起来,但是目前各种考试大 都采用传统的考试方式,在这种方式下,组织一次考试至少要经过五个步骤, 即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类 型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,可以说传 统的考试方式已经不能适应现代考试的需要。 在线考试是现阶段研究开发的一个热点。客户端的配置可以极为简单,使 考试不受地域的局限。一个完备的在线考试系统可以使用户在网上学习过后及 时检验自己的学习效果,发现自己的不足,使得学习效率得到很大提高。 本在线考试系统是基于 b/s 模式的 asp.net web 应用系统。本系统可以实 现无纸化考试,批量添加试题、动态随机生成试题,客观题部分计算机自动阅 卷即时评分等功能,在一定程度上提高了考试的质量、减轻教师的工作负担及 提高工作效率。 1.2 前景意义 伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试 系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接 受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点 都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试 固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。随 着 internet 的相关技术的发展,特别是 web 技术的出现,人们开始致力于研究 和开发基于 internet 考试系统,这也大大推动了远程教育的发展。 2 1.3 论文组织结构 第 2 章介绍了开发本系统用的开发平台、语言等。 第 3 章介绍了开发本系统的需求分析和可行性分析。 第 4 章介绍了本系统的项目规划并列出系统功能结构图。 第 5 章介绍了本系统的设计目标、开发及运行环境和逻辑结构设计。 第 6 章 展示了本系统前台、后台首页的运行结果和开发环境。 第 7 章介绍了登录模块的主要功能和实现方法。 第 8 章介绍了系统前台的主要功能和实现方法。 第 9 章介绍了系统后台的主要功能和实现方法。 第 10 章对论文进行总结和展望。 3 第 2 章 相关技术 该在线考试系统主要采用 microsoft .net framework、a sql server 2000 数据库、c#语言、sql 语言以及 visualstudio2008 等技术和工具, 整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、 模块测试和系统实现几个阶段。 2.1 asp.net 技术 a 不仅仅是 active server page (asp) 的下一个版本,而且是一种 建立在通用语言上的程序构架,能被用于一台 web 服务器来建立强大的 web 应 用程序。a 提供许多比现在的 web 开发模式强大的优势,把基于通用语 言的程序在服务器上运行,将程序在服务器端首次运行时进行编译。a 构架是可以用 microsoft(r)公司最新的产品 visual s 开发环境 进行开发,wysiwyg(what you see is what you get 所见即为所得)的编辑。 这些仅是 a 强大化软件支持的一小部分。 因为 a 是基于通用语 言的编译运行的程序,所以它的强大性和适应性,可以使它运行在 web 应用软 件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在 windows 2000 server 上) 。通用语言的基本库,消息机制,数据接口的处理都能无缝的 整合到 a 的 web 应用中。a 同时也是 language-independent 语言 独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你 的程序用很多种语言来写,现在已经支持的有 c#(c+和 java 的结合体) , vb,jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于 com+开发的程序,能够完整的移植向 a。 a 使运行一些很平常的任务如表单的提交客户端的身份验证、分布 系统和网站配置变得非常简单,所以,利用 a 进行开发可以起到事半功 倍的效果。 4 2.2 c#语言 c#是一种简单、现代、面向对象和类型安全的编程语言,由 c 和 c+发展 而来。c#(发音为“c 霎普” )牢固地植根于 c 和 c+语言族谱中,并且会很快 被 c 和 c+程序员所熟悉。c#的目标在于把 visual basic 的高生产力和 c+本 身的能力结合起来。 c#作为 microsoft visual studio 的一部分提供给用户,除了 c#以外, visual studio 还支持 visual basic、visual c+和描述语言 vbscript 和 jscript。所有这些语言都提供对 microsoft .net 平台的访问能力,它包括一 个通用的执行引擎和一个丰富的类库。microsoft .net 平台定义了一个“通用 语言子集”(cls),是一种混合语言,它可以增强 cls 兼容语言和类库间的无缝 协同工作能力。对于 c#开发者,这意味着既是 c#是一种新的语言,它已经可以 对用老牌工具如 visual basic 和 visual c+使用的丰富类库进行完全访问。 c#自己并没有包含一个类库。 2.3 visual studio 2008 visual studio2008 是微软开发的 visual studio 系列开发工具的最新版 本,微软公司在 2008 年 12 月初发布新一代企业级应用开发平台.net framework 2.0 和开发工具 visual studio 2008。 现代信息部门的开发团队必须因应高度竞争的商业环境,快速进行应用软 件系统的设计、开发、测试以及部署带领企业赢得市场。大部分的软件开发团 队,都面临以下几项挑战:开发团队间的沟通困难,开发工具形形色色,分散 且难以互相整合开发程序、开发标准难以建立。 microsoft visual studio 2008 开发工具系列,有许多令人期盼已久的强 化功能,提供更高的程序开发效率、更精简的程序代码、与更佳的安全性。包 括 .net framework 2.0、 asp.net 2.0、 64-bit 程序开发支持、新的 windows form 程序设计、以及对行动装置解决方案的全新开发支持。 5 2.4 sql 语言 sql(structured query language)结构化查询语言,是一种数据库查询和 程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也 是数据库脚本文件的扩展名。 sql 面向数据库执行查询;sql 可从数据库取回数据; sql 可在数据库中 插入新的记录;sql 可更新数据库中的数据;sql 可从数据库删除记录;sql 可创建新数据库;sql 可在数据库中创建新表;sql 可在数据库中创建存储过 程;sql 可在数据库中创建视图;sql 可以设置表、存储过程和视图的权限。 sql 是一门 ansi 的标准计算机语言,用来访问和操作数据库系统。sql 语句用于取回和更新数据库中的数据。sql 可与数据库程序协同工作,比如 ms access、db2、informix、ms sql server、oracle 、sybase 以及其他数据库系 统。sql 语句结构不幸地是,存在着很多不同版本的 sql 语言,但是为了与 ansi 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比 如 select、update、delete、insert、where 等等) 。 2.5 小结 本章介绍了该系统完成过程中所用到的语言、平台和技术。a 是基于 通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在 web 应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在 windows 2000 server 上) 。 c#是一种简单、现代、面向对象和类型安全的编程 语言,由 c 和 c+发展而来。visual studio2008 是微软开发的 visual studio 系列 开发工具的最新版本,微软公司在 2008 年 12 月初发布新一代企业级应用开发 平台.net framework 2.0 和开发工具 visual studio 2008。sql(structured query language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据 以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。 6 第 3 章 系统分析 应包含数据流图或用例图 数据字典 e-r 图 3.1 可行性分析 在线考试系统前台和后台分别对学生、管理员(老师)操作系统的功能详 细的分类,满足了学生注册、密码找回、修改个人信息、参加考试、参加练习、 查看考试成绩等要求,同时也满足了管理员(老师)管理学生信息、管理科目、 管理试题、人工阅卷、管理学生成绩等各种要求。该考试系统是一个功能比较 齐全的考试系统,保证了登录模块、前台学生考试模块、后台管理员(老师) 管理模块等各种功能的实现。 3.2 需求分析 通过相关调查,要求该在线考试考试系统具有以下功能: (1)未注册的学生需要根据自己的学生证号进行注册(其中学生证号作为 登录系统的用户名) ,提交个人基本信息。 7 (2)已注册学生登录系统以后可以修改密码,遗忘密码的学生可以进行密 码的找回。 (3)学生参加考试时,选择考试的科目,考试都有时间限制,而且每场考 试只能考一次,学生做完试题检查无误后点击“交卷”按钮就可以交卷,考试 时间结束时系统也可自动交卷。 (4)考试结束后学生可以进行考试成绩查询。 (5)学生参加练习时,可以选择科目和套题进行练习。 (6)管理员(老师)利用管理员账号登录系统后,可以进行添加和查看管 理员、学生信息管理(对学生的信息进行添加、删除和修改) 、科目管理(对科 目进行添加、删除和修改) 、考试信息管理(发布和查看考试时间、科目和考试 规则) 、练习信息管理(发布和查看练习信息) 、试题管理(对试题进行添加、 删除和修改) 、人工阅卷(主观题阅卷) 、学生成绩管理(对学生成绩进行统计、 排名和查询) 。 8 3.3 小结 通过相关调查对整个系统进行了需求分析,划分出系统的各个功能模块; 为系统各个功能的实现做了可行性分析。 9 第 4 章 总体设计 4.1 b/s 体系结构 本系统采用的是 b/s 结构。 b/s(browser/server)结构即浏览器和服务器结构。它是随着 internet 技术的兴起,对 c/s 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是 通过 www 浏览器来实现,极少部分事务逻辑在前端(browser)实现,但是主要事务逻 辑在服务器端(server)实现,形成所谓三层 3-tier 结构。相对于 c/s 结构属于“胖”客户 端,需要在使用者电脑上安装相应的操作软件来说,b/s 结构是属于一种“瘦”客户端, 大多数或主要的业务逻辑都存在在服务器端,因此,b/s 结构的系统不需要安装客户端软 件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样 就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总 体成本(tco) 。 b/s 结构系统的产生为系统面对无限未知用户提供了可能。当然,与 c/s 结构相比,b/s 结构也存在着系统运行速度较慢,访问系统的用户不可控的弱点。 4.2 开发及运行环境 硬件平台: cpu:p41.8ghz; 内存:512mb 以上。 软件平台: 开发平台:visual studio 2008 数据库:sql server 2000; 浏览器:ie6。0,推荐使用 ie7。0; 分辨率:最佳效果 1024*768 像素。 10 4.3 项目规划 该在线考试系统是一个功能完善的在线考试系统,由登录模块、前台学生 考试模块、后台管理员(老师)管理模块三部分组成。 登录模块:主要包括学生登录、管理员(老师)登录、学生注册、密码找 回。 前台学生考试模块:主要包括学生注册、学生密码找回、查看个人信息、 修改改个人信息、修改密码、查看考试信息、参加考试、参加练习、查看考试 成绩、退出系统。 后台管理员(老师)管理模块:主要包括后添加和查看管理员、注册学生 信息管理(对学生的信息进行添加、删除和修改) 、科目管理(对科目进行添加、 删除和修改) 、考试信息管理(发布和查看考试时间、科目和考试规则) 、练习 信息管理(发布和查看练习信息) 、试题管理(对试题进行添加、删除和修改) 、 人工阅卷(主观题阅卷) 、学生成绩管理(对学生成绩进行统计、排名和查询) 、 退出系统。 4.4 系统功能结构图 在线考试系统登录模块功能结构,如图 4-1 所示。 在线考试系统登录模块功能结构 前 台 和 后 台 登 录 口 学 生 注 册 学 生 密 码 找 回 图 4-1 在线考试系统登录模块功能结构图 11 在线考试系统前台功能结构,如图 4-2 所示。 在线考试系统前台功能结构 查 看 个 人 信 息 修 改 个 人 信 息 修 改 密 码 参 加 考 试 参 加 练 习 查 看 考 试 成 绩 退 出 系 统 图 4-2 在线考试系统前台功能结构图 在线考试系统后台功能结构,如图 4-3 所示。 在线考试系统后台功能结构 添 加 管 理 员 查 看 管 理 员 学 生 信 息 管 理 科 目 管 理 考 试 信 息 管 理 考 试 题 目 管 理 人 工 阅 卷 ( 主 观 题 阅 卷) 学 生 成 绩 管 理 练 习 题 目 管 理 练 习 信 息 管 理 退 出 系 统 图 4-3 在线考试系统后台功能结构图 12 4.5 小结 本系统分为:登录模块、前台学生考试模块、后台管理员(老师)管理模 块三部分。详细列出了各个模块的主要功能和功能结构图。设计的整体思路为: 管理员(老师)登录系统后台发布试题,学生登录系统前台进行考试和练习。 13 第 5 章 系统详细设计 5.1 设计目标 该考试系统是根据学生考试模块、管理员(老师)管理模块进行开发设计 的,主要实现如下目标:登录模块,实现提供前台和后台登录口以及学生注册 密码找回的链接;前台学生考试模块,实现查看和更改个人信息、修改密码、 参加考试和练习、查看考试成绩、退出系统等功能;后台管理员(老师)管理 模块,实现注册和查看管理员、学生信息管理、科目管理、考试和练习信息管 理、考试和练习题目管理、人工阅卷(主观题阅卷) 、学生成绩管理、退出系统 等功能。 5.2 逻辑结构设计 本系统数据库采用 sql server 2000 数据库,系统数据库名称为 examonline。数据库 examonline 中包含 9 张表。如下所示: (1)tb_students(学生注册信息表) 学生注册信息表主要用于保存学生的注册信息。表 tb_students 的结构如表 a- 1 所示。 表 a-1 tb_students 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 studentnu mber char 12 否 学号 studentna me nvarchar 4 否 学生姓名 studenpwd varchar 10 否 密码 sex nchar 1 否 性别 14 major nvarchar 20 否 专业 class nvarchar 20 否 班级 question nvarchar 11 否 密码查询问题 answer nvarchar 20 否 密码查询答案 registerti me datetime 8 否 注册时间 (2)tb_admin(后台管理员信息表) 后台管理员信息表主要用于保存后台管理员信息。表 tb_admin 的结构如表 a-2 所示。 表 a-2 tb_admin 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 adminid varchar 15 否 管理员帐号 adminna me nvarchar 4 否 管理员姓名 adminpw d varchar 10 否 密码 registerti me datetime 8 否 管理员注时间 (3)tb_subject(科目信息表) 科目表主要用于保存各科目信息内容。表 tb_subject 的结构如表 a-3 所示。 表 a-3 tb_subject 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水 号 15 subjectna me nvarchar 20 否 科目名称 major nvarchar 20 否 所属专业 registerti me datetime 8 否 加入时间 (4)tb_attentionexam(考试信息表) 考试信息表主要用于保存考试信息。表 tb_attentionexam 的结构如表 a-4 所示。 表 a-4 tb_attentionexam 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 subjectna me nvarchar 20 否 考试科目名称 major nvarchar 20 否 所属专业 examtim e1 int 4 否 考试时间 examtim e2 nvarchar 30 否 具体考试时间 part nchar 1 否 考试部分 part1 nchar 3 否 第一部分 part1_nu mber int 4 否 第一部分题目数量 part2 nchar 3 否 第二部分 part2_nu mber int 4 否 第二部分题目数量 16 part3 nchar 3 否 第三部分 part3_nu mber int 4 否 第三部分题目数量 part4 nchar 3 否 第四部分 part4_nu mber int 4 否 第四部分题目数量 score int 4 否 试题总分 score1 int 4 否 第一部分分数 score2 int 4 否 第二部分分数 score3 int 4 否 第三部分分数 score4 int 4 否 第四部分分数 attention text 16 否 考试规则 registerti me datetime 8 否 试题加入时间 (5)tb_attentionexercise(练习信息表) 练习信息表主要用于保存练习信息。表 tb_attentionexercise 的结构如表 a-5 所示。 表 a-5 tb_attentionexercise 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 subjectna me nvarchar 20 否 考试科目名称 major nvarchar 20 否 所属专业 taoti nvarchar 20 否 所属套题 17 part1 nchar 3 否 第一部分 part1_nu mber int 4 否 第一部分题目 数量 part2 nchar 3 否 第二部分 part2_nu mber int 4 否 第二部分题目 数量 part3 nchar 3 否 第三部分 part3_nu mber int 4 否 第三部分题目 数量 part4 nchar 3 否 第四部分 part4_nu mber int 4 否 第四部分题目 数量 registerti me datetime 8 否 试题加入时间 (6)tb_examtopic(考试题库表) 考试题库表主要用于保存考试题。表 tb_examtopic 的结构如表 a-6 所示。 表 a-6 tb_examtopic 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 subjectna me nvarchar 20 否 考试科目名称 major nvarchar 20 否 所属专业 topictype nchar 3 否 试题类型 topic nvarchar 100 否 题目 18 optiona nvarchar 50 否 选项 a optionb nvarchar 50 否 选项 b optionc nvarchar 50 否 选项 c optiond nvarchar 50 否 选项 d answer1 char 4 否 客观题答案 answer2 nvarchar 200 否 主观题答案 registerti me datetime 8 否 试题加入时间 (7)tb_exercisetopic(练习题库表) 练习题库表主要用于保存练习题。表 tb_exercisetopic 的结构如表 a-7 所示。 表 a-7 tb_exercisetopic 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 subjectna me nvarchar 20 否 考试科目名称 major nvarchar 20 否 所属专业 topictype nchar 3 否 试题类型 topic nvarchar 100 否 题目 optiona nvarchar 50 否 选项 a optionb nvarchar 50 否 选项 b optionc nvarchar 50 否 选项 c optiond nvarchar 50 否 选项 d answer1 char 4 否 客观题答案 answer2 nvarchar 200 否 主观题答案 19 registerti me datetime 8 否 试题加入时间 (8)tb_answer(主观题答案表) 主观题答案表主要用于保存考生做的主观题答案。表 tb_answer 的结构如表 a- 8 所示。 表 a-8 tb_answer 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 studentnu mber char 12 否 学号 studentna me nvarchar 4 否 学生姓名 class nvarchar 20 否 班级 major nvarchar 20 否 所属专业 subjectna me nvarchar 20 否 考试科目名称 answer nvarchar 200 否 主观题答案 registerti me datetime 8 否 试题加入时间 (9)tb_score(学生成绩表) 学生成绩表主要用于保存学生考试成绩。表 tb_score 的结构如表 a-9 所示。 表 a-9 tb_score 表 字段名 数据类型 长度 是否主键 描述 id int 4 是 数据库流水号 studentnu char 12 否 学号 20 mber studentna me nvarchar 4 否 学生姓名 class nvarchar 20 否 班级 major nvarchar 20 否 所属专业 subjectna me nvarchar 20 否 考试科目名称 score1 int 4 否 客观题成绩 score2 int 4 否 主观题成绩 score int 4 否 总成绩 registerti me datetime 8 否 试题加入时间 5.3 小结 本章说明了本系统的设计目标、开发及运行环境、逻辑结构设计,为整个 系统的开发做好准备。 21 第 6 章 系统实现 6.1 系统前、后台首页的运行结果 系统前台首页的运行结果如图 6-1 所示。 图 6-1 系统前台首页运行结果 系统前台框架图说明如表 6-1。 表 6-1 系统前台首页页面说明 区域 名称 说明 对应文件 1 功能模块 主要用于显示前台学生考试模块中的功能 site1.master 2 内容显示 主要用于显示功能模块中的内容 main.aspx 系统后台首页的运行结果如图 6-2 所示 1 2 22 图 6-2 系统后台首页运行结果 系统后台框架图如表 6-2 所示。 表 6-2 系统后台首页页面说明 区域 名称 说明 对应文件 1 功能模块 主要用于显示后台管理模块中的功能 site2.master 2 内容显示 主要用于显示功能模块中的内容 adminmain.aspx 6.2 登录模块主要功能设计 6.2.1 登录模块功能划分 (1)登录功能。本在线考试系统前后和后台共用一个登录窗口,登录系统 前选择身份,选择“学生” ,输入学号和密码后登录到系统的前台;选择“管理 员” ,输入管理员账号和密码登录到系统的后台。 (2)学生注册功能。登录模块只提供学生注册功能,未注册的学生,点击 “注册”进入注册页面,以学号作为用户名进行注册。未注册的管理员利用默 1 1 2 23 认的管理员账号(admin)和密码(666666)登录系统的后台管理中心后,选择 “添加管理员”可以进行添加管理员账号。 (3)学生密码找回功能。忘记密码的学生,可以点击“忘记密码”进入密 码找回页面,根据提示输入正确的信息就可以找回密码。登录界面如图 7-1 所 示: 图 7-1 登录页面运行效果 6.2.2 登录功能实现方法 登录功能的实现方法是在 login.aspx.cs 文件中实现的,当输入的用户名 和密码通过 requiredfieldvalidator 控件验证后,开始执行数据库最终验证是 否有此用户,密码是否正确。根据用户输入的用户名与口令动态组合成一个查 询,当身份选择是学生时通过 sql = “select count(*) from tb_students where studentnumber=“ + username + “and studentpwd=“ + pwd + “; 语句 tb_students 表中的已注册记录的验证,用户而且密码正确就能够登录成 功,否则显示无此用户或密码不正确。当身份选择是管理员时执行与 tb_admin 表中的注册记录的验证,如果有此用户而且密码正确就能够登录成功,否则显 示无此用户或密码不正确。 24 登录模块方法实现的代码如下: /*login.aspx.cs*/ using system.web; using system.web.security; using system.web.ui; using system.web.ui.htmlcontrols; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.xml.linq; namespace webapplication public partial class login : system.web.ui.page protected void page_load(object sender, eventargs e) protected void btnlogin_click(object sender, eventargs e) if (page.isvalid) string connectionstring = “server=(local);database=examonline;uid=sa;pwd=123“; sqlconnection conn = new sqlconnection(connectionstring); string username = “;/用户名 string pwd = “;/密码 username = txtusername.text.trim(); pwd = txtpwd.text.trim(); string sql; if (ddl.selecteditem.text.trim() = “学生“) /根据用户输入的用户名与口令动态组合成一个查询 sql = “select count(*) from tb_students where studentnumber=“ + username + “and studentpwd=“ + pwd + “; sqlcommand cmd = new sqlcommand(sql, conn); conn.open(); int n = (int)cmd.executescalar();/查询返回的记录 条数 conn.close(); if (n alert(“登录失败!学 号或密码错误!“)“); 25 else /把用户名存在session“studentnumber“中 session“studentnumber“ = username; /转向main.aspx页面 response.redirect(“main.aspx“); else /根据用户输入的用户名与口令动态组合成一个查询 sql = “select count(*) from tb_admin where adminid=“ + username + “and adminpwd=“ + pwd + “; sqlcommand cmd = new sqlcommand(sql, conn); conn.open(); int n = (int)cmd.executescalar();/查询返回的记录 条数 conn.close(); if (n alert(“登录失败!管 理员名称或密码错误!“)“); else response.redirect(“/admin/adminmain.aspx“); protected void lnkregister_click(object sender, eventargs e) response.redirect(“register.aspx“); protected void lnkgetpwd_click(object sender, eventargs e) response.redirect(“step1.aspx“); 6.2.3 学生注册 未注册的学生点击登录页面的“注册”按钮,就可以链接到注册页面进行 注册,注册时学生所填写的学号作为以后等录该系统的用户名,把注册资料填 26 写正确完整后点击“提交”完成注册,返回到登录页面。如图 7-2 所示: 图 7-2 学生注册页面运行结果 6.2.4 密码找回 当学生忘记密码时点击登录页面的“找回密码”按钮,就可以进入密码找 回页面,在密码找回页面按照提示填入相应的正确信息就可以找回自己的密码。 6.3 系统前台主要功能模块设计 6.3.1 个人相关 查看个人信息 点击“查看信息”进入个人信息显示页面,如图 8-1 所示: 27 图 8-1 查看个人信息页面运行结果 实现方法:利用 select * from tb_students 语句把数据中个人资料读取 出来,以表格的形式显示在页面上,学生可以直观的看到自己注册的信息。 修改个人信息 个人信息改变或者在“查看个人信息”中发现自己的信息有错误,单击 “修改个人信息” ,个人信息以表格的方式在页面上显示出来,把错误的信息改 正后点击“提交” ,正确的信息将存到数据库,数据库中错误的信息更新成正确 的信息,这里用到了 sql 的更新语句”updata 表名 set 字段名=正确值 ”。 修改密码 点击“修改密码”就可以进入密码修改页面,首先输入旧密码,然后数据 新密码,最后重复输入新密码,这用到了 requiredfieldvalidator 控件、 regularexpressionvalidator 控件和 comparevalidator 控件,这三个控件的 28 作用分别为验证输入是否为空、输入的新密码是否在设定的范围内和两次输入 的新密码是否相同。通过验证后点击提交,密码修改成功。 6.3.2 考试相关 点击“考试相关”里的“参加考试”进入考试信息及规则页面,在此页面 里学生能够看到考试科目、试题的类型、试题分数、考试时间以及考试规则。 如图 8-2 所示: 图 8-2 考试信息及规则页面运行结果 学生了解考试信息及规则后点击“开始考试”按钮,就能进入考试页面, 开始考试如图 8-3 所示: 29 图 8-3a 考试页面运行结果 图 8-3b 考试页面运行结果 考试页面的计时器是由 javascript 编写的,var m= 接收从数据库中读出的考试时间,然后由函数 function time()完成计时功能。 当考试时间结束时,系统自动交卷。 计时器功能实现代码如下: /*exam.aspx*/ 30 var msec=0 var sec=0 var min=0 var m= function time() document.forms0.time.value=min+“:“+sec go=settimeout(“time()“,1) msec+ if(msec=1000) msec=0 sec+ if(sec=60) if(min 考试页面生成的考题是动态随机生成的,实现方法是,利用 sql 语句:” select topic from tb_examtopic where subjectname=”+session“subjectname”+.tostring()” order by newid()”,将数据库中的相应科目的考试题目随机读出(顺序打乱全部读出) , 然后用 sqldatareader 读出考试信息中规定的试题的题数,这样就实现了随机 读取试题,datalist 控件用于接收动态随机读取的试题。试题分为客观题和主 观题,学生交卷后可以看到客观题的对错情况、正确答案、得分;学生作答的 31 主观题答案将提交到数据库,由老师人工阅卷。交卷后的页面如图 8-4 所示: 图 8-4a 交卷后页面图运行结果 图 8-4b 交卷后页面图运行结果 动态随机生成试题和客观题自动阅卷即时评分方法实现的部分代码如下: /*exam.aspx.cs*/ 32 protected void bind(int i) sqlconnection conn = new sqlconnection(connectionstring); switch (i) /从数据库中选择单选题 case 1: conn.open(); sqlcommand cmd1 = new sqlcommand(“select * from tb_examtopic where topictype=“ + lblpart1_1.text.trim() + “and major=“+major+“and subjectname=“+subjectname+“ order by newid()“, conn); sqldatareader dr1 = cmd1.executereader(); /创建内存表 datatable datatable table1 = new datatable(“examtopic“); table1.columns.add(“topic“); table1.columns.add(“optiona“); table1.columns.add(“optionb“); table1.columns.add(“optionc“); table1.columns.add(“optiond“); int n1 = convert.toint32(lblpart1_number.text.tostring(); for (int x = 0; x n1; x+) dr1.read(); datarow row = table1.newrow(); row“topic“ = dr1“topic“.tostring(); row“optiona“ = dr1“optiona“.tostring(); row“optionb“ = dr1“optionb“.tostring(); row“optionc“ = dr1“optionc“.tostring(); row“optiond“ = dr1“optiond“.tostring(); arr1x = dr1“answer1“.tostring(); table1.rows.add(row); dr1.close(); conn.close();

温馨提示

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

评论

0/150

提交评论