基于JSP和ORACLE实现的毕业设计双向选题系统

Sunshine

发布日期: 2019-03-25 16:59:28 浏览量: 1632
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

一、项目背景与市场分析

1.1 项目背景

随着高校的扩招,有越来越的学生可以享受到学校教育。据不完全统计,2017 年高校毕业人数 795 万,如此巨大的市场受众有着巨大的价值。故而校园市场历来是众多公司必争之地。尤其是大学校园市场,更是每家互联网公司都垂涎欲滴的一块“肥肉”。这不仅仅是因为大学校园聚集了几千万的年轻互联网用户,更是因为这些在校大学生极具传播力和辐射力,能够在产品的传播和推广过程中起到至为关键的作用。

每年的毕业生在毕业前都需要完成本科毕业设计,但是现在本科毕业设计选题系统还是沿用较为传统的手工分配的方式,指导老师与毕业生之间缺少有效的沟通渠道,效率低,耗时长,课题资源分配不均,严重影响毕业生的论文水平。而随着各大高校的不断扩招,导致导师的课题有限而毕业生数量庞大的局面。如何在最短的时间内,实现毕业生在选题前能有个非常清晰的了解与让大部分毕业生能够选上自己感兴趣及擅长的课题成为十分迫切的问题。

时至今日互联网在微观领域已渗透到提倡生活,在宏观领域,更是引发产业创新、引领新兴业态的强大引擎。日新月异的信息技术大大推进了社会的进步,已经改变了或正改变着人们的工作、学习、生活、思想。去公司上班,离不开考勤管理系统,去邮局汇款,离不开汇款管理系统。通过信息管理系统,可以自动化、标准化和规范化管理业务流程,降低管理人员的事务性工作负荷,加快信息处理的速度,提高信息的质量及利用率,迅速适应顾客需求的变化。因此使用信息管理系统,企业可以通过降低成本,提高质量,缩短产品交付时间或服务时间,获取更高的利益等方式,从而根本上提高企业竞争力。信息系统将促进整个社会的进步。管理信息系统(Management Information System MIS)集中了许多先进的管理思想,是信息时代企业的先进管理模式。今天,它的管理领域已经远远超出了企业内部资源计划与管理的范畴,步入了电子商务环境下企业间协同管理的阶段,并将最终导致面向全球化生产管理的新一代 ERP 的产生与发展。

从计算机应用的发展历程可以看出,管理信息系统的概念是动态的,其内容不停地发生变化。20 世纪 70 年代的管理信息系统是一种狭义的管理信息系统,而当前的管理信息系统的概念是一种广义的概念。无论决策支持系统、高层支持系统,还是战略信息系统都可以称为广义的管理信息系统,或者简称为信息系统。开发管理信息系统的意义总的说来,计算机技术的发展,其性价比大幅的下降,使得其被大量广泛的使用。针对现实中的各种应用需求,相应的产生很多技术体系、技术标准,如 J2EE、.NET 等。这又大大的推动了企业的信息化进程。其影响可以归纳为如下两点:

  • 计算机已经成为我们学习和工作的得力助手。今天,计算机的价格已经十分低廉,
    性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:

    • 计算机可以代替人工进行许多繁杂的劳动
    • 计算机可以节省许多资源
    • 计算机可以大大的提高人们的工作效率
    • 计算机可以使敏感文档更加安全
  • 在学校和企业特别是大中专企业中开发计算机管理系统的意义。现在我国的学校和企业特别是大中专企业的资料管理水平还停留在纸介质或半自动由电脑处理一部分数据、由人工处理一部分数据的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。软件作为一项有力的工具,只能当此种工具,与我们的实践相结合起来的时候,才具有重大的社会价值及使用价值。因此根据学校和企业目前实际的资料管理情况开发毕业设计选题系统是十分必要的

毕业设计选题系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前段应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备、用户界面简洁实用。

1.2 系统的初步调查

经调查后,不难看到,目前,我校的论文选题都是人工操作方式进行,以纸张形式集合所有导师的课题,发放到各个班级。由于资源有限,每个班通常有二十人以上。所以,同学们只能以轮流方式来查看课题资料,查看完后在相应课题表格后面的空白处填上自己的姓名、班级、学号、联系方式后就等于完成了课题选择任务,剩下的就是等待选结果的公布。这个时候,你会奇怪地发现,有几个名字几乎会出现在每个相似的课题后面的空白处或者特意地将自己个人信息填满整个空白处,导致其他同学就没处下手写下个人信息。第一轮选题结束后(其实应该是只有一轮),没能选上的同学只得由学院来安排课题。也就是说,有不少的学生是在对该课题一无所知的情况下被通知你的毕业课题是该课题。

