现代信息技术的发展,使得基于WEB技术的网络教育平台成为现代教育技术改革与发展的方向。本文就根据现已存在的问题,对网络课程学习系统做了全面的分析和整体的介绍。介绍了ASP+ACCESS技术开发该系统的子系统的整个过程,即自适应网络课程学习导航系统。该系统主要利用了ASP强大的网络数据库访问技术,实现了网络学习的自适应性。系统设计并实现了模块导航、知识点检索导航、知识点关联导航和帮助导航等多种导航。这些导航各自发挥了不同的作用与功能。知识点检索导航和知识点关联导航主要根据知识点之间的联系,动态的显示给用户不同的知识点内容。这在一定程度上,提高了用户的学习效率和学习积极性。并以C语言为实例进行了系统实现。
这个系统能够满足用户学习知识的效率与轻松容易度,同时导航的自适应性使用户不会在学习的旅途中显的盲目,甚至会迷失方向。大大满足了用户学习的个性化,这些将会吸引大量用户对本系统的兴趣与爱好。并且此系统操作简单,在操作方面都会有各种导航进行提示,比如知识点链接导航、帮助导航、检索导航等,不会使用户不知何处下手,只要是懂得上网和识字的用户都能够对本系统操作的游刃有余。
同时我们所开发的自适应网络学习系统,它具有以下特点:
① 实用性:为网上学习提供了方便;
② 操作简单:本系统适用于不同的使用者,包括教师和学生,同时系统并不复杂和烦琐,操作简单易行。
③ 代码可读性好:文中的代码都是利用ASP脚本语言进行编写,简洁易懂。
本系统有效的实现了用户在网上学习的功能,图2.1是本系统应用框架示意图。
自适应网络课程学习系统主要提供了网上学习的平台,其主要功能如下:
●通过用户注册可以对用户的基本情况和信息有一个初步的了解,同时初始化用户学习状态与用户学习记录。
● 进入系统,系统通过用户记录展现用户学习级别与文章难度相匹配的知识点,从而实现了用户进行网上学习的个性化与自适应性特征,同时通过教学大纲导航,用户可以进行学习自己所要掌握的知识点,并可进行相应的在线测试来了解自己对知识点的掌握程度。
● 通过测试结果改变用户的学习状态与学习记录,对用户的状态进行管理。当用户再次登录时,系统会自动进行更新,实现用户学习的个性化。
● 通过知识点链接导航使用户轻松的在页面之间进行跳转,不至于在浏览过程中迷失方向,从而提高学习效率,促进学习进度。
● 在用户进行某一知识点的学习时,还有相应的知识点分类导航对用户进行指导。这些知识点和用户所学知识具有相同的关键字,它们之间可能存在某些关联与联系。这样便于用户对此类知识的查找,同时也会扩大用户的知识面。
● 通过知识点搜索导航,用户可以直接进行所要学习知识点的查找。当你对所要查找的知识点了解比较少时,你可以进行模糊查找,而你知道的比较详细的话,可以进行精确查找。
● 通过讨论区使用户之间进行实时讨论与交流,便于知识的互相传播,同时调用用户的学习积极性,交接更多学习的朋友 。
用户模型则可以记录所有不同用户的特征以及在学习中的不同学习行为信息。设计用户模型的目的就是为了给用户提供自适应的个性化服务。本系统的用户模型的特点是模型分为动态和静态两部分,两部分相互作用共同完成建构个性化的学习内容和动态导航的任务。用户模型可分为以下四部分,如图2.2所示:
个人信息是用户登录系统的前提条件,通过对用户个人信息的管理,使系统对用户有个整体的了解,同时根据不同的用户信息来显示不同的知识点学习内容;互动信息的记录,便于导航的正确指引以及实现其个性化的学习目的;用户的学习记录,它用来记录学生的掌握情况,主要目的是为智能导航服务的,为以后的个性化知识导航提供基础。
2.4系统导航功能模块介绍
在系统分析的基础上,结合用户的学习特征和学习状态,以及对现有网络课程学习系统的观察,得出本系统的功能模块结构图,此模块共分为三层结构,各结构之间紧密相连,共同建构了自适应网络课程学习导航系统。具体功能模块如图2.3所示。
模块导航是指由一些标志性短语建立起的超链接,如“教学大纲”、“学习方法”、“讨论区”、“在线测试”等,每个短语连接一个子模块,完成特定的功能,将一系列这样的超链接排列于每个页面的固定位置,以便随时进入各个子模块。还可以设置下拉式列表框,学生可以选择列表内所列内容。
模块导航帮助学生进入系统后,对系统结构有一个整体的认识,清晰的模块导航可以帮助学生容易的找到自己所要了解的知识,因此模块导航是本系统设计的基础。模块导航的超链接实现了界面与界面之间的跳转,将各界面之间有效的联系起来,为用户提供了方便。部分模块的简单介绍如下:
⑴教学大纲模块:教学大纲是网络课程学习系统所要进行传教内容的主要提纲,任何一个网络学习系统,都会有自己的教学大纲,这是系统所包含的主要内容也是用户所要学习的主要课程。通过此模块,用户可以根据自己的所需来选择学习内容,达到因人而议的学习目的,而不必局限于课堂上循规蹈矩的教学方案。教学大纲模块中会涉及到一定的关系,如:父子关系或是兄弟关系、前提后续的关系等,这些关系主要体现了课程章节的相互联系。
⑵学习方法模块:学习方法模块是一个静态模块,静态的显示给用户某一课题的学习方法与最佳的学习途径。
⑶讨论区模块:讨论区模块会在一定程度上调动用户的积极性,同时可以通过讨论区,用户之间可以相互认识,互相学习。有时还可以及时解决在学习过程中遇到的问题与困难。讨论区的设计分为上下两帧来实现,其中上一帧显示当前讨论信息,而下边一帧为接收用户内容的发布区。用户提交谈话内容的时候,上面一帧的谈论信息将会被更新。更新的方法采用让客户端定时刷新的方法。
⑷用户登录导航模块:用户登录导航模块是用户进入系统的直接入口,它指引用户的注册与登录,模块中的各种信息是对用户进行验证的凭据。登录导航使用户成为注册用户,享受更多的服务。
2.4.2 检索导航介绍
检索导航拥有多种检索功能,用户可以根据知识点名称、知识点内容、知识点作者以及编辑姓名进行检索,并且用户还可以根据知识点的分类(具体知识点)进行检索,同时还可以加入关键字,缩小检索范围,更确切的找到用户想要了解的内容。在检索导航中,多种种类的限制使用户在检索时可以进行模糊搜索和精确搜索两种搜索方案。当用户对所要查找的东西不太了解时,即可进行模糊搜索,相反如果用户对所要查找的东西十分确定,即可进行精确搜索。检索导航在系统中作为一种有效的途径帮助用户搜索各种知识点。在每个页面下都有个知识点搜索,即:检索导航,这样方便用户的使用,减少了返回某一特定页面的麻烦。检索导航在任何系统中都占了举足轻重的地位,它是系统不可缺少的功能模块,使用户可以更清楚的了解系统里所包含的内容
2.4.3帮助导航介绍
在任何系统中,同样也都会有一个帮助导航,帮助导航对初次使用本系统的用户有一个指导作用,系统设置有专门学习帮助选项,其中包含对课程特点的介绍、相关插件的要求以及课件的使用特点等。还有一些课件会在适当的位置给出信息提示帮助等。
2.4.4 分类导航介绍
分类导航包括主题分类导航和知识点关联导航,主题分类导航主要是根据基础知识、基本概念、程序设计、函数、学习方法进行分类。主题分类的目的是将知识整体化,具体算法和思想概念分类显示,达到所见即所需的目的,同时主题分类的栏目导航中还给出了各知识点的章节分类,给用户的学习提供更多的方便。知识点关联导航是根据知识点标题的关键字进行分类,即当我们添加某些文章时,我们同样添加了这些文章标题的关键字,方便的是,当用户阅览某篇文章时,那么关键字中包含此文章标题内容的文章都将显示在相关知识点关联导航中。知识点关联导航是用户学习过程中不断扩展知识面的有利助手,而主题分类是用户在学习过程中遇到模糊问题查询的有效途径,两者相辅相成,互相帮助,共同达到帮助用户学习的目的。
2.4.5 自适应学习状态导航介绍
对每个用户来说,学习状态各不相同,根据用户的学习状态,系统中会显示相应状态的知识点,学习状态分为初级、中级、高级。用户可以在注册时自己选择自己的学习状态,同时在学习过程中,根据用户对所学知识点的测试得分,对用户的学习状态有一个调整。当用户在次登录时,系统将会调用用户表中的状态信息,从而显示用户相应的状态知识点。这种自适应的学习状态导航使用户直接投入到学习中去,避免了许多不必要的查找与选择。当然系统中,还有一些推荐学习知识点和热点学习知识点,这也看用户对知识点的学习兴趣来自行安排,方便了用户的学习过程。
系统根据测试得分与知识点通过域值的比较自动更新知识点理解程度字段内容。然后,该字段值又用于更新知识点学习状态的值。此外,为充分尊重用户自我评价的权利,如用户不想通过知识点的测试但又自认为已掌握该知识便可修改理解程度字段的值,但不可以修改测试得分的值,这样一来既保证了数据的真实一致性,又确保了用户模型的灵活性。这也是自适应学习状态导航的一个优点所在。
2.5 小结
本章主要分析系统的各个组成部分,并给出了具体的逻辑设计。用户模型主要是简单的介绍了用户的特征与智能学习状态的相关关系。系统导航主要描述了各导航系统的用途,设计方法以及一些相应的策略。该章主要是以全局的整体的角度描述整个系统的功能和框架,它所涉及的理论分析和设计为后面的算法设计和实现打下基础。
数据库的需求分析
根据系统需求,可以列出以下数据项和数据结构:
●用户信息管理:包括用户名称、密码、注册时间、登录次数、电子邮箱等;
●用户学习记录:包括测试得分、学习状态、理解程度等;
●学习状态:包括学习状态、知识点编号、用户编号等;
●知识点:包括栏目ID、父栏目ID、栏目链接、相关导航等;
●文章知识:包括文章名称、文章内容、作者、关键字等;
3.2 后台数据库的配置
本系统的开发是在 windows xp 下开发的,开发数据库使用的是Access xp。具体配置步骤如下:
- 新建几个空数据库,分别取名为boob8u8.mdb,yslmv4.mdb,bbs.mdb。
- 在boob8u8.mdb中建表article,articleclass,special,status,
userstudy等数据库表。在 yslmv4.mdb中建表user,topic,admin等数据库表。在bbs.mdb中建表bbs数据库表。
- 完成数据初始化工作,将表中各字段与域值添加进去。
- 由于考虑到程序移植后的路径问题,所以本系统利用Server对象的Mappath方法,将虚拟路径转化为实际的物理路径。从而进行数据库的连接。这种连接方法的好处就是程序移植到别的服务器上后,不必在设置数据源,马上就可以使用。
- 具体的表结构设计如下描述所示。
3.3 数据库表结构设计
数据库表结构设计如以下各表所示:
表3.1 user表(用户信息管理表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
UserID |
用户编号 |
自动编号 |
4 |
主键 |
||
Username |
用户昵称 |
文本 |
10 |
|||
useremail |
邮箱 |
文本 |
16 |
|||
userpassword |
密码 |
文本 |
10 |
|||
learnstate |
学习状态 |
文本 |
10 |
|||
sex |
性别 |
文本 |
50 |
√ |
||
adddate |
注册时间 |
时间/日期 |
50 |
|||
logins |
登录次数 |
数字 |
20 |
√ |
||
oicq |
|
数字 |
20 |
√ |
||
lastlogin |
最后登录时间 |
时间/日期 |
||||
question |
密码提问 |
文本 |
50 |
√ |
||
answer |
问题回答 |
文本 |
50 |
√ |
注:用户信息管理表记录了用户的各种信息,用户昵称和密码是用户登录时的身份验证机制学习状态描述将为用户提供有效的学习路径,这不仅有利于管理员对用户的管理,同时也利于用户自己的管理与维护。
表3.2 status表(学习状态表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
UserID |
用户编号 |
数字 |
4 |
主键 |
||
classid |
栏目编号 |
数字 |
4 |
|||
learnstate |
学习状态 |
文本 |
10 |
注:提示图表是为用户提供一种自适应的学习状态提示信息。
表3.3 userstudy(用户学习记录表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
userID |
用户编号 |
数字 |
4 |
主键 |
||
username |
用户昵称 |
文本 |
10 |
|||
classid |
栏目编号 |
数字 |
4 |
|||
scores |
测试得分 |
数字 |
4 |
|||
underslevel |
理解程度 |
文本 |
10 |
注:用户学习记录表记录了用户的一些学习情况,这将成为用户学习状态变化的前提依据。理解程度记录了用户对知识点的理解难易情况,这有利于管理员对知识点的添加,删除与修改。
表3.4 article表(文章知识表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
artileID |
文章ID |
自动编号 |
10 |
主键 |
||
specialid |
所属专题ID |
数字 |
10 |
|||
title |
文章标题 |
文本 |
10 |
|||
Content |
文章内容 |
文本 |
||||
author |
作者 |
文本 |
10 |
|||
key |
关键字 |
文本 |
10 |
|||
hits |
点击次数 |
数字 |
50 |
|||
updatetime |
更新时间 |
时间/日期 |
||||
hot |
是否是热点文章 |
是/否 |
||||
ontop |
是否固顶 |
是/否 |
||||
classid |
所属栏目ID |
数字 |
10 |
|||
difficute |
难度级别 |
文本 |
10 |
|||
test |
测试题 |
文本 |
注:文章知识表贯穿了整个系统,文章标题,文章内容,作者,关键字将作为搜索导航的前提条件,同时系统可以在表中搜索文章标题来显示文章内容,热点文章和固顶在系统的相应位置将会有所显示。
表3.5 articleclass(知识点表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
classid |
栏目ID |
数字 |
10 |
主键 |
||
parentid |
父栏目ID |
数字 |
10 |
|||
parentpath |
栏目路径 |
文本 |
20 |
|||
depth |
栏目层次 |
数字 |
10 |
|||
rootid |
根栏目ID |
数字 |
10 |
|||
child |
子栏目数 |
数字 |
10 |
|||
previd |
同级的上一栏目ID |
数字 |
10 |
|||
nextid |
同级的下一栏目ID |
数字 |
10 |
|||
iselite |
是否为推荐栏目 |
是/否 |
||||
showontop |
是否顶部导航显示 |
是/否 |
注:知识点表对各知识点以及知识点之间的关系有了一个系统的统计和管理,同时根据各种ID可以方便的查找个知识点,父知识点和子知识点。从而在系统中形成树型结构与父子结构。这使用户对知识点有一个整体的逻辑概念,此表与文章知识表相互联系从实现文章与知识点的对应。
表3.6 special(主题分类表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
specialid |
主题编号 |
数字 |
4 |
主键 |
||
specialname |
主题名称 |
数字 |
4 |
|||
orderid |
排序ID |
数字 |
4 |
|||
readme |
主题说明 |
文本 |
50 |
注:主题分类表是为了在页面中根据不同主题显示具体内容而建立的数据表,数据表中的主题名称将连接各种属于本主题的知识点。方便用户的查找与使用。
表3.7 Temporary(中间临时表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
userID |
用户编号 |
数字 |
4 |
主键 |
||
classID |
知识点编号 |
数字 |
4 |
|||
scores |
测试得分 |
数字 |
10 |
注:临时表是为了保存用户对知识点学习的一些记录,以便在达到某种要求时来改变用户的学习状态。临时表只是一个暂时性的表,它根据不同用户的学习情况在不断的变化。
表3.8 bbs(讨论记录表)
列名 |
意义描述 |
数据类型 |
大小 |
可否为空 |
默认值 |
备注 |
Bbs_id |
讨论文章编号 |
数字 |
4 |
主键 |
||
title |
讨论文章主题 |
文本 |
100 |
|||
body |
讨论内容 |
备注 |
||||
layer |
层数 |
数字 |
4 |
|||
Parent_id |
父文章编号 |
数字 |
4 |
|||
child |
回复文章数 |
数字 |
4 |
|||
hits |
点击数 |
数字 |
4 |
|||
username |
讨论者昵称 |
文本 |
20 |
|||
Submit_date |
讨论时间 |
日期/时间 |
注:讨论记录表主要是为了保存用户讨论时的一些相关记录。存储了用户的名字,讨论主题,讨论内容以及讨论时间等。同时也方便了用户对讨论内容的读取。
3.4 E-R模型
为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,它反映了用户的现实环境,且与在软件系统中的实现方法无关。
最常用的表示概念性数据模型的方法,是实体—联系方法(Entity—Relationship Approach)[16]。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含“实体”,“联系”和“属性”[15]。在本系统中,用户信息与学习状态信息、学习记录信息之间是一对一联系(1:1),而用户信息与知识点信息,知识点信息与教学策略信息之间的关系是一对多联系(1:N)如图3.1、3.2所示。在本系统数据表中用到的主键有:
用户信息管理表中的UserID字段(用户编号);
知识点表中的classID字段(栏目编号);
文章知识表的articleid字段(文章编号);
其他表中的主键均为UserID字段(用户编号);
参照完整性是保证在主键(被参照表中)和外键之间的关系总是得到维护。对两个相关联的表(主表和从表)进行操作数据的插入和删除的时候,通过参照完整性保证它们之间的数据的一致性。
用户自定义完整性,不同的数据库系统根据起数据应用环境的不同,往往还需要一些特殊的约束条件。它反应某一具体应用所涉及的数据必须满足的语义要求。对于用户自定义完整性可以通过数据库设计,也可以通过程序代码来实现。由于程序设计的灵活性和便捷性,在整个系统的调试过程中对于不完善的地方只需对代码进行修改而不用更改数据库,因此在系统中采用了程序代码来实现数据库用户自定义完整性的约束。
本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点学习课程的内容。系统工作原理图如图4.1所示:
系统的工作流程包括以下一些关键环节:
(1)用户注册。在每一个用户使用该课件之前需要注册,系统会将用户输入的信息记录到用户模型中。
(2)用户登陆。用户输入用户名和密码后,系统验证是否正确并决定用户是否能进入课件进行学习。
(3)个性化学习内容自动生成。根据用户注册时输入的学习特征和学习过程中的学习记录,从用户模型和知识领域模型中读取相应信息合成网页内容。
(4)用户信息管理。其中包括对用户信息的查询和修改,系统会根据修改后的用户信息重新自动合成网页内容。
(5)在线浏览。这是用户学习课件内容的主要方式,浏览中的动作主要是点击网页中的超链接,系统会动态跟踪用户的行为更新网页内容和导航提示。
(6)导航搜索。为帮助用户更快更方便的找到所要了解的知识点,系统根据知识点不同的特征,比如说作者的不同,主题的不同或是关键字的不同等进行搜索,使用户一步到位,直接找到自己所学知识点。
以上各个环节相互联系,前后影响。对于用户的每一项操作,系统都会自动读取数据并更新其中用户模型的数据,并将更新后的数据通过课程学习系统网页呈现出来。
4.2系统数据流图
数据流图(Data Flow Diagram,简称DFD)能精确地在逻辑上描绘系统的功能、输入、输出和数据存储等,摆脱了物理内容,是描绘系统逻辑模型的最主要的工具。
经过系统详细调查分析以及用户需求分析,我们得到了新系统的数据流图。
如图4.2用户登录数据流图:
图4.3学习状态改变数据流图:
通过前面几章的分析,我们已经知道用户信息是个性化学习导航的基础。由用户模型可以了解,个人信息是用户登陆个性化学习系统的入口;用户学习特征则是确定适合用户学习目标的课件网页内容(包括素材的类型和难度)的基础;学习记录则是根据用户的学习进度动态更新提供内容、学习状态提示的必要条件。所以设计好用户信息输入算法对后面的课件智能导航有着重要作用。用户信息是在第一次使用课件注册时输入的。
该算法中牵涉的数据有:用户数据库中的用户信息管理表、用户特征表、用户学习表。算法主要功能是通过接收用户输入或选择的信息初始化用户模块中有关信息,以下便是该算法[16]所涉及的数据结构和详细过程。
输入:1)用户输入的信息,如姓名,密码等。
2)用户选择的信息,如用户学习状态等。
输出:用户模块信息初始化。
算法的主要步骤如下:
(1)初始化,包括打开数据库User、建立相关控件与数据库的连接等;
(2)将用户信息管理表、用户状态表各添加一条记录;
(3)读取各文本控件或列表控件中用户输入或选择的信息到各表中对应的字段中;
(4)结束。
算法流程图如图4.4所示:
在用户登录系统后,用户可以根据知识点搜索进行所要学习知识点的检索。知识点搜索主要是从三方面进行查找,一是根据知识点主题,二是根据知识点类别,三是根据知识点的关键字。三方面的共同限制可以使用户查找到比较精确的知识点。 检索导航最重要的步骤就是要知道从何处抽取数据,如何判断检索条件,又是怎样在检索条件的基础上将信息显示给用户。在该导航实现过程中,用到的数据有文章知识表,显示的内容是从文章知识表数据库中调取出来。具体算法如下:
(1) 用户选取搜索内容,如知识点名称、知识点类别、关键字等,并进行提交;
(2) 从提交表单中提取数据,并进行相应判断;
(3) 连接数据库,建立记录集,用查询语句对表中数据进行查询;
(4) 将结果显示给用户;
(5) 结束;
算法流程图如图4.5所示:
知识点关联导航是分类导航的一个重要部分,当用户浏览某一知识点时,与此知识点相关的知识点将显示在相关知识点栏目中。这些知识点的相关性是根据它们所拥有的关键字进行判断的。无论用户点击哪一知识点,只要与此知识点具有相同关键字的知识点都会显示在页面上。这种自适应性方便了用户对一些相关知识点的查找与阅读。
知识点关联导航的主要步骤如下:
(1) 用户点击所要阅读的知识点。
(2) 建立数据库连接和记录集,在文章知识表中查询与当前文章具有一个或多个相同关键字的文章。
(3) 根据具有相同关键字这一条件显示相应文章标题。
(4) 将此文章标题链接到相应的文章。
(5) 结束。
算法流程图如图4.6所示:
用户登录成功后,页面中各知识点的显示内容是根据用户的学习级别进行判断的,用户学习级别的不同决定了不同的知识点内容。这种根据用户学习情况自适应的显示,有利于用户对知识点的掌握程度,同时随着学习的不断推进,用户可以相应的改变自己的学习级别,来学习更高一级的知识点文章,直到对整个课程的知识点有了深刻的了解与认识。
自适应网络课程知识点显示的具体算法如下:
(1) 用户登录系统。
(2) 建立数据库连接,查询数据库,读取用户信息管理表中的学习级别和文章知识表中的文章难度级别。
(3) 根据用户学习级别和文章难度级别进行判断。
(4) 在页面中显示用户的学习级别与文章难度级别相同的文章。
(5) 结束。
算法流程图如图4.7所示:
在后台数据库建立与整体设计的基础上,前端页面的设计与开发尤其重要,对于自适应网络课程学习导航系统来说,主要包括的页面模块有:用户注册模块、热点学习模块、推荐学习模块、知识点搜索模块、知识点分类导航模块、主题分类导航模块和讨论区模块等。在以下小节中,将对各模块做具体介绍。
在本系统中,将会有一些公用页面,即每个文件或部分文件都会用到的文件,在使用这些文件时,只需要一个包含语句‘<!--#include file="文件名"-->即可,这样大大减少了代码的冗余,同时也使编码简单,减少了许多工作量。主要的公用文件包括:syscode_article.asp文件、conn.asp文件、function.asp文件、config.asp文件等。
(1)syscode_article.asp文件
syscode_article.asp 文件是对系统栏目和文章专题与章节的整体管理。此文件中包括文章内容与知识点的如何显示,以及用户的阅读权限,栏目的显示效果,文章的分页效果,最新文章显示函数,推荐文章显示函数,最热点文章显示函数等等。此文件基本上贯穿了整个系统,它包含在各文件中,是系统的主要部分与精髓。
(2)conn.asp 文件
对于程序中建立数据库连接和关闭数据库连接的操作,最好放在一个包含文件中,这样便于维护和修改。前面一部分为建立数据库连接的语句,其中conn为建立数据库连接的对象,connstr为数据库连接字符串,它表明了数据库连接的物理路径以及采用的数据库类型,这里采用的是ACCESS数据库。用这种方法连接数据库的目的是防止程序被移植后,数据库的路径出现问题或是还得设置数据源。
<%
dim conn
dim connstr
dim db
Set conn = Server.CreateObject("ADODB.Connection")
Connstr="Provider=Microsoft.Jet.OLE DB.4.0;Data Source="
&Server.MapPath("boob8u8.mdb")
conn.Open connstr
sub CloseConn()
conn.close
set conn=nothing
end sub
%>
其他一些公用文件的代码这里将不一一列举。
(3) function.asp 文件
function.asp 文件是各种函数的集合文件,主要包括了检查email地址合法性函数Isvalidemail(),求字符串长度函数Strlenth(),显示错误提示过程WriteErrMsg(),显示本站公告信息过程ShowAnnounce(),显示用户登录表单过程ShowUserLogin(),显示知识点搜索表单过程ShowSearchForm()等等。这些函数或过程放在同一个ASP文件里,便于其他asp文件的调用,同时易于修改和管理。
(4) config.asp 文件
config.asp 文件是各种常量的声明文件,这样做的目的是可以在程序的任何部分使用该常量来代替某一 特定的数值,从而方便了编程。例如:
<%
Const SiteName="自适应学习系统" '网站名称
Const SiteTitle="自适应学习系统" '网站标题
Const SiteUrl="http://www.ltcm.cn" '网站地址
Const LogoUrl="images/logo.gif" 'Logo地址
Const BannerUrl="x/top_2.swf" 'Banner地址
Const WebmasterName="miao" '站长姓名
Const WebmasterEmail="[email protected]" '站长信箱
Const Copyright="版权所有 Copyright© 2003-2004 <a href='http://www.ltcm.cn'>自适应学习系统</a>"
%>
在编程过程中,可以直接使用常量sitename来代替字符串"自适应学习系统"。
用户注册界面如图4.8所示。带*号的为用户必须填写的内容,这便于对用户的管理以及用户的安全性。用户注册页面的信息是用户进入系统的有利凭证。该页面涉及的主要asp文件为user_reg.asp文件。
分类导航的简单设计使用户一目了然,他们带有不同的超链接,不同页面显示不同的主题内容。分类导航提供了两个框架:主题分类和知识点分类。两种导航操作起来都比较简单,适合各种层次的用户使用和操作。分类导航的界面如图4.9、4.10所示:
此主题分类导航模块包含了各种知识点,知识分类清晰可见,主要由showspecial()函数和showclassnavigation()函数来编译,其中showspecial()函数用来编译专题栏目,而showclassnavigation()函数用来编译栏目导航。其中涉及到的其它文件还有syscode_article.asp文件、function.asp文件、conn.asp文件。
知识点分类导航模块方便了用户的多方面查询,使用户可以在某一知识点下了解到更多的相关知识,得到一举多得的目的,同时能更好的扩充自己的知识面,了解自己在其他知识点中的不足,取其精华,使自己更上一层楼。此模块涉及到的 ASP文件有syscode_article.asp文件,function.asp文件和conn.asp文件。
在syscode_article.asp文件中,主要涉及的函数为showcorrelative()函数,此函数是知识点显示的主要函数。在showcorrelative()函数中包含了function.asp文件中的gottopic()函数,gottopic()函数是一截取字符串的函数,它的返回值是截取后的字符串。
同时为了数据库建立连接,conn.asp文件是必不可少的。
未完待续。。。