在线作业系统的设计与实现毕业论文Word文档下载推荐.docx

上传人:b****6 文档编号:17337365 上传时间:2022-12-01 格式:DOCX 页数:39 大小:193.13KB
下载 相关 举报
在线作业系统的设计与实现毕业论文Word文档下载推荐.docx_第1页
第1页 / 共39页
在线作业系统的设计与实现毕业论文Word文档下载推荐.docx_第2页
第2页 / 共39页
在线作业系统的设计与实现毕业论文Word文档下载推荐.docx_第3页
第3页 / 共39页
在线作业系统的设计与实现毕业论文Word文档下载推荐.docx_第4页
第4页 / 共39页
在线作业系统的设计与实现毕业论文Word文档下载推荐.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

在线作业系统的设计与实现毕业论文Word文档下载推荐.docx

《在线作业系统的设计与实现毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《在线作业系统的设计与实现毕业论文Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。

在线作业系统的设计与实现毕业论文Word文档下载推荐.docx

例如,Java没有算符过载、标题文件、预处理、指针运算、结构、联合、多维数组、模板及隐式类型变换。

如果你知道一点C、C++或Pascal,你很快就会驾驭Java。

这里是一个简单的JavaHelloWorld程序:

publicclassHelloInternet{publicstaticvoidmain(Stringargv[]){System.out.println(“HelloIn-ternet!

”)}}

2.Java是面向对象的

  Java是一种面向对象的编程语言。

除了简单的类型,如数字和布尔算子之外,Java中的大部分都是对象。

  正如任何面向对象的语言一样,Java代码也按类组织。

每个类定义一组规定对象行为的方法。

一个类可以继承另一个类的行为。

在类的根层次上,通常是类对象。

3.Java是静态类型的

  在一个Java程序中,必须定义所用对象(数字、字符、数组等)的类型。

这有助于编程人员很快发现问题,因为当程序编译时可以检测类型错误。

  不过,Java系统中的对象也有动态类型。

要求一个对象为动态类型往往是可能的,所以编程人员写的程序可以对不同类型的对象做不同的事。

4.Java是编译型的

  当运行Java程序时,它首先被编译成字节代码。

字节代码非常类似于机器指令,所以Java程序非常高效。

然而,字节代码并不专对一种特定的机器,所以Java程序无需重新编译便可在众多不同的计算机上执行。

  Java源程序被编译成类文件,它相当于程序的字节代码表现。

在一个Java类文件中,所有对方法及实例变量的参照均按名进行,并在第一次执行代码时加以分辨。

这使得代码更通用,更不易受修改的影响,而仍具高效。

5.Java是体系结构中立的

  Java语言对每种计算机都一样。

比如,简单的类型都是不变的:

整数总是32位,长整数总是64位。

令人奇怪的是,诸如C及C++等时髦的编程语言却不是这样。

由于这些语言定义如此自由,每种编译器及开发环境便各有不同了,这使程序的移植成为讨厌的问题。

Java程序的移植却很容易,而且不需要进行重新编译。

6.Java是健全的

  Java程序不可能造成计算机崩溃。

Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。

  不过,即使Java程序也可能有错误。

如果出现某种出乎意料之事,程序不会崩溃,而把该例外抛弃。

程序会发现这类例外,并加以处理。

  传统的程序可以访问计算机的全部内存。

程序可能(无意识地)修改内存中的任何值,这就会造成问题。

Java程序只能访问内存中允许它们访问的那些部分,所以Java程序不可能修改不拟修改的值。

7.Java是小巧的

  由于Java的设计是要在小的计算机上运行,作为一种编程语言来说其系统是相对较小的。

它能有效地在4MB以上RAM的PC机上运行。

Java翻译器只占用几百KB。

这种翻译器对Java的平台无关性和可移植性是可靠的。

  由于Java很小,它对内存很小的计算机,如基于Java的PC机,以及电视机、烤箱、电话机及家用计算机等,是很理想的。

