“软件工程”网络课程的设计与开发

合集下载

软件工程课程设计模板

软件工程课程设计模板

软件工程课程设计 模板一、课程目标知识目标:1. 理解软件工程的基本概念、原则和方法;2. 掌握软件开发各阶段的目标、任务和常用工具;3. 了解软件项目管理、软件质量保证及软件工程标准化知识。

技能目标:1. 能够运用结构化分析方法,进行软件需求分析,编写软件需求规格说明书;2. 能够运用结构化设计方法,进行软件设计,编写软件设计说明书;3. 能够运用软件工程方法,编写符合编程规范的代码,实现小型软件系统的开发;4. 能够运用软件测试方法,进行软件测试,提高软件质量。

情感态度价值观目标:1. 培养学生严谨、细致、负责任的科学态度;2. 培养学生团队合作精神,提高沟通与协作能力;3. 培养学生面对复杂问题的解决能力,增强自信心;4. 培养学生对软件工程的兴趣,激发学生创新意识和探索精神。

课程性质:本课程为高中信息技术课程,结合学生年级特点,注重理论与实践相结合,培养学生的实际操作能力和问题解决能力。

学生特点:高中学生具有一定的逻辑思维能力和动手操作能力,对新鲜事物充满好奇心,但需引导其将注意力集中在课程内容上。

教学要求:教师应充分运用案例教学、任务驱动等方法,引导学生主动参与、积极思考,注重培养学生的实际操作能力和综合运用能力。

通过课程学习,使学生能够达到上述课程目标,为未来软件开发和信息技术应用奠定基础。

二、教学内容根据课程目标,教学内容分为以下五个部分:1. 软件工程基本概念- 软件与软件工程定义- 软件生命周期- 软件工程的目标、原则和方法2. 软件开发过程- 软件需求分析- 软件设计(结构化设计、面向对象设计)- 编码与实现- 软件测试3. 软件项目管理- 项目计划与管理- 风险管理- 质量管理- 团队协作与沟通4. 软件质量保证- 软件质量标准- 软件评审- 软件度量- 软件可靠性5. 软件工程标准化- 软件开发规范- 软件文档编写规范- 软件测试标准- 软件项目管理标准教学大纲安排如下:第一周:软件工程基本概念第二周:软件开发过程(需求分析、设计)第三周:软件开发过程(编码、测试)第四周:软件项目管理第五周:软件质量保证第六周:软件工程标准化教学内容与教材紧密关联,按照教学大纲逐步推进,确保学生能够掌握软件工程的核心知识,提高实践操作能力。

软件工程课程设计-学生信息管理系统

软件工程课程设计-学生信息管理系统

学年设计课程名称:学年设计(论文)(软件工程)实验项目:学生信息管理系统姓名:XXX专业:计算机科学与技术班级:XXX班学号:XXXX指导教师:XXX计算机科学与技术学院实验教学中心目录一、需求分析┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 1二、可行性分析┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 11.问题┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 12.项目目标┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 23.运行环境┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 24.开发风险┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 25. 经济可行性┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 26.技术可行性┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 27.法律可行性┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 28.总体分析┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 3三、系统功能分析┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 31.系统功能的划分┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 32.系统模块┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 3四、数据描述┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 31.系统流程图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 32.数据流程图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 43.数据字典┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 54.E-R图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 85.用例图┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 11五、总体设计┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 111、基本设计概念和处理流程┄┄┄┄┄┄┄┄┄ 112、软件结构┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 113、数据结构┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 13六、详细设计┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 141.模块设计┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 142.改密码┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 163.浏览┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 17七、功能介绍┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 17八、关键代码展示┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 20九、心得体会┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ 25一、需求分析现在的大学中,老师和学生都注重理论与实际相结合,开设了很多与课程相配的课程设计。

软件工程学在网络教学视频设计开发中的应用

软件工程学在网络教学视频设计开发中的应用