从上面的论述中,我们不难看出:学校的选题现状是缺乏有效的沟通渠道,缺少科学的管理机制。在信息技术大大推动了社会的进步、已经改变了或正改变着人们的工作、学习、生活、思想的同时,如何实现选题的科学化、信息化、高效性,已经成为我们学校迫切解决的一个难题。

1.3 毕业设计选题系统的发展历史

目前,学校的毕业论文选题大多数都是使用人工操作方式来管理。随着各大高校的不断扩招,导致导师的课题有限而毕业生数量庞大的局面,如何在最短的时间内,实现毕业生在选课题前能有个非常清晰的了解与让绝大部分毕业生能够选上自己感兴趣及擅长的课题已成为十分迫切的问题。在本校,毕业生论文选题大部分是人工操作进行分配,由于缺少及时、有效的沟通渠道,导师与毕业生在选题前的没有进行充分的交流,毕业生没有一个能全面了解课题信息的平台,加上课题信息的来源有限,这导致毕业生在还没浏览及了解全部课题的情况下,就必须在短时间内做出选择。从而,出现课题资源分配不均,导致部分课题出现过热,而有的课题却无人选择的情况。另外,落选的毕业生又只能重新选择一些自己不感兴趣或是不熟悉的课题。所以,人工选题方式效率低、质量差,缺少科学性,已不再适合当今信息化潮流的趋势。随着科学技术的不断提高,信息管理系统的广泛应用,毕业设计选题系统应运而生。

1.4 毕业设计选题系统的开发目的

本项目的名称:毕业设计选题系统,用户是指导老师和毕业生,本毕业论文双向选题系统是在分析目前高校毕业生选择课题现状后,在导师和学生之间建立一座桥梁,改变目前学校毕业生选课题的混乱情况,实现课题选择的信息化,并给毕业生提供一个信息化、高效、及时的选题平台。

本系统实现了课题选择管理的信息化,包括课题公布、选题信息管理、选题通知、浏览课题、课题选择等,为指导老师和毕业提供课题选择信息的最新动态,并能够与互联网相连来实现课题的网上选题。

二、可行性分析及系统分析

2.1 可行性分析

毕业设计选题系统的开发是在分析我校目前论文选题现状的基础上提出来的。目前我校的毕业课题选择还处在手工操作阶段,指导老师与毕业生之间缺少有效的沟通渠道,效率低,耗时长、课题资源分配不均,影响了我校毕业论文水平。这与学校提出的实现数字化校园建设目标不符合。

  • 鉴于本校选课系统的成功开发并正常使用,说明我校完全有自行开发毕业设计选题系统的能力。技术人员、各种外围设备、通信设备、计算机设备的性能(如速度、容量等)能满足本系统开发的要求,所以在技术方面不存在问题

  • 目前我校在校生已达 15000 人,毕业生人数每年新增,毕业生论文选题工作量庞大、复杂,而且效率低。当系统成功开发并实施之后,能够有效地处理相关的日常事务,实现选题的信息化,提高毕业生论文选题工作的效率

  • 我校的信息建设已全面展开,所以,系统操作人员的素质,包括道德修养、文化程序、业务熟练程序、掌握计算机方面的知识、对联机处理的操作能力能适应本系统的要求,则在操作方面是可行的

  • 从我校目前的建设目标出发,学校领导对信息系统的建设给予政策上、经济上、技术上的支持,能保证本系统的顺利开发。而且我校的管理制度和方法、规章制度健全,所以,在管理方面也是可行的

经过上述分析,毕业设计选题系统的开发是符合学校信息建设目标,在经济上、技术上操作上都是可行的。系统的正常运行,能大大地减轻学校毕业选题的日常事务,实现选课的信息化、高效化。 因此,我们提出毕业论文双向选题系统的开发是可行的。

2.2 对本系统的分析

  • 系统目标设计

    • 通过使用毕业设计选题目系统,为指导老师及毕业生提供一个信息平台,实现选题工作的系统化、规范化、简易化、智能化,从而达到提高选题工作效率的目的。
  • 开发设计思想

    • 尽量利用基础软硬环境,采用先进的管理系统开发方案从而达到充分利用现有资源,提高系统开发水平和应用效果的目的
    • 系统应满足老师、同学和相关人员日常使用需要,并达到操作过程中的直观、方便、实用、安全等要求
    • 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员进行补充、维护
    • 系统应具备数据库维护功能,及根据用户需求进行数据的删除、备份等操作
  • 系统功能分析

    • 用户登录:用户登录系统,包括管理员登录、学生登录及学生新用户注册
    • 课题信息管理:查看课题信息、增加、修改、删除课题信息
    • 学生信息管理:查看学生信息、修改、删除学生信息
    • 课题选择信息管理:查看预选、正选情况,并可编辑正选信息
    • 公告信息管理:查看公告信息、增加、修改、删除公告信息
    • 课题信息浏览界面:查看课题信息,并可按类搜索相关课题信息
    • 公告信息浏览界面:查看公告信息及公告详细内容
    • 课题选择界面:提交预选、正选,并可查看正选最新结果
    • 数据表、数据库的备份

