《面向中小学生的计算机编程设计和实现 计算机科学技术专业.docx》由会员分享,可在线阅读,更多相关《面向中小学生的计算机编程设计和实现 计算机科学技术专业.docx(64页珍藏版)》请在三一办公上搜索。
1、题目面向中小学生的计算机编程在线教学系统的设计与实现摘要随着人工智能时代的发展,编程教育已经逐渐成为我国教育领域中的研究重点。近年来,国家教育部门多次出台编程教育政策,均明确将逐渐推进中小学各个阶段的编程技术。然而,目前我国的编程教育仍然缺乏优质的教学资源,传统编程教育形式单一、枯燥无味,不适合中小学生。因此,需要创造性地开发新形式资源,具有互动性和趣味性。所以,面向中小学生的在线编程教学的前景非常广阔。与传统编程教育相比,借助于互联网优势的在线编程教育更加灵活,功能也更加丰富多样。经过系统的研究、分析和设计,本文最终设计并制作了一个基于SSM(Spring+SpringMVC+MyBatis
2、)架构的面向中小学生的计算机编程在线教学系统。通过对系统业务进行梳理,给出了系统的功能性需求分析。基于此,本文将系统所要实现的主要业务划分为管理员模块、教师模块和学生模块。然后通过系统设计,来完成各功能模块对应实体和数据库表结构的设计,设计出符合MVC框架理念的工具类和方法并通过编程实现。最后,对在线编程教学系统的各项功能进行了功能测试。测试结果显示,在线编程教学系统实际运行稳定,符合各项要求。关键词:SMM;编程教育;少儿编程;在线教学AbstractWiththeadventoftheeraofartificialintelligence,programmingeducationhasbe
3、comearesearchhotspotintheeducationfield.Inrecentyears,thenationaleducationdepartmenthasissuedanumberofpolicies,allofwhichhavemadeitclearthatprogrammingeducationwillbegraduallyimplementedinprimaryandsecondaryschools.However,thecurrentprogrammingeducationinourcountrylackshigh-qualityeducationalresourc
4、es.Thetraditionalprogrammingeducationformissingleandboring,andisnotsuitableforprogrammingeducationforprimaryandmiddleschoolstudents.Needtodevelopinteractiveandinterestingnewformsofresources.Therefore,theprospectofonlineprogrammingeducationisverybroad.Comparedwithtraditionalprogrammingeducation,onlin
5、eprogrammingeducationthattakesadvantageoftheInternetismoreflexibleandhasmorediversefunctions.Aftersystematicanalysisanddesign,thispaperdesignsandimplementsacomputerprogrammingonlineteachingsystemforprimaryandmiddleschoolstudentsbasedonSSMarchitecture.Throughcombingthebusinessofthesystem,thefunctiona
6、lrequirementsanalysisofthesystemisgiven.Basedonthis,thisarticledividesthebusinesstobeimplementedbythesystemintomanagementmodule,teachermoduleandstudentmodule.Thencompletethedesignofthecorrespondingentityanddatabasetablestructureofeachfunctionalmodulethroughthesystemdesignlink,anddesignthetoolclasses
7、andmethodsthatconformtotheconceptoftheMVCframeworkandimplementitbyprogramming.Finally,performfunctionaltestsonthevariousfunctionsoftheonlineprogrammingteachingsystem.Thetestresultsshowthattheactualoperationofonlineprogrammingteachingisstableandmeetsvariousrequirements.Keywords:SMM;ProgrammingEducati
8、on;ChildrenProgramming;OnlineLearning目录摘要AbstractII1 .绪论11.1 研究背景及意义11.2 国内外研究现状11.3 工作内容21.4 论文组织结构22 .相关技术概述32.1 MVC设计模式32.2 SSM框架42.2.1 SPring框架42.2.2 SpringMVC框架52.2.3 MyBatis框架62.3 MySQL62.4 本章小结63 .系统需求分析73.1 系统可行性分析73.2 业务流程分析73.3 功能需求分析83.3.1 管理员模块83.3.2 教师模块93.3.3 学生模块103.4 本章小结114 .系统设计124
9、.1 系统架构设计124.1.1 系统总体架构设计124.1.2 系统技术架构设计124.2 系统功能设计134.2.1 系统功能结构设计134.2.2 系统功能顺序图144.3 数据库设计164.3.1 系统类图设计164.3.2 数据库表设计184.4 本章小结245 .系统实现与测试265.1 开发环境265.2 开发框架环境配置265.2.1 数据表实现265.2.2 创建Web工程275.3 功能实现305.3.1 登录拦截305.3.2 用户登录315.3.3 管理员模块功能345.3.4 教师模块功能405.3.5 学生模块功能455.4 系统测试505.4.1 基础功能测试50
10、5.4.2 核心功能测试515.5 本章小结52结论54551身寸571.1 论1.2 研究背景及意义在“互联网+”的高速发展下,人工智能技术的发展日新月异,它正在不断地改变着各个行业,并且潜移默化地逐渐渗透到我们的口常生活中。伴随着人工智能时代的正式降临,编程能力作为其一项重要的技能,渐渐受到工业界和教育界的关注,日渐成为全球培养创新性人才的战略实施重点。因此,编程教育日益凸显时代价值,备受人们关注,成为国内外教育研究的热点。编程教育可以有效地提升人们的计算思维能力,研究发现,具有良好计算思维能力的学生能更有效、辩证地解决问题。然而,计算思维能力和编程能力的培养并非是一朝一夕就可以实现的,需
11、要从少儿时期就开始培养。美国规划十年内在整个全国范围内展开中小学生的编程教育,英国政府明确规定全国中小学生必须学习编程,就在去年,编程教育已基本成为日本全国小学生的必修课程。作为培养少儿信息技术知识素养和独立探究思维能力的重要手段,中小学编程教育的主要目的是通过计算编程思维启蒙、可视化图形编程等人工智能相关知识的综合学习,激发中小学生探索的好奇心,培养他们的计算思维能力和创造力l41l5jO因此,编程教育工作者应以培养学生思维作为落脚点来开展编程教育。由于受到传统教育手段和方法的限制,许多中小学老师普遍采用了填鸭式的教学手段来教授人工智能和应用程序设计,学生不仅提不起兴趣,而且上课时就像听天书
12、一样晦涩难懂,这会使学生的未来发展受阻。近年来,互联网的发展克服了知识获取的时间和空间限制,在线教育呈现爆发式增长。随着各类在线教育平台的开发和应用日趋成熟,编程教育也逐渐采用了线上模式进行授课。因为去年的新冠肺炎疫情,教育体系积极地采用线上的方式进行教学和授课,在线教育市场大幅度扩容,引起社会各界高度重视。在少儿编程行业兴起的过程中,本就依赖于计算机的编程课程依托在线教育优势,能够更好地在未来竞争中占据关键地位,因此,对于所有企业来说,发展线上编程教育课程必是长期发展战略部署中的重要一步。在线编程教育主要有以下几个特点:(1)不受时空限制,学生可以与不同城市的老师和同学一起学习交流;(2)充
13、分利用优质教学资源,通过在线技术手段,将最好的教学内容和理念传播出去;(3)容易激发学生的学习兴趣,学生不仅可以制定自己的学习计划并通过在线学习资源进行学习,还可以在教学平台上互相交流讨论。1.3 国内外研究现状目前,少儿编程教育普及率最高的国家是美国,普及率为44.8%;2014年,英国将编程列为所有学校的必修课,规定5至7岁的孩子学习算法的含义以及如何将其转化为程序并执行;2016年,澳大利亚将编程教育列为国家必修课,孩子们10岁便开始学习编程,到了12岁就能通过编程解决实际问题;德国将编程教育规定为全国中小学生的必修课程,以色列规定从小学一年级开始学习编程U)。由此可见,我国的少儿编程教
14、育远远落后于西方发达国家。日本中小学人工智能教育课程体系现状:日本的编程教育根据学生的年龄和认知能力分为不同阶段,相互关联,环环相扣,逐步提升学生人工智能的认知能力与技术能力。小学的人工智能教育以编程教育为核心,帮助小学生了解计算机,了解编程;中学以信息教育为核心,帮助初中生深入理解信息技术在社会生活中的作用与影响,通过编程制作简单的程序;让高中生使用信息技术解决生活中遇到的实际问题Ul目前,我国少儿编程教育的主要问题:计算机教育知识体系滞后,教学方法和内容陈旧乏味,缺乏完整合理的程序设计教学大纲,师资队伍建设滞后。1.4 工作内容本人参与了基于SSM框架的在线编程教学系统的研究以及项目的设计
15、和应用实现的各个阶段,以下是具体的工作内容:1 .系统的需求分析。本文对在线编程教学系统进行需求分析,根据用户的类型系统主要分为三大功能模块,借助用例图、业务流程图等详细分析各个模块的业务需求和数据库的结构逻辑,为之后系统的实现做好了充足的准备。2 .参与系统设计。根据需求分析并结合项目特点确定系统的总体构架设计,划分系统功能模块,结合流程图阐述各个功能模块的具体设计。分析系统中各项实体类之间的关系,完成数据库表的逻辑设计与物理设计。3 .参与系统功能模块的具体开发与实现。根据需求分析和系统设计的结果,完成了管理员功能模块、教师功能模块、学生功能模块的实现。4 .参与系统测试工作。对系统各个功
16、能模块做出测试,确保开发的系统符合预期需求,对测试效果做出了总结。1-4论文组织结构论文一共分为五章,详细内容安排如下:第一章绪论,概述在线编程教学系统的研究发展背景与其意义、国内外研究现状、主要工作内容以及论文的组织结构。第二章相关技术概述,介绍系统实现所需要的关键技术。第三章系统需求分析,进行系统的可行性、业务流程和功能需求的分析。第四章系统设计,介绍系统的架构、功能和数据库的设计,为系统的实现奠定基础。第五章系统实现与测试,论述系统中各个模块的实现、测试以及功能测试结果。2.相关技术概述基于JaVaEE的企业级开源框架数量众多,选用合适的框架可以在节约人力物力成本的同时最大化满足系统对于
17、功能和性能的要求。合适的框架可以事半功倍,而不合适的框架可能给系统带来不可预期的负面效果,甚至拖垮整个系统。本章论述了本系统选取的框架和技术的内容和功能以及选择的原因。2.1 MVC设计模式所谓MVC,其实质就是一种软件范式,具体内容为模型、视图以及控制器的英文首字母缩写,在具体实现路径中具有典型特征是业务逻辑、前端界面以及数据间互相是独立和分离形态下进行代码编写,并且让许多业务逻辑汇聚集合到同一部件之下,这种方式具有显著优势,那就是如果出现界面改动需要实现时,不需要再进行针对性的逻辑编写,另外用户交互改进需求实现时也可以进行免逻辑编写处理,从而有效提升效率。MVC架构如图2.1所示:图2.1
18、 MVC模式架构图浏览器模型:在MVC三个组件中,模型所需要进行的业务处理数量和规模显著高于其他二者,被模型处理并实现返回的数据其状态呈现出显著中立性,数据格式并不存在与模型的相关性,这就意味着一个模型可以实现同时对多个不同视图进行基于需要的数据提供,模型代码能够在数据提供中被多个不同视图重复性应用,因此显著降低了系统代码的重合率。视图:实质上就是用户交互界面,MVC具有的典型优势就在于多视图处理。需要注意的是,处理流程并非在视图中进行,它仅仅是一种数据输出的工具,其中对用户开放了操作许可。控制器:其实质性功能就是用户请求接受,同时基于用户请求来实现与模型的连接并调用实现,其与视图间存在同样连
19、接和调用实现,需要注意的是,控制器本身并不进行任何数据等类型处理操作,也并不进行任何数据或相关输出,它的功能仅限于对请求的接受实现,并同时明确具体对应模型的调用,同时还需要依据返回数据来明确进行相应视图的选择。MVC架构模型开发软件具有显著优势,对每个模块进行解耦后,每个模块都有更多的自由度,当业务增加时,无需重新构建原有系统,只需在原有系统上增加一个接口即可更改功能。将独立更改单个模块所产生的连带影响降到最低。这样,每个模块都可以同步修改更新,从而使整体开发更快。此外,通过对代码的分层,也大大提高了代码的复用性。可以在多个视图层中使用相同的模型层或控制器层。这样就可以很方便的解决不同访问终端
20、带来的显示问题。对于同一个应用,只需额外创建一个模型层,配置相关参数,就可以共享同一套模型和控制器层,大大减少开发任务冏。为了最大限度地提高系统的可拓展性和复用性,本系统使用MVC架构模式作为选择技术框架的理念基础。这样,降低了功能之间的耦合度,增加了各部分的独立性,便于管理。2. 2SSM框架在线编程教学系统的后端开发采用了SSM框架,SSM框架是一种基于MVC设计模式,集成了SPring、SPringMVC以及MyBatiS框架的优秀框架集。本系统被该框架划分为前端表示层、控制层、业务逻辑层和数据持久层【闻。其中,Spring作为框架的基础核心,主要负责处理业务逻辑层,管理系统的核心对象。
21、SpringMVC用于管理表示层,负责接收和处理用户请求。Mybatis框架主要负责的是数据持久层,完成与数据库相关的操作。2.2. 1SPring框架在线编程教学系统采用Spring框架进行快速开发。Spring是一款轻量级开源框架,它在J2EE基础上实现,其开发目的是为了解决软件开发的复杂性。SPring框架可以有效降低组件之间的耦合,符合开闭原则,可以速集成其他框架,来提高开发效率和质量1。SPring有两个非常重要的特性:IoC(控制反转)和AoP(面向切面编程)。IOC属于典型的工厂模式,是一种设计思想。与传统应用程序在类的内部创建依赖对象的方式不同,IC)C容器控制外部资源的获取,
22、通过SPring框架的核心容器创建设计好的对象,并将其注入到被依赖对象中去,大大减轻了对象之间的耦合关系。AOP又称为面向方面,指开发者对横切点或横切平面的模块化编程思想,是OOP(ObjeCtorientedProgramming,面向对象编程)的延续。从功能模块中提取通用的业务逻辑,将其封装成切面切入系统,减少业务逻辑中的代码重复,避免不必要的开发工作。SPring框架包含七个模块,可以满足设计和实现企业级应用系统的所有要求,其中模块具有极强的适用性和兼容性,既可以单独利用,也可以组合利用,对应的模块部署起来也比较容易和灵活网.Spring框架的七大模块图,如图2.2所示:2.2.2Spr
23、ingMVC框架所谓SPringMVC,其主要功能就是JaVaWeb模块的构建和创设,其运行时基于MVC之上,并不需要利用其它整合手段或方法就可以实现与Spring的联合运行。借助于Spring的优越性,SpringMVC正在逐渐成为表示层的主流框架口支SPringMVC通过MVC模式实现业务逻辑、数据和页面显示的分离,降低了系统的耦合程度即。它由Mode1、View、COnlrOlIer三个部分组成,提高了代码的重复使用率,灵活适配控制器。MOde1(模型)是处理应用程序数据逻辑的部分,通常负责数据库的数据存取;View(视图)表示模型中包含数据的可视化,通常依据模型数据而创建;ContrO
24、Her(控制器)主要功能是对用户交互进行对应的处理完成并与模型和视图进行基于请求和需要的连接和调用实现。SPringMVC的工作过程:用户发送请求,被web.xml里面配置的前端控制器进行对应的请求处理,之后环节是利用映射器直接对标到适配器并进行搜寻并匹配,当实现前述步骤后,会进行控制器调用并实现业务处理并完成,并返回MOdelAndVieW到前端控制器,之后环节为控制器提出解析请求,而视图解析器进行请求实现,并将解析结果返回给DispatcherServlet,DispatcherServlet返回对应的页面和信息给用户R。其中DispatcherServlet是整个SpringMVC的核心
25、22。2.2.3MyBatis框架所谓MyBatis,实质上来说就是一个持久层架构,且其体量属于轻量级的,具体功能方面SQL查询的实现,且支持定制化,同时还有存储实现及映射实现等。它最大的好处之一是它封装好了数据库连接,无需开发者手动配置,简化了JDBC代码23。该框架还支持使用数据库连接池,可以大大提高开发效率。该框架使用简单的XML或注解的方式来配置需要的参数,使用映射方法灵活生成目标SQL语句,然后由MyBatis框架执行SQL语句并将结果映射成Java对象返回侬】。使用者可以使用持久层操作数据库,而无需知道JDBC操作数据库相关的执行步骤。MyBatiS简单易学,没有第三方依赖,只需要
26、安装两个jar包和一些SQL映射文件就可以开发学习了。通过官方文档和源码,可以快速掌握MyBatiS的设计思路和实现原理。同时,MyBatiS不会影响应用程序和数据库的现有设计。2.3MySQLMySQL是当前应用场景最为广泛的主流数据库系统,且其性质是关系型,同时也是在Web方面得到最好实用度和适配度的关系数据库。MySQL基于二维数据表,将数据依据不同的核心将之归入不同表中,这一点与其他部分数据库的仓库型存储形式截然不同,也因为此种特性具有更好的系统响应度,同时在灵活度方面也具有显著优势.I。MySQL是开源的,用户可以直接使用结构化的SQL语言在数据库系统上进行数据信息管理操作。MySQ
27、L的主要优势如下:(1)运行速度快,MySQL体积小,命令执行的速度快。(2)使用成本低。MySQL是开源的,且提供免费版本,对大多数用户来说大大降低了使用成本。(3)使用容易。与其他大型数据库的设置和管理相比,其复杂程度较低,易于使用。(4)可移植性强【26】。MySQL能够运行与多种系统平台上,如windouws,Linux,UniX等。(5)适用更多用户。MySQL支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用。2.4本章小结本章对在线编程教学系统开发过程中使用到的关键技术进行了描述,主要包括MVC设计模式、SPring框架、SPringMVC框架、MyBatiS框架、MyS
28、QL数据库等。本章内容的描述为系统的研发奠定了的理论和技术基础。3.系统需求分析本章对系统实现的可行性进行研究,基于该系统使用的实际工作情况,具体分析该系统需要实现的功能诉求,主要是对前者展开用例分析。用例分析主要涉及到功能需求阐述、功能用例图、用例图说明等方面对系统的管理员功能模块、教师功能模块、学生功能模块分别进行具体的阐述。3.1系统可行性分析本节将从技术、经济和操作三个方面来进行系统的可行性分析。在线编程教学系统的开发采用成熟的Spring+SpringMVC+MyBatis(SSM)框架开发,在技术层面完全是可行的。使用IntelliJIDEA.MiCrOSoftEdge等开发工具进
29、行开发。数据库使用开源的MySQL8.0。本系统前后端分离,各个模块独立开发的方法也便于系统今后的维护和升级。因此,在技术上,在线编程教学系统的开发不会有任何问题。在线编程教学系统减轻了客户端的负担,只需使用浏览器即可进行在线学习,节省了大量成本。所以本系统开发所需的成本完全在可以接受的范围内,它的经济效益远远超过开发成本。其次,系统运行和维护相对容易,专业人员可以进行远程维护,减少不必要的成本。因此,本系统在经济上是可行的。操作可行性分析主要评估预期的软件系统在实际环境中的适用性以及实施过程中的障碍。在今天的中国,网络覆盖率非常高。目前.,我国已经建成81.9万个5G基站,覆盖了全国所有地级
30、以上城市。5G终端的业务超过了3.1亿,产业、经济和社会领域的服务器应用示范项目超过1万个。也就是说,系统的使用环境基本没有什么问题。大多数用户都可以很好的使用基于Web的在线编程教学系统。因此,从操作可行性的角度来看,本系统的开发方案也是可行的。3.2业务流程分析在线编程教学系统制定了三个业务主角,即管理员、教师和学生。系统的业务流程图如图3.1所示:图3.1在线编程教学系统业务流程图3.3功能需求分析功能性需求从用户的需求出发,定义系统和组件的功能。本系统方案中依据用户的不同角色类型进行功能模块划分,共有管理员、教师及学生等三个不同功能模块,本章节用例图来详细说明这三个模块需要实现的功能。
31、3.3.1管理员模块在本系统方案中,管理员角色具有相应的最高权限,主要涉及对学生、课程及课程资料等多方面内容和事项的管理操作。具体功能如下:(1)学生管理:可以对学生信息进行相关管理操作,涉及到增删改查等多方面事项和业务,如果需要多名学生同时添加,利用excel表格批量导入。(2)教师管理:可以对教师信息进行相关管理操作,涉及到增删改查等多方面事项和业务,如果需要多名教师同时添加,利用excel表格批量导入。(3)课程管理:可以对课程信息进行相关管理操作。(4)课程资料管理:可以对课程文档及视频等内容进行相关管理操作。(5)论坛管理:管理话题讨论所涉及的所有数据和信息。(6)公告管理:可以对公
32、告信息进行相关管理操作。管理员的用例图如图3.2所示:图3.2管理员的用例图3.3.2教师模块在本系统方案中,教师可以实现多种管理操作,涉及到课程文档等相关课程资料和内容的上传操作、基于课程进行讨论和测试的发起和提出等。功能详情如下:(1)课件管理:对自己上传内容进行相应的管理操作。(2)话题管理:基于课程内容进行讨论添加并查看讨论进行现状。(3)测试管理:基于课程内容发起测试,并进行试题等相关内容添加。(4)个人信息管理:对自身资料基于需要和系统规则进行修改。教师用例图详情见图3.3:图3.3教师的用例图3.3.3学生模块在本系统方案中,学生可以实现多种管理操作,涉及到课程文档等内容的在线观
33、看及下载、基于课程参与相关讨论、完成教师要求的测试内容。(1)视频观看:实现视频操作即在线观看。(2)文档下载:实现课程文档等类型课程资料操作即在线下载。(3)话题讨论:实现讨论参与。(4)在线测试:实现测试参与。该项功能中还涉及到系统自动打分的内容。(5)个人信息管理:修改个人资料。学生的用例图如图3.4所示:图3.4学生的用例图3.4本章小结在本章中,我们首先分析了实现在线编程教学系统的可行性,然后用业务流程图来描述整个系统的业务逻辑流程,并根据系统的功能需求将系统功能划分为管理员、教师、学生三个模块,并讲述了各功能模块的具体功能。4.系统设计4.1 系统架构设计4.1.1 系统总体架构设
34、计本系统属于平台类型,基于此,以B/S模式进行实现,本系统方案中对于服务器选择方面,考虑到系统功能诉求及现场环境需要,选择Tomcat具体架构详情见图4.1:图4.1 B/S结构图Web 浏 览 器HTTP请求处理数据传输系统前端使用Vue框架、HTML技术和CSS技术等构建简洁美观的用户操作界面;系统后端基于SSM框架进行设计架构,采用Controller层、SerViCe层、Dao层三层开发设计模式对各功能模块的业务逻辑进行实现,从而实现用户请求与MySQL数据库之间的数据交互。4.1.2 系统技术架构设计本系统开发方案设计是应用SSM架构进行具体实现的,具体来说就是利用Spring中所具
35、有的IOC功能属性,将对象间的互联关系通过该架构实现统一性集合式处理,让系统解耦能够更轻松进行,针对系统开发难度及复杂性都能大为简化;利用SPring中所具有的AOP功能属性,能够对系统事务、权限等多方面内容实现综合性管理。该架构中涉及到SPringMVC部分,其实质来说就是利用MVC来实现具体应用即Web结构的开发,同时还能对其实现解耦,基于此,系统界面设计能够以更为简洁化方式呈现;该架构中涉及到MyBatiS部分,其实质来说就是充分利用XmI文件,提供映射实现,并进行对象支持,从而让数据库操作具有更高的便利性。以上三大部分架构其中需要利用的功能模块能够实现有效结合,让模块接口实现能够更为简
36、单。具体架构实现见图4.2o本系统开发方案利用SSM架构,是基于多方面需求考量,对于用户动态需求能够更为充分的满足,并提升系统稳定性且为后续的功能扩展或其他新增需求提供必要的延展性。显示层在线编程教学系统 前端页面图4.2系统技术架构设计图总而言之,系统控制层在方案设计上利用SpringMVC展开,具有如下优势:首先该架构是依托于MVC之上的,其中控制器在方窠设计中利用的MVC关键组件,一方面具有强大而稳定的性能对视图展开正确而效率的解析,同时也能对参数信息进行必要而正确的解析,另一方面对于业务对象来说,能够借此实现直接访问,从而显著提升系统测试可行性。系统业务层在方案设计上利用SPring展
37、开,该架构具有IoC和AC)P功能属性,且在设计模式选择上,利用依赖注入进行,从而能够对系统对象实现总体性和综合性控制,并显著提升系统测试可行性;系统持久层在方案设计上利用MyBatis展开,这一方案的优点在于Xml映射并绑定,从而显著提升系统效率。MyBatiS是作用并实现与数据库连接,由于数据间相关具有搞复杂特性,利用该架构能够显著强化系统可靠性。4.2系统功能设计4.2.1系统功能结构设计、教师、学生三大模块。系统的功能模块在线编程教学系统主要分为管理员图如图4.3所示:在线教学系统-4管理员功能教师功能学生功能图4.3系统功能模块图管理员功能:通过登录该开发系统,系统会赋予其最高权限,
38、能够对系统进行全面管理和相应维护。可以管理所有系统内部信息和资料,如对学生、老师、课程等信息进行管理实现,并对课程资料进行管理和编辑实现,同时还有闯关等特色小环节管理实现等,同时在有需要时可以推送全系统公告。教师功能:通过登录该开发系统,老师可以实现课程相关内容和资料的上传;面向学生发起相关测试并且对测试内容进行设计和编辑;对课程内容发起讨论并进行讨论管理;面向学生发起编程关卡相关任务。学生功能:通过登录该开发系统,学生可以实现课程相关的文档和视频的下载及观看,可以实现话题讨论及在线测试,同时还能进行闯关,并在有需要时进行个人信息操作等。4.2.2系统功能顺序图在对系统功能结构进行相应的方案规
39、划时,首先要对功能进行详细剖析,尤其要注重对其功能实现过程的掌握和理解。为了后续逻辑编码能够更效率化实现,需要在之前对功能和业务流程及具体的组成结构进行分析和了解。通常来说系统业务逻辑虽然可能涉及到的业务各不相同,但存在同样的流程,因此需要对这种情况加利用,对业务流程的分析过程中只需要择取其中具有代表性的即可完成。(1)上传视频通过对教师上传视频这一业务事项展开观察,发现其中顺序图主要包含了七个不同对象,具体有教师、主页、全部视频列表页、进行视频上传页,另外还涉及到控制器具体响应和事务、数据库操作及处理业务、服务器等。具体顺序图详情见4.4o具体场景:教师登录实现;点击按钮进行视频上传;页面跳
40、转,此时页面加载出现对应视频课程列表;将上传视频选定并进行表单提交;成功上传页面再次跳转回到对应视频列表。图4.4上传视频顺序图(2)添加测试通过对教师添加视频这一业务事项展开观察,发现其中顺序图主要包含了七个不同对象,具体有教师、主页、全部测试列表页、进行添加测试页,另外还涉及到控制器具体响应和事务、数据库操作及处理业务、服务器等。具体顺序图详情见4.5o具体场景:教师登录实现;点击按钮进行添加测试;页面跳转,此时页面加载出现对应测试列表;将添加测试选定并进行表单提交;成功上传页面再次跳转回到对应测试列表。系统主页面测试列表页面添加测试页面控制器数据库掾作1:登能成功添加测试2:请求课程列表
41、3:数据查询6:输入测试信息: 4:返回课程列表5:加载课程列表7:提交表单数据8:写入数据库9:插入成功更麻捌试列表仔.?io:显示测忒列表!图4.5添加测试顺序图4.3数据库设计数据库设计是否达到预期标准和要求,会给系统开发带来显著影响,同时数据库设计优良与否,也会对后期维护带来明显影响。下面将进行本次系统方案中涉及到数据库部分的实现,具体应用的是MySQL,利用其进行数据库构建。4.3.1系统类图设计根据在线编程教学系统的需求分析和功能设计,进行系统类图的设计,系统角色类图如图4.6所示:adminteacherstudent+id+name+account+password+ogin(
42、)+id+name+gender+num+telphone+account+password+coursejd+ogin()+add()+update()+delete()+addMany()+id+name+gender+num+telphone+account+password+ogin()+add()+update()+delete()+addMany()图4.6系统角色类图本次系统方案设计中主要数据类型包括课程及文档,另外还有课程视频等多种不同实体,其中文档和视频可以划分到某课程下,其上传的操作方主要是教师,而学生可以在登录后对这些内容进行下载或观看,都需要在线进行。其中path为存储
43、路径。具体类图详情见图4.7:coursecourse_filecourse_video+id+name+info+id+course_id+teacher_id+path+record-time+id+course_id+teacher-id+path+record-time+add()+update()+delete()+select()+add()+update()+delete()+add()+update()+delete()图4.7课程、课件类图在实体类之外,该系统还涉及到部分通知类。系统公告可以推送到所有用户界面实现观看操作。同时教师也可以根据需要进行问题发布,而学生则可以据此展
44、开学习和交流,基于此,就需要构建一个用于讨论实现的实体类,通常来说用discuss表示,部分实体对象并非直接可以实现获取而需要进行分析,如在线编程教学系统中,为了记录学生对教师发布的讨论进行回复,为了实现对该信息的记录就需要建立一个专门对象,也就是discuss_post,具体类图详情见图4.8:notice+id +title +content record_time +add() +update() +delete() +select()discuss+id +title +content +teacher_id +course-id +add() +update() +delete()d
45、iscuss_post+id +content +StudentJd +record-time +add() +update() +delete()4.8公告、讨论、讨论回复类图本系统开发方案中还涉及到在线测试功能,教师通过该功能发布测试,同时实现试题的添加并且出具相关正确解答。学生登录系统,在需要时进行测试并在线完成相应题项解答,系统依据答案关联给出具体得分。该功能的实现涉及到以下几个实体类,主要有task、StUdenUaSk等。具体类图详情见图4.9:tasktask_questionstudent_task+id+teacherjd+course-id+record_time+id+t
46、itle+item_A+item_B+item_C+item_D+answertask-id+score+id+StudentJd+taskjd+score+record_time+add()+update()+delete)+add()+delete()图4.9测试、试题、学生成绩类图综合上述分析,已经对本次系统开发中所涉及到的实体类进行了比较全面而系统的分析,并且它们的相关属性会在后文数据表方案中展开详细描述。4.3.2数据库表设计前文中已经对实体类图进行了清晰而详细的确定,接下来对于概念层需要进一步展开设计将之具体化。通常来说实体类间的相关需要从当前实际出发进行相应确定。这主要是因为如学
47、生可以在有需要时进行多门课程的同步学习,而一门课程一般来说会涉及到许多不同课件文档或者视频,并且也能够延伸出许多不同讨论话题,而同一话题下又可以存在来自多个不同参与者的回复。又如教师可以就课程内容发布多个不同内容测试项目,而同一课程测试项目也可以来源于不同教师。系统E-R图如图4.10所示:图4.10系统的总体E-R图根据上述E-R图可知,本系统开发方案中确定12个数据表能够满足功能实现的需要,具体来说包括管理员、教师、学生、课程、视频信息等,详情可参见表4.1到表4.14。表4.1管理员信息表(admin)字段名数据类型字段类型长度描述idint(ll)int管理员IDnamevarchar(50)varchar50管理员名称accountvarchar(50)varchar50管理员账号passwordvarchar(50)varchar50管理员登录密码isDelint(ll)int删除标记表4.2教师信息表(teacher)