8.Java是多线程的

  Java程序可以执行一个以上的线程。

比如,它可以在一个线程中完成某一耗时的计算,而其它线程与用户进行交互对话。

所以用户不必停止工作,等待Java程序完成耗时的计算。

  在多线程环境中的编程通常是困难的,因为许多东西可能同时出现。

但是,Java提供了易于使用的同步特性,使编程更为方便。

  Java线程通常被映射为实际的操作系统线程,只要底层操作系统支持这种映射。

因此,用Java写的应用程序可说是“MP热”。

这就是说,如果它们在多处理器机器上运行,它们更将表现不凡。

9.Java是可收集无用的存储单元的

  用C及C++写软件的编程人员必须仔细跟踪所用的内存块。

当一个块不再使用时,他们务必让程序释放它,从而方可再用。

在大的项目中,这可能很困难,并往往成为出错和内存不足的根源。

  在Java的情况下,编程人员不必为内存管理操心。

Java系统有一个叫做“无用单元收集器”的内置程序,它扫描内存,并自动释放那些不再使用的内存块。

10.Java是快速的

  Java比典型的脚本语言大为有效,但它比C慢20倍。

这对大多数应用是可接受的。

  不久的将来,代码生成器就可供利用了,这将使Java程序几近于用C或C++编写的程序那么快。

11.Java是安全的

  Java程序没有指针,而且象这样的字节代码程序强在类型,所以在执行之前它可能验证Java程序。

谎橹さ腏ava程序得以保证不突破Java语言的任何限制,而且可以安全地执行。

Java字节代码验证被Web浏览器用来确保小程序不含病毒。

12.Java是可扩展的

  Java程序可与用其它语言编写的现存程序库连接。

由于Java数据结构与C的数据结构的类型极为相似,这是相当方便的。

最大的问题在于,现有多线程程序库为数不多。

  Java程序可以声明某些方法是内部的,然后,把这些内部方法映射成软件库所定义的功能,从而动态地链接到虚拟机。

●Struts2

Struts2是Struts的下一代产品。

是在struts和WebWork的技术基础上进行了合并,全新的Struts2框架。

其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。

Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。

因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。

一个请求在Struts2框架中的处理大概分为以下几个步骤:

1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;

2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:

SiteMeshPlugin);

3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action;

4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;

5、ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类;

6、ActionProxy创建一个ActionInvocation的实例。

7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

在表示的过程中可以使用Struts2框架中继承的标签。

在这个过程中需要涉及到ActionMapper。

●Entity

存放实体类,实体类主要是作为数据管理和业务逻辑处理层面上存在的类别;

它们主要在分析阶段区分实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。

大多情况下,实体类和数据库中的表(这里指实体表,不包括表示多对多对应的关系表)是一一对应的,但这并不是一个限制,在复杂的数据库设计中,有可能出现一个实体类对应多个表,或者交叉对应的情况。

●Dao

DAO(数据访问对象)是一种应用程序编程接口(API),存在于微软的VisualBasic中,它允许程序员请求对微软的Access数据库的访问。

DAO是微软的第一个面向对象的数据库接口。

DAO对象封闭了Access的Jet函数。

通过Jet函数,它还可以访问其他的结构化查询语言(SQL)数据库。

 DAO是DataAccessObject数据访问接口,数据访问:

顾名思义就是与数据库打交道。

夹在业务逻辑与数据库资源中间。

在核心J2EE模式中是这样介绍DAO模式的:

为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。

用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。

在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。

●Mysql数据库

MySQL是一个小型关系型数据库管理系统,目前被广泛地应用在Internet上的中小型网站中。

由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

●Mysql作业调度

作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。

然后再将新创建的进程插入就绪队列,准备执行。

因此,有时也把作业调度称为接纳调度。

事件调度器是在MySQL5.1中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>

能。

例如,Linux中的crontabe只能精确到每分钟执行一次,而MySQL事件调度器则可以实现每秒钟执行一个任务,这在一些对实时性要>

