本科毕业设计---网校系统的设计与实现.doc
摘 要当今世界是一个知识大爆炸的世界,学习的方式越来越多样化,原始的学校教育已经满足不了人们的学习需求。网校的崛起让人们的学习方式打破了时间和空间的限制,可以使人们随时随地的进行学习,那么选择一个好的网校平台就显得尤为重要。本设计详细的介绍了网校管理系统的设计和实现,本系统采用面向对象的思想,应用Struts2+Hibernate+Spring+MySQL技术,遵循软件开发的流程,保证了软件开发的进度。系统包括前台和后台,前台包括用户的注册和登录、课程选择、在线播放、在线自测、答疑系统、FAQ、调查表、问题反馈等功能;后台包括基本档案的管理、资源的管理、权限的管理、在线自测的管理、调查表的图表分析、问题反馈的管理等功能。经过测试,本系统实现了以上所有功能,具有操作简单、系统稳定、性能良好的特征,为用户提供了一条方便的学习途径。关键词:网校;Struts2;Hibernate;Spring;MySQLABSTRACTIn today's world is a world of knowledge explosion, more diverse learning styles, the original school education has failed to meet people's learning needs. Rise classes online so that people learn to break the constraints of time and space, you can make people learn when and where, so choose a good way to learn is particularly important.This paper introduces the design and implementation of e-campus management system, the system uses object-oriented thinking, using Struts2 + Hibernate + Spring +MySQL technology, follow the software development process to ensure the progress of software development. The system includes foreground and background, prospects, including user registration and login, course selection, online play, online self-test, answering system, FAQ, questionnaires, feedback problem; background includes basic file management, management of resources, authority management, online self-test chart management, survey analysis, the problem of feedback management. After the test, the system realized all of the features, and has the features of simple operation, stable system and good performance, and provides a convenient way for the users.Key words:Campus System; Struts2;Hibernate;Spring;MySQL目 录第1章 绪论11.1 课题研究背景11.2 课题研究意义11.3 相关技术1第2章系统分析及设计目标22.1 需求分析22.2 可行性分析22.2.1 技术可行性分析22.2.2 操作可行性分析22.2.3 社会因素的分析22.3 本课题要达到的设计目标2第3章 系统设计33.1 系统前台功能33.1.1 注册和登录33.1.2 课程选择33.1.3 在线自测33.1.4 社区33.1.5 调查表33.1.6 问题反馈33.1.7 FAQ33.2 系统后台功能33.2.1 系统管理33.2.2 资源管理43.2.3 个人设置43.2.4 前台管理43.3 系统功能模块设计43.3.1 前台功能模块图43.3.2 后台功能模块图53.4 UML建模53.4.1 系统用例图53.4.2 系统类图73.4.3 系统主要模块活动图83.5 数据库设计103.5.1 项目实体-属性图103.5.2 系统E-R图153.5.3 数据库表的设计16第4章 系统实现214.1 开发环境及工具214.1.1 开发环境214.1.2 开发工具214.2 系统运行结果及效果图214.2.1 前台实现214.3.2 后台实现25第5章 软件测试285.1 单元测试285.2 功能测试285.3 性能测试29总结30致谢31参考文献32第1章 绪论第1章 绪论1.1 课题研究背景随着互联网的发展,人们学习的方式已经不再仅仅局限于原始的学校,而是通过网络等途径,网上教育平台不仅可以给用户之间的交流带来很大的便利,丰富了人们的阅历,拓宽了人们的视野。现如今,网络教育非常的流行,由于它自由便利、投资较小并且时间和空间限制小的特点受到广大用户的青睐。目前市场上的网络教育平台不计其数,但是大部分都是面向部分领域,用户很难找到适合自己的平台,本系统是面向各个领域的群体,无需付费,只要注册账号就可以学习的平台,真正面向大众的教育平台。1.2 课题研究意义在当今互联网迅猛发展的信息时代,如何更快更好的接受新知识尤为关键。网校教育平台可以真正意义上实现随时随地的学习,并且可以通过观看视频进行反复学习,还可以在线自测,遇到问题可以在线答疑等,给人们的学习带来很大的便利,增长了人们知识的同时还可以给人们带来快乐。总而言之,网络教育将逐步取代学校教育,具有良好的发展前景。1.3 相关技术随着软件行业的不断蓬勃发展,当今世界已经是技术满天飞的世界,为了提高软件项目的开发速度、提高软件的性能以及保障软件的安全性,在开发软件时选择合适的技术就显得非常重要。本系统分为前台和后台两部分;前台主要使用JSP+JQuery+CSS+AJAX等技术,JQuery、CSS负责实现友好的界面,提高用户的体验,AJAX实现异步传输;后台主要是Struts2+Hibernate+Spring等技术,数据库采用MySQL,它具有开发轻量级的特点,在整个系统运行中,采用MVC的设计模式,Hibernate是对JDBC的完美封装,真正实现了自动化,Struts2负责与页面之间的交互,Spring在整个系统中负责控制事务和促进松耦合。29第2章 系统分析及设计目标第2章系统分析及设计目标2.1 需求分析通过对目前已有的教育平台的使用以及相关的调研,本系统具有以下功能:1 用户可以浏览相关信息,注册账号后可以筛选自己感兴趣的课程,并可以在线观看学习或者下载。2 用户学习相关课程后可以进行在线自测,系统自动判卷,遇到问题可以进行在线答疑。3 用户可以将对网站的建议通过问题反馈功能反馈给系统。4 网站需提供常见问题FAQ。5 网线可以向用户发放调查问卷,实时关注用户的想法,逐步改进系统。2.2 可行性分析2.2.1 技术可行性分析通过对系统的需求分析,决定前台技术可以采用JSP+CSS+AJAX+JQuery的技术对页面进行美化,增强用户的体验,后台采用Struts2+Hibernate+Spring,保证了软件开发的速度和性能,采用MySQL数据库,这些都是开源框架,相关技术已经很成熟,在WINDOW7的操作系统环境下,完全可以实现,因此系统在技术方面可以实现。2.2.2 操作可行性分析系统是面向大众的,面向的是不同领域的群体,系统在操作方式上符合浏览器的相关方式,系统的界面友好,提示信息较为齐全,用户可以很快的熟练掌握系统的使用方法。2.2.3 社会因素的分析系统是网络教育平台,符合国家法律以及相关政策。2.3 本课题要达到的设计目标1实现前台、后台的全部功能;2系统界面美好、提示信息齐全;3系统性能良好,安全有保障。第3章 系统设计第3章 系统设计本章介绍了系统的详细设计,系统包括前台和后台两大部分,设计完全是按照软件功能的要求,运用相关的设计模式,努力实现各个模块之间的松耦合行、可扩展性。3.1 系统前台功能3.1.1 注册和登录用户可以注册账号,已经注册账号的用户可以登录;如果用户忘记密码,可以通过邮箱找回密码;登录成功后用户可以修改个人信息。3.1.2 课程选择 用户可以根据自己的兴趣通过一级分类、二级分类、三级分类以及关键字进行筛选喜欢的课程,然后可以进行学习或者视频下载。3.1.3 在线自测用户学习课程完毕,可以进行在线自测,可以根据自己的水平选择题目的难易程度,系统智能判卷,提交试卷就可以看到自己的试卷答题情况,并且可以浏览自己之前做过的试题。3.1.4 社区用户在学习的过程中遇到问题可以在社区内进行咨询答疑等。3.1.5 调查表网站可以向用户发出调查问卷,实时了解用户的想法,尽最大努力为用户考虑。3.1.6 问题反馈用户可以将自己对系统的意见或者不满反馈给管理员。3.1.7 FAQ常见问题FAQ。3.2 系统后台功能3.2.1 系统管理 实现对管理员、会员、教师、学校等基本档案的管理以及超级管理员对权限的添加、修改、删除、查询等以及上传图片等。3.2.2 资源管理实现对一级分类、二级分类、三级分类的管理;对课程、课时的管理。3.2.3 个人设置用户登录成功后修改密码以及自己的相关信息。3.2.4 前台管理实现FAQ分类管理、FAQ问题管理、调查表管理、调查表问题、在线自测、问题反馈管理,同时可以对调查表进行图表分析等。3.3 系统功能模块设计3.3.1 前台功能模块图前台的功能模块图如图3-1所示。图3-1 前台功能模块图 3.3.2 后台功能模块图后台的功能模块图如图3-2所示。图3-2 后台功能模块图3.4 UML建模3.4.1 系统用例图 1. 会员用例图如图3-3所示。 图3-3 用户用例图部分用例描述:1) 用例名称:登录。 用例描述:根据用户输入的用户名和密码,判断用户是否可以登录。 前置条件:无。 后置条件:进入系统主界面。 基本流程: (1)用户输入用户名、密码。 (2)系统检验用户名、密码是否匹配。 (3)进入系统主界面。 可选流程:如果用户名、密码有误,提示“用户名或密码错误”; 找回密码。2) 用例名称:在线自测。 用例描述:会员学习完课程可以进行在线自测。 前置条件:会员登录成功。 后置条件:进入在线自测界面。 基本流程: (1)用户登录成功。 (2)用户在线学习课程。 (3)用户在线自测。 可选流程:如果用户名、密码有误,提示“用户名或密码错误”; 如果提交试卷时题没有做完,提示“提交试卷需做完所有试题”。 2. 管理员用例图如图3-4所示。图3-4 管理员用例图 部分用例描述: 3)用例名称:登录。 用例描述:根据用户输入的登录信息显示相应权限的界面。 前置条件:无。 后置条件:进入系统主界面。 基本流程: (1)用户输入用户名、密码。 (2)系统检验用户名、密码是否匹配。 (3)系统根据权限显示系统主界面。 可选流程:如果用户名、密码有误,提示“用户名或密码错误”; 找回密码。3.4.2 系统类图系统架构分为三层,系统架构的类图如图3-5所示。图3-5 系统架构类图3.4.3 系统主要模块活动图在系统中,用户的活动时常发生着变化,没有注册的游客可以浏览网站,但要进行在线学习就要注册账户号,因此用户的活动图如图3-6所示。图3-6 注册活动图用户注册成功且登录成功后,可以进行在线学习以及在线自测,用户的在线自测的活动图如图3-7所示。图3-7 在线自测活动图 系统的后台管理员登录的活动图如图3-8所示。图3-8管理员登录活动图管理员对系统进行维护的整体活动图如图3-9所示。图3-9 管理员后台整体管理活动图3.5 数据库设计3.5.1 项目实体-属性图系统采用MySQL数据库,每张表对应一个JavaBean,表的命名具有良好的规范,均已tb开头,下面是数据库主要的表对应的实体-属性图。会员实体-属性图如图3-10所示。图3-10 会员实体-属性图教师实体-属性图如图3-11所示。图3-11 教师实体-属性图学校实体-属性图如图3-12所示。图3-12 学校实体-属性图 角色实体-属性图如图3-13所示。图3-13 角色实体-属性图权限实体-属性图如图3-14所示。图3-14 权限实体-属性图版块实体-属性图如图3-15所示。图3-15 版块实体-属性图主题实体-属性图如图3-16所示。图3-16 主题实体-属性图回复实体-属性图如图3-17所示。图3-17 回复实体-属性图 课程实体-属性图如图3-18所示。图3-18 课程实体-属性图自测题试卷实体-属性图如图3-19所示。图3-19 自测题试卷实体-属性图 选择题实体-属性图如图3-20所示。图3-20 选择题实体-属性图3.5.2 系统E-R图下面介绍系统几个重要模块的E-R图,后台权限模块的E-R图如图3-21所示。图3-21 后台权限E-R图前台论坛模块的E-R图如图3-22所示。图3-22 前台论坛 E-R图资源管理模块的E-R图如图3-23所示。图3-23 资源管理模块E-R图3.5.3 数据库表的设计本系统数据库部分表结构内容如表3-1至表3-13所示。表3-1 tb_user表字段名数据类型约束备注idint主键自增usernamevarchar长度22用户名pssswordvarchar长度32密码,MD5加密namevarchar长度10姓名emailvarchar长度32邮箱birthdayvarchar出生日期photovarchar长度255头像的保存路径phonevarchar长度11手机号表3-2 tb_teacher表字段名数据类型约束备注idint主键自增namevarchar长度15教师姓名description varchar长度255教师简介school_idInt外键教师所属学校的idphoto_pathvarchar长度255教师头像的保存路径表3-3 tb_school表字段名数据类型约束备注idint主键自增namevarchar长度15学校名称photo_pathvarchar长度255学校图标的保存路径description varchar长度255简介表3-5 tb_article表字段名数据类型约束备注idint主键自增titlevarchar标题faceIconvarchar表情contenttext内容user_idint外键关联tb_userpost_timedatetime文章发表时间ipvarcharIp地址表3-6 tb_forum表字段名数据类型约束备注idint主键自增namevarchar长度15名称description varchar长度255简介position int版块的位置article_acount int文章数量topic_acount int 主题数量topic_id int外键最新主题表3-7 tb_topic表字段名数据类型约束备注idint主键自增typeint主题类型forum_idint外键所属版块reply_idint外键最后回复reply_acountint回复数量last_update_timedatetime最后回复时间表3-8 tb_reply表字段名数据类型约束备注idint主键自增topic_idint所属主题delflgint删除标识表3-9 tb_role表字段名数据类型约束备注idint主键自增namevarchar长度15名称description varchar长度255简介表3-10 tb_privilage表字段名数据类型约束备注idint主键自增namevarchar长度15名称urlvarchar访问路径iconvarchar图标pidint外键自身关联表3-11 tb_course表字段名数据类型约束备注idint主键自增namevarchar长度15名称description varchar长度255简介photo_pathvarchar长度255图片的保存路径teacher_idint外键老师 category3_idint外键所属三级分类表3-12 tb_paper表字段名数据类型约束备注idint主键自增titlevarchar标题description varchar长度255简介typeint试卷的难易程度timesint试卷的答题时间 course_idint外键所属课程表3-12 tb_paper_choice表字段名数据类型约束备注idint主键 自增titlevarchar题干choose varchar正确选项a_itemvarchara选项b_itemvarcharb选项 c_itemvarcharc选项d_itemvarchard选项 scoreint分值 paper_idint外键所属试卷 user_idint外键所属会员 表3-12 tb_paper_yes_no表字段名数据类型约束备注idint主键 自增titlevarchar题干choose varchar正确选项a_itemvarchara选项b_itemvarcharb选项 scoreint分值 paper_idint外键所属试卷 user_idint外键所属会员 表3-12 tb_grade表字段名数据类型约束备注idint主键 自增paper_idint外键所属试卷 user_idint外键所属用户scoreint总分 表3-13 tb_feedback表字段名数据类型约束备注idint主键 自增titlevarchar 反馈标题 emailvarchar 邮箱phonevarchar手机号 descriptionvarchar问题描述第4章 系统实现第4章 系统实现4.1 开发环境及工具4.1.1 开发环境系统所用的开发环境如表4-1所示。表4-1 开发环境操作系统Windows7开发工具MyEclipse 8.6Eclipse数据库MySql 5.5Web容器Tomcat 7.0浏览器GoogleChrome4.1.2 开发工具系统用到的开发工具如表4-2所示。表4-2 开发工具编号工具版本说明1Struts 22.1.82Hibernate3.6实现数据持久化操作3Spring2.5.6AOP、IOC4Junit4单元测试5jQuery1.4Js框架4.2 系统运行结果及效果图4.2.1 前台实现1. 用户注册时,要求输入邮箱、密码、验证码信息,如图4-1所示。图4-1 用户注册步骤1当点击下一步时,系统会进行验证,两次密码必须一致,验证码必须正确,同时邮箱格式正确且邮箱没有注册,当验证通过后,系统将根据注册时输入的邮箱,将消息发送给用户的邮箱,同时进入完善资料页面。运行结果如图4-2、图4-3所示。图4-2 用户注册步骤2图4-3用户注册步骤32. 当用户注册成功并登录以后,可以进行在线观看视频,如图4-4所示。图4-4在线播放视频3. 用户学习完相关课程后可以进行在线自测,如图4-5所示。图4-5 在线自测4. 用户在学习的过程中如果遇到问题,可以在云社区模块进行在线发出疑问,效果如图4-6、图4-7所示。图4-6 答疑系统1图4-7 答疑系统24.3.2 后台实现管理员对网站进行维护必须要登录,登录时不仅要验证用户名和密码,还要验证其权限,登录界面如图4-8所示。图4-8 后台登录管理员登录成功后,可以进行系统管理、资源管理、个人设置以及前台设置,其中超级管理员可以进行对普通管理员进行权限分配,如图4-9所示。图4-9 权限分配管理员可以对基本档案进行管理,如图4-10所示。图4-10 档案管理 为了了解会员对系统的意见或者想法,管理员发放调查表,并且可以统计调查结果,如图4-11所示。图4-11 调查结果统计图第5章 软件测试第5章 软件测试在软件开发的过程中,测试时不可或缺的一个环节。下面将详细介绍系统在开发过程中的单元测试、功能测试和性能测试。5.1 单元测试单元测试是在软件开发的过程中由编码人员自己来完成,这一部分可以处理掉一部分BUG。本系统的单元测试工具是JUnit4,在MyEciplse开发环境下,如果单元测试类不通过,就会出现红色警告,反之出现绿色,如图5-1所示。图5-1 单元测试图5.2 功能测试在完成代码过程中以及之后,进行了相应的功能测试,本系统的部分测试用例如表5-1所示。表5-1 测试用例功能模块功能录入数据预期结果测试结果后台登录登录用户名:“123”;密码:“345”;登录成功,并根据权限显示主页面与预期结果一致系统管理分配权限超级管理为普通管理员分配权限普通管理员登录,显示分配的权限与预期结果一致基本档案管理删除档案删除一条记录数据库该记录已经被删除与预期结果一致前台管理Excel导入试题下载模板,录入试题,将试题导入数据库中正确添加所有试题与预期结果一致前台注册注册正确录入注册信息1数据库添加tb_user表添加一条记录2收到注册成功的邮件与预期结果一致找回密码找回密码输入注册时的邮箱收到修改密码的链接邮件并可以成功修改密码与预期结果一致在线自测在线自测答完试题,提交试卷正确显示自测结果与预期结果一致在线学习视频播放选择视频课程,点击播放视频课程播放与预期结果一致5.3 性能测试由于Hibernate框架对性能的影响比较大,如果考虑不周,就会导致性能下降,最常见的数据库检索数据频繁。最为典型的就是N+1问题,这个问题指的是:当两张表是一对多的关系时,Hibernate取出一个对象时会将其关联的对象一并取出,这种情况下,如果需求没有用到关联的对象,这时就会多生成N条SQL语句,导致性能的下降。本系统在这方面做出了优化,大部分的都是单向关联,并将FachType设置成Lazy,这样可以避免这个问题。总 结总 结在设计系统的过程中,真正的体验了软件开发的流程,在这之间,无论从技术上还是思想上都学到了很多东西:1首先,需求分析一定要做好,之前做的一个项目,由于需求分析没有做好,导致后期的编码工作非常艰难,主要是编码时多次修改数据库表结构,有了之前的经验,在本系统中,需求做的比较完善,在编码过程中得心应手。2在编码前约定很重要,比如数据库表命名以tb开头,视图以v开头,整个项目编码用UTF-8,变量命名规则是驼峰式规则,注释完善,代码格式化等都很重要。3底层架构的好坏直接决定了系统的稳定性以及代码的重构,良好的架构有利于对系统进行维护,系统的可拓展性也比较高。4由于本人水平有限,在系统的并发行方面考虑不是很全面,前台页面展示的细节问题没有很好的进行优化。致 谢致 谢能够顺利完成毕业设计,首先要感谢郝琨老师的耐心指导和宝贵意见;同时感谢同学的热情帮助;感谢这几年任课老师的谆谆教诲,让我具备了完成毕业设计的基本能力,并且初步进入到软件行业;感谢天津市大学软件园提供的教学和实训环境,让我找到一份满意的工作;感谢天津城建大学多年培养。 31参考文献参考文献1 张晓静,陈丽.我国中小学网校发展现状的研究J.中国电化育.2012(11):57-602 杜聚宾. 搞定J2EE Struts + Spring + Hibernate 整合详解与经典案例M.北京:电子工业出版社,2012:12-153 程爱景.基础教育网校发展及应用状况研究D.曲阜:曲阜师范大学,2012:34-364 林元元.JDBC连接MySQL数据库的方法浅析J.长沙通信职业技术学院学报2013: 27-305 余艳.软件单元测试技术研究D.湖北:湖北华中科技大学,20136 孙盛兰.基于HIBERNATE的JAVA对象持久化D.天津:天津大学,20127 宋国顺. 软件工程中UML建模的技术与分析J. 软件导刊,2013,(08):35-368 Mark Allen Weiss 美.数据结构与算法分析-Java语言描述M.冯舜玺译.北京:机械工业出版社, 2012:33-359 Walter Sawitch美.Java An Introduction to Problem Solving &ProgramingM.北京:人民邮电出版社, 2013:23-2610 Dave Crane英,Bear Bibeault,Jord Sonneveld美.Ajax in Practice.北京:人民邮电出版社,2013:11-1711 Craig Walls美.Spring in ActionM.北京:人民邮电出版社,2013:45-4612 Christian Bauer美.Java Persistence with HibernateM.北京:人民邮电出版社, 2013:23-2513 Donald Brown美.Struts 2 in ActionM.北京:人民邮电出版社,2013:89-90