2.3 开发和运行环境

  • 开发技术:JSP

  • 开发语言:java, html

  • 开发工具:eclipse

  • 运行环境:Windows, tomcat

三、系统需求分析

3.1 系统顶层图

3.2 系统 0 层图

3.3 系统一层图

教师出题一层图

教师查看选题信息

管理员审核出题信息

学生选题

四、组织结构及业务流程分析

4.1 业务流程图及描述

教务处老师对指导老师提交的课题进行审核管理,如下图所示。

指导老师添加课题,并对其进行管理,如下图所示。

指导老师查看课题审核情况,并对审核未通过的题目进行修改与删除等操作,如下图所示。

学生搜索课题,选择自己感兴趣和擅长的课题进行选题登记,如下图所示。

五、数据流程与汇总分析

5.1 分层数据流图及描述

5.2 E-R 图及关系表

5.3 数据字典

数据项条目

名称 别名 简述 数据类型 长度 取值范围
姓名 varchar 10 中国汉字
学号 工号 个人的编号 char 8 第1~4位年份,第5~8位数字
班级 char 5 第1~4位年份,第5~7位数字
登录账号 登录系统时的账号 varchar 20 与本人学号相同
登录密码 登录系统时的密码 varchar 20 自定义0~9+字母+符号
课程名称 varchar 30 中国汉字
课号 课程的编号 varchar 20 自定义0~9+字母+符号

数据加工条目

名称 加工号 输入数据流 输出数据流 激发条件 加工逻辑
学生登录 1.1/2.1/5.1.1 账户密码、学生信息表 登录信息 学生登录请求 根据学生信息表,if 账户密码匹配 then 参与选课/退课/查询 else 登录失败endif
查询用户信息 1.2 学号、教师工号 学生信息,教师信息 管理员登录成功
查询选题情况 1.3 学号、题号 选题信息 存在选题
查询课程选课人数 1.4 学分未满 人数是/否满 学分未满
选题处理 1.5 人数未满 选题是否成功、学生选题名单/课表 人数未满 if 学分、人数未满 then 学生选题成功 else 选题未成功说明 endif
老师登录 3.1/4.1/5.1.2 账户密码、老师信息表 登录信息 老师登录请求 根据老师信息表 if 账户密码匹配 then 参与成绩录入/排名/查询 else 登录失败 endif
判断是否为有效成绩 3.2 登录成绩、有效成绩 成绩是否有效 老师登录成功 if 成绩有效 then 进行成绩录入 else 信息反馈 endif
成绩录入 3.3 有效成绩 成绩是否录入、成绩单 成绩有效 if 此成绩有效 then 成绩录入系统 else 成绩错误 endif
判断成绩是否为正确成绩 4.2 登录成功、成绩单 是否为正确成绩 老师登录成功 根据课程成绩,if 成绩正确 then 进行成绩排名 else 信息反馈 endif
判断查询内容 5.2 登陆成功 按条件查询 学生登录成功、老师登录成功
查询成绩 5.3 查询条件、成绩单 成绩单、符合条件成绩单 输入查询条件 输入查询条件,返回查询结果

六、功能分析及规划

6.1 系统功能结构图及描述

在了解了系统的需求分析与功能描述后,可以将毕业设计选题系统划分为用户登录,系统管理员页面,教务处页面,指导老师页面,学生页面四个模块,整个系统的功能模块划分结构如下图所示。

学生用户主界面主要包括个人信息界面,课题信息浏览,课题选择界面,公告信息浏览,如下图所示。

指导老师主页面包括个人信息界面,课题添加界面,课题被选情况界面,公告信息浏览,如下图所示。

教务处主页面包括指导老师任命,课题审核界面,课题信息管理,课题选择信息管理,公告信息管理,如下图所示。

系统管理员页面包括数据库管理,学生信息管理,指导老师信息管理,教务处老师信息管理,如下图所示。

七、用例图及用例描述

管理员用例图

教师用例图

学生用例图

八、活动图

8.1 学生选题活动图

8.2 学生选题管理活动图

8.3 老师论文管理活动图

8.4 管理员活动图

九、分析类

十、时序图

10.1 用户注册登录时序图

10.2 学生选题时序图

10.3 教师出题

10.4 管理员审题时序图

十一、架构设计

11.1 JSP

11.1.1 JSP简介

JSP 是由 Sun 公司建立的一种 Web 页面技术标准,JSP 使软件开发者可以响应客户端请求,动态生成 HTML、XML 或其他格式文档的 Web 网页。JSP 技术是以 java 语言作为脚本语言。Jsp 将 java 代码和特定的预定义动作嵌入到静态页面 HTML 中。