求较高的环境下就非常实用了。

事件调度器是定时触发执行的,在这个角度上也可以称作是"

临时的触发器"

触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行一些语句。

事件是由一个特定的线程来管理的,也就是所谓的"

事件调度器"

启用MySQL事件调度器后,拥有SUPER权限的账户执行SHOWPROCESSLIST就可以看到这个线程了。

通过设定全局变量event_scheduler的值即可动态的控制事件调度器是否启用。

第三章系统分析

3.1可行性分析

3.1.1经济可行性分析

因为该系统只是一般的作业管理系统,系统的管理与操作的要求不是很高,系统管理员可征集有相关专业基础学生义务担任或作为学校勤工助学的岗位。

而且该系统的经费不高,系统逻辑不复杂,可由学生担任一部分的开发工作。

3.1.2技术可行性分析

该系统使用B/S模式开发,技术使用java、struts2、mysql作业调度等,开发环境使用windowsXP、MyEclipse和Tomcat。

经过详细的分析,设计模式、技术、开发环境和人员配备都可满足系统开发的条件。

3.2需求分析

3.2.1系统运行环境

(1)软件环境:

操作系统:

WindowsXP

浏览器:

IE8

数据库:

MySQL5.1.*

(2)硬件环境

服务器专用双核或四核CPU,内存4G以上,硬盘用SCSI或SAS。

3.2.2系统功能需求

作业功能模块的用户分为教师和学生,他们各自的主要功能需求如下:

(1)教师的主要功能需求:

1)查看教师所教的所有课程

2)上传作业以及相应作业参考答案,可以选择定时发布作业

3)下载发布的作业及答案

4)删除、修改已发布的作业,删除时可连带删除相关信息

5)查看作业批改情况,下载学生作业,批改学生所上传的作业

6)查看作业提交情况

7)查询学生成绩,修改学生成绩

(2)学生的主要功能需求:

1)查看教师发布的作业

2)查看自己所选课程

3)查看自己完成作业的情况

4)上传作业

5)下载自己提交的作业以及删除自己上传但教师尚未批改的作业

6)查看个人作业的以及教师评语

7)查看已提交作业的参考答案

系统用例图如下:

根据作业模块的用户可创建两类角色是教师和学生,他们的关系用例图分别如下:

(1)学生角色的用例图关系如下:

图3-1学生角色用例图

(2)教师角色的用例图关系如下:

图3-2教师角色用例图

a)教师发布作业情况的用例图如下:

图3-3教师发布作业用例图

b)教师管理已发布作业的用例图如下:

图3-4教师管理作业用例图

c)教师批改作业的用例图如下:

图3-5教师批改作业用例图

3.2.3系统性能需求

实用性:

为网上教学提供方便,有效进行作业管理,尽量最大限度降低管理员日常管理工作量,提高教学质量和效率,优化资源,实现效益最大化。

操作简单:

本系统应该适用于不同水平的使用者,包括教师和学生,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。

技术先进:

产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。

使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。

安装使用简便:

服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入Internet,无论您身在何处,只要您可以访问Internet都可以使用本系统。

代码可读性好:

文中的代码将尽可能简洁,易懂。

3.2.4主要功能要求

 主要功能:

为方便教师检查学生的实验作业,减少大量数据处理,复杂的排版操作从而经常出现错误率高、网页样式不一、重覆枯燥计算机操作和网页美观性的问题,提高学生的实验效率。

  查看实验作业时应保证查准率,查看的记录应与给定的实验项内容完全匹配。

数据安全性,修改数据时,一定要保证输入正确,并且数据保密性要高。

  输入要求:

数据完整、详实

  输出要求:

简捷、快速、实时

  安全与保密要求:

客户端要求提供身份验证,只允许通过身份验证的用户使用本系统

要求能在发生意外(如掉电)的情况下,保证不丢失数据。

第四章系统设计

4.1系统业务流程分析

图4-1系统业务流程图

4.2功能模块的分析与设计

