基于WEB的网上排课系统.doc_第1页
基于WEB的网上排课系统.doc_第2页
基于WEB的网上排课系统.doc_第3页
基于WEB的网上排课系统.doc_第4页
基于WEB的网上排课系统.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

基于 web 的网上排课系统 院(系)、部: 学生姓名: 指导教师: 职称 专 业: 班 级: 完成时间: i 摘 要 现代信息技术的发展,使得基于 web 技术的网上排课系统成为技术改革与发展的方 向。本文就根据现已存在的问题,对网上排课系统做了全面的分析和整体的介绍。介 绍了 asp+access 技术开发该系统的子系统的整个过程,即网上排课系统。该系统主要 利用了 asp 强大的网络数据库访问技术,实现了网上排课的方便性。本文是在参考各 种市场上流行的排课软件的基础上尝试性地提出了一种大学排课算法,并开发而成小 型自动排课系统。排课问题的研究主要是解决各种教学资源如教室、教师的合理有效 利用问题,避免教师、班级在上课时间、地点上的冲突,使排课时间分配均匀。在算 法设计中为排课操作设置了不同的优先级,逐级排课,有效地降低了排课时间冲突的 几率,提高了排课的成功率。另外,系统为教师和教室分别设计了排课级别,从而能 够避免教学资源过于集中地使用,实现均衡化利用。 论文主要介绍了本课题的开发背景、系统分析、数据库设计和系统的设计与实现。 关键词 asp;access;自动排课,数据库,课程表 abstract with the development of information technology, the web-based education platform has been a direction of modern education. according to the problems existing at present, the paper gives an overall analysis and introduction of internet courseware system. at the same time, it gives all the procession of developing the subsystem using asp+access technology. through the strong ability of asp+access technology, it realizes online studying adaptively. the system designs and realizes different navigation strategies such as module navigation, searching navigation, knowledge classifying navigation and helping navigation. these strategies have different functions. searching knowledge navigation and knowledge classifying navigation are mainly based on the relations of the knowledge and ii then supplies different knowledge to users. so that it improves users learning efficiency and study enthusiasm to a certain extent. the system is also realized using the course example “c programming”. the paper mainly introduces the developments context, system analysis, database design, the system design and implementation. key words asp; access ; course automatic ; database; curriculum schedule iii 目 录 1 绪 论1 1.1 课题背景1 1.1.1 网上排课系统的现状1 1.1.2 网上排课系统对导航系统的新要求.2 1.2 本课题的研究意义3 1.3 相关技术介绍3 1.3.1 浏览器/服务器模型.3 1.3.2 asp 技术的介绍 .3 1.3.3 ado 访库技术介绍4 2 系统分析5 2.1 系统的可行性研究5 2.2 系统需求分析6 2.2.1 用户需求分析6 2.2.2 系统设计目标分析.6 2.3 用户模型的介绍6 2.4 系统导航功能模块介绍7 2.4.1 教师管理介绍.8 2.4.2 班级管理介绍.8 2.4.3 课程管理介绍9 2.4.4 教室管理介绍.9 2.4.5 时间段管理介绍.9 2.5 小结10 3 数据库设计11 3.1 数据库的需求分析11 3.2 后台数据库的配置11 3.3 数据库表结构设计11 3.4 e-r 模型.14 4 系统详细设计与实现16 4.1 系统工作原理介绍16 iv 4.2 系统数据流图17 4.3 系统的实现算法17 4.3.1 用户信息初始化算法17 4.3.2 检索导航算法18 4.3.3 安排课程关联导航算法19 4.3.4 网络课程安排课程显示算法21 4.5 前端页面的设计与实现21 4.5.1 系统公用页面.22 4.5.2 用户登陆页面.23 4.5.3 管理首页模块.24 4.5.4 教师管理模块.24 4.5.5 班级管理模块.26 4.5.6 课程管理模块28 4.5.7 教室管理模块 28 4.5.8 时间段管理模块.28 4.5.9 课程管理模块 28 4.6.0 密码修改模块 28 5 结束语36 参考文献37 致谢38 附录39 5 1 绪 论 1.1 课题背景 未来的教育和学习将是在网络环境下进行的或者是通过网络实现的,而现 今关于网络教育怎么做,将关系到以后的发展。目前,国内开展网络教育试点 已一年有余,而网络教育究竟应该怎么做,都在探索、研究之中。网上排课系 统打破了传统学校教育的课堂授课模式,同时也突破了传统远程教育无法实施 有效的沟通和交流的局限,它要求建立一种全新的教学与学习模式。这种教学 模式要求教师转变传统的教学观念,从知识传授者到学习帮助者、促进者,改 变传统的课堂授课活动,从课堂授课转变网络教学课件制作、网上答疑、网上 布置/批阅作业、网上组织学生的自主学习活动、提供学习资源等;同时这种教 学模式也要求学生改变传统的学习观点和学习方法,从主要接受教师讲授为主 转变为自主学习为主,从以课堂听课为主的学习活动转变为网上听课、课后答 疑、讨论、测验练习、浏览相关课外资源、笔记记录等一系列的自主学习活动。 要实现这种教学模式、教学(学习)活动的大转变,有两个因素是至关重要的, 首先是从教育观念上转变,从重视“教”到重视“学” ,从“行为主义” 、 “认知 主义”等指导“教学”的教学理论转变到“建构主义”等指导“学习”的学习 理论,要进行教师在教学过程中的角色从新定位的理论与实践研究;其次,要 有一套能够很好地支持网上教学(学习)的支持工具,要能够使教师能很方便 的实施新模式下的教学活动,学生能够很方便在网络上进行学习。 1.1.1 网络排课系统的现状 传统的人工进行排课,最令人担心的问题就是出现教室资源冲突或教 师资源冲突的情况,而且工作繁琐,工作量巨大,尤其是在给大学校园进行排课 时出现的问题更多。市场流行的排课系统很多,比如:相似排课 cis,plsn 智 能排课系统,正信华课程安排管理系统,排课博士,排课无忧等等,这些排课软 件在解决排课问题时大多数采用的算法都是回溯算法,排课的效果也都很好。 利用回溯算法解决问题的思路是先选择某一可能的线索进行试探,每一步试探 6 都有多种方式,将每一方式都一一试探,如有问题就返回纠正,反复进行这种 试探再返回纠正,直到得出全部符合条件的答案或是问题无解为止。这种解决 问题的方法就是回溯法。回溯算法对空间的消耗较少,当其与分枝定界法一起 使用时,对于所求解在解答树中层次较深的问题有较好的效果。但应避免在后 继节点可能与前继节点相同的问题中使用,以免产生循环。 1.1.2网上排课系统的趋势 计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机的 优势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减 负” 。教师设置好学校基本情况及排课要求,让计算机排出课程表,适度调课后 的课表就能满意地应用于新的学期。随着计算机软件技术的不断发展,排课效 率高、出错概率低的排课算法也必将会逐渐趋向成熟,功能更加完善的排课系 统也将应运而生。 1.2 本课题的研究的目的 对于每个学校来说,每到一个新学期的开始,首先要做的就是如何为该学 期安排合理而又实用的课程表,而课程安排又涉及年级、班级、教师、课程、 教室等方方面面的因素,如何合理地利用教室、教师等资源,如何解决好合班 时班级间的时间冲突,给每个班排课时,如何避免时间、场地冲突等,排课时 还要充分考虑到课程的均匀性(即课程安排尽可能均匀,如英语一周 3 节,若 一周上 5 天的话尽可能每隔一天安排一节课)和教师授课的均匀性(如张教师 一周 5 天共上 15 节,则尽可能安排每天 3 节课,且 3 节课不连续安排在如 123 或 234 节等) 。自动排课系统主要完成基本信息管理、数据处理、数据输出等功 能。 1.1.3 本系统的特点 小型自动排课系统与目前流行的排课系统不同之处在于排课算法的设计上, 本系统没有采用回溯算法,虽然它在实际使用中可能不如已有的各种排课软件, 但它是本人在应用程序开发和排课算法设计中的一次尝试,并且在今后我会更 进一步对此算法进行修改,使它在排课的效果和效率方面有一定的突破。 它在算法上具有如下特点: 首先,排课时设置了排课优先级:优先级最高的是公共课,因为公共课一 7 般合班上课的班级个数较多,最容易产生时间冲突,优先级次之的是每周平均 课时最多的课程,同样,因为平均课时多,选择时间时进行排课冲突的机会就 大,最后是总课时最多的课程。 其次,产生的时间是在教师和所有上课的班级共同的空闲时间集合中产生, 并且尽量保证时间选择上的均匀性,防止一周几次课集中于某一段时间。 再次,对教师的选择,一方面考虑到教师的时间限制(由教师确定一学期中第 几周,每周哪天哪节课没空) ,另一方面,对教师设置排课级别,随着排课时间 的增多,级别值就增大,从而再次被选择排课的几率就减小(此时要求同一门 课程有多个教师讲授) 。 最后,教室也设置了排课级别,同教师类似,这样便可以保证教室资源会得 到合理而均匀有效地利用。 1.3 相关技术介绍 1.3.1 浏览器/服务器模型 www 是构建在浏览器/服务器(b/s)模型以及 http 协议的基础上的,其运 作模式可以描述为:请求处理应答。 从浏览器提交的请求通过 web 服务器给应用程序服务器,由它调用相关的 网页应用程序进行处理,处理的结果由网页交给 web 服务器,web 服务器把这 个网页作为对请求的应答发还给浏览器。 至于对提交的信息如何处理,就交由网站的开发人员编写相关的网页应用 程序来决定反馈到浏览器的内容;如果需要对数据库进行访问,开发人员还可 以利用应用程序服务器所提供的接口对其进行访问。 网页内容的动态发布是 web 应用程序的主要实现方法,通常这种方法同服 务器端提供的 www 服务技术密不可分。一般来说,在 internet 服务器上可以通 过多种途径实现动态内容的发布,最常见的技术包括 cgi、isapi 和 asp 等10 12。 1.3.2 asp 技术的介绍 asp (active server pages)是未经编译的开放应用软件,它使用户能够利 用 html 和 active 强有利的功能创建,功能强大的,与平台无关的 web 应用系统。 因此,可以充分利用全球所提供的广泛互联。javascrip,vbscrip 都是利用基于 浏览器脚本语言,它们的功能很强大的,能让网页丰富多彩。 8 script(脚本)是由一组可以在 web 服务器或客户端浏览器运行的命令组合 而成,目前在网页编制上比较流行的脚本语言包括 vbscript,javascript。这 些脚本大都是在客户端运行,因此,客户端可以很清楚的取得脚本的内容。所 以,就安全性而言,这些客户端的脚本语言的确有危险10。asp 虽然具有脚本 语言的方便性,但由于他是在 web 服务器端运行,运行后再将运行结果以 html 格式传送至客户端的浏览器。因此 asp 与一般的脚本语言相比,要安全的多。 1.3.3 ado 访库技术介绍 ado(activex data objects)是一组优化的访问数据库专用对象集,为 asp 提供了完整的站点数据库访问解决方案。它可作用于服务器端,以提供含有数据 库信息的主页内容。通过执行 sql 命令,让用户在浏览器画面中输入、更新和删 除站点服务器的数据库信息。 ado 使用内置的 recordsets 对象作为数据的主要接口。ado 可使用 vbscript、jscrip t 语言来控制对数据库的访问,以及查询结果的输出显示。 ado 可连接多种支持 odbc 的数据库,如 access、sql server、oracle、info rmix 等。 在使用时,首先需在控制面板的 odbc 中建立相应的 dsn(数据源名) 。要选 择系统数据源名,指定所用的驱动程序,如“microsoft access“,在数据来源名称 中输入 dsn 名,并选定服务器和数据库10。 9 2 系统分析 2.1 系统的可行性研究 网上排课系统是通过计算机使用户与知识之间建立起紧密联系,此系统在 技术方面主要是采用现有的软件 asp、dreamweaver、acess 进行开发和研究的, 这些软件早已被广大用户熟悉和了解。 这个系统能够满足用户网上排课的功能,同时导航的自适应性使用户不会 在系统使用的旅途中显的盲目,甚至会迷失方向。这些将会吸引大量用户对本 系统的兴趣与爱好。并且此系统操作简单,在操作方面都会有各种导航进行提 示,比如安排课程链接导航、检索导航等,不会使用户不知何处下手,只要是 懂得上网和识字的用户都能够对本系统操作的游刃有余。 同时我们所开发的网上排课系统,它具有以下特点: 实用性:为网上学习提供了方便; 操作简单:本系统适用于不同的使用者,包括教师和学生,同时系统 并不复杂和烦琐,操作简单易行。 代码可读性好:文中的代码都是利用 asp 脚本语言进行编写,简洁易 懂。 本系统有效的实现了用户在网上学习的功能,图 2.1 是本系统应用框架示 意图8。 系统数据库 internet上的用户 网上排课系统 系统服务器 internet 图 2.1 系统应用框架图 从各方面的初步调查基础上,从建立新的网上排课系统的必要性和可能性 10 两个方面进行具体分析后,得出结论:开发新的网上排课系统是十分必要和可 行的。 2.2 系统需求分析 2.2.1 用户需求分析 需求分析是设计数据库系统的起点,它的分析结果是否准确地反映了用户 的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理 和实用。它的基本任务是回答“系统必须做什么”的问题。至此,本阶段的主 要任务有明确系统的开发目的,分析系统功能的具体要求,由此画出系统的数 据流图,以及描述数据流图的数据字典。 2.2.2 系统设计目标分析 网上排课系统主要提供了网上排课的平台,其主要功能如下: 通过用户注册可以对用户的基本情况和信息有一个初步的了解。 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编 辑功能。 数据处理:自动排课、课表修改、删除功能。 数据输出:查询教师、教室、班级课程表,报表打印教师、教室、班级 课程表。 通过安排课程搜索导航,用户可以直接进行所要学习安排课程的查找。 当你对所要查找的安排课程了解比较少时,你可以进行模糊查找,而你知道的 比较详细的话,可以进行精确查找。 2.3 用户模型的介绍 对于每个学校来说,每到一个新学期的开始,首先要做的就是如何为该学 期安排合理而又实用的课程表,而课程安排又涉及年级、班级、教师、课程、 教室等方方面面的因素,如何合理地利用教室、教师等资源,如何解决好合班 时班级间的时间冲突,给每个班排课时,如何避免时间、场地冲突等,排课时 还要充分考虑到课程的均匀性(即课程安排尽可能均匀,如英语一周 3 节,若 一周上 5 天的话尽可能每隔一天安排一节课)和教师授课的均匀性(如张教师 一周 5 天共上 15 节,则尽可能安排每天 3 节课,且 3 节课不连续安排在如 123 11 或 234 节等) 。 小型自动排课系统主要完成基本信息管理、数据处理、数据输出等功能,由于 排课算法复杂,而对于海量的数据,算法要求更高,再加上本人能力和时间的 限制,该系统更适用于数据信息量不是太大的排课,因此可以说只是一种试用 模型。 用户模型则可以记录所有不同用户的特征以。设计用户模型的目的就是为 了给用户提供自适应的服务。本系统的用户模型的特点是模型分为动态和静态 两部分,两部分相互作用共同完成建构的学习内容和动态导航的任务。用户模 型可分为以下四部分,如图 2.2 所示: 个人信息教室信息排课信息 用户模型 图 2.2 用户模型 个人信息是用户登录系统的前提条件,通过对用户个人信息的管理,使系 统对用户有个整体的了解,同时根据不同的用户信息来显示不同的安排课程学 习内容;教室信息的记录,用来记录教室的分配情况;排课记录,它用来记录 排课情况,主要目的是为排课功能服务的。 2.4 系统导航功能模块介绍 在系统分析的基础上,以及对现有网络网上排课系统的观察,得出本系统 的功能模块结构图,此模块共分为三层结构,各结构之间紧密相连,共同建构 了自适应网络课程学习导航系统。具体功能模块如图 2.3 所示。 12 网上排课系统 教 师 管 理 课 程 管 理 班 级 管 理 时 间 段 管 理 教 室 管 理 课 程 安 排 图 2.3 系统的功能模块结构图 2.4.1 教师管理介绍 教师管理是由添加教师信息和教师信息列表,每个短语连接一个子模块, 完成特定的功能,将一系列这样的超链接排列于每个页面的固定位置,以便随 时进入各个子模块。还可以设置下拉式列表框。 教师管理帮助管理员进入系统后,对系统结构有一个整体的认识,清晰的 模块导航可以帮助学生容易的找到自己所要了解的知识,因此模块导航是本系 统设计的基础。模块导航的超链接实现了界面与界面之间的跳转,将各界面之 间有效的联系起来,为用户提供了方便。部分模块的简单介绍如下: 添加教师信息模块:此模块用于添加教师的相关信息,方便管理员维护。 教师信息列表模块:教师信息列表模块是一个静态模块,静态的显示教 师的相关。 2.4.2 班级管理介绍 班级管理模块拥有多种检索功能,用户可以根据安排课程名称、安排课程 内容、安排课程作者以及编辑姓名进行检索,并且用户还可以根据安排课程的 分类(具体安排课程)进行检索,同时还可以加入关键字,缩小检索范围,更 13 确切的找到用户想要了解的内容。在检索导航中,多种种类的限制使用户在检 索时可以进行模糊搜索和精确搜索两种搜索方案。当用户对所要查找的东西不 太了解时,即可进行模糊搜索,相反如果用户对所要查找的东西十分确定,即 可进行精确搜索。检索导航在系统中作为一种有效的途径帮助用户搜索各种安 排课程。在每个页面下都有个安排课程搜索,即:检索导航,这样方便用户的 使用,减少了返回某一特定页面的麻烦。检索导航在任何系统中都占了举足轻 重的地位,它是系统不可缺少的功能模块,使用户可以更清楚的了解系统里所 包含的内容 2.4.3 课程管理介绍 课程管理模块包括课程添加模块和课程列表模块。课程添加主要针对课程 的详细信息进行添加,易于管理员进行管理。课程列表模块方便用户浏览 2.4.4 教室管理介绍 教室管理包括教室添加和教室列表,教室添加主要是添加教室信息。教室 列表主要分页显示教室信息。管理员可以在此对教室进行添加、修改和删除等 操作。 2.4.5 时间段管理介绍 时间段管理主要包括时间段的添加和时间段列表。其中时间段添加主要是 添加时间段的功能。列表则分页显示时间段的信息,管理员同时具有编辑,删 除等的权限。 系统根据测试得分与安排课程通过域值的比较自动更新安排课程理解程度 字段内容。然后,该字段值又用于更新安排课程的值。此外,为充分尊重用户 自我评价的权利,如用户不想通过安排课程的测试但又自认为已掌握该知识便 可修改理解程度字段的值,但不可以修改测试得分的值,这样一来既保证了数 据的真实一致性,又确保了用户模型的灵活性。这也是网上课件系统的一个优 点所在。 2.5 小结 本章主要分析系统的各个组成部分,并给出了具体的逻辑设计。用户模型 主要是简单的介绍了用户的特征与智能学习状态的相关关系。系统导航主要描 14 述了各导航系统的用途,设计方法以及一些相应的策略。该章主要是以全局的 整体的角度描述整个系统的功能和框架,它所涉及的理论分析和设计为后面的 算法设计和实现打下基础。 15 3 数据库设计 3.1 数据库的需求分析 根据系统需求,可以列出以下数据项和数据结构: 用户信息管理:包括用户名称、密码、注册时间、登录次数、电子邮箱等; 用户学习记录:包括测试得分、学习状态、理解程度等; 学习状态:包括学习状态、安排课程编号、用户编号等; 安排课程:包括栏目 id、父栏目 id、栏目链接、相关导航等; 课程知识:包括课程名称、课程内容、作者、关键字等; 3.2 后台数据库的配置 本系统的开发是在 windows xp 下开发的,开发数据库使用的是 access xp。具体配置步骤如下: 新建几个空数据库,分别取名为#database.mdb。 在#database.mdb 中建表 admin,anpai,anpailist,banji, jiaoshi,kecheng 数据库表。 完成数据初始化工作,将表中各字段与域值添加进去。 由于考虑到程序移植后的路径问题,所以本系统利用 server 对象的 mappath 方法,将虚拟路径转化为实际的物理路径。从而进行数据库的连接。 这种连接方法的好处就是程序移植到别的服务器上后,不必在设置数据源,马 上就可以使用。 具体的表结构设计如下描述所示。 3.3 数据库表结构设计 数据库表结构设计如以下各表所示14: 16 表 3.1 admin 表(用户信息管理表) 列名意义描述数据类型 大 小 可否为空默认值备注 id用户编号自动编号4主键 name用户名称文本10 pass密码 文本16 creattime创建时间日期时间10 注:用户信息管理表记录了管理员用户的各种信息,用户名称和密码是用 户登录时的身份验证机制,这不仅有利于管理员对用户的管理,同时也利于用 户自己的管理与维护。 表 3.2 anpai 表(安排表) 列名意义描述数据类型大小可否为空默认值备注 id编号数字4主键 title标题文本4 content内容文本20 creattime创建时间日期时间10 注:安排是关于安排课程的信息表。 表 3.3 anpailist(安排记录表) 列名意义描述数据类型大小可否为空默认值备注 id编号数字4主键 classid班级编号文本10 kechengid课程编号数字4 weekname周数字4 shijianduanid时间段编号数字4 bantype班级类型文本10 weektype周类型文本10 banjiid班级编号数字4 teacherid教师编号数字4 jiaoshiid教室编号数字4 注:安排记录表记录了安排课程情况,这将成为用户安排课程的前提依据。 表 3.4 banji 表(班级信息表) 17 列名意义描述数据类型 大 小 可否为空默认值备注 idid自动编号10主键 title标题数字10 renshu人数文本10 creattime创建时间日期时间 注:班级信息表记录了班级的信息。 表 3.5 jiaoshi(教室信息表) 列名意义描述数据类型大小 可否为 空 默认值备注 idid数字10主键 title标题数字10 type类型文本20 renshu人数数字10 creattime创建时间数字10 注:教室信息表记录教室的各项信息。 表 3.6 kecheng(课程表) 列名意义描述数据类型大小可否为空默认值备注 id编号数字4主键 title标题文本10 content内容文本50 creattime创建时间文本50 注:课程表记录了课程的相关信息。 表 3.7 shijianduan(时间段信息表) 列名意义描述数据类型大小可否为空默认值备注 id编号数字4主键 title标题文本20 content内容文本50 creattime创建时间文本10 注:时间段信息表是为了保存各个时间段而设置的。 表 3.8 jiaoshi(教师信息表) 列名意义描述数据类型大小可否为空默认值备注 18 id编号数字4主键 title标题文本20 content内容文本50 creattime创建时间文本10 注:教师信息表是保存了教师的姓名,专业等相关信息。 3.4 e-r 模型 为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数 据模型(也称为信息模型) 。概念性数据模型是一种面向问题的数据模型,是按 照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,它反映 了用户的现实环境,且与在软件系统中的实现方法无关。 最常用的表示概念性数据模型的方法,是实体联系方法(entity relationship approach)16。这种方法用 er 图描述现实世界中的实体,而不 涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为 er 模型。er 模型中包含“实体” , “联系”和“属性”15。在本系统中,用户 信息与学习状态信息、学习记录信息之间是一对一联系(1:1) ,而用户信息与 安排课程信息,安排课程信息与教学策略信息之间的关系是一对多联系 (1:n)如图 3.1、3.2 所示。在本系统数据表中用到的主键有: 用户信息管理表中的 userid 字段(用户编号) ; 安排课程表中的 classid 字段(栏目编号) ; 课程知识表的 articleid 字段(课程编号) ; 其他表中的主键均为 userid 字段(用户编号) ; 用户 课程安排班级 从属 用户编号 密码 用户昵称 注册时间 安排内容 安排名称 编号班级编号 创建时间 班级人数 班级名称 1 11 图 3.1 一对一联系的 er 图 19 参照完整性是保证在主键(被参照表中)和外键之间的关系总是得到维护。 对两个相关联的表(主表和从表)进行操作数据的插入和删除的时候,通过参 照完整性保证它们之间的数据的一致性。 用户自定义完整性,不同的数据库系统根据起数据应用环境的不同,往往 还需要一些特殊的约束条件。它反应某一具体应用所涉及的数据必须满足的语 义要求。对于用户自定义完整性可以通过数据库设计,也可以通过程序代码来 实现。由于程序设计的灵活性和便捷性,在整个系统的调试过程中对于不完善 的地方只需对代码进行修改而不用更改数据库,因此在系统中采用了程序代码 来实现数据库用户自定义完整性的约束。 20 4 系统详细设计与实现 4.1 系统工作原理介绍 本系统采用 b/s 结构(browser/server,浏览器/服务器结构)和基于 web 服 务两种模式,是一个适用于 internet 环境下的模型结构。只要用户能连上 internet,便可以在任何时间、任何地点学习课程的内容。系统工作原理图如 图 4.1 所示: 用户注册 用户信息验 证 用户登陆 课程内容自动生 成 用户信息 知识点树 素材 概念网 导航搜索 在线浏览 动态更新用户浏览 页面及导航提示 中间层数据层用户层 图 4.1 系统工作原理图 系统的工作流程包括以下一些关键环节: (1)用户注册。在每一个用户使用该课件之前需要注册,系统会将用户输入 的信息记录到用户模型中。 (2)用户登陆。用户输入用户名和密码后,系统验证是否正确并决定用户是 否能进入课件进行学习。 (3)安排课程内容自动生成。根据用户注册时输入的 id 和密码,从用户模 21 型和知识领域模型中读取相应信息合成网页内容。 (4)用户信息管理。其中包括对用户信息的查询和修改,系统会根据修改后 的用户信息重新自动合成网页内容。 (5)在线浏览。这是用户浏览安排课程主要方式,浏览中的动作主要是点击 网页中的超链接,系统会动态跟踪用户的行为更新网页内容和导航提示。 (6)导航搜索。为帮助用户更快更方便的找到所要了解的安排课程,系统根 据安排课程不同的特征,主题的不同或是关键字的不同等进行搜索,使用户一 步到位,直接找到自己所学安排课程。 以上各个环节相互联系,前后影响。对于用户的每一项操作,系统都会自 动读取数据并更新其中用户模型的数据,并将更新后的数据通过网上排课系统 网页呈现出来。 4.2 系统数据流图 数据流图(data flow diagram,简称 dfd)能精确地在逻辑上描绘系统的 功能、输入、输出和数据存储等,摆脱了物理内容,是描绘系统逻辑模型的最 主要的工具。 经过系统详细调查分析以及用户需求分析,我们得到了新系统的数据流图。 如图 4.2 用户登录数据流图17: 用户名和密码 用户注册 登录成功 用户信息管理表 用户信息 是 否 用户信息 身份验证 图 4.2 登录数据流图 22 4.3 系统的实现算法 4.3.1 用户信息初始化算法 通过前面几章的分析,我们已经知道用户信息是登陆系统的凭证。由用户 模型可以了解,个人信息是用户登陆排课系统的入口;用户信息是在第一次使 用课件注册时输入的。 该算法中牵涉的数据有:用户数据库中的用户信息管理表。算法主要功能 是通过接收用户输入或选择的信息初始化用户模块中有关信息,以下便是该算 法16所涉及的数据结构和详细过程。 输入:1)用户输入的信息,如姓名,密码等。 2)用户选择的信息,如课程名称等。 输出:用户模块信息初始化。 算法的主要步骤如下: (1)初始化,包括打开数据库 user、建立相关控件与数据库的连接等; (2)将用户信息管理表、用户状态表各添加一条记录; (3)读取各文本控件或列表控件中用户输入或选择的信息到各表中对应的字 段中; (4)结束。 算法流程图如图 4.4 所示: 开始 是否合法 写入数据库 结束 n y 用户管理信息表 加入一条信息 用户输入 信息 图 4.4 用户信息初始化算法流程图 23 4.3.2 检索导航算法 在用户登录系统后,用户可以根据安排课程搜索进行所要学习安排课程的 检索。安排课程搜索主要是从三方面进行查找,一是根据安排课程主题,二是 根据安排课程类别,三是根据安排课程的关键字。三方面的共同限制可以使用 户查找到比较精确的安排课程。 检索导航最重要的步骤就是要知道从何处抽取 数据,如何判断检索条件,又是怎样在检索条件的基础上将信息显示给用户。 在该导航实现过程中,用到的数据有课程知识表,显示的内容是从课程知识表 数据库中调取出来。具体算法如下: (1) 用户选取搜索内容,如安排课程名称、安排课程类别、关键字等,并 进行提交; (2) 从提交表单中提取数据,并进行相应判断; (3) 连接数据库,建立记录集,用查询语句对表中数据进行查询; (4) 将结果显示给用户; (5) 结束; 算法流程图如图 4.5 所示: 24 开始 是否满足 搜索条件 结束 yn 系统初始化 选择搜索主题 : 如课程 名称 、 课程内容等 选择课程类别 在课程安排表中搜索 输入关键字 显示此课 程内容 不显示此 课程内容 图 4.5 搜索导航流程图 4.3.3 安排课程关联导航算法 安排课程关联导航是分类导航的一个重要部分,当用户浏览某一安排课程 时,与此安排课程相关的安排课程将显示在相关安排课程栏目中。这些安排课 程的相关性是根据它们所拥有的关键字进行判断的。无论用户点击哪一安排课 程,只要与此安排课程具有相同关键字的安排课程都会显示在页面上。这种自 适应性方便了用户对一些相关安排课程的查找与阅读。 安排课程关联导航的主要步骤如下: (1) 用户点击所要阅读的安排课程。 (2) 建立数据库连接和记录集,在课程信息表中查询与当前课程具有一个 或多个相同关键字的课程。 (3) 根据具有相同关键字这一条件显示相应课程标题。 25 (4) 将此课程标题链接到相应的课程。 (5) 结束。 算法流程图如图 4.6 所示: 开始 选择某一课程 系统初始化 显示其它课程 链接 丢弃 结束 显示此课程内容 判断其 它课程与本知识 点关键字是否 相同 ny 图 4.6 安排课程关联导航算法流程图 4.3.4 网络课程安排课程显示算法 学生用户登陆后,根据所选课程的不同动态显示课程内容。根据用户学习 情况自适应的显示,有利于用户对安排课程的了解程度,直到对整个课程的安 排课程有了深刻的了解与认识。 网络课程安排课程显示的具体算法如下: (1) 用户登录系统。 (2) 建立数据库连接,查询数据库。 (3) 在页面中显示用户的学习级别与课程难度级别相同的课程。 (4) 结束。 算法流程图如图 4.7 所示: 26 开始 系统初始化 是否存在 比较用户表中的id与 课程安排表中的id 是否相等 显示课程 章标题 不显示 结束 ny y n 输入用户 名和密码 图 4.7 自适应网络课程安排课程显示算法流程图 4.4 前端页面的设计与实现 在后台数据库建立与整体设计的基础上,前端页面的设计与开发尤其重要, 对于网络课程学习导航系统来说,主要包括的页面模块有:用户登陆模块、管 理首页模块、教师管理模块、班级管理模块、课程管理模块、教室管理模块和 时间段模块、课程安排模块和密码修改模块等7910。在以下小节中,将对各 模块做具体介绍。 4.4.1 系统公用页面 在本系统中,将会有一些公用页面,即每个文件或部分文件都会用到的文 件,在使用这些文件时,只需要一个包含语句即可,这样大大减少了代码的冗余,同时也使编码简单,减少了许多工作量。 主要的公用文件包括:syscode_article.asp 文件、conn.asp 文件、 27 function.asp 文件、config.asp 文件等。 (1)syscode_article.asp 文件 syscode_article.asp 文件是对系统栏目和课程专题与章节的整体管理。此文 件中包括课程内容与安排课程的如何显示,以及用户的阅读权限,栏目的显示 效果,课程的分页效果,最新课程显示函数,推荐课程显示函数,最热点课程 显示函数等等。此文件基本上贯穿了整个系统,它包含在各文件中,是系统的 主要部分与精髓。 (2)conn.asp 文件 对于程序中建立数据库连接和关闭数据库连接的操作,最好放在一个包含 文件中,这样便于维护和修改。前面一部分为建立数据库连接的语句,其中 conn 为建立数据库连接的对象,connstr 为数据库连接字符串,它表明了数据 库连接的物理路径以及采用的数据库类型,这里采用的是 access 数据库。用这 种方法连接数据库的目的是防止程序被移植后,数据库的路径出现问题或是还 得设置数据源。 在编程过程中,可以直接使用常量 sitename 来代替字符串“自适应学习系统“。 4.4.2 系统登陆页面 用户登陆界面如图 4.8 所示。用户登陆页面的信息是用户进入系统的有利 凭证。该页面涉及的主要 asp 文件为 login.asp 文件。 图 4.8 用户登陆界面 4.4.3 管理首页模块 管理首页的简单设计使用户一目了然,他们带有不同的超链接。管理首页 的界面如图 4.9、4.10 所示: 29 图 4.9 主题分类导航界面 此模块涉及到的asp 文件有 syscode_article.asp 文件,function.asp 文件和 conn.asp 文件。 在 syscode_article.asp 文件中,主要涉及的函数为 showcorrelative() 函数,此函数是安排课程显示的主要函数。在 showcorrelative()函数中包含 了 function.asp 文件中的 gottopic()函数,gottopic()函数是一截取字符串 的函数,它的返回值是截取后的字符串。 同时为了数据库建立连接,conn.asp 文件是必不可少的。 4.4.4 教师管理模块 本模块功能:方便用户管理教师的信息。本模块包括两部分:教师添加和 教师列表。其界面如图 4.11 所示: 30 图 4.11 教师添加模块 图 4.12 教师列表模块 其主要的 asp 页面有: (1) conn.asp 页面,此页面是用来与数据库建立连接,便于其它页面对数 据库进行查询时使用 31 (2) teacher.asp 页面,对于教师列表的结果将显示在此页面中。 涉及到的主要函数有: (1) showsearchform()函数,此函数是用来显示安排课程的搜索表单,即 模块中所显示的内容。 (2) showsearchresult()函数,分页显示搜索结果的函数,此搜索结果将 显示在 article_search.asp 所显示的页面中。 4.4.5 班级管理模块 班级管理主要是管理员对班级进行管理的,本模块包括两部分:班级添加 和班级列表。此模块的界面如图 4.12 所示: 图 4.13 班级添加模块 32 图 4.14 班级列表模块 本模块主要用到了 showelite()与 showhot()函数,两函数分别对应着最 新推荐与最新热门内容。showelite()与 showhot()函数类似,此处以 showhot()函 数为例进行说明。showhot()函数代码如下: sub showhot(articlenum,titlelen) dim sqlhot,rshot if articlenum0 and articlenum=“ & hitsofhot & “ order by a.articleid desc“ set rshot= server.createobject(“adodb.recordset“) rshot.open sqlhot,conn,1,1 if titlelen255 then titlelen=50 if rshot.bof and rshot.eof then response.write “无热门课程“ else 33 do while not rshot.eof response.write “ “ & gottopic(rshot(“title“),titlelen) & “ & rshot(“hits“) & “ rshot.movenext loop end if rshot.close set rshot=nothing end sub 4.4.6 课程管理页面 课程管理页面主要包括课程添加和课程列表,用户可以在交流中不断发现 问题,解决问题,同时不断增加自己的知识面。其页面如图 4.15、4.16 所示: 图 4.15 课程添加页面 34 图 4.16 课程列表页面 课程管理页面主要用到的 asp 文件有:kechengadd.asp 文件、 kecheng.asp 文件、particular.asp 文件、re_announce.asp 文件、 count_hit.asp 文件。 (1) kechengadd.asp 文件13是课程添加的界面如上图所示,在此页面用户 可以添加各种课程信息,并进行相应的管理。 (2)kecheng.asp 文件是分页显示课程页面,用户可以在此页面浏览自己所 要关注的课程。 (3) re_announce.asp 文件是恢复主题文件。 4.4.7 教室管理页面 教室管理页面主要包括教室添加和教室列表。其页面如图 4.17、4.18 所示: 35 图 4.17 教室添加页面 注:此页面主要用于添加教室的相关信息。 图 4.18 教室列表页面 注:此页面主要用于显示添加教室的相关信息。 36 4.4.8 时间段管理页面 时间段管理页面主要包括时间段添加和时间段列表。其页面如图 4.19、4.20 所示: 图 4.19 时间段添加页面 注:此页面主要用于添加时间段的相关信息。 37 图 4.20 时间段列表页面 注:此页面主要用于显示时间段的相关信息。 4.4 9 课程安排管理页面 课程安排管理页面主要包括类别添加、类别列表、添加安排和安排列表。 其页面如图 4.21、4.22 4.23 4.24 所示: 38 图 4.21 类别添加页面 注:此页面主要用于添加类别的相关信息。 图 4.22 类别列表页面 注:此页面主要用于显示类别的相关信息。 39 图 4.23 添加安排页面 注:此页面主要用于添加课程安排的相关信息。 图 4.24 安排列表页面 注:此页面主要用于显示安排的相关信息。 40 4.5 0 密码修改理页面 密码修改页面主要用于及时修改管理员的相关信息,提高安全性和保密性。 其页面如图 4.25 所示: 图 4.25 密码修改页面 注:此页面主要用于修改管理员密码相关信息。 41 5 结束语 经过这几个月来对系统的分析、设计,使我对网上排课系统有了全面的了 解与认识,同时对网上排课系统做了具体的解剖。 我认为网上排课系统成功的 关键在于以下几方面: (1) 导航界面的清晰,简单设计。界面的清晰简单可以使学习用户一目 了然,轻松的找到自己浏览本系统的目的所在。不需要在花费大量时间来寻找 本系统的内容,浪费用户时间。 (2) 导航系统的全面性。系统中导航是多种多样的,全面的导航设计可 以使用户得到更大的帮助。比如说系统中应该设有各种模块导航,各种帮助导 航,各种提示导航等等。 (3) 导航系统的自适应性。导航系统的自适应也是导航系统的关键与核 心。上面所说的两点可以说是一种静态的导航设计过程,在设计时只需要添加 各种超链接就可达到设计目的。但对于自适应的导航并不只是添加超链接那么 简单。它是一种动态的导航设计过程,需要根据用户行为的不断变化而变化。 (4) 系统的易管理性。系统的管理对于系统的维护来说很重要,社会是 不断进步与发展的,用户对于网上排课的要求也会越来越高。因此系统要随着 用户的需求而不断发生变化,不断更新系

温馨提示

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

最新文档

评论

0/150

提交评论