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 数据库结构及说明数据库结构是网上考试系统设计方案中的一个重要组成部分,目的在于满足考生、管理员用户实现其操作功能。数据库中表的设计:
1)管理员信息表(admin),如图2-3:
图2-3管理员信息表
2)学生信息表结构(student) ,如图2-4:
图2-4学生信息表结构
3)试题信息表结构(question),如图2-5:
图2-5 试题信息表
4)考试科目信息表结构(subject),如图2-6:
图2-6考试科目信息
5)考生成绩表结构(score),如图2-7所示:
图2-7 考生成绩表
2.5.2 用户权限简介1.管理员
在此系统中系统管理员具有管理用户、管理试题和试卷的权力。他不需注册,在数据库有一个表来存放相关信息。
2.一般用户主要是指考生,参加在线考试。
3 系统的整体分析与设计
3.1 需求分析 3.1.1 系统需要解决的主要问题
考生进入系统应该进行身份验证。考生进入考试系统后,需要选择考试科目,所以系统还应有考试科目选择的功能。鉴于考试环境一般为机房,考试者之间的距离很近,为了避免考试做弊,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择提交答卷后,应该自动判卷,给出考生分数。
本系统是为了满足在线考试的需求而设计开发的,可在Internet上进行实时考试。所以本考试系统应具备的考试系统功能,包括:题库设计和管理,试卷的随机组卷能力,用户在线考试及记录,系统自动评卷,系统数据库管理维护,系统管理和维护。
3.1.2 系统功能模块划分本在线考试系统可分为两个主要功能模块进行设计,这两个功能模块分别为:
(1)考生功能模块:考生功能模块可以实现考生登录、选择考试科目、在线考试、完成考试给出分数,如果已经考过,则不能登录考试。
(2)管理员功能模块:管理员功能模块可以实现管理员登录、考生信息管理、考试科目管理、题库管理、考试成绩管理。
系统统由一个登陆界面登陆,在登陆时是如果是学生,则用户名为考生学号,如果是管理员登陆,用户名为管理员名,分别从各自己的数据库中查询帐户,并核对登陆密码,然后根据不同的角色进入不同的界面。系统功能模块划分如图3-1所示:
图3-1 系统功能模块划分图
3.2 总体设计本部分介绍了《基于Web的网上考试系统》的总体设计,主要包括公用登陆模块的设计,学生功能模块的设计,管理员功能模块的设计。程序总体流程图如图3-2所示:
图3-2 程序总体流程图
3.2.1 公共登陆模块设计所有用户都从本模块登陆,登陆界面(login/)上包括一个文本框用于输入用户名,一个文本框用于输入密码;包括两个按钮,用来区分考生登录,还是管理员登陆。点击登陆后,根据不同按钮的单击事件,连接到不同的