在线作业管理系统毕业论文_第1页
在线作业管理系统毕业论文_第2页
在线作业管理系统毕业论文_第3页
在线作业管理系统毕业论文_第4页
在线作业管理系统毕业论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

I基于J2EE的在线作业管理系统摘要随着信息技术的迅速发展,多媒体计算机、网络为代表的信息技术给教育的发展带来了新的生机,为传统的教学方式注入了活力,给其带来了重大的革命。网络使教育传播不再受时间和地点的限制,开发和充分利用网络教学,是当前教育发展的必然趋势。作业作为一项重要的教学活动,解决作业的方便提交、发布等问题是教学顺利有效进行重要条件。因此基于WEB的作业管理系统便成为网络教学系统不可或缺的组成部分。借助计算机及网络的优势,它能实现作业信息的快速传递,并扩展作业的功能,提高作业的教学价值及管理效率及质量。本系统在架构上采用了当前流行的B/S结构,通过JSP、STRUTS2、MYSQL数据库等软件的强大功能完成了作业管理系统教师及学生角色的基本作业管理功能,还具备了一个特别的定时发布作业功能,使教师可以预先设置将要发布的作业,解决了教师出差或忙碌时无法准时发布作业的问题。关键词作业管理,JAVA,JSP,STRUTS2,MYSQLIIHOMEWORKMANAGEMENTSYSTEMABSTRACTTHERAPIDDEVELOPMENTOFIT,THEREPRESENTITIVESOFWHICHARENETWORKANDCOMPUTERS,HASBROUGHTLIFEANDENERGYTOTRADITIONALWAYOFEDUCATION,EVOKINGTHEHISTORICALREVOLUTIONEDUCATIONALCOMMUNICATIONISFREEOFTHELIMITATIONOFTIMEANDSITEBECAUSEOFNETWORKTOMAKEFULUSEOFONLINELEARNINGISTHETRENDOFDEVELOPMENTOFEDUCATIONASTHECOREPARTOFNETWORKTEACHINGSYSTEM,THEONLINEHOMEWORKMANAGEMENTSYSTEMPLAYSANIMPORTANTPARTINENHANCINGTHEEFFICIENCYANDQUALITYOFMANAGENT,TOMAKEUSEOFTHEADVANTAGEOFNETWORK,ITCANMEETTHEDEMANDOFFASTSPREADINGOFHOMEWORKINFORMATIONANDEXTENDTHEFUNCTIONOFHOMEWORK,INCREASINGTHEVALUEOFHOMEWORKINTEACHINGPRATICETHISSYSTEMUSESTHEPREVAILINGSTRUTUREB/S,TAKINGTHEADVATAGEOFJSP,STRUTS2ANDMYSQL,TOREALIZETHEBASICFUNCTIONOFTEACHERANDSTUDENTINHOMEWORKMANAGEMENTSYSTEMWHATISMORE,ITALSOHASTHESPECIALTIMINGPUBLISHINGHOMEWORKFUNTIONTOHELPTHETEACHERSWHOCANNOTDOTHATONTIMEKEYWORDSHOMEWORKMANAGEMENTSYSTEM,JAVA,JSP,STRUTS2,MYSQLIII目录摘要IABSTRACTII第一章绪论111研究的背景112研究的内容113研究的意义2第二章系统的设计模式与技术准备321系统的设计模式322技术准备3第三章系统分析931可行性分析9311经济可行性分析9312技术可行性分析932需求分析9321系统运行环境9322系统功能需求9323系统性能需求12324主要功能要求13第四章系统设计1441系统业务流程分析1442功能模块的分析与设计14第五章数据库设计1551数据库需求分析1552数据的组织与存储1653逻辑设计16第六章系统实现1961系统研发原则1962系统的实现20第七章结论3671工作总结与成果3672不足及尚待解决的问题36参考文献错误未定义书签。致谢错误未定义书签。1第一章绪论11研究的背景随着计算机以及网络的普及,教师与学生对辅助教学方式的要求也越来越高,在教学辅助方式上追求质量及效率。作为教学核心组成之一的作业管理也趋向更加便捷快速的方式。经过调查,现阶段高校进行作业管理的方式主要有三种情况一老师与学生的课外教学互动通过公共邮箱,如老师一般把教学资料上传到公共邮箱供生下载,学生把电子版作业上交到公共邮箱。这种方式的局限性是邮箱的容量有限,对于大容量邮件,服务器只保存有限的时间而且老师难以统计学生提交作业的情况,也难以批改。情况二通过U盘拷贝教师发布作业以及提交作业,这种方式的成本高,一旦U盘损坏会导致作业丢失。情况三部分有该方面技术的教师会建立起个人辅助教学网站,网站开发需花费教师较多的时间和精力,一旦建成,修改要手动编辑源代码,比较麻烦,而且教师的个人教学辅助网站相对分散,其共享性不强,可管理性较差。针对目前的状况,很有必要开发一个操作简单,功能完备,为教师学生进行作业管理提供便捷的在线作业管理系统,简化作业管理的步骤,从根本上解决作业提交步骤复杂的问题。12研究的内容本文以所设计的作业管理系统为背景,阐述了该系统的设计思路和功能分析。首先对该作业管理系统做出简要的概述,分析系统的背景及意义,再从需求分析,总体设计再到其各个功能的详细设计,再选择合适的开发语言工具对其进2行代码实现。13研究的意义每次教授了新的章节或者内容之后,教师都有可能需要布置相应的作业或练习以保证学生可以牢固掌握相应知识。作为教学的核心之一的作业管理,其传统的实现方式步骤既繁琐又耗时,还不能很好的保证作业发布的即时性及可控性,即教师无法在他需要的时候立即发布作业,教师也无法提前预设将要发布的作业,删除,编辑,批改等操作也不够便捷。这时,作业管理系统的作用就体现出来了。教师可以在网上发布自己的课程作业,而且还可以选择及时发布还是定时发布,对过期的作业进行删除,查看学生作业提交的情况,批改学生作业等,既方便快捷也省时高效。3第二章系统的设计模式与技术准备21系统的设计模式系统采用现今流行的B/S模式开发,分层设计如下JSP页面ACTION控制层数据访问层数据库STRUTS2MYSQL图21系统分层设计图22技术准备JAVAJAVA,是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA程序设计语言和JAVA平台的总称。JAVA的语言特点如下1JAVA是简单的JAVA与C极为相似,但却简单得多。高级编程语言的所有特性中,不是绝对需要的都已删去了。例如,JAVA没有算符过载、标题文件、预处理、指针运算、结构、联合、多维数组、模板及隐式类型变换。如果你知道一点C、C或PASCAL,你很快就会驾驭JAVA。这里是一个简单的JAVAHELLOWORLD程序PUBLICCLASSHELLOINTERNETPUBLICSTATICVOIDMAINSTRINGARGVSYSTEM4OUTPRINTLN“HELLOINTERNET”2JAVA是面向对象的JAVA是一种面向对象的编程语言。除了简单的类型,如数字和布尔算子之外,JAVA中的大部分都是对象。正如任何面向对象的语言一样,JAVA代码也按类组织。每个类定义一组规定对象行为的方法。一个类可以继承另一个类的行为。在类的根层次上,通常是类对象。3JAVA是静态类型的在一个JAVA程序中,必须定义所用对象数字、字符、数组等的类型。这有助于编程人员很快发现问题,因为当程序编译时可以检测类型错误。不过,JAVA系统中的对象也有动态类型。要求一个对象为动态类型往往是可能的,所以编程人员写的程序可以对不同类型的对象做不同的事。4JAVA是编译型的当运行JAVA程序时,它首先被编译成字节代码。字节代码非常类似于机器指令,所以JAVA程序非常高效。然而,字节代码并不专对一种特定的机器,所以JAVA程序无需重新编译便可在众多不同的计算机上执行。JAVA源程序被编译成类文件,它相当于程序的字节代码表现。在一个JAVA类文件中,所有对方法及实例变量的参照均按名进行,并在第一次执行代码时加以分辨。这使得代码更通用,更不易受修改的影响,而仍具高效。5JAVA是体系结构中立的JAVA语言对每种计算机都一样。比如,简单的类型都是不变的整数总是32位,长整数总是64位。令人奇怪的是,诸如C及C等时髦的编程语言却不是这样。由于这些语言定义如此自由,每种编译器及开发环境便各有不同了,这使程序的移植成为讨厌的问题。JAVA程序的移植却很容易,而且不需要进行重新编译。6JAVA是健全的JAVA程序不可能造成计算机崩溃。JAVA系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。5不过,即使JAVA程序也可能有错误。如果出现某种出乎意料之事,程序不会崩溃,而把该例外抛弃。程序会发现这类例外,并加以处理。传统的程序可以访问计算机的全部内存。程序可能无意识地修改内存中的任何值,这就会造成问题。JAVA程序只能访问内存中允许它们访问的那些部分,所以JAVA程序不可能修改不拟修改的值。7JAVA是小巧的由于JAVA的设计是要在小的计算机上运行,作为一种编程语言来说其系统是相对较小的。它能有效地在4MB以上RAM的PC机上运行。JAVA翻译器只占用几百KB。这种翻译器对JAVA的平台无关性和可移植性是可靠的。由于JAVA很小,它对内存很小的计算机,如基于JAVA的PC机,以及电视机、烤箱、电话机及家用计算机等,是很理想的。8JAVA是多线程的JAVA程序可以执行一个以上的线程。比如,它可以在一个线程中完成某一耗时的计算,而其它线程与用户进行交互对话。所以用户不必停止工作,等待JAVA程序完成耗时的计算。在多线程环境中的编程通常是困难的,因为许多东西可能同时出现。但是,JAVA提供了易于使用的同步特性,使编程更为方便。JAVA线程通常被映射为实际的操作系统线程,只要底层操作系统支持这种映射。因此,用JAVA写的应用程序可说是“MP热”。这就是说,如果它们在多处理器机器上运行,它们更将表现不凡。9JAVA是可收集无用的存储单元的用C及C写软件的编程人员必须仔细跟踪所用的内存块。当一个块不再使用时,他们务必让程序释放它,从而方可再用。在大的项目中,这可能很困难,并往往成为出错和内存不足的根源。在JAVA的情况下,编程人员不必为内存管理操心。JAVA系统有一个叫做“无用单元收集器”的内置程序,它扫描内存,并自动释放那些不再使用的内存块。10JAVA是快速的JAVA比典型的脚本语言大为有效,但它比C慢20倍。这对大多数应用是6可接受的。不久的将来,代码生成器就可供利用了,这将使JAVA程序几近于用C或C编写的程序那么快。11JAVA是安全的JAVA程序没有指针,而且象这样的字节代码程序强在类型,所以在执行之前它可能验证JAVA程序。谎橹腏AVA程序得以保证不突破JAVA语言的任何限制,而且可以安全地执行。JAVA字节代码验证被WEB浏览器用来确保小程序不含病毒。12JAVA是可扩展的JAVA程序可与用其它语言编写的现存程序库连接。由于JAVA数据结构与C的数据结构的类型极为相似,这是相当方便的。最大的问题在于,现有多线程程序库为数不多。JAVA程序可以声明某些方法是内部的,然后,把这些内部方法映射成软件库所定义的功能,从而动态地链接到虚拟机。STRUTS2STRUTS2是STRUTS的下一代产品。是在STRUTS和WEBWORK的技术基础上进行了合并,全新的STRUTS2框架。其全新的STRUTS2的体系结构与STRUTS1的体系结构的差别巨大。STRUTS2以WEBWORK为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与SERVLETAPI完全脱离开,所以STRUTS2可以理解为WEBWORK的更新产品。因为STRUTS2和STRUTS1有着太大的变化,但是相对于WEBWORK,STRUTS2只有很小的变化。一个请求在STRUTS2框架中的处理大概分为以下几个步骤1、客户端初始化一个指向SERVLET容器(例如TOMCAT)的请求;2、这个请求经过一系列的过滤器(FILTER)(这些过滤器中有一个叫做ACTIONCONTEXTCLEANUP的可选过滤器,这个过滤器对于STRUTS2和其他框架的集成很有帮助,例如SITEMESHPLUGIN);73、接着FILTERDISPATCHER被调用,FILTERDISPATCHER询问ACTIONMAPPER来决定这个请求是否需要调用某个ACTION;4、如果ACTIONMAPPER决定需要调用某个ACTION,FILTERDISPATCHER把请求的处理交给ACTIONPROXY;5、ACTIONPROXY通过CONFIGURATIONMANAGER询问框架的配置文件,找到需要调用的ACTION类;6、ACTIONPROXY创建一个ACTIONINVOCATION的实例。7、ACTIONINVOCATION实例使用命名模式来调用,在调用ACTION的过程前后,涉及到相关拦截器(INTERCEPTER)的调用。8、一旦ACTION执行完毕,ACTIONINVOCATION负责根据STRUTSXML中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个ACTION链)一个需要被表示的JSP或者FREEMARKER的模版。在表示的过程中可以使用STRUTS2框架中继承的标签。在这个过程中需要涉及到ACTIONMAPPER。ENTITY存放实体类,实体类主要是作为数据管理和业务逻辑处理层面上存在的类别;它们主要在分析阶段区分实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。大多情况下,实体类和数据库中的表(这里指实体表,不包括表示多对多对应的关系表)是一一对应的,但这并不是一个限制,在复杂的数据库设计中,有可能出现一个实体类对应多个表,或者交叉对应的情况。DAODAO(数据访问对象)是一种应用程序编程接口(API),存在于微软的VISUALBASIC中,它允许程序员请求对微软的ACCESS数据库的访问。DAO是微软的第一个面向对象的数据库接口。DAO对象封闭了ACCESS的JET函数。通过JET函数,它还可以访问其他的结构化查询语言(SQL)数据库。DAO是DATAACCESSOBJECT数据访问接口,数据访问顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。8在核心J2EE模式中是这样介绍DAO模式的为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。MYSQL数据库MYSQL是一个小型关系型数据库管理系统,目前被广泛地应用在INTERNET上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。MYSQL作业调度作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。因此,有时也把作业调度称为接纳调度。事件调度器是在MYSQL51中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功能。例如,LINUX中的CRONTABE只能精确到每分钟执行一次,而MYSQL事件调度器则可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。事件调度器是定时触发执行的,在这个角度上也可以称作是“临时的触发器“。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个间隔时间执行一些语句。事件是由一个特定的线程来管理的,也就是所谓的“事件调度器“。启用MYSQL事件调度器后,拥有SUPER权限的账户执行SHOWPROCESSLIST就可以看到这个线程了。通过设定全局变量EVENT_SCHEDULER的值即可动态的控制事件调度器是否启用。9第三章系统分析31可行性分析311经济可行性分析因为该系统只是一般的作业管理系统,系统的管理与操作的要求不是很高,系统管理员可征集有相关专业基础学生义务担任或作为学校勤工助学的岗位。而且该系统的经费不高,系统逻辑不复杂,可由学生担任一部分的开发工作。312技术可行性分析该系统使用B/S模式开发,技术使用JAVA、STRUTS2、MYSQL作业调度等,开发环境使用WINDOWSXP、MYECLIPSE和TOMCAT。经过详细的分析,设计模式、技术、开发环境和人员配备都可满足系统开发的条件。32需求分析321系统运行环境1软件环境操作系统WINDOWSXP浏览器IE8数据库MYSQL512硬件环境服务器专用双核或四核CPU,内存4G以上,硬盘用SCSI或SAS。322系统功能需求作业功能模块的用户分为教师和学生,他们各自的主要功能需求如下(1)教师的主要功能需求101查看教师所教的所有课程2上传作业以及相应作业参考答案,可以选择定时发布作业3下载发布的作业及答案4删除、修改已发布的作业,删除时可连带删除相关信息5查看作业批改情况,下载学生作业,批改学生所上传的作业6查看作业提交情况7查询学生成绩,修改学生成绩(2)学生的主要功能需求1查看教师发布的作业2查看自己所选课程3查看自己完成作业的情况4上传作业5下载自己提交的作业以及删除自己上传但教师尚未批改的作业6查看个人作业的以及教师评语7查看已提交作业的参考答案系统用例图如下根据作业模块的用户可创建两类角色是教师和学生,他们的关系用例图分别如下(1)学生角色的用例图关系如下图31学生角色用例图11(2)教师角色的用例图关系如下图32教师角色用例图A教师发布作业情况的用例图如下图33教师发布作业用例图B教师管理已发布作业的用例图如下12图34教师管理作业用例图C教师批改作业的用例图如下图35教师批改作业用例图323系统性能需求实用性为网上教学提供方便,有效进行作业管理,尽量最大限度降低管理员日常管理工作量,提高教学质量和效率,优化资源,实现效益最大化。操作简单本系统应该适用于不同水平的使用者,包括教师和学生,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。技术先进产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。安装使用简便服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入INTERNET,无论您身在何处,只要您可以访问INTERNET都可以使用本系统。代码可读性好文中的代码将尽可能简洁,易懂。13324主要功能要求主要功能为方便教师检查学生的实验作业,减少大量数据处理,复杂的排版操作从而经常出现错误率高、网页样式不一、重覆枯燥计算机操作和网页美观性的问题,提高学生的实验效率。查看实验作业时应保证查准率,查看的记录应与给定的实验项内容完全匹配。数据安全性,修改数据时,一定要保证输入正确,并且数据保密性要高。输入要求数据完整、详实输出要求简捷、快速、实时安全与保密要求客户端要求提供身份验证,只允许通过身份验证的用户使用本系统要求能在发生意外(如掉电)的情况下,保证不丢失数据。14第四章系统设计41系统业务流程分析教师登陆发布作业(定时发布)学生查看并提交作业教师查看批改情况批改作业学生查看成绩和评价教师删除过期作业及相关文件学生查看参考答案图41系统业务流程图42功能模块的分析与设计教师用户的模块及功能设计如下1作业发布子模块通过文件上传框上传相应作业文档,还可以选择性得选择是否上传该次作业的答案文档。教师还可以选择定时发布作业,作业将在教师选定的日期才显示出来。系统还会在用户按下提交按钮之后检测教师是否输入了文件名以及上传了作业文档,检测通过后才可以正式发布这次作业。2作业列表模块分页显示所有教师发布过的作业列表,每次作业的右边都会有删除,批改,提交情况的超链接,点击会跳到相应的功能页面。点击删除超链接时,会提示教师,将会连带删除学生所交作业和成绩,是否继续,点击确定后将删除相应作业及学生的相关作业和成绩。3批改作业子模块在作业显示列表页面点击了批改按钮之后,会弹出一个显示作业批改情况的页面,里面是一个列表,其中列表项包括学号,已(未)批改(超链接),分数,评语(评语设定显示六个字,后面用省略号代替)。点击已(未)批改链接会出现相应学号该次作业的批改页面,里面显示学生学号,姓名,学生所提交作业的下载链接,提交日期等信息。下面有两个输入框,分别用于输入成绩和批语,若之前教师已批改过次作业,成绩及批语输入框内将显示之前的内容,成绩输入框只能输入数字,而且提交时还会检测分数的范围是否正确。4提交作业情况子模块教师只需要在作业列表右边点击相应作业的“提15交情况”的超链接,就会弹出相应的提交作业查看页面,可以看到的信息包括学号,姓名,班级,提交状态(5)成绩管理子模块教师可通过此模块对其学生的成绩进行管理作业模块的总体结构如下图42作业模块功能图第五章数据库设计51数据库需求分析发布作业首先要记录作业明,作业文档上传后存放到指定文件夹,因此作业功能模块教师作业功能学生作业功能提交作业我的成绩我的作业文件发布作业作业管理成绩管理提交情况管理参考答案16必须记录文件存放路径,参考答案选择性上传,但必须有存放其路径的地方,还要记录作业发布日期,为了区分作业,必须把作业与教师及相应课程关联起来,因此有任课ID。提交作业区分学生作业要有相应ID,记录学生学号信息,学生作业的名称,存放路径,为了方便教师查看还要记录提交时间。学生成绩管理学生、教师都能对相应权限的成绩进行查看,学生成绩表应记录每个学生每次作业的成绩及评语。学生提交情况功能要求设置一个表专门记录作业提交情况,表中只需有学号和作业的编号两个字段,相应记录存在则该学生该次作业有提交。52数据的组织与存储系统将作业信息分为两类记录和文件。记录是与作业相关的信息,主要包括学号,姓名,班别,作业名称,作业文件名,作业存储路径,上传时间等信息,而文件主要指存储教师发布的作业及学生提交作业的文件。系统采用MYSQL作为后台数据库,该数据库名称为EDUMGSYS,主要包括USER,STUDENG_INFO,CLASS,COURSE,RECORDEVENTNUM,S_TC,TEACHER_INFO,T_C,TB_HOMEWORK,TB_STDNHOMEWORK,TB_STDNSCORE,等多个表。其中USER主要用于验证用户登录信息以及提取学生学号信息;表STUDENG_INFO用于记录学生的详细信息;表TEACHER_INFO用于记录教师的详细信息,表CLASS用于记录班别信息,表COURSE记录课程信息,表S_TC记录学生选课信息,表T_C记录教师所教授课程信息,表TB_HOMEWORK记录教师上传作业存储路径等相关信息,表TB_STDNHOMEWORK记录学生提交作业相关信息,表TB_STDNSCORE记录学生成绩信息,表RECORDEVENTNUM用于在定时发布作业时唯一标识MYSQL中的作业调度时间名称。53逻辑设计下面为MYSQL数据库的逻辑设计171用户表表51用户表字段说明类型是否允许为空是否为外键备注ID用户IDBIGINT否是LOGINNAME登录名VARCHAR20否对应学生学号,教师工号PASSWORD密码VARCHAR20否USER_TYPE用户类型VARCHAR1否0代表管理员,1代表老师,2代表学生2学生信息表表52学生信息表字段说明类型是否允许为空是否为外键备注ID学生IDBIGINT否是U_ID用户IDBIGINT否是对应USER表的IDNAME学生姓名VARCHAR20否CL_ID班级IDINT否是3班级信息表表53班级信息表字段说明类型是否允许为空是否为外键备注ID班级IDINT否是GRADE年纪VARCHAR4否是NAME专业名VARCHAR20否NO班别VARCHAR2否4课程信息表表54课程信息表字段说明类型是否允许为空是否为外键备注ID课程IDINT否是NAME课程名称VARCHAR20否CREDIT学号TINYINT否185教师信息表表55教师信息表字段说明类型是否允许为空是否为外键备注ID教师IDINT否是U_ID用户IDBIGINT否是NAME教师姓名VARCHAR20否6教师任课表表56教师任课表字段说明类型是否允许为空是否为外键备注ID任课IDINT否是C_ID课程IDINT否是T_ID教师IDINT否是7学生选课信息表57学生选课信息表字段说明类型是否允许为空是否为外键备注ID选课IDBIGINT否是S_ID学生IDINT否是TC_ID任课IDINT否是8作业信息表表58作业信息表字段说明类型是否允许为空是否为外键备注ID作业IDINT否否FILENAME作业文件名VARCHAR50否否FILEPATH作业存放路径VARCHAR50否否ANSWERKEY参考答案路径VARCHAR50是否SUBMITDATE发布日期DATE否否TC_ID任课IDINT否是9回收学生作业信息表19表59回收学生作业信息表字段说明类型是否允许为空是否为外键备注ID回收学生作业IDINT否否S_ID学号BIGINT否是HW_ID作业IDINT否是SHW_NAME学生作业文件名VARCHAR(50)否否SHW_PATH学生作业存放路径VARCHAR(50)否否SHW_DATE提交日期DATE否否10学生成绩表表510学生成绩表字段说明类型是否允许为空是否为外键备注SHW_ID回收学生作业IDINT否是S_ID学号BIGINT否是HW_ID作业IDINT否是SCORE成绩INT否否EVALUATION评语TEXT是否11辅助变量表表511辅助变量表字段说明类型是否允许为空是否为外键备注IDIDINT否否NUM作业调度数INT否否用于唯一标识作业调度第六章系统实现61系统研发原则1完整性原则20本系统需为用户提供完整的操作流程,确保用户在任何页面上均能按实际需求实现页面跳转,数据库建设必需能完整获取用户输入的数据内容,确保使用流程和输入输出的完整性。2适应性原则本系统除了预先在数据库导入必要数据,为用户提供参考以外,必需顺应用户实际需求,提供用户可以自定义的功能。此外,本系统务必操作简便,界面指引清晰,适应不同人群操作和使用,与此同时,可根据实际需求添加更多新功能,可见能很好地适应未来对手机地图发展的需求。3易用性原则本系统要广泛普及,必需让用户觉得操作简便。然而,对于研发人员来说,系统也应尽可能地操作简单、维护简单、使用方便。为使系统顺利地推广使用,需要更多的人掌握系统的相关技术,因此系统遵循严格的文档规范,拥有完备的文档,程序有完备的中文注释。4可靠性原则由于操作失误出现的故障,重新使用时,系统应有自举功能,一时的设备故障,系统应可进行恢复,不破坏数据的一致性和完整性。5健壮性原则本系统接受用户在界面上输入数据,系统应对错误的数据和结构不合理的数据进行识别,拒绝接受错误数据和结构不合理数据。62系统的实现621下面是本系统教师模块的类图结构GRADEHOMEWORKHOMEWORKDELETEHOMEWORKENTITY21图61系统的类图设计623系统代码展示现针对作业系统的教师模块贴出关键代码(1)把教师及课程信息列表存到SESSION的ACTION主要代码T_HOMEWORKLISTT_CDISPLAYSUBMITSTATUSSTDHWDOWNLOADHOMEWORKUPLOADHWANSWERDOWNLOADHWDOWNLOADIFSESSIONSAVESCORESTDHWDISPLAY22PUBLICSTRINGEXECUTETHROWSEXCEPTIONREMARKSHWRECORDQUERYTC_INFOT_IDHTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTHTTPSESSIONSESSIONREQUESTGETSESSIONSESSIONSETATTRIBUTE“REMARKS“,REMARKSTC_IDHWRECORDQUERYTCT_IDSESSIONSETATTRIBUTE“TC_ID“,TC_IDRETURNSUCCESS(2)显示作业列表的ACTION主要代码PUBLICSTRINGEXECUTETHROWSEXCEPTIONINTA1HOMEWORKSHWRECORDQUERYBYPAGETC_ID,PAGESIZE,PAGENOWHTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTHTTPSESSIONSESSIONREQUESTGETSESSIONSESSIONSETATTRIBUTE“TC_ID“,TC_IDSTRINGC_NAMEHWRECORDQUERYC_NAMETC_IDSESSIONSETATTRIBUTE“C_NAME“,C_NAMERETURNSUCCESS(3)作业上传ACTION主要代码PUBLICSTRINGGETCURRENTDATECALENDARCALENDARNEWGREGORIANCALENDARINTMONTHCALENDARGETCALENDARMONTH1STRINGCURRENTDATECALENDARGETCALENDARYEAR“MONTH“CALENDARGETCALENDARDAY_OF_MONTHRETURNCURRENTDATEPUBLICSTRINGEXECUTETHROWSEXCEPTIONIFFILENULLRETURNERROR23HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTHTTPSESSIONSESSIONREQUESTGETSESSIONTC_IDINTEGERSESSIONGETATTRIBUTE“TC_ID“SAVEPATHSAVEPATHINTEGERTOSTRINGTC_ID“/“/TC_ID的值是否有变FILEFNEWFILESAVEPATHSTRINGSAVEFILEPATH2STRINGSAVEFILEPATH1IFFEXISTSFMKDIRSSAVEFILEPATH1SAVEPATHTHISGETFILEFILENAMEGET0FILETARGET1NEWFILESAVEFILEPATH1IFTARGET1EXISTSTARGET1CREATENEWFILEFILEUTILSCOPYFILEFILEGET0,TARGET1ELSERETURNINPUTSTRINGATHISGETFILEFILENAMEGET1IFAEQUALS“SAVEFILEPATH2SAVEPATHTHISGETFILEFILENAMEGET1FILETARGET2NEWFILESAVEFILEPATH2IFTARGET2EXISTSTARGET2CREATENEWFILEFILEUTILSCOPYFILEFILEGET1,TARGET2ELSEFILEFILENEWFILESAVEFILEPATH1FILEDELETERETURNINPUTELSESAVEFILEPATH2“CURRENTDATEGETCURRENTDATESTRINGHWNAMETHISFILEFILENAMEGET0HWNAMEHWNAMESUBSTRING0,HWNAMELASTINDEXOF“IFTESTNULL|TESTEQUALSIGNORECASE“RESULTHWRECORDINSERTHWHWNAME,SAVEFILEPATH1,SAVEFILEPATH2,CURRENTDATE,TC_ID,1/即时上传ELSE24IFJAVASQLDATEVALUEOFTESTAFTERJAVASQLDATEVALUEOFCURRENTDATERESULTHWRECORDINSERTHWHWNAME,SAVEFILEPATH1,SAVEFILEPATH2,TEST,TC_ID,2/定时上传ELSERESULTHWRECORDINSERTHWHWNAME,SAVEFILEPATH1,SAVEFILEPATH2,CURRENTDATE,TC_ID,1/即时上传IFRESULTRETURNSUCCESSELSERETURNERROR(4)删除作业的ACTION主要代码/删除文件PUBLICVOIDDELFILESTRINGFILESAVEPATHFILEFILENEWFILEFILESAVEPATHFILEDELETEPUBLICSTRINGEXECUTETHROWSEXCEPTIONSTRINGHWSAVEPATHNULLSAVEPATHHWRECORDGETSAVEPATHHW_IDINTASAVEPATHLENGTHIFA0FORINTI0ISCOREQUERYINTHW_ID,INTPAGESIZE,INTPAGENOW/INTI0LISTLISTNEWARRAYLIST/提取未批改名单/分页SQL“SELECTAS_ID,ROW_NUMBEROVERORDERBYAS_IDASROWNUMBER,AIDFROMTB_STDNHOMEWORKAWHEREAHW_ID“HW_ID“ANDAS_IDNOTINSELECTS_IDFROMTB_STDNSCOREWHEREHW_ID“HW_ID“ANDROWNUMBERBETWEEN“PAGENOWPAGESIZEPAGESIZE“AND“PAGENOWPAGESIZESTRINGSQL“SELECTAID,CLOGINNAMEFROMTB_STDNHOMEWORKA,STUDENT_INFOB,USERCWHEREAS_IDBIDANDCIDBU_IDANDAHW_IDANDAS_IDNOTINSELECTS_IDFROMTB_STDNSCOREWHEREHW_ID“/提取已批改名单/分页SQL1“SELECTBS_ID,ROW_NUMBEROVERORDERBYBS_IDASROWNUMBER,AID,BSCORE,BEVALUATIONFROMTB_STDNSCOREBLEFTOUTERJOINTB_STDNHOMEWORKAONBS_IDAS_IDANDBHW_IDAHW_IDANDBHW_ID“HW_IDSTRINGSQL1“SELECTCLOGINNAME,ASHW_ID,ASCORE,AEVALUATIONFROMTB_STDNSCOREA,STUDENT_INFOB,USERCWHEREAHW_ID“HW_ID“ANDAS_IDBIDANDBU_IDCID“/提取未批改名单操作TRYCONNTHISGETCONSTATCONNPREPARESTATEMENTSQLSTATSETINT1,HW_IDSTATSETINT2,HW_IDRSSTATEXECUTEQUERYWHILERSNEXT/IREMARKRNEWREMARKRSETSHW_IDRSGETINT1/回收了的学生作业编号RSETS_NORSGETSTRING2RSETEVALUATION“RSETREMARKORNOT“未批改“LISTADDR31CATCHSQLEXCEPTIONEEPRINTSTACKTRACETRYSTAT1CONNPREPARESTATEMENTSQL1RS1STAT1EXECUTEQUERYWHILERS1NEXTREMARKRNEWREMARKRSETS_NORS1GETSTRING1RSETSHW_IDRS1GETINT2/回收了的学生作业编号RSETSCORERS1GETINT3STRINGERS1GETSTRING4IFENULLIFELENGTH7EESUBSTRING0,6“RSETEVALUATIONERSETREMARKORNOT“已批改“LISTADDRCATCHSQLEXCEPTIONEEPRINTSTACKTRACETRYRSCLOSESTATCLOSERS1CLOSESTAT1CLOSECONNCLOSECATCHSQLEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACERETURNLIST/查询提交与未提交名单及相关信息PUBLICLISTGETSUBMITSTATUSINTHW_ID,INTTC_ID32LISTSUBMITSTATUSNEWARRAYLISTSTRINGSQL“SELECTBLOGINNAME,ANAME,CGRADE,CNAME,CNOFROMUSERB,STUDENT_INFOA,CLASSCWHEREAIDINSELECTS_IDFROMTB_STDNHOMEWORKWHEREHW_ID“HW_ID“ANDAU_IDBIDANDACL_IDCID“STRINGSQL1“SELECTBLOGINNAME,ANAME,CGRADE,CNAME,CNOFROMUSERB,STUDENT_INFOA,CLASSCWHEREAIDINSELECTS_IDFROMS_TCWHERETC_ID“TC_ID“ANDAIDNOTINSELECTS_IDFROMTB_STDNHOMEWORKWHEREHW_ID“HW_ID“ANDAU_IDBIDANDACL_IDCID“TRYCONNTHISGETCONSTATCONNPREPARESTATEMENTSQLRSSTATEXECUTEQUERYWHILERSNEXTSUBMITSTATUSSNEWSUBMITSTATUSSSETS_NORSGETSTRING1SSETS_NAMERSGETSTRING2SSETS_CLASSRSGETSTRING3“级“RSGETSTRING4“RSGETSTRING5“班“SSETSUBMITORNOT“已“SUBMITSTATUSADDSCATCHSQLEXCEPTIONEEPRINTSTACKTRACETRYCONNTHISGETCONSTATCONNPREPARESTATEMENTSQL1RS1STATEXECUTEQUERYWHILERS1NEXTSUBMITSTATUSSNEWSUBMITSTATUSSSETS_NORS1GETSTRING1SSETS_NAMERS1GETSTRING2SSETS_CLASSRS1GETSTRING3“级“RS1GETSTRING4“RS1GETSTRING5“班“SSETSUBMITORNOT“未“SUBMITSTATUSADDS33CATCHSQLEXCEPTIONEEPRINTSTACKTRACETRYRS1CLOSERSCLOSESTATCLOSECONNCLOSECATCHSQLEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACERETURNSUBMITSTATUS/插入成绩记录PUBLICBOOLEANSCORETOSQLINTSHW_ID,INTS_ID,INTHW_ID,INTSCORE,STRINGEVALUATIONSTRINGSQL“SELECTFROMTB_STDNSCOREWHERESHW_ID“SHW_IDSTRINGSQL1“INSERTINTOTB_STDNSCORESHW_ID,S_ID,HW_ID,SCORE,EVALUATIONVALUES“SHW_ID“,“S_ID“,“HW_ID“,“SCORE“,N“EVALUATION“STRINGSQL2“DELETEFROMTB_STDNSCOREWHERESHW_ID“SHW_IDTRYCONNTHISGETCONSTATCONNPREPARESTATEMENTSQLRSSTATEXECUTEQUERYIFRSNEXTSTATCONNPREPARESTATEMENTSQL2STATEXECUTEUPDATESTATCONNPREPARESTATEMENTSQL1STATEXECUTEUPDATECATCHSQL

温馨提示

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

评论

0/150

提交评论