环 节 模 块 设 计 、 合 调 试 、 馈 评 价 等 关 键 环 节 入 手 , 减 少 网 络 教 学视 频 设 计 开 发 中 出现 的 诸 多 问 题 , 高 网络 教 联 反 以 提
学视 频 的 质 量 。
关 键 词 : 件 工 程 学 ; 学视 频 ; 络 教 学视 频 设 计 软 教 网 中 图分类 号 :4 4 G 3 文献标 识 码 : A 文 章 编 号 :6 2 7 0 (0 9 1 — 0 7 0 1 7 — 8 0 2 0 )0 0 6 — 2
教 学 视 频 的 设 计 开 发 , 现 了 不 少 问 题 , 些 问 题 严 重 阻 碍 了 发 这 网 络 教 学 视 频 质 量 的 提 高 .也 进 一 步 阻 碍 了 网 络 视 频 教 学 质 量的提 高 。
阶段 的工 作全 部结束 。不进 行阶 段性评 审 , 计者 就不 能 清 设
像 显示 、 文本 显 示 等 . 目前 的一 些教 学 视频 由于在 开 发 前期 而 缺乏 必要 的准 备 .没有 做 出整体 开发模 型 和各 模块 的模 型 图 , 开发 完 成后又 没进 行 完整 的联合 调试 , 以致 开发 出来 的 网络教
学 视 频 不 是 缺 乏 必 要 控 件 带 来 操 作 不 便 , 是 仅 有 图像 无 文 字 就
频 的大规 模 化 、普 及 化 给 网络 教学 视 频 的设 计开 发 带来 了巨 大 的压 力 。 网络教 学视 频 的质量 提 出了更高 的要 求 。现有 的 对 网络教 学视 频鱼 龙混杂 , 开发过 程混 乱 。笔者 在深 入研 究计算 机软件 工程 的基础 上 , 于软件 工程 学 的角度 分析 了现 有 网络 立
进 行 概要 设 计 、 细 设计 等 , 目前 一些 教 学视 频 产 品跨 越 分 详 而

软件开发培训课程设计方案

软件开发培训课程设计方案

软件开发培训课程设计方案随着经济的快速发展和科技的飞速进步,社会对于软件开发人才的需求量增加,每一家企业都在寻求能够满足其需求的开发人才,而对于这方面的培训往往难以满足市场的需求。

现阶段,学校相对而言开设的软件开发类课程数量是有限的,内容也不是很新颖,只是停留在基础理论层面,重点不在于实践,也不能够给学生带来实际落地的技能。

二、设计方案为了解决软件开发培训课程设计上的缺失,我们制定出以下课程设计方案:(一)课程模块设计根据后续实践要求,我们将课程分为三大模块:1、基础知识模块:包括计算机科学基础、计算机网络、数据库原理、操作系统等;2、软件工程基础模块:包括面向对象分析与设计、软件架构设计、UML(统一建模语言)等;3、实践模块:包括Java、C/C++、Python等软件开发语言的实践。

(二)教学实施计划1、创建一个灵活的模拟环境,让学生实现一个小型的软件开发项目;2、使用系统化的方法讲解软件开发流程,帮助学生掌握软件开发的各个部分;3、重点系统化讲解软件开发中遇到的各种技术和工具,让学生更加了解软件开发;4、组织实践项目,推进实践技能的掌握,锻炼学生的实践能力;5、实践项目结束后评估学生实践能力,推进软件开发技能水平的提升。

(三)课程考核标准1、认真完成课堂学习;2、准确摘要实践项目步骤和设计;3、实现一个小型的软件开发项目;4、正确使用软件技术和工具;5、及时归纳总结实践项目过程中遇到的问题及解决办法;6、熟练掌握软件开发流程。

三、结论通过以上设计,可以更加有效、准确地提升学生的软件开发技能水平,使学生在软件开发中有更多实际应用的能力,从而满足当今社会对于高级软件开发人才的需求。

