第一篇:在线考试系统的设计与实现
在线考试系统的设计与实现
摘要:在线考试系统因其方便、灵活、准确等特点,已成为普遍使用的一种考试方式。本在线考试系统具有自组试题、设置考试策略、考生考试、客观题自动评分等多种功能。
关键词:在线考试 考试策略 随机算法
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2011)11-0158-02
1、引言
在教学中,考试是一个非常重要的环节,它可以真实地检测出学生对所学知识面的掌握程度。在传统的考试里, 教师为找试题、设计试卷、印刷、评卷等花费大量时间和精力。使用在线考试系统,教师平时可以收集相关的试题,建立起试题库,考试时出卷将变得轻松,也为评卷、统计成绩带来更大的便捷与准确。因此,我们有必要研究在线考试系统的建设,使其能尽快在各种考试中发挥作用。
2、系统设计
2.1 用例分析
2.1.1 角色识别
在线考试系统的角色分为三类,他们分别是: 考生、教师、管理员。这三类角色的描述如表1所示。
2.1.2 用例识别
考生相关用例[1]:(如图1所示)
在线考试:考生按考号和密码进入系统,系统根据出题策略随机生成试卷;考试结束前15分钟系统给出时间方面的提示,考试时间结束而考生没有提交试卷,试卷可以自动保存且自动提交。
查询成绩:考生根据考号和姓名查看自己的考试成绩,并能查看考试的答卷和得分情况。
教师相关用例:(如图2所示)
试题库管理:试题库包括单选题、填空题、判断题和程序题等,且具有扩展性,能使其他题型加入;每道试题可设置相应的难易度;
考试策略管理:管理考试的科目、题型、分值和难易度;
试卷批改:教师只需要批改主观题(填空题和程序题),客观题(单选题和判断题)由系统自动批改;
成绩统计:按班级、科目对考试成绩进行统计。
管理员相关用例:(如图3所示)
班级管理:对班级信息增加、修改和删除操作,班级不能重名;
教师管理:管理员分配给教师账号、密码和相应的权限;
考生管理:对考生信息增加、修改和删除操作,考生学号必须唯一;
科目管理:对需要考试的科目增加、修改和删除操作,科目编号必须唯一。
2.2 系统实体类
试卷类:由试题、科目、考生答题信息等组成;
出题策略类:包括该试卷各种类型题目的数量,分值,难度系数;
试题类:由试题编号、试题内容、所属科目、选项
1、选项
2、选项
3、选项
4、答案组成;
科目类:由科目编号、科目名称组成;
考生类:由考生ID、班级ID、姓名、邮箱组成;
班级类:由班级ID,班级名称组成。
2.3 活动图
活动图主要用于分析工作的流程和处理多线程应用等场合[2]。考生登录进入考试系统,如果登录成功,选择考试科目,如果登录不成功,则返回登录界面;根据选择的考试科目,抽取考试策略,根据抽取的考试策略自动生成试卷,如果考试策略没有启用,则显示相关信息并结束这次考试;考生考试结束后提交试卷,试卷提交时并自动给客观题打分。
3、系统实现
3.1 正常考试页面
3.1.1 使用的数据库组件
考试页面使用了一个Internet培训教程表。在系统考试页面里需要引用这个表的试题题型、试题分数、试题、答案等字段,考试页面会将这些有效信息读取出来,然后显示给考生,保存到暂时试卷表中。同时,也使用了成绩登记表,引用这个表的考生名、密码、成绩、试卷名称、当前状态等字段,目的是为了修改考生的当前状态,以达到对考生状态进行控制的目的,从而判断考生是否断线以及为批改试卷做准备。
3.1.2 实现技术
生成试卷的单项选择题中,特别要强调的是设计的随机算法。在整个试题表的单项选择总题数所形成向量数组中,生成一个我们需要的试题数的向量表,然后将两者进行对比,从而读出总试题表中的题目来。其中,生成的试题数组必须满足在总试题表的数组里面。
imax=dxt1
iget=5
Dim S1(4),n,iRnd, bFlag, bflag1
bFlag1 = True
bFlag = True
n=0
Do While n < iget
Randomize
iRnd=Int(imax*Rnd(imax)+0)+1
If bFlag = True Then
S1(0)=iRnd
bFlag =False
n=n+1
Else
bFlag1 = True
i=0
Do While i < n
If iRnd=S1(i)Then
bFlag1 = False
Exit Do
End If
i=i+1
Loop
有了上面的试题数组,接着要做的就是读取试题,并且把试题保存在暂时表中。如果该单项选择题的题号与我们刚才生成的试题数组有重复,那么将该试题读取出来,显示在页面上,同时保存在数据库中。如果题号不匹配,则继续往下查找。
3.2 批改页面
3.2.1 使用的数据库组件
系统批改页面使用了一个系统暂时试卷表。在系统登录页面里需要引用这个表的试题类型、试题题目、试题分数、考生答案、以及试题答案等字段,先是读取试题类型以及考生答案,然后将考生答案跟试题答案进行对比,从而判定考生答案正确与否。
系统判分页面同时使用了成绩登记表,是为了将考生最后的成绩写入到表中,同时将考生的状态改称已交卷状态。
3.2.2 实现技术
这个页面所实现的功能比较复杂,程序生成一个名叫“考生名+表名”的表,其作用是保存考生的答案,然后将考生答案与试题的标准答案进行对比,从而判定该题目的正确。如果正确,将成绩累加起来,判断完成后写入到数据库中。
4、开发难点与解决技巧
4.1 随机选题的算法
如前面所示的随机算法代码,设定了某项题型需要的考试题数,然后获取系统试题表中所有试题的总数,最后以这个总数生成随机试题的数组。
4.2 出题页面的保存
系统是通过暂时生成的试题表来保存考生答案,从而实现评分功能。这个暂时试卷表的另一功能可以在考生选择读取断线记录的情况下,将这个试题表的内容读取出来,给考生提供二次考试的机会。
5、结语
在线考试系统是网络教育系统的一个重要组成部分,为教师和考生提供了功能强大、灵活方便的在线考试和其他相关功能。该在线考试系统经测试,达到了预期的目标,可以供百人同时使用。
参考文献
[1]吴建,郑潮.UML基础与Rose建模案例[M].北京:人民邮电出版社,2007:56-63.[2] 谢星星.UML基础与Rose建模实用教程[M].北京:清华大学出版社,2011:190-204.作者简介
黄裕(1980-),男,硕士,讲师,主要从事计算机专业的教学与研究。
第二篇:ASP在线学习系统的设计与实现
ASP在线学习系统的设计与实现
摘 要:在线学习系统主要提供基于网络的学生自主台,教师使用该系统发布教学内容、布置或批改作业,发布公告和答疑解惑。学生使用该系统完成自主学习,向老师提出问题,跟老师和其他同学在线进行讨论,查询作业及成绩等。
关键词:ASP;SQL语言;Access数据库
1、前言
计算机网络技术的飞速发展,使我们的教育和学习模式产生了很大的变化,网络化教育和学习已成为信息时代的重要标志和组成部分。探索、研究并构建适用于在网络环境下的教学学习模式,是时下非常实用的课题。本文就是针对网络教育和学习这一主题进行了研究与实践。
2、系统设计理论依据
2.1 ASP简介
ASP采用脚本语言VBScript(Java script)作为自己的开发语言。在ASP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP页面需要附加的语言引擎分析和执行程序代码。它本身包含了VBScript和Jscript引擎,使得脚本可以直接嵌入HTML中,而且还可以通过ActiveX控件实现更为强大的功能。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP 是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
2.2 SQL语言简介
SQL全称是“结构化查询语言(Structured Query Language)”,SQL语言结构简洁,功能强大,简单易学。如今无论是像Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
2.3 Access数据库
Access是美国微软公司开发的Office套件中一个功能非常强大的数据库管理系统。无论是创建个人的独立桌面数据库,还是创建一个部门或整个企业级的网络数据库,Access都可为组织、查找、管理和共享数据提供功能丰富的、简单易用的方法和手段。在WEB应用方面,可以直接把Access数据库文件放在WEB服务器上,通过编制ASP脚本程序采用ADO方式访问已存在的Access数据库,非常方便。
3、系统需求分析
3.1 系统需要解决的主要问题
后台数据库建有公告信息表(board),答疑信息表(problem),学生信息表(student),在学员表student中初始化数据,再建立一个ODBC数据源,名称为newdata。
3.2系统应该具备的基本功能
1.教学内容发布:教师发布教案,这些内容是在线教育的最主要的内容。2.公告功能:教师通过公告发布各种通知,例如课程安排、临时通知和教材发布。3.作业功能:对于作业,学生需要将作业通过上传的方式上交。教师根据作业完成情况给每份作业打分。4.答疑功能:功能类似于聊天室,教师对学生提出的问题进行解答,进行实时交流。5.其他功能:网上考试,网上实时教学等功能。
4、系统总体设计
4.1系统基本简介
通过本项目的研究,能够解决网络环境下,如何进行教学设计,如何调控教学过程,如何有效实施教学活动以达到教学目标。所以给学生提供一个自主化、个性化、能方便获取信息资源的环境是网络学习的重要因素。该系统应该包括:网上答疑模块、学习资源模块、评分块和若干子系统。
4.2 系统数据库
根据系统需求,主要有以下数据项和数据结构:
??S 公告信息:包括标题、发布时间、公告内容、公告序号等。
??S 答疑信息:提问标题、问题内容、回答内容、时间、显示标记、回答标记等。
??S 学生信息:包括学生姓名、学号、各次作业成绩等。
4.3系统结构图
在线学习系统分为两个模块:教师模块和学生模块,其结构划分如图2所示。
5、功能模块说明及程序实现
5.1 学生模块
在学生模块中,学生可以浏览公告,查看教师布置的作业,课程安排,临时通知等信息。学生模块包含查看教师布置的作业、做练习题、教师授课视频广播收看、点播、网上答疑、课程资源浏览、辅助服务等。学生做完作业后可直接在浏览器中完成并提交。教师可以立即评分并给出成绩及学生作业与正确答案的对照表,以便学生查阅。另外,系统还配备资源库,内置与教学内容相关多媒体资料,供学生课外浏览、学习。
5.1.1课堂学习
课堂学习模块中发布的课程,学生通过对各个章节的连接够直接在网上点播,学生想看哪一章,只要点击相应的章节就可以了,网络课件已对各个章节通过对课程(PPT文件)的链接实现网上点播。
5.1.2 答疑教室
对于在学习过程中出现的问题,学生可以通过多种途径得到解决,如通过电子公告板、或通过 E-MAIL 发信给老师、同学请求指导。答疑模块,为师生相互交流提供了很大的方便。学生可以通过答疑教室模块向系统提交自己在学习中碰到的难点。学生可以通过答疑教室模块向系统提交自己的难点疑点。
5.1.3成绩查询
作业成绩模块通过教师对作业的发布,学生完成作业后再进行上传,教师通过在线批改作业,给出学生成绩并把学生成绩加入学生数据库中。成绩查询是通过对学生数据库的连接,学生在页面中输入学号和密码,系统会跟据输入的学号和密码与数据库里的数据进行比较,相同时系统就自动会给出学生作业成绩。
5.1.4教师信箱
当学生想和教师交流时,可以通过教师信箱直接和教师进行交流,点击“教师信箱”,学生可以直接向教师发送邮件,方便了学生于教师之间的交流。
5.1.5作业上传
上传作业时,将每次做的练习题压缩成一个zip文件,然后填写好学号、密码,选择好练习题的序号,然后提交。注意项:
1、把作业压缩成zip文件。
2、对同一次练习题重复提交,新的zip文件将替换旧的文件。
3、初始密码和学号一致,学生可自行更改密码。
4、上传文件时必须要通过身份验证,否则无法上传。
5.2 教师模块
教师模块包含教师公告发布、课件维护、网上答疑、作业的批改等。
5.2.1 公告发布
教师可以通过公告功能发布各项通知,例如以下内容:
??S 课程安排,包括课程教学方式,课程播放表,考试程安排等。
??S 临时通知和新教材发布。
5.2.2网上答疑
对于在学习过程中出现的问题,学生可以通过多种途径得到解决。在网络教学平台中,单独设立了网络学习答疑模块,作为师生相互交流的窗口。
5.2.3 作业批改
对于作业,学生需要将作业通过上传的方式上交。教师要根据作业完成情况给作业打分。作业成绩模块通过教师对作业的发布,学生做完作业后对作业进行上传,教师在后台批完作业后把学生成绩加入学生数据库中,学生可以通过网上在线查询功能就可以查看成绩。
6、小结
现阶段网络的普及,给在线学习系统的出现提拱了最好的条件,人们足不出户就可以学习各种各样的知识,更不用花更多的钱去买各类书籍,不知道的知识点也可以及时提出及时得到答复,在线学习系统正是给人们提拱了一个学习交流的平台,在线教育的出现是必然的。
参考文献
[1] 尚俊杰.网络程序设计―ASP.北京:清华大学出版社;北京交通大学出版社,2002-3-4
[2] 李晓黎 张巍.ASP+SQLServer 网络应用系统开发与实例.南京:人民邮电出版社,2005-2-1
第三篇:本科生毕业论文设计在线管理系统设计与实现
本科生毕业论文设计在线管理系统设计与实现
一、前言毕业论文(设计)是高等院校毕业生提交的有一定的学术价值和实际价值的文章或设计。它是高校培养人才的重要实践教学环节,是对学生四年学习的专业知识、研究能力、自学能力以及各种综合能力的检验。目前很多高校对于本科学生毕业论文(设计)的管理均采用传统的手工方式。随着因特网的普及、现代远程教育的发展以及现代本科教育模式的发展,继续采用传统手工管理模式对毕业论文(设计)进行管理就显得费时、费力、工作量大、效率低。
另外,传统的手工管理模式对于教学管理者来说难以及时准确地把握毕业论文(设计)的进展情况,给管理带来一定的难度。在这种状况下,笔者结合淮北师范大学对毕业论文(设计)的管理规定,开发出一套管理软件,以对毕业论文(设计)这一重要教学环节进行现代化管理。它不但是实现教学管理现代化和网络化的一个重要手段,同时也是促进传统教学模式改革的一个方法,对于改进教学管理、提高教学质量具有重要的意义和较大的实用价值。
二、系统开发环境本系统采用B/S(Browser/Server,即浏览器/服务器)架构。主机选用戴尔(DELL)PowerEdge R410机架式服务器,操作系统选用Windows Server 2008,它能够提供稳定、高速可靠、较大规模的数据处理能力。以IIS作为Web服务器,数据库选用MicrosoftSQL Server 2008,服务器端脚本语言采用Asp.net(C#),使用Microsoft Visual Studio 2008作为开发工具,系统中还用到Office组件、Asp.net Ajax、在线编辑组件FCKEditor。
三、系统的总体设计本系统包括四类用户,即系统管理员、教师、学生、审核员。
系统管理员用户可以进行如下的操作:进行系统初始化,设置系统功能开关,导出相关数据,对教师的命题、学生的选题、用户信息进行统一管理,上传毕业论文工作流程、写作格式要求、填表说明、模板等相关http:///文档,信息查询。教师用户可以进行如下操作:在线命题、审核学生的开题报告、论文指导、撰写论文评语及答辩成绩、信息查询。学生用户可以进行如下的功能操作:在线选题、在线撰写开题报告、在线撰写论文并接受指导教师的在线指导,系统对论文格式进行检查、自动更正、信息查询。审核员用户可以审核教师提交的选题表,只有经过审核,课题才能生效,才能被学生选用。除了以上功能外,系统还要提供一个公共信息交流的平台,允许教师、学生、审核员、管理员对公共的问题进行讨论。
第四篇:人事管理系统设计与实现
人事管理系统设计与实现
目 录
前 言....1 1 需求分析....2 1.1 系统需求...2 1.1 功能需求...2 1.3 可靠性要求...3 1.4 性能需求...3 2 开发环境简介....4 2.1 Delphi简介...4
2.1.1 Delphi7的集成开发环境(IDE)...5 2.1.2 Pascal简介...9
2.2 SQL Server 2000 简介...10 2.2.1 SQL Server 数据平台...10 2.3 TQuery部件在SQL编程中的运用...12 3 总体设计....14 3.1 基本设计...14 3.1.1 设计概念...14 3.1.2 功能分析...14 3.1.3 数据流图...14 3.1.4 系统模块...16 3.2 用例图...18 4 数据库设计....21 4.1 数据库概念设计...21 4.2 数据库逻辑结构设计...23 5 详细设计....30 5.1 系统主窗体...30 5.2 数据库连接...31 5.3 用户登陆界面...32 5.4 用户功能选择...34 5.5 用户信息录入...34 5.6 查询功能窗体...36 5.7 数据备份和还原窗体...37 5.8 工作日记及工作日记管理...39 5.9 用户管理及用户密码修改...41 5.10 打印报表模块...43 5.11 数据公用模块...45 5.12 其它模块...46 6 总 结....47 参考文献....49 致谢....50
人事管理系统
网络工程 雷灵明 指导老师:曹步青
摘要:随着企业自身人力资源的日益庞大、复杂程度逐渐增强,人机作坊再也无法适应如今企业的人事管理了,取代的是运用各种领域的知识,结合计算机科学而开发的人事管理系统。人事管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。人事管理系统是对工作人员进行统一的管理,可以方便的进行录入,查询,修改,删除,退出。经过以上分析,本系统使用Delphi 7.0作为界面和功能开发工具和SQL Sever 2000作为后台数据库,利用其提供的各种面向对象的开发工具进行界面和数据库开发。软件过程结合了快速原型模型与增量模型的优点:首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成可行系统。关键词:人事管理;DEPHI;ADO;SQL server 2000
Personnel Management System Network engineering Lei Lingming Teacher:Cao Buqing
Abstract: Along with their own human resources increasing, complexity growing, the man-machine workshop also is unable adapt the present enterprise’s personnel management again, but the personnel management system that make use of knowledge in different fields and computer science and technology.Personnel management system is a typical management information system(MIS), including the establishment and maintenance of the background-database and front-end application development.To the former, the request for the data which is powerful in consistency and integrity, database which is good in security.For the latter, the request for the applications program which is integrity and easy to easy, Personnel management system can manage the staff and admit input, enquiries, modify, delete, and exit.Through such analysis, the system use Delphi 7.0 as the interface and functions of development tools and take SQL Sever 2000 database as background-database, the development of the interface and database which made use of its object-oriented tools, the software process is formed which is combine the advantage of rapid prototype models and incremental model, as follows: At first application prototype of system is built in a short time, Secondly, the initial prototype system needs to be revised and improved, Finally, it is feasible that the system is built.Key words: human resource management;DEPHI;ADO;SQL server 2000
前 言 背景
在竞争越来越激烈的社会里,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于员工个人相关信息的管理。使用人事管理系统,便于公司领导掌握人员的动向和人员的综合素质,及时调整人才的分配,使用计算机对人事劳资信息进行管理,具有检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等优点,能够极大地提高人事资源管理的效率,也是企业科学化、正规化管理的重要条件。目标
设计一个企业人事信息管理系统,此系统要以人为中心,为企业提供全面的人事管理解决方案;
a)为企业建立规范化、实时化人事管理机制;
b)提高企业人事管理的效率、节约相关的管理成本,增强人事管理的安全性;
c)满足企业管理层,人事业务操作层和全体员工的不同层次和不同方面的需要;
d)对企业将来的整体信息化建设提供必要的支持。需求分析
需求分析是系统开发必要环节,也是重中之重。作为该过程的结果,需求规格说明书是对系统的功能和行为完整的描述。系统设计将来自于需求分析的抽象规格说明转变为面向真实世界的设计。一旦构建完成,该系统就会投入使用,同时会不可避免地产生更多的新需求。同时,需求过程与分析活动之间有相当程度的重叠,分析建模对于设定工作的范围和其他一些事来说是必要的,所以我们利用分析模型来描述需求过程,随着开发工作的继续,分析活动在工作中占的比例将变得越来越大,直到所有需求都已知。[1]
1.1 系统需求
企业的人事管理职能主要分为人事档案信息管理、人事变动管理、员工培训管理、奖惩管理等内容。
a)在人事系统开发时应考虑以下需求: b)满足人事管理职能的基本要求;
c)进行多层次数据汇总,为各层次管理者的决策分析提供数据; d)具有完整的系统接口,满足灵活的数据导入与导出; e)对操作人员的技能要求比较低,操作方便; f)能够实现方便的扩展,满足企业发展的需要; g)能够保障人事管理数据的安全、准确。
1.1 功能需求
基于系统需求分析,该系统需要实现以下基本功能:
a)用户管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。
b)人事档案管理:完成企业对员工个人档案(包括员工的基本档案和在职信息)的管理及相关操作。操作员进行员工档案信息录入及更改,其中包括员工的基本信息、工作经历、家庭关系、奖惩记录和培训经历,要求对这些员工档案信息进行新增、修改、删除操作,同时可以进行查询和浏览操作。该模块是本系统的重点,用户可以通过该模块为单位建立一个比较完整的人事档案系统,同时可以对档案进行查看。
c)基础数据管理:维护人事管理相关的一些基础数据。主要包括以下功能:
(a)民族档案设置:维护职工中民族档案信息;
(b)职工类型设置:维护当前企业职工与企业的关系的类别信息;(c)文化程度设置:维护企业职工的文化程度类别信息;(d)政治面貌设置:维护企业职工的政治面貌类别信息;(e)部门类别设置:维护企业中设立的部门类别信息;(f)职务类别设置:维护企业中设立的职务类别信息;(h)职称类别设置:维护企业职工的职称类别信息;
d)人事变动管理:对于人事上的变动调整进行管理,对人员档案的信息进行更新(如:员工职务、员工职称、员工性质等的变动)。
e)工作日志管理:记录部门或系统用户的一些备忘信息,包括日常的一些事件记录,以及工作日记的管理维护。
f)数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。1.3 可靠性要求
a)计算机稳定可靠,网络服务和数据库服务稳定可靠;
b)网络通畅、稳定;软件运行稳定;数据计算及数据传输无误;提供数据备份和数据恢复方案。1.4 性能需求 1)硬件环境
在最低配置的情况下,系统的性能往往不尽如人意,现在的硬件性能已经相当出色,且
价格也很便宜,因此通常给服务器端配置高性能硬件。推荐配置为: ·处理器:Intel 奔腾Ⅲ 或更高 ·内存:128MB ·硬盘空间:40GB ·显卡:Geforce系列显示适配器或更高。2)软件环境
·操作系统:windows 98/ME/2000/N ·数据库:Microsoft SQL server 2000 开发环境简介 2.1 Delphi简介
Delphi这个名字源于古希腊的城市名。它集中了第三代语言的优点。以Object Pascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。Delphi自1995年3月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。
Delphi的出现打破了Visual系列可视化编程领域一统天下的局面。并且Delphi使用了本地编译器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向对象的编程语言。PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。
Delphi在你编好程序后自动转换成。EXE文件它运行时速度比VB快,而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows很有用。
Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。
Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。
Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应所有Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。
面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。
说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼
其中多媒体音频视频播放器是通过TMediaPlayer组件来实现的,支持的格式与系统已安装的解码器有关。
总 结
6.1 程序设计风格
在设计的时候采用了增量模型的思想:把软件作为一系列的构件来设计,编码,集成和测试。
用户管理,密码修改,用户登陆,万年历,这些模块都有高度的独立性,因此他们的可重用性比较高,基本上是一个单元完成一个功能,模块规模也比较小,模块的作用域在控制域之内,只使用了两个全局变量来存储用户名和用户权限。[1] 在人机界面设计方面,本系统做到了以下几点: a)保持一致性(界面,背景的致性);
b)提供有意义的反馈(用户验证和用户管理,提供了比较精确的反馈信息);
c)在执行有较大破坏性的动作之前要求用户确认(数据备份与还原); d)允许大多数取消操作(大多数单元有取消操作功能);
e)允许犯错误(由于权限的限制,系统能保护自己不受严重错误的破坏);
f)按功能对动作分类(在主窗口就是按动作类型组织菜单的); 6.2 有待加强项
a)帮助的制作 一个完整的应用程序必须具有完整的帮助系统;帮助系统可以在必要的时候给用户信息提示和一些系统相关服务。
b)声音制作在这里主要是对声音的加载,我们可以加载一些一般的声音;主要来源有:音频CD盘;波形音频文件;MP3文件等等。其中波形音频文件以WAV作为文件的后缀,我们可以播放现成的,也可以播放自己录制的文件。c)我们还可以使用各种组件和ActiveX控件等技术来完善系统。利用一些做好的activeX组件,会缩短开发周期。
由于在开发工程方面缺少经验,所以这个系统还存在着许多不足之处,在测试过程中总结如下:
a)数据表的设计还不是很合理;
b)数据异常处理要更加人性化,错误信息的反馈要更加精确; 6.3 心得
经过一个月的设计和开发,人事管理系统基本开发完毕,其基本功能符合用户需求,能够完成基础数据录入,数据查询等基本功能,以及相关报表的打印。在这次毕业设计中,我获益良多。首先我明白了需求分析对于一个系统的开发的重要性。其次我还学到了如何把一个软件作为一个工程来做,在真正的软件开发中,一个软件系统的开发不是一个人来做,而是很多人合作来完成的,另外还有软件的后期维护等等,这时就显现出了把软件作为一个工程来做的优越性,而这些都离不开数据流图和模块的分解。
Delphi是一个非常强大的开发工具,它具有运行速度快、易于学习和使用以及开发效率高的特点,使用起来真的是很顺手。学习好一门编程语言以后可以为今后的学习和工作带来很大的便利。
虽然本系统实现了基本的用户需求功能,但是还有待于完善和加强,总之通过这次设计和开发过程,我对软件开发有了进一步的了解。
参考文献
[1] 张海藩编著.软件工程导论[M].清华大学出版社出版,2003,1-173. [2] 宋一兵,赵景波,李春艳著.Delphi 7.0基础教程[M].机械工业出版社,2003,2-30.
[3] 刘瑶儒著.新概念SQL Server2000教程[M].北京科海集团公司出,2001,12-23.
[4] 韩强编著.SQL SERVER 2000 程序员手册[M].机械工业出版社出版,2000,4-35.
[5] 萨师煊著.数据库系统概论(第二版)[M].高等教育出版社,1991,8-40. [6] 施伯乐,丁宝康,汪卫著.数据库系统教程[M].高等教育出版社,2002,1-202.
[7] 肖健著.SQL Server2000实践与提高[M].中国电子出版社,2002,13-53. [8] 林金霖著.Delphi6 实务经典[M].中国铁道出版社,2002年5月,6-110. [9] 黄超,王志伟著.Delphi企业经营管理系统开发实例导航[M].人民邮电出版社,2003,20-90.
[10] 程文刚主编.Delphi数据库实用编程100例[M].中国铁道出版社,2004,8-63.
[11] 王晟,万科著.Delphi数据库开发经典案例解析[M].清华大学出版社,2005,85-89.
[12] 王惠刚,唐晨光彭为著.delphi7/8程序设计[M].清华大学出版社, 2002,42-63.
[13] 潇湘工作室,邢增平著.Delphi 6.0最佳专辑[M].人民邮电出版社,2003,1-404.
[14] 心铃.Delphi问答.软件报[N],2004-07-5.
[15] 高永惠.浅谈Delphi中的异常处理方法[J].湖南轻工业高等专科学校学报,2002-04,9-10.
[16] 徐萌飞.在Delphi中使用ADO技术对数据库操作[J].中国学术期刊(光盘版)电子杂志社,2001,12-13.
[17] 陈建兵.Delphi中基于安全灵活的动态连接远程数据库SQL的实现[J].福建电脑,2005,12-13.
[18] 孙育红.关于地方法院管理信息系统分析设计与实施[D].中国学术期刊电子杂志社,2001,8-9. [19] 岳冰.南部引嫩工程信息管理系统开发[D].中国学术期刊电子杂志社,2003,20-21.
[20] 庞芳,王丽玫.南宁市自动气象站业务服务数据库系统[D].中国学术期刊电子杂志社,2004,21-23.
[21] 徐军.研究生院综合管理信息系统的研究与实现[D].中国学术期刊)电子杂志社,2004,32-33.
[22] 鲁媛媛.硕士生导师综合素质能力评价指标体系的研究[D].中国学术期刊电子杂志社,2005,18-19.
第五篇:基于BS的网上考试系统的设计与实现
基于B/S的网上考试系统的设计与实现
论文关键词:ASP.net B/S 网络考试系统 数据库
论文摘要:随着网络的普及和对教育的重视,各院校各学科的网上考试都具有了必要的使用环境。但是,目前国内的一些网络教学系统的主要功能是教学,不能单独作为考试平台,通用性差,而且系统中对主观题的评阅多是采用人工评阅方式,没有实现真正意义上的自动评分。另一方面,我们所在院校的计算机基础课已开设了多年,但尚在沿用传统的考试形式或使用单机版的考试系统。基于Web的网上考试系统的设计与实现就是基于上述目的开发设计的。
本系统采用B/S架构作为系统的总体结构,以Web数据库技术为依托,利用微软的ASP.NET技术,结合ADO,实现了对Web数据库的访问和查询。该设计实现了按题型随机抽题组卷、在线考试、题库管理、系统管理的功能,能够对客观题在线评分。学生用学号登录成功后,阅读考试须知,之后选择考试科目进入考试页面,完成相应科目考试,自动给出考试成绩。系统管理,实现了对题库、考生信息、考试成绩、考试科目的管理。题库管理,实现了对试题的添加、编辑、删除功能;考生信息管理可以添加、修改、删除、查询考生信息,成绩管理可以删除成绩信息,科目管理主要是修改考试科目信息。
基于Web的网上考试系统本身是一个很大的系统,尤其试题库部分需要许多人的参与以及大量的投入才能建成。该系统虽然仅仅是完成《计算机文化基础》和《操作系统》课程的考试,但却具有良好的实用性与通用性,提供友好的人机界面,具有较好的可扩充性和开放性。
一、绪论
1.1 网上考试系统的现状分析
在信息技术迅速发展的今天,网络对于大多数人已不再陌生,并且其应用在人们的工作、学习和生活中越来越多地发挥着不可替代的作用。近年来随着软件工程技术、信息通信技术的快速发展以及计算机网络技术的日趋成熟,网络教育在人们的教育活动中逐步得到普及。网上考试是网络教育不可缺少的组成部分,是网络教育的一个重要环节。
网上考试在国外一些国家已经得到了蓬勃发展,人们选学课程和考试都是通过网上进行的。例如国外一些著名的考试,如Microsoft公司的MCSE(Microsoft系统工程师认证考试)、GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研究生入学考试)等,都是采用网上考试的形式进行的。
在国内,目前绝大多数考试还停留在传统考试方式上,对互联网的真正应用仅限于一些考试的网上报名工作和网上成绩查询,还没有真正形成网上考试规模。网上考试系统作为现代教育的一个子系统,是保证教育教学质量的重要手段。在传统的考试方式下,组织一次考试要经过出题、考试、评卷、试卷分析等步骤,随着考试类型的增加及考试要求的提高,教师的工作量将会越来越大,并且其工作非常容易出错,在一定程度上说,传统的考试方式已经存在着改革的必要了。Internet技术的发展使得考试的技术手段和载体发生了划时代的变化,考试从传统的纸笔考试到计算机辅助考试再发展到基于Web的网上考试成为现实。
现阶段,网上考试系统的主流开发技术已经相当成熟,且很好地适应了动态站点设计和基于Web的数据库访问的要求,是当前网上考试软件实现的主流技术之一。在对大量关于网上考试系统资料的研究和学习后,根据工作的需要,针对本校实际情况特别是教学的需求,利用学校校园网已有的基础条件,研究开发适合本校使用的基于Web的网上考试系统。
1.2 选题的背景及研究意义
随着计算机科学、网络技术的迅猛发展,在教育领域里,实现网上考试可以充分利用学校现有的计算机软、硬件资源和网络资源实现考试;对于客观题由计算机来完成阅卷,可以将减少人工阅卷的工作量。
目前常用的网上考试系统主要有两种基本模式:传统的C/S(客户机/服务器)模式和新型的B/S(浏览器/服务器)模式,所谓C/S模式,即数据库(比如,试题库)内容放在远程的服务器上,在客户机上安装相应软件;C/S结构在技术上虽然很成熟,但该结构的程序往往只局限在小型的局域网内部,不利于扩展。并且,该结构的每台客户机都需要安装相应的客户端程序。当拥有用户量比较多时,如果采用该结构,系统的安装与维护工作比较繁重。同时,由于应用程序直接安装在客户机,客户机直接和数据库服务器交换数据,系统的安全性也受到一定影响。与传统的基于C/S模式的网上考试系统相比,B/S体系将应用逻辑与用户界面和数据访问相分离,使系统的维护变得简单(只需要改变网页,即可实现所有用户的同步更新),同时简化了客户端的功能,用户只需浏览器即可使用此考试系统,更适宜于互联网上的考试。
在信息网络化的现实面前,我们提出一种基于Web的网上考试系统,并用SQL Sever 2000数据库与ASP.NET技术结合进行了该系统的开发。
1.3 系统基本简介
我们课题组所做的工作不仅仅是参与开发一个完整的在线考试系统,也是一个引导性的基础研究,是对.net平台下基于B/S结构的软件体系结构、关键技术、实现技术、框架解决方案进行的探索。
本系统采用ASP.NET、HTML、Javascript、VBScript、图形编辑与数据库等工具,通过基于WEB服务器访问WEB页面,可以不受地点,时间限制,通过宽带上网或其它上网方式,借助Internet这一强大、方便的工具,考生可以在互联网上通过浏览器来选择科目、参加考试,管理员可以在互联网上通过浏览器来添加、修改学生信息,添加、修改、删除试题,修改考试科目信息,管理学生成绩;同时还实现有学生信息查询功能:按班级、学号、姓名等关键字查询,实现对整个系统的管理功能。
系统的主界面主要有考生、管理员入口,根据用户类型,分别进入考试和管理两个不同的页面。其最大的特点是开放性、方便性和灵活性。
二、系统的关键技术及介绍
在《基于Web的网上考试系统》的设计过程中,主要考虑了以下几方面的问题:
(1)ASP.NET技术;
(2)建立数据库,使用SQL Sever 2000来建立;
(3)选择系统的开发模式,B/S模式;
(4)ADO.NET对象模型;
(5)系统数据库设计。
2.1 ASP.NET技术概况
ASP.NET是微软公司推出的一种Internet编程技术,它采用效率较高的、面向对象的方法来创建动态Web应用程序。在原来的ASP技术中,服务器端代码和客户端HTML混合在一起,常常导致页面的代码冗长而复杂,程序的逻辑难以理解。ASP.NET是一种独立于浏览器的编程模型,可以在最新版本的IE、NetscapeNavigator以及诸如Opera等被广泛使用的浏览器上运行。
ASP.NET是一种建立在通用语言上的程序构架。一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多。微软公司发布了包括Visual Basic.NET、C#.NET、Visual C++.NET等与.NET兼容的语言来创作应用程序。
2.1.1 ASP.NET的优势
ASP.NET是在服务器上运行的编译好的公共语言运行库代码,它可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。
1)世界级的工具支持
ASP.NET框架补充了Visual Studio集成开发环境中的大量工具箱和设计器。WYSIWYG编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。
2)威力和灵活性
由于ASP.NET基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵活性。Microsoft.NET框架类库、消息处理和数据访问解决方案都可从Web无缝访问。ASP.NET也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到ASP.NET时保留基于COM的开发中的现有投资。
3)简易性
ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似Visual Basic的简单窗体处理模型中处理事件并不相同。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
4)可管理性
ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和Web应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了ASP.NET框架应用程序的部署。只需将必要的文件复制到服务器,即可将ASP.NET框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。
5)可缩放性和可用性
ASP.NET在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
6)自定义性和扩展性
ASP.NET随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换吉林大学硕士学位论文ASP.NET运行库的任何子组件。
7)安全性
借助内置的Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。
2.1.2 常用到的ASP.NET内置对象
Application对象:对整个ASP.NET执行环境而言,一个虚拟目录下的所有ASP.NET程序构成了一个Web应用程序。在多任务执行的情况下,来自四面八方的众多用户可能执行同一个Web应用程序,这便依赖Application对象。常用到的场合:聊天室、网页计数器等。
Request对象:获取从客户浏览器传给服务器端的数据,如接收来自表单的数据。
Response对象:Request对象与Response对象就像一般程序语言里的Input及Output命令,若要让服务器端的ASP.NET程序能够接收来自客户端的信息,须用Request对象;若想将服务器端的信息传递给客户端,须用Response对象。
Session对象:Session对象和Application对象极为类似,但Session对象的信息只适用于同一位用户,换句话说,一个Session对象只属于一位用户。常用到的场合:虚拟购物车、用户登陆网站时用户名的临时存储等。
2.2 利用SQL Sever 2000来建立数据库
Microsoft SQL Server 2000 是一种关系型数据库。此种数据库采数据分类表格化的架构,将相关的数据组成表格,表格和表格之间可以有关联性,因此称为关系型数据库。系统管理员可透过应用程序进入服务器,更改数据型态,管理及处理服务器资源。SQL Server 也是一种具备延展性的数据库(scalable database),亦即 SQL Server 可以支持多位使用者同时进入数据库中处理大量的数据。
2.3 Browser/Server模式—本系统的开发模式
2.3.1 Browser/Server模式简介
随着网络规模的日益扩大,应用程序的复杂程度不断提高,传统的数据库应用架构已经不能胜任。为了充分利用网络资源,越来越多的信息需要在www.xiexiebang.command对象、DataAdapter、DataSet以及DataReader。这些组件中负责建立联机和数据操作的部分我们称为数据操作组件(Managed Providers)分别由Connection对象、Command对象、DataAdapter对象以及DataReader对象所组成。数据操作组件最主要是当作DataSet对象以及数据源之间的桥梁,负责将数据源中的数据取出后植入DataSet对象中,以及将数据存回数据源的工作。
Connection组件
Connection对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。
Command组件
Command对象主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection对象上,也就是Command对象是透过连结到数据源的Connection对象来下命令的。所以Connection连结到哪个数据库,Command对象的命令就下到哪里。
DataAdapter组件
DataAdapter对象主要是在数据源以及DataSet之间执行数据传输的工作,它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet使用的功能。
DataSet组件
DataSet这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet的能力不只是可以储存多个Table而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet对象可以说是ADO.NET中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力,也就是说我们是将DataAdapter对象当做DataSet对象以及数据源间传输数据的桥梁。
DataReader组件
当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReade在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。
2.5 系统数据库设计
2.5.1 数据库结构及说明
数据库结构是网上考试系统设计方案中的一个重要组成部分,目的在于满足考生、管理员用户实现其操作功能。
2.5.2 用户权限简介
1.管理员。在此系统中系统管理员具有管理用户、管理试题和试卷的权力。他不需注册,在数据库有一个表来存放相关信息。
2.一般用户主要是指考生,参加在线考试。
三、系统的整体分析与设计
3.1 需求分析
3.1.1 系统需要解决的主要问题
考生进入系统应该进行身份验证。考生进入考试系统后,需要选择考试科目,所以系统还应有考试科目选择的功能。鉴于考试环境一般为机房,考试者之间的距离很近,为了避免考试做弊,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择提交答卷后,应该自动判卷,给出考生分数。
本系统是为了满足在线考试的需求而设计开发的,可在Internet上进行实时考试。所以本考试系统应具备的考试系统功能,包括:题库设计和管理,试卷的随机组卷能力,用户在线考试及记录,系统自动评卷,系统数据库管理维护,系统管理和维护。
3.1.2 系统功能模块划分
本在线考试系统可分为两个主要功能模块进行设计,这两个功能模块分别为:
(1)考生功能模块:考生功能模块可以实现考生登录、选择考试科目、在线考试、完成考试给出分数,如果已经考过,则不能登录考试。
(2)管理员功能模块:管理员功能模块可以实现管理员登录、考生信息管理、考试科目管理、题库管理、考试成绩管理。
系统统由一个登陆界面登陆,在登陆时是如果是学生,则用户名为考生学号,如果是管理员登陆,用户名为管理员名,分别从各自己的数据库中查询帐户,并核对登陆密码,然后根据不同的角色进入不同的界面。
3.2 总体设计
本部分介绍了《基于Web的网上考试系统》的总体设计,主要包括公用登陆模块的设计,学生功能模块的设计,管理员功能模块的设计。
3.2.1 公共登陆模块设计
所有用户都从本模块登陆,登陆界面(login/)上包括一个文本框用于输入用户名,一个文本框用于输入密码;包括两个按钮,用来区分考生登录,还是管理员登陆。点击登陆后,根据不同按钮的单击事件,连接到不同的 数据库,从相应的数据库表中查询用户名和密码,如查询到,则进入相应的页面,如未查询到,则弹出出错信息,用户点击确定重新输入用户名和密码登陆,图3-3示: 图3-3 用户登录界面
3.2.2 在线考试模块设计
考生登录后,进入考试须知页面(know1/),选择考试科目后,若未参加该科目的考试,则进入相应科目考试页面;否则,不能进入考试页面。该页面主要提供了一个考生选择考试科目的功能,以简单的超链接进入不同的科目考试页面。
3.2.3 管理员功能模块设计
管理员登录后进入后台管理主页面(classintro/),由该页面可以登录到学生信息管理、科目管理、试题管理、成绩管理页面。
四、部分页面实现详解
4.1 考试页面的实现
考试页面(exampage/)可以进行单选、多选、填空题这些客观题的考试。每一类型题都以一个Web用户控件来实现题目显示,试题是随机生成的,每次考试都不同的试卷,系统以随机抽题来生成试卷,使用了一个随机函数。先在题库question表中得到每种题型在每次抽题供抽取的总题数count= SubjectInfo(Subject),随机选题时应在1-count之间选取,temp = Fix(count * Rnd(10))。由于试卷是考前随机抽题而得,考生在第一时间开启试卷,减少了接触试题的人员间环节,也在一定程度上防止了考生将试题传出考场,增强了试题的保密性其次,为了避免由于得到的随机数相同,而在一份试卷中抽到相同的考题,在设计题库结构时设置了haveselect标记字段,标记字段取值为0时,该题未被抽取,haveselect标记字段取值为1,表示该题已被抽取,不能再用。这统在抽题时,首先判断haveselect标记字段是否为0,如果该题已被抽过,则必取新的随机数重新抽取。下面以单选题为例来说明。
//将haveselect置为1,标记该题为已选
Public Function SetReaded(ByVal QuestionID As String)strsql = “update question set haveselect=1 Where id=” & CInt(QuestionID)ExeSQL(strsql)End Function //将haveselect置为0,该课程所有的考题初始化 Public Sub SetRead()strsql = “update question set haveselect=0 where subjectname='” & Subject & “'” ExeSQL(strsql)End Sub //用随机函数Rnd()来生成试题号 Public Sub DataBingToRep()strsql = “select top ” & 1 & “ * from question Where subjectname='” & Subject & “' AND type='单选题'and haveselect= 0 ” Randomize()count = SubjectInfo(Subject)temp = Fix(count * Rnd(100))If Qds.Tables(0).Rows.Count > 0 Then GetRowInfo(Qds.Tables(0).Rows(temp))Else lblQesName.Text = “暂时没有” & Subject & “的单选题!” End If End Sub //统计课程考题的数量, 获得count值
Function SubjectInfo(ByVal name As String)As Integer strsql = “select * from question where subjectname='” & name & “' AND type='单选题'and haveselect=0 ” Dim cmd As New SqlDataAdapter(strsql, appconn)cmd.Fill(Qds, “Info”)Return Qds.Tables(“Info”).Rows.Count End Function
4.2 管理主页面的实现
管理主页面是管理员进入后台管理后所看到的第一个页面,在该页面上有Label控件显示了管理员名,登录时间信息,一组超链接实现各个页面之间的跳转,以一个表格中加入超链接图片也可以在不同页面之间跳转,该页面主要是管理员欢迎界面,没有什么关键代码,只是超链接的使用。
4.3 学生信息管理页面(manstudentinfo/)的实现
该页面用DataGrid控件显示了学生信息,并实现了分页显示,同时以下拉列表事件来实现按班级查询学生信息,其中班级是从数据库里查询出来的不重复的班级,还以下拉列表提供了按序号、学号、姓名进行的关键字查询,以超链接实现了跳转到添加、修改学生信息页面。
关键代码解释:
//定义数据库连接字符串,Dim conn As New SqlConnection(ConfigurationSettings.AppSettings(“ConnectionString”))//使用DISTINCT关键字搜索出数据库中的不同班级,class_name为下拉列表控件 comdstr2 = “select DISTINCT class from student” class_name.DataSource = studs.Tables(“student1”)class_name.DataBind()class_name.Items.Insert(0, New ListItem(“全部”, “全部”))//使第一项显示为“全部”
class_name.SelectedIndex = class_name.Items.IndexOf(class_name.Items.FindByText(“全部”))//使用Response.Redirect可以将网页转移至另外的网页上,使用的语法结构是:Response.Redirect网址,其中网址可以是相对地址或绝对地址,在此使用Response.Redirect(“addstudentinfo/”)跳转到修改学生信息页面 Session(“studentid”)= s_datagrid.DataKeys(CInt(E.Item.ItemIndex))//使用下拉列表控件的SelectedIndexChanged事件,实现下拉列表改变,自动按不同班级查询学生信息 Public Sub class_name_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles class_name.SelectedIndexChanged dblstr = Request.Form(“class_name”)ifsub()End Sub //根据不同的查询条件生成不同的查询字符串 Sub ifsub()//使用like '%“ & key & ”%'实现按关键字查询,以下输入学号关键字为来实现查询 If skey = “s_no” Then comdskey = “ where s_no like '%” & key & “%' ” comdstr = “select * from student ” & comdskey End If Session(“str”)= comdstr adp = New SqlDataAdapter(comdstr, conn)ds = New DataSet adp.Fill(ds, “student”)s_datagrid.DataSource = ds.Tables(“student”).DefaultView s_datagrid.DataBind()End Sub 4.3.1 添加、修改学生信息(addstudentinfo/)
添加学生信息与修改学生信息共用一个页面,在执行不同操作时,传递不同的参数editstudent,当editstudent为空值时,显示添加学生信息页面,不为空显示为修改学生信息,并根据参数绑定数据库中的对应的学生信息,显示在相应的文本框或下拉列表中。
关键代码解释:
//根据不同editstudent参数值显示不同的页面标题,其中editstudent为学生id <%If editstudent = “" Then%>添加学生信息 <%Else%>修改学生信息<%End If%> //根据不同editstudent参数值显示不同的按钮文本 <%If editstudent = ”“ Then%> <%Else%><%End If%> //该句的功能是把表单提交的变量editstudent的值赋给一个Session对象studentid。这个对象用来存储学生id,它在用户对每个页面的访问中有效。editstudent = Session(”studentid“)//点击修改学生信息事件,使用Request对象的Form获得页面上表单的内容 nums = Request.Form(”num“)names = Request.Form(”name“)pwds = Request.Form(”pwd“)grades = Request.Form(”grade“)strA = ”update student set s_no='“ & nums & ”',s_name='“ & names & ”',s_pwd='“ & pwds & ”',class='“ & grades & ”' where id=“ & editstudent
4.4 科目管理页面(managesubject/)的实现
该页面主要是对考试科目信息的修改,包括各类型题的总分和题量以及考试时间设置,其中序号和科目名称是不可修改的。用一个DataGrid控件实现了显示科目信息,以一个隐藏的Panel控件放上一个表格来绑定相应科目信息,当点击修改时,Panel控件显示,并将相应科目信息以表格形式显示,以供修改。
关键代码解释:
//使用Panel控件的Visible属性,当点击修改时,Panel.Visible = True, comdstr1 = ”select * from subject where id=“ & s_datagrid.DataKeys(CInt(E.Item.ItemIndex))objcomd = New SqlCommand(comdstr1, conn)objcomd.Connection.Open()studr = objcomd.ExecuteReader //当读出该记录时,将相应字段的值显示在页面上的相应控件上 If studr.Read()then id.Text = studr(”id“).ToString End If
4.5 试题管理页面(manexampage/)的实现
该页面以Repeater控件实现了试题的显示,每一题都用一个表格来显示,每一题都有一个操作,放了三个链接,点击添加,则跳转到添加试题页面,点击修改,则跳转到试题修改页面,点击删除,则删除该题。此外该页还进行了分页,可以到上一页,下一页,直接到达首页和尾页,并显示了总页数和当前页码。
关键代码解释:
manadp = New SqlClient.SqlDataAdapter manadp.SelectCommand = objcomd mands = New DataSet //填充DataSet数据集 manadp.Fill(mands, ”mana“)//设置分页显示试题的数量
Dim manpd As PagedDataSource = New PagedDataSource manpd.DataSource = mands.Tables(”mana“).DefaultView()manpd.AllowPaging = True manpd.PageSize = 4 //定义当前页变量CurPage Dim CurPage As Integer //设置当前页的页码索引为当前页码减一 manpd.CurrentPageIndex = CurPage1)& ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ lnkFirst2.NavigateUrl = Request.CurrentExecutionFilePath & ”?Page=1“ & ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ End If //如果是下一页,跳转到后一页 If Not manpd.IsLastPage Then lnkNext2.NavigateUrl = Request.CurrentExecutionFilePath & ”?Page=“ & Convert.ToString(CurPage + 1)& ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ lnkLast2.NavigateUrl = Request.CurrentExecutionFilePath & ”?Page=“ & manpd.PageCount & ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ End If
4.5.1 添加、修改试题页面(addquestion/)
添加和修改试题共用一个页面,在执行不同操作时,传递不同的参数edittest,当edittest为空值时,显示添加试题页面,不为空显示为修改试题页面,并根据参数所传递的ID号来绑定数据库中的对应的试题信息,显示在相应的下拉列表、文本框或单选按钮上。
关键代码解释:
//使用Request对象的QueryString属性来获取edittest参数的值 edittest = Request.QueryString(”edittest“)If edittest <> ”“ Then comdstr = ”select * from question where id=“ & edittest objcomd = New SqlCommand(comdstr, conn)objcomd.Connection.Open()testdr = objcomd.ExecuteReader If testdr.Read()Then txtquestion.Text = testdr(”question“).ToString txtA.Text = testdr(”A“).ToString txtB.Text = testdr(”B“).ToString txtC.Text = testdr(”C“).ToString txtD.Text = testdr(”D“).ToString txtanswer.Text = testdr(”answer“).ToString If testdr(”type“).ToString = ”单选题“ Then type.Items(0).Selected = True Else If testdr(”type“).ToString = ”多选题“ Then type.Items(1).Selected = True Else type.Items(2).Selected = True End If End If End If objcomd.Connection.Close()End If //使用Request对象的QueryString属性来获取deltest参数的值 deltest = Request.QueryString(”deltest“)If deltest <> ”“ Then comdstr = ”delete from question where id=“ & deltest objcomd = New SqlCommand(comdstr, conn)objcomd.Connection.Open()objcomd.ExecuteNonQuery()objcomd.Connection.Close()Response.Redirect(”manexampage/?“)End If
4.6 成绩管理页面的实现
该页面主要是对学生考试成绩的管理,结合了学生信息表和成绩表的双表查询,用一个DataGrid控件显示学生考试成绩,只能对学生成绩进行删除操作,设计比较简单。
主要代码解释:
//使用DataGrid控件的MyDataGrid_Delete事件,利用strSql字符串实现记录的删除 strSql = ”Delete from score Where id=" & s_datagrid.DataKeys(CInt(E.Item.ItemIndex))
参考文献
[1]李万伦,何蕾,赵海.ASP.NET程序设计.清华大学出版社,2002 [2]求是科技.ASP.NET数据库管理系统开发实例导航.人民邮电出版社,2005 [3]张增良.ASP.NET程序设计教程.西安交通大学出版社,2006 [4]钱灵.基于.NET的网上考试系统的设计与实现[D].天津大学,2005 [5]张全和.关于考试阅卷系统开发的必要性和可行性.重庆大学计算机基础教学研讨会论文集.2004.4 [6] Hoffman K,Gabriel J.汪钟鸣,战晓苏译..NET Framework高级编程[M].北京.清华大学出版社.2002年 [7] 全渝娟,范荣强.基于Web的远距离考试系统.计算机应用与软件,2003,7 [8] 蒋元星.基于.NET框架的企业应用集成研究和实现.浙江大学硕士学位论文2005,5 [9] 肖金秀,冯沃辉,陈少涌.ASP.NET程序设计教程[M].冶金工业出版社,2002,7 [10] 徐世浩.高校教育网站ASP.NET技术应用研究.电化教育研究,2004,1 [11] 陈玉峰.SQL Server 2000数据库开发教程(第1版)[M].北京:科学出版社,2003.[12] 金雪云,焦桂英.ASP.NET高级开发技术与范例(第3版)[M].北京:科学出版社,2002.[13] 刘东飞,夏丹.基于.NET的网上考试系统设计与实现[J].福建电脑,2006,5:121-122 [14] 张红鹰,基于NET平台的网上考试系统的设计与实现,湖北大学成人教育学院学报,2006年第3期。[15] 高清和.精通ASP.NET的程序设计.中国铁道出版社,2001[10]肖建.ASP.NET编程实例与技巧集粹.北京希望电子出版社,2003。
[16] 廖彬山,高峰霞.WEB数据库开发技术[M].北京:电子工业出版社,2001。
[17] 张莉,王强.SQL SERVER数据库原理及应用教程[M].北京清华大学出版社,2003年1月。
[18] 刘红军.基于B/S三层架构的标准化网上考试系统的设计与实现[Dl.中国海洋大学硕士学位论文,2005 [19] 孟军《精通ASP.NET网络编成》人民邮电出版社,2002 [20] 杨帆《ASP.NET技术与应用》高等教育出版社,2004 [21] 朱归良基于Web模式的网上考试系统安全性研究(《计算机工程与应用》2002年3月)[22] 夏江林.C/S结构与B/S结构技术特点比较.电脑学习.2001(5)P35-36 [23] 朱忱,宋顺林.基于.砚T的Web应用框架的设计与实现[J].计算机工程与设计,2006(8):1446—1447 [24] 黄杰.基于Browser/Sever模式下的在线网上考试系统【DI.武汉大学硕士学位论文,2004