基于javaee的选题测试及管理系统的设计与实现-本科毕设论文.doc
《基于javaee的选题测试及管理系统的设计与实现-本科毕设论文.doc》由会员分享,可在线阅读,更多相关《基于javaee的选题测试及管理系统的设计与实现-本科毕设论文.doc(49页珍藏版)》请在咨信网上搜索。
JIU JIANG UNIVERSITY 毕 业 论 文 题 目 基于JavaEE的毕业设计选题测试及管理系统的设计与实现 英文题目 Designment and Implementation of Testing and Management System in Graduation Design Topics Selection Based on JavaEE 院 系 信息科学与技术学院 专 业 计算机科学与技术 姓 名 班级学号 指导教师 @@@ 二○一五年 信息科学与技术学院学士学位论文 摘 要 基于JavaEE的毕业设计选题测试及管理系统通过在毕业设计选题之前的测试来判断学生能力,指导学生选择自己优势方向来选择题目,帮助毕业生正确选题。系统提供给学生有在线测试、查看评测结果、查看评测报告、推荐导师和课题、提交论文、下载论文等功能。系统提供给老师管理课题、查看学生测试结果、分配课题、查看学生论文、上传批阅的论文等功能。系统提供给系统管理员有管理用户信息、管理题库等功能。系统采用的Struts架构是对MVC设计模式的一种实现,它继承了MVC设计模式的所有特性,组件的模块化、重用性、灵活性使得开发更加快捷,管理和维护更加方便。 学生测试后可以更了解自己的专业水平,通过系统推荐的导师和课题,协助学生选择导师。导师可以通过系统更全面的了解学生的各方面能力同时选择学生。在学生与导师双向选定后对学生论文的进度跟进,论文批改工作方面也起到了一定的协助作用。 关键词:框架,选题测试,论文管理 Abstract Based on JavaEE Testing and Management System in Graduation Design Topics Selection can determine the ability of the students according to the testing result. The System can guide the students according to their own advantages to choose a topic, and help to evaluate them and select topic correctly. The system provides students with online testing, show evaluation results, show testing scores, recommend tutors and thesis, upload paper, and download paper and some other functions. The system provides teachers to submit topic, search student testing scores, distribute thesis, download student’s paper, and upload student’s paper. As system administrator can manage all the users’ information and manage all the questions’ information. Struts framework is a realization of MVC design pattern. It inherited all the characteristics of MVC design pattern. It’s modularity, reusability, flexibility make the process of development more efficient and convenient. After testing, students can better understand their professional level. Through the recommendation by the system, students can select their tutors better; tutors can have a more comprehensive understanding of all aspects of students’ ability. The system also has assistant function in following the track of papers’ writing and in correcting the papers. Keywords: Framework, Topics Testing, Paper Management 目 录 摘 要 I Abstract II 1 概述 1.1 课题意义 (1) 1.2 课题目标 (1) 1.3 论文结构简介 (1) 1.4 小结 (2) 2 技术介绍和分析 2.1 Struts简介 (3) 2.2 Mysql简介 (3) 2.3 Myeclipse简介 (4) 2.4 Rational Rose简介 (5) 2.5 小结 (5) 3 系统需求分析 3.1 系统概述 (7) 3.2 系统功能分析 (7) 3.3 系统用例建模 (8) 3.4 小结 (14) 4 系统设计 4.1 设计目标及原则 (15) 4.2 系统数据库设计 (16) 4.3 表示层Web设计 (17) 4.4 业务逻辑层设计 (19) 4.5 数据访问层DAO设计 (20) 4.6 小结 (22) 5 系统实现 5.1 选题测试模块的实现 (23) 5.2 预选导师模块的实现 (31) 5.3 开发环境介绍 (34) 5.4 小结 (34) 6 系统测试 6.1 单元测试 (35) 6.2 功能测试 (37) 6.3 集成测试 (38) 6.4 小结 (42) 致 谢 (43) 参考文献 (44) 44 1 概述 1.1 课题意义 毕业设计是对大学生们在大学期间所学的所有知识的掌握程度进行考核。现在很多学生对大学学习的知识没有进行过系统的应用和总结,不了解自己总体的水平、优势和劣势。导师与学生之间的交流还停留在纸质论文交流的方式,效率较低[1]。由于不少学生正式选题时不了解有哪些导师的研究方向适合自己,造成选题盲目甚至做出来的毕业设计不符合要求等现象。出题的教师出题前也没有渠道来充分了解学生具体情况,设置的选题可能无法体现学生的技能水平。学生在制作毕业设计期间与老师要进行频繁的交流,特别是在毕业论文的修改、提交、审核、评阅、意见反馈,毕业设计制作进度的监督、系统质量的监督方面。本系统就是为了方便学生科学的了解自己的专业技能水平,根据自己有优势的方面选择毕业设计,方便导师与学生之间的交流和学生顺利完成毕业设计而提出来的采用当前流行架构和技术完成的系统。 1.2 课题目标 通过本课题的研究和课题系统的实现,可以让学生以学生身份登录,通过学生的在线测试系统将提供测试结果,根据测试结果再提供给学生选题建议,如适合选择的课题和导师。撰写论文期间可以上传写好的论文和下载导师批改过的论文,导师可以以教师身份登录,给每个选题填写题目要求和对学生的期望要求,可以查看学生的评测结果,对所带的学生提交的论文可以下载下来进行审阅,并提交到系统供学生查看。管理员通过该系统对所以系统用户进行管理,对题库进行管理。最终系统能帮助学生选题和教师出题,以及毕业论文高效设计和制作,搭建教师与学生的有效交流平台。 1.3 论文结构简介 系统是根据软件工程中软件开发过程来制作的,首先进行的是可行性研究,需求分析,总体结构设计,详细设计,编码实现,系统测试,最后是系统维护[2]。根据这个过程来组织论文的结构如下: (1)概述:主要叙述课题研究对用户的意义,介绍最终系统应该完成的功能和达到的效果。 (2)技术介绍和分析:对系统所用的技术和工具作比较和介绍,阐述使用各项技术和工具的优势。 (3)需求分析:根据实际的应用和用户需求概述得到开发的系统的需求,通过对角色的分析得到系统使用对象的特点和功能需求。根据用户之间的关系为系统内部逻辑的设计和数据库的设计提供参考。 (4)系统设计:根据系统需求设计系统总体的架构和数据库。并解析JavaEE技术在各层之间的具体应用。 (5)系统实现:根据系统设计,阐述系统功能实现过程、数据库创建过程、前后台工作过程。通过对学生选题测试功能中Struts架构的运作过程来更具体的阐述实现过程。 (6)系统测试与维护:通过测试工具的使用,测试系统是否符合用户需求。通过测试完善系统,改进系统,改正系统中存在的隐含的缺陷。 1.4 小结 通过本节的介绍,使得对系统的制作的意义和目的进一步细化。坚定了实现系统的决心,并对完成系统有了总体的把握。 2 技术介绍和分析 2.1 Struts简介 Struts框架是一种流行的MVC框架,它是对MVC的实现[3],将Servlet和JSP标记作为实现的一部分。Struts最早是作为Apache基金会Jakarta项目组的组成部分Open Source项目,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准[4]。Struts采用MVC模式,能够很好的帮助Java开发者利用JavaEE开发Web应用。Struts的使用能够很好的帮助开发团队减少在运用MVC设计模型来开发Web应用的时间。它的优势主要集中在: (1)是一款开源软件,开发者可以深入了解其内部实现机制,各种开发要用的jar包可以通过网络下载到本地,非常便捷。 (2)有自己的标记库即Taglib,一方面使得JSP页面尽可能少的嵌入Java脚本,不必考虑Java语法或其他JSP语法专注于页面的可视特征上。另一方面给应用开发者很强的后台支持。 (3)页面导航功能,通过一个配置文件struts.xml来控制整个系统各部分之间的联系,对各个页面的请求进行分发。对后期的系统维护提供了很大的便利,对系统的脉络也更加清晰。 Struts在实现MVC模型时,模型层是将模型分为系统的内部状态和事物逻辑两个部分,内部状态通常由一组ActionForm JavaBean表示,大型应用程序的事物逻辑封装在方法内部,小型应用程序则可能内嵌在Action类中。视图层采用JSP实现[5],应用Struts的标签库。控制层用的是继承自ActionSupport的Action类,实际操作中是在struts.xml配置文件中进行Action映射。 2.2 Mysql简介 Mysql是目前非常流行的SQL语言数据库,是开放源代码的非商用的关系型数据库[6]。由于其开源性使得当前很多系统都使用Mysql数据库。虽然是免费的但是与同类商业用途的数据库比并不逊色。其主要特性有: (1)数据的物理存储和存取路径对用户是不透明的,这样也减少了用户的使用难度。对数据库不是十分了解的用户使用起来比较简单; (2)不仅在WINDOWS操作系统还可以在LINUX、UNIX、SUN OS等操作系统上使用; (3)Mysql提供了不同的数据类型供选择,支持所有的SQL数值类型。根据数据结构可以选择不同格式和大小的数据类型,使得磁盘空间更加节省,数据库的性能的到提高。如:char提供的是定长的数据存储类型使得检索该类型的数据比较快,varchar类型的数据可以保存变长的字符串,通过设置其最大可存储的数据的长度可以在不知道数据长度的情况下存储任何小于该最大长度的字符串; (4)查询功能很强大,支持SELECT和WHERE语句的count()、avg()、min()、sum()函数和order by等命令,使得检索时可以进行一些运算,对检索出来的结果可以进行一些处理; (5)支持多个用户对数据库的同时访问。 与另一个比较常用的Access数据库比较,Access只能运行在Windows操作系统,主要应用于小型的系统[7]。Access数据库适合数据量小的数据存储,但数据量太大时会造成服务器死机有时甚至服务器崩溃。本系统是面向信息学院所有学生和教师的,要存储学生信息和教师信息以及题库信息,不适合使用Access数据库。而开发的系统对数据的查询和速度要求比较大,所以使用Mysql数据库更加适合本系统。 2.3 Myeclipse简介 Myeclipse是企业级工作平台是对Eclipse IDE的扩展,它是功能非常丰富的JavaEE的集成开发环境[8]。在Myeclipse下可以对系统进行编码、调试、测试和发布,另外支持html的所有标记。在使用Myeclipse时对代码能进行提示功能,并且对语法的错误能提示和定位错误。对于一些代码如JavaBean中的Get和Set方法可以自动生成相应的代码,节省了工作量。Myeclipse就是Eclipse的插件,它结构上是模块化得,在不影响其他模块的情况下可以对任一模块单裤升级和扩展。系统开发时使用的是Myeclipse 8.0版本,从Myeclipse 5.0版本就增加了UML双向建模工具、可视化的Hibernate/ORM工具、Web services支持和Oracle数据库开发等。之后出现了Myeclipse6.XGA版本,它兼容了Eclipse 3.3,可在WINDOWS,LINUX等操作系统上运行,并且支持Java持久化结构开发,能够对项目自动部署和启动服务,另外还集成了Myeclipse Tomcat 6服务器。随后又出现了Myeclipse 7.0和8.0版本,7.9版本已经不需要配置Tomcat,只需安装好Myeclipse7.0即可,而8.0版本新增了对Struts2的支持。 2.4 Rational Rose简介 Rational Rose是由美国的Rational公司开发的一种面向对象的可视化建模工具。利用Rational Rose可以建立用UML(统一建模语言)描述的软件系统模型,而且可以自动生成和维护C++、Java、Visual Basic和Oracle等语言和系统的代码。Rational Rose包括了统一建模语言(UML)、面向对象的软件工程(OOSE)及对象建模技术(OMT)[9]。Rational可以运行在WINDOWS操作系统下,其主要的特点有: (1)保证模型和代码高度一致,它实现了正向和逆向和双向工程。它可以更具模型生成代码,也可根据软件系统导出系统的模型; (2)支持多种语言,Rational Rose支持包括C++、Visual C++、Java等语言,为Rational Rose用户提供了便利; (3)为团队开发提供强有力的支持,它提供了蔡荣SCM(软件配置管理)的团队开发方式和没有SCM下的团队开发方式,用户可以根据具体项目规模和资源选择; (4)支持模型的Internet发布,Rose中有Internet Web Publisher能将模型发布为HTML版本,使得其他人员可以通过IE等浏览器浏览模型; (5)生成使用简单且定制灵活的文档,Rose中的文档生成工具SoDA可以提供模型文档模板,可以自动生成Word格式的文档; (6)支持关系型数据库的建模,Rose能为SQL Server、Oracle等支持标准DDL的数据库自动生成数据描述语言。 2.5 小结 在选择开发和设计使用的工具时并不是选择最好的而选择的是比较适合本系统的工具。Struts使得开发的项目层次分明,便于管理。Myeclipse的高度集成性使得与其它软件的合作性比较好。Rational Rose在建立系统模型过中起到了非常重要的作用。 3 系统需求分析 系统需求分析是在需求获取结束之后进行的,主要是根据获取的需求提炼、分析和仔细审查收集到的需求,以确保项目参与者都明白其含义并分析每个需求与其他需求的关系,找出其中的错误、遗漏、重叠、不一致或其他不足的地方[10]。通过分析得到系统可以实现的范围和实现能力,根据用户的需求对需求进行排序。系统需求分析的目的在与开发出高质量和具体的需求,为软件设计和实现提供依据。 3.1 系统概述 基于JavaEE的毕业设计选题测试及管理系统要求学生在设计选题前参加平台提供的测试了解自己的专业知识掌握能力和动手能力,以便选题。同时也为教师了解学生具体情况提供参考,确保毕业论文(设计)选题工作的顺利开展。此外系统也要解决毕业设计的相关管理业务功能,包括学生与教师在毕业设计制作期间的论文交流功能。 为了保证系统能发挥其作用,系统管理员要把所有学生和教师信息和测试用题库按照数据库相应的表的要求存入数据库中,导师在学生测试之前应该提供所有可选的课题和课题建议和每个课题特别要求哪些课程信息到系统。系统的功能应该包括所有用户的合法登陆,系统根据学生所在专业设置的课程出题,从学生的测试结果来判断和推荐适合该学生做的课题和适合选择的导师。教师可以从系统中查看预先选择了自己的学生的测试成绩。在毕业设计制作期间,学生可以通过系统来与导师交流制作的论文等。该系统使用应该尽量简单,容易被理解。 3.2 系统功能分析 系统功能分析可以帮助将整个系统的任务细化成较小的模块,将一个大问题进行分解。为了能够实现学生的专业知识掌握能力和动手能力的测试、教师通过学生的测试成绩来了解学生综合能力,系统管理员对系统的后台数据库进行管理,系统应该分别对这三个角色的功能进行实现。系统按角色的功能分为三大功能模块,如图3-1所示。 学生操作 教师操作 管理员操作 选题测试 管理个人信息 上传论文 预选老师 保存测试报告 管理题库信息 管理用户信息 查看测试结果 毕业设计选题测试及管理系统功能 下载教师批改论文 修改密码 管理课题信息 用户登陆 管理课程信息 查看学生测试成绩 管理学生预选信息 管理个人信息 管理学生论文 管理课题信息 分配课题 图3-1 功能模块图 每个功能模块之间是相互独立的。 3.3 系统用例建模 系统的角色是指与系统功能有关的外部实体,一般系统参与者为系统用户、与所建造系统交互的其他系统和一些可以运行的进程[11]。由于本系统与其他系统和进程没有直接的联系,是一个独立的系统,所以系统主要参与的角色分为三个:学生、教师和系统管理员。对于不同角色使用该系统是要保证系统部分信息已经完善,部分用例有时间上的优先顺序。所有用户使用系统时必须先登录,学生和教师的部分必填的个人信息要导入到系统中,教师在学生测试之前要完成对课题的设置和课题建议工作。 从系统概述可得到,学生参与者具有的功能如图3-2所示。 图3-2 学生用例图 student(学生)的用例有: login:登陆系统 logout:退出系统 testing:测试 extract_questions:抽取试题 answer_questions:回答测题 submit_test_paper:提交考卷 manage_personal_infor:管理个人信息 view_personal_infor:查看个人信息 change_password:修改密码 view_test_result:查看测试结果 view_test_report:查看测试报告 save_test_report:保存测试报告 manage_thesis:管理论文 upload_thesis:上传论文 download_thesis:下载已批改论文 apply_teacher:预选导师 对于学生的功能可以看到选题测试功能包括:抽取试题、回答问题、提交答卷用例。 选题测试用例说明: 前置条件:进入主页面,登录系统。 基本事件流: (1)输入用户名、密码和用户身份 (2)点击“登录”,系统通过对用户信息验证和数据库中用户信息的对比检 测用户的合法性,如果用户合法则进入学生后台管理首页 (3)单击“我要测试”菜单下的“开始测试”,如果用户还未测试则进入测试页面 (4)单击“抽取试题”按钮,做完测题后,单击“提交答卷”按钮,测试完毕 备选事件流: (1)当用户输入的用户名或密码为空时,系统将不进行跳转,不出现用户操作页面 (2)当用户已经测试,则不跳转到测试页面,而是跳转到提示已经测试的页面后置条件:用户测试完成,得到测试结果和测试报告。 教师实体具有的功能如图3-3所示。 图3-3 教师用例图 teacher(教师)的用例有: login:登陆系统 logout:退出系统 distribute_thesis:分配课题 manage_student_paper:管理学生论文 fill_in_thesis_requirement:填写课题要求课程 view_student_test_result:查看学生测试结果 manage_apply_information:管理学生预选情况 manage_thesis:管理课题 add _thesis:添加课题 delete_thesis:删除课题 update_thesis:更新课题 view_thesis:查看课题 manage_personal_infor:管理个人信息 change_password:修改密码 view_personal_infor:查看个人信息 教师的主要功能给出选题内容及建议,通过查看学生的测试结果和测试报告了解学生情况。 查看学生测试结果用例说明: 前置条件:用户登录成功,学生完成测试。 基本事件流: (1)输入用户名、密码和用户身份 (2)点击“登录”,系统通过对用户信息验证和数据库中用户信息的对比检测用户的合法性,如果用户合法则进入教师后台管理首页 (3)教师点击“学生测试成绩”菜单下的“查看测试成绩”,系统查找到学生测试成绩,提取学生测试信息返回显示 备选事件流:学生未测试则提示学生尚未有测试结果。 后置条件:显示学生测试成绩。 系统管理员实体具有的功能如图3-4所示。 administrator(管理员)的用例有: login:登陆系统 logout:退出系统 manage_user_infor:管理用户信息 add_user_infor:添加用户信息 delete_user_infor:删除用户信息 update_user_infor:更新用户信息 select_user_infor:查找用户信息 manage_questions_infor:管理题库 add_questions_infor:添加测题 delete_questions_infor:删除测题 update_questions_infor:更新测题 view_questions_infor:查找测题 manage_thesis_infor:管理课题信息 view_thesis_infor:查看课题信息 update_password:修改密码 图3-4 管理员用例图 管理员的主要功能之一是对学生信息进行管理。 学生信息管理用例说明: 前置条件:管理员合法登陆,进入管理员后台管理首页。 基本事件流: (1)单击“学生信息管理”菜单下的“查看学生信息”菜单,系统从数据库选出所有学生信息在页面显示 (2)单击一条学生信息记录后的“编辑”按钮,对信息进行修改单击“确定” (3)单击一条学生信息记录后面的“删除”按钮,对信息进行删除 备选事件流:当用户表中数据的外键被修改时,如果与外键所在基本表中数据不符合,则无法修改。当用户要管理的表格中数据为空时,系统不显示数据。 后置条件:数据管理成功,数据库保存修改后的表信息,数据库删除记录。 3.4 小结 系统需求分析需要注意很多原则,避免出现的需求出现冲突。通过分析得到的需求还必须与用户所要的需求相一致。如果对用户的需求误解了将对以后的系统的设计和实现造成很大的误导,并且不好改动,所以这一步需谨慎。通过对系统进行需求分析,对系统的实现更加细化和明确。 4 系统设计 系统设计时站在对系统规划的角度来考虑系统该如何实现、如何将需求转换为软件设计的问题。系统设计分为概要设计和详细设计。根据软件工程中软件设计的抽象与逐步求精原则[12],先从系统的整个结构出发来设计系统总体架构设计,再设计系统需要实现的功能模块、系统界面、数据库表等。 4.1 设计目标及原则 随着科技的发展,越来越多的自动化的产品被应用于生活中,特别是年轻人对这些数字化产品特别热衷,这样使得现在的孩子们都不愿意去使用不易理解,使用复杂的产品。从用户的使用感受考虑,系统设计时应该尽量以使用简单、操作一目了然、界面友好、有交互性为主。基于主要用户为学生团体,所以界面风格上设计的要清新,美观。对于不同专业的学生要评测出真实的水平,测试系统题型应该与学生所学专业设置的课程挂钩,并且有难易程度的过度。软件总体框架要以JavaEE思想来设计。对于数据库的设计,要充分考虑到数据的存储需求并充分利用不同数据类型的优势来选择存储数据类型。最终的系统能够实现所有需求获取阶段得到的需求,主要是学生在线测试和对测试进行分析的功能以及论文交流的功能,能够使老师通过系统了解学生的优势和劣势,对导师分配课题提供参考。系统设计还应该以易于实现、易于测试、易于维护为基本理念。 系统设计的原则是指导设计过程的。为了能设计出符合需求的系统,设计时要遵守以下原则: (1)结构应该分层次,从而建立软件成分之间的控制; (2)设计应当模块化,逻辑上将软件划分为完成特定功能或子功能的部件; (3)设计应该包含数据抽象和过程抽象; (4)模块与外部环境之间的接口尽量少; (5)系统尽量简单,减少处理的时间和费用; (6)系统数据的一致性,对于系统中的相同信息的显示和存储要一致; (7)系统具备一定的出错处理功能,提高系统的可靠性。 4.2 系统数据库设计 根据对系统的分析得到如下的实体关系图如图4-1所示: 图4-1 系统E-R图 从图中可以看到各个实体间的联系。关系型数据库要满足三类完整性约束,即实体完整性,参照完整性,用户自定义的完整性[13]。通过这三个约束将实体型转换得到关系模式即为数据库的逻辑结构设计: 学生(学号,学生姓名,登陆密码,性别,专业号,邮箱号,测试标记) 课程(课程号,课程名,专业号) 教师(教师号,教师姓名,登陆密码,性别,允许指导学生数,学院号,邮箱号) 管理员(管理员号,管理员姓名,登陆密码) 专业(专业号,专业名,学院号) 学院(学院号,学院名) 测试(学号,课程号,课程名,得分,测试日期) 问题(问题编号,问题内容,选项A内容,选项B内容,选项C内容,选项D内容,答案选项,分数,课程号) 论文指导(学号,论文号,论文主题,学生论文存放位置,更新标志,学生上传日期,教师号,教师论文存放位置,教师上传日期) 课题(课题号,课题名,出题日期,课题介绍,课题研究建议,教师号) 课题要求(课题号,课题名,课程号,课程名) 预选老师(学号,教师号,预选标志,教师同意标志,拒绝原因) 4.3 表示层Web设计 表示层是服务器与用户之间的接口。根据所见即所得原理,表示层将业务逻辑层返回的数据以用户能理解的形式在页面中显示,用户通过表示层提供的接口输入数据,通过页面来传递数据到后台业务逻辑层进行处理。 本系统的表示层主要通过不同的Action控制在JSP页面体现。其中又用到了Struts2的标签和Ajax技术。Struts2标签使得数据显示更加更加方便,代码量减少,同时数据传输方便。当业务逻辑层将数据传递给相应的Action后,通过struts.xml中的映射来跳转到相应的JSP页面,在页面中使用Struts2标签就可以将传递过来的参数显示在页面中。用户在使用系统时更希望界面简单,操作简便,有尽量少刷新操作和等待时间。Ajax技术实现了浏览器与服务器之间数据的异步传输,Ajax中是使用JavaScript来传递数据给业务逻辑层,业务逻辑层将处理后要返回的数据传回给请求数据的客户端JSP页面,页面再通过DOM(Document Object Model)显示新数据,在整个过程中用户可以不手动刷新页面。为了更好的实现导航的功能,系统表示层设计时,让不同角色的用户的操作都显示在导航栏,当页面跳转时,导航栏不会改变位置,而请求的页面则显示在一个固定的框架中。在页面显示数据时传递的是对象数组。 当学生登陆系统后可以进行测试或查看个人信息,如果还未进行测试则查看测试成绩、查看测试报告、预选老师业务都无数据显示,如果已经测试则可以查看到测试成绩、查看测试报告、预选老师、查看个人信息,最后退出系统。根据需求分析得到学生登陆后的业务功能实现活动图如图4-2所示。 图4-2 学生活动图 学生选题活动首先需学生进行课程测试,系统根据学生擅长的课程推荐课题及老师,学生可以预选课题对应的老师。老师通过查看预选了课题的学生的测试成绩决定是否同意学生预选。老师同意学生预选则可以分配课题给学生,学生可以查看课题信息;拒绝则给出拒绝原因等信息,学生可以查看老师拒绝信息。学生选题活动图如图4-3所示。 图4-3学生选题活动图 4.4 业务逻辑层设计 业务逻辑层(Service层)主要是针对不同的业务需求来调用数据访问层(DAO层)的方法,从而实现不同业务需求功能。业务逻辑层提供了一系列可提供给用户的服务,是对用户问题提供解决的方法。业务逻辑层的实现是通过调用数据访问层的方法来实现的。业务逻辑层不需要知道如何操作具体数据,只要知道通过DAO层的什么方法得到什么参数,或者传递什么参数从而能达到功能的实现。对于数据访问层而言,业务逻辑层主要充当的是调度者的角色,而对表示层(Web层)而言,业务逻辑层充当的是被调度的角色。 当学生申请导师时要传递学号和教师号到Service层来调用Service层的申请方法,Service层将参数传递至DAO层,DAO层再调用数据库操作方法,操作完成后以applyInfor对象的形式返回申请导师表中的一条记录,其中applyInfor中的学号stuNum和教师号teacherNum分别依赖于学生表student中的学号和教师表teacher中的教师号,具体如图4-4所示。 图4-4 预选老师过程使用的类图 Service层的applyInforSI对象中的setApplyFlag()方法为预选老师时调用的方法,该方法调用了DAO层applyInforDI对象的setApplyFlag()方法。 4.5 数据访问层DAO设计 数据访问层DAO主要实现的功能是对数据库中的数据进行操作,简而言之就是一系列的对数据库中的记录进行增加、删除、修改、查找操作。DAO层调用了Bean实体类,使用SQL语句来操作数据库,为了体现类的封装性,实现时则是调用封装好的数据库操作对象中的方法来实现对数据库的操作。 从数据库设计中得到相应的DAO层的设计如图4-5所示。 图4-5 DAO层设计的类文件 adminDI.java:对管理员表进行操作 applyInforDI.java :对学生预选导师表进行操作 courseDI.java:对课程表进行操作 instituteDI.java:对学院表进行操作 majorDI.java:对专业表进行操作 pageDI.java:对上下页跳转进行判断 questionDI.java:对测题表进行操作 stuCourseDI.java:对学生测试课程表进行操作 studentDI.java:对学生表进行操作 teacherDI.java:对教师表进行操作 thesisInforDI.java:对课题表进行操作 thesisRequirementDI.java:对课题要求表进行操作 预选老师DAO(applyInforDI)通过数据库连接connect类中的连接数据库的方法来获取数据库连接,再将连接和SQL语句传递给数据库操作dbOperator类中的方法来实现对数据库中applyinfor表的操作。applyInforDI中对applyInfor对象进行了实例化作为DAO层的返回参数。 DAO层与数据库操作对象间的类图如图4-6所示。 图4-6 预选信息DAO操作预选信息表类图 4.6 小结 系统设计在软件工程中占了很重要的角色,是占用整个开发周期中比较长时间的阶段。通过对系统设计的分析知道该从哪个方面开始实现,并且清楚了每个角色的操作。对数据库每个字段的设计意义也更明确。理解了JavaEE思想在系统架构中的表现方式。 5 系统实现 系统实现是系统设计之后的工作,是将系统设计转换为可执行的程序代码的过程。只有在对数据库设计、系统结构充分分析之后进行系统开发工作才能符合需求。系统实现需要掌握系统开发工具的使用方法和程序设计语言,本系统主要应用程序设计语言有Java、Javascript,开发技术有Struts、Ajax。系统实现按功能模块的划分来分别实现,循序渐进。 5.1 选题测试模块的实现 选题测试模块主要是对测试后的结果进行分析,根据学生根据测试课程分数推荐合适的课题和老师给学生。学生测试完毕后系统自动跳转到显示测试报告界面,在“查看测试报告”页面会显示学生测试成绩最好的3门课程的测试结果和推荐的符合要求的课题及出题老师。 5.1.1 表示层Web实现 选题测试模块(Web)表示层实现关键代码如下: public class thesisRequirementAction extends ActionSupport{ …… //给学生推荐课题并查找测试课程成绩为前3名的测试成绩信息 public String findSupportThesis() throws BadElementException, Exception{ …… this.testFlag = stuSI.searchStu(stuNum).getTestFlag(); //查看是否已测试标记,1:已测试 0:未测试 //已经完成测试,可以推荐课题及老师 if(1 == this.testFlag){ this.listStuCourse = stuCouSI.searchBestBySN(stuNum); //查找成绩为前3名的测试记录 int courseAmount = listStuCourse.size(); //学生测试成绩前3名的课程数量 int[] courseNums = new int[courseAmount]; //根据课程号查找对该门课程有要求的课题信息 for(int i=0; i < courseAmount; i++){ if(this.listStuCourse.get(i).getScores() >= 4){ //每门课- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 javaee 选题 测试 管理 系统 设计 实现 本科 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文