软件工程课程设计-学生信息管理系统

软件工程课程设计-学生信息管理系统

数据库设计
数据表设计
01
根据系统需求,设计合理的数据表结构,包括学生信息表、课
程信息表、成绩信息表等。
数据关系设计
02
定义数据表之间的关系,如学生信息表和成绩信计
03
采用加密技术对敏感数据进行加密存储和传输,确保数据的安
全性。
界面设计
界面风格设计
版本控制
Git
关键代码实现
学生信息管理
实现学生信息的增删改查功能 ,包括基本信息、成绩、奖惩 情况等。
课程信息管理
实现课程信息的增删改查功能 ,包括课程名称、学分、任课 教师等。
用户登录验证
通过用户名和密码进行身份验 证,采用MD5加密密码确保安 全性。
班级信息管理
实现班级信息的增删改查功能 ,包括班级名称、班主任、学 生列表等。
THANKS
感谢观看
等。
课程管理
系统应支持课程的添加、修改、查询和删除 ,包括课程名称、课程描述、授课老师等。
用户管理
系统应提供用户注册、登录、权限分配等功 能,确保不同用户角色的操作权限。
非功能性需求
系统性能
系统应保证稳定运行,处理速 度快,响应时间合理。
数据安全
系统应采取必要的数据加密和 备份措施,确保学生信息的安 全性和完整性。
3
学生信息管理系统通常采用B/S或C/S架构,具有 用户界面友好、操作简便、数据安全性高等特点 。
设计目标与要求
实现学生信息的全面管 理,包括基本信息、成 绩信息、课程信息、奖
惩信息等。
01
保证数据的安全性和完 整性,采用合理的权限 控制和数据备份机制。
03
采用先进的软件开发技 术和工具,确保系统的

软件工程课程设计报告

软件工程课程设计报告

软件工程课程设计报告旅游信息管理系统姓名: ___________________________学号: _____________________专业: ______ 软件工程 ___________________ 班级:14软件工程1班_______________ 指导教师:__________________________1.课程设计概述 ------------------------------------------------- 1 - 1.1系统目的 (1)1.2系统任务 (1)1.3运行环境 (2)2. ---------------------------------------------------------------------------------------------- 项目的可行性研究---------------------------------------------------- 2 - 2.1旅游网站的可行性研究 (2)2.2.1技术可行性.............................................. -2 - 2.2.2经济可行性.............................................. -3 -2.2.3操作可行性.............................................. -3 -3.需求分析 ------------------------------------------------------ 3 -3.1功能需求分析.............................................. -4 -3.2性能需求分析.............................................. -4 -4.概要设计 ------------------------------------------------------ 5 4. 1系统结构图................................................. -8 4.2系统登陆流程图 (7)4. 3系统E-R图 (8)4.4数据字典.................................................. -9 -5.课程设计完成结果分析与个人小结 ------------------------------ 10 -参考文献----------------------------------------------------- 11 - 1.课程设计概述1.1系统目的该系统主要建立一个完整的旅游网站,突出旅游特点,有美观的界面设计。

软件工程课程设计

软件工程课程设计