教师用户的模块及功能设计如下:

(1)作业发布子模块:

通过文件上传框上传相应作业文档,还可以选择性得选择是否上传该次作业的答案文档。

教师还可以选择定时发布作业,作业将在教师选定的日期才显示出来。

系统还会在用户按下提交按钮之后检测教师是否输入了文件名以及上传了作业文档,检测通过后才可以正式发布这次作业。

(2)作业列表模块:

分页显示所有教师发布过的作业列表,每次作业的右边都会有删除,批改,提交情况的超链接,点击会跳到相应的功能页面。

点击删除超链接时,会提示教师,将会连带删除学生所交作业和成绩,是否继续,点击确定后将删除相应作业及学生的相关作业和成绩。

(3)批改作业子模块:

在作业显示列表页面点击了批改按钮之后,会弹出一个显示作业批改情况的页面,里面是一个列表,其中列表项包括:

学号,已(未)批改(超链接),分数,评语(评语设定显示六个字,后面用省略号代替)。

点击已(未)批改链接会出现相应学号该次作业的批改页面,里面显示学生学号,姓名,学生所提交作业的下载链接,提交日期等信息。

下面有两个输入框,分别用于输入成绩和批语,若之前教师已批改过次作业,成绩及批语输入框内将显示之前的内容,成绩输入框只能输入数字,而且提交时还会检测分数的范围是否正确。

(4)提交作业情况子模块:

教师只需要在作业列表右边点击相应作业的“提交情况”的超链接,就会弹出相应的提交作业查看页面,可以看到的信息包括:

学号,姓名,班级,提交状态

(5)成绩管理子模块:

教师可通过此模块对其学生的成绩进行管理作业模块的总体结构如下:

图4-2作业模块功能图

第五章数据库设计

5.1数据库需求分析

●发布作业:

首先要记录作业明,作业文档上传后存放到指定文件夹,因此必须记录文件存放路径,参考答案选择性上传,但必须有存放其路径的地方,还要记录作业发布日期,为了区分作业,必须把作业与教师及相应课程关联起来,因此有任课id。

●提交作业:

区分学生作业要有相应ID,记录学生学号信息,学生作业的名称,存放路径,为了方便教师查看还要记录提交时间。

●学生成绩管理:

学生、教师都能对相应权限的成绩进行查看,学生成绩表应记录每个学生每次作业的成绩及评语。

●学生提交情况功能要求设置一个表专门记录作业提交情况,表中只需有学号和作业的编号两个字段,相应记录存在则该学生该次作业有提交。

5.2数据的组织与存储

系统将作业信息分为两类:

记录和文件。

记录是与作业相关的信息,主要包括学号,姓名,班别,作业名称,作业文件名,作业存储路径,上传时间等信息,而文件主要指存储教师发布的作业及学生提交作业的文件。

系统采用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中的作业调度时间名称。

5.3逻辑设计

下面为mysql数据库的逻辑设计:

1.用户表

表5-1用户表

字段

说明

类型

是否允许为空

是否为外键

备注

id

用户ID

bigint

loginname

登录名

varchar(20)

对应学生学号,教师工号

Password

密码

Varchar(20)

User_type

用户类型

Varchar

(1)

0代表管理员,1代表老师,2代表学生

2.学生信息表

表5-2学生信息表

学生ID

U_id

对应user表的id

Name

学生姓名

Cl_id

班级ID

int

3.班级信息表

表5-3班级信息表

grade

年纪

Varchar(4)

name

专业名

no

班别

Varchar

(2)

4.课程信息表

表5-4课程信息表

课程ID

课程名称

Varchar(20

credit

学号

tinyint

5.教师信息表

表5-5教师信息表

教师ID

u_id

教师姓名

6.教师任课表

表5-6教师任课表

任课ID

c_id

t_id

7.学生选课信息

表5-7学生选课信息表

选课ID

s_id

tc_id

8.作业信息表

表5-8作业信息表

作业ID

filena

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1