在传统的网页 HTML 文件中加入 JAVA 程序脚本和 JSP 标记,就构成了 jsp 网页。Web服
务器在遇到访问 jsp 页面请求时,web 服务器配合 jdk 编译其中的 java 程序脚本,然后将执行结果以 HTML 格式返回给用户。Java 程序脚本拥有 java 程序的大部分功能,如访问数据库、读写文件以及实现动态网页的一些功能,如发送 email 等。

11.1.2 Jsp 执行过程

客户端请求 URI.即请求 jsp 容器(比如 tomeat)中的 JSP 页面,第一个用户请求 jsp 文件的时候,把 jsp 文件转换成 java 文件(servlet 类文件),然后再编译成 class 文件,最后以HTML 格式返回给客户端流览器。客户端流览器解释 HTML 标签呈现给用户,由于编译后的 class 文件常驻内存,如果再次有客户请求的时候,直接再开一个线程,无须重新编译,直接执行第一次已经编译好的 class 文件,这样速度要快一些。当然,如果 jsp 文件发生变化。那么就需要重新编译一次。

11.2 JavaBean

JavaBean 是 java 语言编写的类,实现业务层代码。什么是业务层?如果在 jsp 页面中有一个输入表单供用户输入注册信息,保存输人的注册信息要保存到服务器端数据库中,保存用户信息的过程可以在 Java 函数中完成,可以使用纯 Java 语言实现,页面只需要调用该函数传给它相应的参数即可。 实现这段业务代码的类称为 JvaBen.利用 JavaBean 实现 java 与HTML 页面分离。用户可以使用 JavaBean 将功能、处理、数据库访问和其他任何可以用 Java代码创造的对象进行打包,并且其他的开发者可以通过内部的 JSP 页面,Servlet,其他JavaBean、applet 程序或者应用来使用这些对象,JavaBean 类必须是公共的,并且具无参数的构造器。

特别要说明的是 JavBean 是个普通的 Java 类,在使用时需 要用户创建其对象实例,javabean 不拥有网页上下文(Web Context),所以不能在 JavaBean 中直接使用 ession、Application 以及 PageContext 等内置对象。

11.3 Servlet

Servlet 是用 Java 编写的类, 运行于服务器端即 Web 服务器(如 Tomcat)中,不同于JavaBean的是 Servlet 对象由 Web 服务器创建。Servlet 拥有 Web 上下文.即 Servler 类中可以读取页面一些对象,如 Response、Request 等。 Serlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户端发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应。当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet. 装人后。Servlel 继续运行直到其他客户机发出请求。其功能主要有:

  • 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML 页面

  • 创建可嵌人到现有 HTML 页面中的一部分 HTML 页面(HTML 片段)

  • 与其他服务器资源(包括数据库和基于 Java 的应用程序)进行通信

  • 用多个客户端处理连接,接收多个客户端的输人,并将结果广播到多个客户端上,例如,Servlet 可以是多参与者的游戏服务器

  • 对特殊的处理采用 MIME 类型过滤数据,例如,图像转换和服务器端包括(SSI)

11.4 Dao

访问接口 DAO(Data Access Object)是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

在核心 JEE 模式中是这样介绍 DAO 模式的:为了建立一个健壮的 J2EE 应用,应该将所有对数据源的访问操作抽象封装在一个公共 API 中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。

11.5 MVC

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表)

  • View(视图)显示数据(数据库记录)

  • Controller(控制器)处理输入(写入数据库记录)

MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

MVC 框架图

十二、编码实现

代码结构图

十三、页面实现

13.1 毕业设计选题系统首页

13.2 后台管理登陆页面

13.3 教师信息添加页面

13.4 教师信息查询页面

13.5 课题管理页面

13.6 新闻添加页面

13.7 课题添加页面

13.8 选题管理页面

13.9 学生选题界面

13.10 查看选题结果页面

十四、心得感悟

通过这次 j2ee 的课程设计,使我对 servlet 编程更加熟悉,学会了规范编码,同时,通过写动态响应页面,使我掌握了 js,Ajax 等语言和技术。

使我受益最深的是学会了MVC 架构,MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:Model(模型)表示应用程序核心(比如数据库记录列表)。View(视图)显示数据(数据库记录)。Controller(控制器)处理输入(写入数据库记录)。MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

接下来我还会继续学习 Spring 编程,目前外面公司企业使用最为广泛的架构,还要加强对 JQuery 的学习,虽然我有一颗全栈的心,但精力有限,希望自己未来能够精通后端,看懂前端。

上传的附件 cloud_download 基于JSP和ORACLE实现的毕业设计双向选题系统.7z ( 11.12mb, 36次下载 )
error_outline 下载需要15点积分

发送私信

这个世界上我只相信两个人,一个是我,另一个不是你

14
文章数
15
评论数
最近文章
eject