五、无纸办公系统
指导教师:白忠健
要求:无纸并非完全无纸,而是尽可能少用纸张。针 对企业机关办公室的运作情况,追踪文档从草拟到用毕归 档的过程,设计和实现基于文档的数据库系统。
面向文档的数据库,是一个很复杂的数据库系统,包 括数字签名、文件的存取访问、访问权限,文件传递、审 阅等。
PPT文档演模板
软件工程课程设计
PPT文档演模板
软件工程课程设计
确定课题
由教师命题并给出各课题的具体需求,学生根据课 题所涉及的知识领域及自己对该领域的熟悉程度和对该 课题的兴趣,选择课题,经教师调整审查后确定。
• 原则上由同学志愿组合,组成课题组。 • 第五周星期五前确定初步分组及选题,第六周二 宣布开发小组及课题名单(不能改变)。
要求:主要采用立体图形或动画来描述。
1、校园外景导航
2、各教学楼内部导航
3、各学院的机构、位置,主要负责人,教师(包括退休的 与在职)的电话、联系方式。
PPT文档演模板
软件工程课程设计
二、小型贸易公司信息管理系统
指导教师:白忠健
要求:针对企业“人财物,进销存”六个方面,分 别对人事、财务、固定资产、进货、销售和库存等子系 统进行设计和实现。
软件工程课程设计
PPT文档演模板
2020/12/19
软件工程课程设计
课程设计的目的与要求
开设“软件工程课程设计”的主要目的是培养学 生综合应用所学专业知识及计算机知识的能力,训练 和提高软件开发技能。要求每个学生在规定时间内必 须完成一个规模适当的应用软件系统;在教师的指导 下以软件设计为中心,独立地完成从需求分析、软件 设计、编码到软件测试运行的软件开发全过程。通过 软件开发的实践实现以下基本目标:

软件工程(应用专业)课程设计-...

软件工程(应用专业)课程设计-...

《软件工程》课程设计任务书一.目的软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和稳固电脑软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。

通过这次课程设计,要掌握UML〔统一建模语言〕,并能运用UML在Rational Rose中建模。

二.要求:1.一人一组。

2.熟悉Rose开发环境。

3.掌握UML的基本模型元素(如角色、用例、类等)。

4.熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram〔数据模型图〕。

5.进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,建立完整的系统数据库的逻辑模型。

6.完成对系统的建模实现。

7.期末进行检查,并提交设计报告。

三.题目及时间、地点安排2010-2011第一学期第18周星期五进行课程设计成果的演示与检查〔具体地点另行通知〕,同时提交源程序和课程设计报告。

四.报告要求:1.实验题目2.实验目的3.实验要求4.实验内容5.系统设计的源程序和文档〔包括说明〕6.心得体会五.参考资料:1.Wendy Boggs & Michael Boggs 著邱仲潘译《UML与Rational Rose2002从入门到精通》电子工业出版社2.Martin Fowler & Kendall Scott:UML Distilled Second Edition A Brief Guide to the StandardObject Modeling Language3.UML参考手册4.Jason T. Roff 著张瑜杨继萍等译《UML基础教程》清华大学出版社5.参见本中心服务器ftp:\\s@172.16.38.223软件开发基础或《软件工程课程设计》目录下的相关文档。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“软件工程”网络课程的设计与开发摘要:本文论述了在设计与开发“软件工程”网络课程中采用的基于案例的教学内容设计,该教学设计以同一个案例贯穿所有章节,增进了学生对知识点的掌握和理解;开发环境使用Dorado MVC架构(Struts+Hibernate+Spring),获得了好的效果。

与传统的开发模式比较,这种开发模式最大的优势在于可以节省开发人员在开发Web应用表现层时的工作量,同时又为用户提供非常友好的交互界面。

关键词:网络课程;案例;树型结构1引言在开放教育和远程教育中,网络教学正被越来越多地使用,开发适用于网络教学的高质量的网络课程已经成为发展网络教育的一个非常重要的课题。

《现代远程教育技术标准体系和11项试用标准(简介)》中对网络课程进行了定义。

网络课程是通过网络表现的某门学科的教学内容及实施的教学活动的总和,它包括两个组成部分:按一定的教学目标、教学策略组织起来的教学内容和网络教学支撑环境。

“软件工程”课程是本科计算机专业的一门重要课程。

在当前的教学中,特别是开放教育和远程教育中还存在着很多欠缺,案例太少,或者各章中的案例相互割裂,使得学生学完该课程之后无法形成整体的软件工程概念和思想。

