第四章 在线考试系统的设计
当教师对学生的试卷批改完毕后,可以查阅考试人数,统计缺考情况,设置考生状态,对学生的最终成绩进行查询、排序,甚至是重新审核。
1.5 数据库设计
目前的网络开发,已经不是以前静态页面打天下的时候了。现在的网站,几乎都要涉及到大量的信息,传统的文件方式已经不在适用。用数据库来保存信息已经成为各种网络应用中的首选。对于一个ASP网站来说,Web数据库尤为重要,甚至可以说,数据库是一个网站的根本,而ASP只不过是一个工具而已。
Web应用程序设计少不了数据库,因为只有数据库才能大量、快速地处理信息。使用ASP可以读取Access和SQL Server数据库,也可以读取其他ODBC(开放式数据库互
联)兼容的数据库。
确定系统的流程图后,就要开始着手底层数据库的设计,只有完成数据库的架设后才能在以后的编程中对数据的操作有所依据。在进行本系统数据库的架设时我们选择的是微软的Access.因为它使用方便且在各方面能满足系统的要求。
数据(Data)实际上是描述事物的符号记录,即根据事物的特征组成记录来确定一个事物,比如在设备管理系统中,设备仪器名称、型号、厂家、出厂号、购置日期、位置等构成的一个个记录。
数据库(DataBase)是数据的集合体,并且数据记录之间按一定的数据模型组织和存储,使记录之间可以共享。
在进行数据库的架构时,一般要遵循以下的规则: 尽量减少数据的冗余性和重复。
合理的数据库表的设计应该是在满足需求的前提下,使数据的重复量小,应尽量按照关系数据库系统理论方法设计一个数据库,减少数据的冗余。
结构设计与操作设计相结合。
在设计数据库时,有时为了编程实现的简洁和思路的清晰,往往故意增加一些数据的冗余。这虽然有悖于传统的关系数据库理论,但是考虑到查询与统计的方便,对编程的实现有很大的好处,往往采用这种方法。
数据结构具有相对的稳定性。
数据结构的相对稳定性,可以作为新,旧信息系统转换的依据。
21
第四章 在线考试系统的设计
2. 在线考试系统的详细设计
详细设计阶段的根本目标是确定应该具体地实现所要求地系统,也就是说,经过这个阶段地设计工作,应该得出对目标系统地精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。
2.1 网络磁盘系统的相关模块
在线考试系统共分为 用户模块、管理员综合模块及教师管理模块等三个模块。 在线考试系统部署图(如图4-4):
客户端浏览器windows server2003 IIS6.0数据库管理系统WEB服务器客户端SQL Server2005 Windows server2003浏览器客户端浏览器图 4-4 在线考试系统部署图
2.2 分模块介绍各模块的关键技术、程序实现方法
本系统的程序主要是采用模块化思想来编写的。例如系统中的conn.asp文件,在程序的开头是各个功能模块。 (1)系统配置模块(config.asp)
此模块功能主要是定义整个系统的变量,系统所要用到的变量,其本上在这里定义。语句如下:
22
第四章 在线考试系统的设计
dim WebName dim border dim sessionvar ┇ ┇
WebName=\网络硬盘 \设置站点名称
border=\设置边框颜色 ┇ ┇
判断用户信息文件(user_config.asp),判断管理员信息文件(admin_config.asp)。
(2)连接数据库模块(conn.asp),此模块主要功能是建立与数据库的连接,这在论文第三章创建数据库连接中已讲过,这里不再重复叙述。
(3)加密函数模块(md5.asp),此模块的主要功能是对用户的密码进行加密。 (4)本页面应用模块(Boards.asp),此模块建立一个整体的框架。此模块是本页面的主体部分,随着页面的不同,调用模块也不相同。
(5)注册页面模块(reg.asp),此模块是新用户进入系统的主要功能模块。 (6)登陆页面模块(default.asp),通过该功能模块,用户可以输入注册用户名和密码进入系统。
以上便是一个用户程序大概的结构。此外还有其他的功能模块。
后台系统,此系统由四部分组成:群组管理,用户管理,修改密码,退出登陆。
1管理员管理 ○
管理员管理其实是管理员注册,可添加新的管理员。在管理员管理此页面上,注册新的管理员就好像添加了一条新的记录。添加新的管理员只包括两部分:管理员名称和密码。在此页面上,除了上面讲的添加管理员这项功能外,在每条记录的操作栏里还有修改(edit)和删除(del)两项功能。点击edit便能进入编辑管理员页面,在这个页面上可以修改管理员的名称和密码;而点击del则进入删除管理员页面,按“确定删除”按钮便可删除本条记录。
2修改资料 ○
23
第四章 在线考试系统的设计
修改资料的功能跟管理员管理页面上edit的功能差不多,但不同的是管理员管理页面上edit可同时修改管理员的名称和密码,而修改资料的功能只是修改密码,不能修改管理员的名称。
3退出管理 ○
使用退出管理功能,页面便回到了管理登陆界面,若要再进入,就要重新登陆。
4管理登陆 ○
管理登陆模块设置在首页面,管理员只有通过管理登陆才能进入管理页面,才能对数据库进行管理。管理登陆文件admin/admin.asp,默认用户名密码 admin,用户权限分组,设置组权限即可设置所属组的用户权限。此程序使用无组件上传,自动创建组id目录-用户id目录-用户名目录。删除用户文件即删除用户所上传单个文件;删除用户即删除用户id目录(包括此目录下所有目录-文件);删除组即删除组id目录(包括此目录下所有目录-文件);目录创建删除需使用fso组件;图片水印使用GflSDK组件
使用session两个(session(\为用户,session(\为管理)。 2.3 部分模块的设计及编码 (1)用户注册模块的设计与实现
功能:用户通过该界面输入自己的基本信息,以便登陆系统。用户的基本信息会
保存在数据库中。在输入过程中,如果输入有误,系统会出现提示信息。
输入:名称,密码,重复密码,OICQ,邮箱,性别,年龄。 处理:输入用户资料,在reg.asp页面由HTML构造出用户输入表格。用户在相应的位置输入个人资料,按下“注册”就将数据提交到check.asp页面中。获取数据。读取form表单提交的数据,检查用户的输入是否符合规范。如果不符合规范就给出错误信息。连接数据库。连接数据库,以用户登陆名作为检索条件,创建记录集。若记录集不为空,说明该用户已经存在,给出提示,重新输入;若记录集为空,则说明该用户名还没人使用,将用户信息插入数据库。相关代码见附录。 (2)用户登录模块的设计与实现
登陆模块需要涉及到登陆界面的安排设计,查询数据库的password表(密码表),同时将有关数据记录到log表(日志表),还需要有用户错误操作的提示信息。
功能:获取从reg.asp页面传来的数据,检索User数据表,核对用户名和密码,
24
第四章 在线考试系统的设计
如果该用户名和密码存在,显示登陆成功,否则进行注册处理。
输入:用户名和密码。
处理:从数据表中获取输入数据判断是否为空,空则重新输入。检索用户数据表,查看用户是否存在。
输出:登陆成功页面。
处理:在各个功能中,都是通过超链接进行信息的输出。
3. 在线考试系统的数据库设计
在进行数据库的架构时,一般要遵循以下的规则: (1).尽量减少数据的冗余性和重复。
合理的数据库表的设计应该是在满足需求的前提下,使数据的重复量小,应尽量按照关系数据库系统理论方法设计一个数据库,减少数据的冗余。 (2).结构设计与操作设计相结合。
在设计数据库时,有时为了编程实现的简洁和思路的清晰,往往故意增加一些数据的冗余。这虽然有悖于传统的关系数据库理论,但是考虑到查询与统计的方便,对编程的实现有很大的好处,往往采用这种方法。 (3).数据结构具有相对的稳定性。
数据结构的相对稳定性,可以作为新,旧信息系统转换的依据。根据系统功能设计的要求及功能模块的划分,对于系统信息数据库,可列出以下数据项和数据结构: (1)名称:用户信息表,如表4-1所示(user)
表 4-1 用户信息表
用户数据表包括ID,Uusename,Pwd,Sex,Age,Address和Mail。 字段名称 ID Uusename Pwd Sex Age Address Mail
类型 自动编号 文本 文本 文本 数字 文本 文本
25
主键 Yes Yes No No No No No
非空 Yes Yes Yes Yes Yes Yes Yes