因此设计和开发贯穿整个教学过程的案例成为“软件工程”网络课程的必然选择。

2 “软件工程”网络课程的教学内容设计2.1以案例为中心当前的计算机相关专业实践教学环境存在诸多薄弱环节,特别是在软件工程教学中,很难为学生提供一个全面的感性认识。

而当前的教学是离散的过程,没有提供一个完整的商业软件的实例来讲解商业软件开发的全部过程。

经过调查研究、综合对比和专家论证,我们选择了某软件公司的商务软件“应急系统”作为整个软件工程网络课程的案例。

选择该软件的原因是该系统在Windows平台上基于C++开发,而C++是大部分计算机科学与技术专业的学生都学习过的第四代开发平台,不足的地方是部分学生不了解应急系统。

在教学内容设计中我们先对此公司“应急系统”的相关知识作了简单介绍,然后把软件工程的各个阶段与该软件的相关内容进行了一一映射和组合,公开了大部分相关设计和源代码。

2.2兼顾面向过程和面向对象当前软件设计与开发的手段一般采用面向过程和面向对象这两种方法。

虽然”应急系统”是采用面向对象方法设计的,但是我们补充了面向过程的设计内容,这样学生通过比较,既能熟悉和了解面向过程和面向对象的设计方法,又增强了理解,从而获得了比较好的教学效果。

3网络课程支撑环境的设计3.1总体结构系统设计应由上而下进行。

首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。

总体设计主要是在系统分析的基础上,将整个系统划分为若干子系统,子系统则由若干模块组成。

数据的存储以及整个系统实现等方面都进行了合理的安排。

图1所示为“软件工程网络”课程开发与设计的总体结构图。

3.1系统开发平台——Dorado MVC架构Dorado全称“Dorado Web应用开发套件”,包含:Dorado Web UI控件集及UI 引擎(Dorado Web UI Components and UI Engine),Dorado可视化集成开发工具(Dorado Studio),Dorado MVC开发框架和Dorado Web应用框架。

其中Dorado MVC开发框架的主要功能有:提供类似Struts的MVC 开发框架,以便更加方便地利用Dorado套件进行基于MVC架构的开发;提供性能监控控制台,可以方便地对系统运行过程中各功能点的运行效率进行统计和分析;支持国际化资源配置;支持模块化配置。

Dorado MVC开发框架是一个可选件。

Dorado套件完全支持各种第三方开发框架,如Struts、WebWork等。

我们利用Dorado与目前较为流行的Struts+Hibernate+Spring进行协同开发。

3.2系统主要模块算法与设计(1) 集合混淆算法客观题测试用于学生自测。

题目是随机排列的,顺序与数据库的存储顺序不同,它使用了Java.util.Collections中的shuffle(List list)方法来实现,下面是其在JDK 6.0中的算法和代码。

使用指定的随机源随机更改指定列表的序列。

所有序列更改发生的可能性都是相等的,假定随机源是公平的。

此实现向后遍历列表,从最后一个元素向前一直到第二个元素,将随机选择的元素重复交换到“当前位置”。

元素是从列表中随机选择的,从第一个元素运行到当前位置。

此方法以线性时间运行。

如果指定列表没有实现RandomAccess接口并且是一个大型列表,则此实现在改组列表前将指定列表转储到该数组中,并将改组后的数组转储回列表中。

这避免了二次型行为,该行为是因为在适当位置改组一个“有序访问”列表而引起的。

private static Random r;public static void shuffle(List list) {if (r == null) {r = new Random();}shuffle(list, r);}public static void shuffle(List list, Random rnd) {int size = list.size();if (size 1; i--)swap(list, i-1, rnd.nextInt(i));} else {Object arr[] = list.toArray();// Shuffle arrayfor (int i=size; i>1; i--)swap(arr, i-1, rnd.nextInt(i));// Dump array back into listListIterator it = list.listIterator();for (int i=0; i<arr.length; i++) {it.next();it.set(arr[i]);}}}(2)DES加密算法由于客观题的随机排列,使得试题的排列次序与数据库中有所不同。

同时,考虑到通过逐条在数据库中查询来校验答案对数据库的压力过大,所以事先查询出试题的答案,然后根据打乱后的试题次序把正确答案拼成一个字符串,然后加密放到页面的隐藏域中。

这样一来,当提交试题查看结果时不用再次查询数据库,只要把答案字符串解密,然后分割成数组校验即可。

这里的加解密采用了DES算法。

DES算法的入口参数有三个:Key、Data、Mode。

其中Key为8字节共64位,是DES算法的工作密钥;Data也为8字节64位,是要被加密或被解密的数据;Mode 为DES的工作方式,有两种:加密或解密。

DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位),作为DES的输出结果。

在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点。

数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。

这样便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。

下面是加密算法的部分代码(解密原理类似):public class DesEncrypt {private Key key;/*** 根据参数生成KEY** @param strKey*/public void getKey(String strKey) {try {KeyGenerator _generator = KeyGenerator. getInstance(“DES”);_generator.init(new SecureRandom (strKey.getBytes()));this.key = _generator.generateKey();_generator = null;} catch (Exception e) {e.printStackTrace();}}/*** 加密String明文输入,String密文输出** @param strMing* @return*/public String getEncString(String strMing) {byte[] byteMi = null;byte[] byteMing = null;String strMi = ““;BASE64Encoder base64en = new BASE64Encoder();try {byteMing = strMing.get Bytes(“UTF8”);byteMi = this.getEncCode(byteMing);strMi = base64en.encode(byteMi);} catch (Exception e) {e.printStackTrace();} finally {base64en = null;byteMing = null;byteMi = null;}return strMi;}/*** 解密以String密文输入,String明文输出** @param strMi* @return*/public String getDesString(String strMi) {BASE64Decoder base64De = new BASE64Decoder();byte[] byteMing = null;byte[] byteMi = null;String strMing = ““;try {byteMi = base64De.decodeBuffer(strMi);byteMing = this.getDesCode(byteMi);strMing = new String(byteMing, “UTF8”);} catch (Exception e) {e.printStackTrace();} finally {base64De = null;byteMing = null;byteMi = null;}return strMing;}(3) 章节维护算法本网络课程中的课程章节、目录均为树形结构,其数据模型采用了树的模型,然后通过递归从根开始逐层遍历显示每个节点,便于导航学生学习。

下面是显示树形结构的代码,由于树形结构的显示使用了ExtJs(Ajax)框架来渲染,所以代码最终将产生JavaScript代码的字符串,交由ExtJs框架完成最后显示工作。

public String getExtTreeString(String prexHref ,String target ,boolean allowEdit ) {......//查询根节点(包含子节点层次)Course rootWithHierarchy = treeNodeDao.getTreeRootWithHierarchy();StringBuffer rootInfo = new StringBuffer();//构造ExtJs的树形代码appendInfo(rootWithHierarchy , rootInfo);StringBuffer treeInfo = new StringBuffer(“new Ext.tree.AsyncTreeNode(“ + Constants.PLACEHOLDER + rootInfo + “)”);return ExtUtil.formatExtStr(treeInfo);}private void appendInfo(Course node , StringBuffer buf){if(node == null) return ;//如果是叶子节点,构造叶子信息if(node.getIsLeaf()) appendLeaf(node,buf);//如果是目录,构造目录信息else appendFolder(node , buf);}private void appendFolder(Course node , StringBuffer buf){buf.append(“,{text:’” + node.getText() + “‘,”);if(allowEdit){buf.append(“href:’”+prexHref+node.getId()+”‘,”);buf.append(“hrefTarget:’” + target + “‘,”);}buf.append(“id:’” + node.getId() + “‘,”);。

相关文档
最新文档