学院虚拟仿真实验教学中心申报书.docx
《学院虚拟仿真实验教学中心申报书.docx》由会员分享,可在线阅读,更多相关《学院虚拟仿真实验教学中心申报书.docx(20页珍藏版)》请在冰点文库上搜索。
学院虚拟仿真实验教学中心申报书
学院科研管理系统说明书
(使用说明书)
二○一六年十一月
长治市乐网电子商务有限公司
摘要:
本系统是一款基于WEB的信息管理系成小海统,目的是服务于学院科研处的科研信息管理。
系统采用比较流行的java语言进行编写,开发工具选用Eclipse。
在整体框架设计上运用B/S架构和MVC开发模式,在数据库方面则用MySQL存储及Navicat数据库管理工具。
系统开发主要包括前台界面的设计、相应功能后台代码的编写及底层数据库的设计。
考虑到底层数据访问权限的问题,在登录角色中设计了管理员和负责人登录角色。
管理员主要包括人员管理、项目管理、经费管理和系统管理,而负责人主要负责项目管理和信息查看。
一引言
1.1编写目的
本文首先介绍了该系统的开发背景与现状、开发目的及意义,然后对自己负责模块做了需求分析,接着进行系统总体设计描述,包括系统结构设计和数据库设计。
在详细设计部分主要介绍了自己负责模块的详细设计过程,紧接着就对详细设计中涉及到的模块进行部分测试。
最后,作为对学院交接材料。
1.2项目背景与开发目的和意义
学院科研信息管理系统采用多用户模式。
开发目的:
第一、简化科研人员对项目的申请。
每一个想要申请科研项目的人员只需通过自己的浏览器向科研部门的服务器提出科研项目申请,这样可以大大简化项目申请与经费申请的流程;第二、管理员可以更加高效的管理系统。
管理员只需对科研项目申请者提出的项目申请进行审核,审核通过后科研人员便可以进行开题研究自己的科研项目;第三、更有利于系统的推广和维护。
可以为每一位在校的老师分配一个科研账号,每一位老师将会具有相同的权利进行项目的申请。
开发意义:
通过该系统的开发,可以简化科研部门审查科研项目的流程,使系统的每一个参与者的操作都变得非常的简单,同时也可以互相节约时间。
项目申请者可以不按照管理员的工作时间来申请
项目,管理者也可以安排自己的时间来审核项目,不需要害怕错过
项目申请人员而一直坐到办公室等待。
1.3参考资料
1.Java开发API
2.MySQL开发API
二科研信息管理系统需求分析
本系统主要是设计一款符合学院特色的科研信息管理系统。
为了实现多用户的交互,我们考虑到了两个用户权限的登录,分别为管理员权限和负责人权限。
通过管理员权限需要实现系统的管理、人员管理、项目管理和经费管理;负责人角色需要实现项目管理和查看信息。
我主要负责管理员角色的系统管理和人员管理,负责人角色的项目管理和查看信息。
2.1系统对象分析
在我负责的模块中涉及到的实体类有以下几个:
管理员角色的系统管理有Department类、Position类和Work类,人员管理有ManageLogin类、Admin类和Attendee类;负责人角色的项目管理和查看信息模块有Pro类、Money类、ProjectAttendee类、ProjectMoney类和ProjectType类。
2.2系统功能分析
在管理人角色模块中的系统管理包括系别类别、职位类别和单位类别管理,在这些管理中都包括了每一个类别的增删改查;人员管理包括管理员信息的修改、负责人信息的增删改查、项目参加人员的删除修改查询操作。
具体涉及的用例图如图1所示。
图1管理员用例图
负责人首先通过登录界面验证后,便可以进入负责人主界面。
在该界面中负责人可以进行项目管理和查看信息功能。
其中项目管理包括项目申请和查看项目;查看信息中包括负责人信息的查看和参加项目人信息的查看。
具体涉及的用例图如图2所示。
图2负责人用例图
2.3系统状态转换分析
在登录页面中会有管理员角色和负责人角色的登录,这两种身份用户在进入系统之前都需要进行身份的验证。
验证成功后分别进入各自的主界面,我涉及到的状态为管理员角色的人员管理和系统管理,负责人角色的项目管理和查看信息。
具体状态转换图如图3所示。
图3系统状态转换图
2.4运行环境分析
学院科研信息管理系统建立的目的是给学院科研处提供一个高效管理科研项目的环境,让工作人员和科研人员随时查看科研动态,所以本系统采用B/S结构。
采用B/S结构有以下优点:
(1)科研人员只需要在一台能上网的计算机上打开浏览器就可以使用本系统;
(2)采用B/S结构只需要在服务器端进行开发和维护,浏览器端并不需要有太多操作。
系统开发平台:
Eclipse
开发语言:
Java
数据库管理系统软件:
MySql
运行平台:
Windowsxp/Windows7
三.科研信息管理系统总体设计
3.1系统结构
系统结构的设计是对系统功能的总体把握。
我负责的具体模块如下:
(1)管理员角色系统管理
系统管理主要包括系别的增删改查、职位的增删改查以及单位的增删改查3部分。
这主要是为人员管理、项目管理和经费管理的操作来进行数据的储备。
(2)管理员角色人员管理
人员管理包括管理员、负责人和项目参加人员的管理3部分,管理员菜单模块主要是进行管理员信息的修改,负责人菜单模块包括负责人的增删改查,项目参加人员菜单模块主要包括项目参加人员的删除和查询。
(3)负责人角色项目管理
项目管理模块包括项目申请和查看项目子功能模块,并且在项目申请中可以进行项目的申请,在查看项目子功能模块中有添加参加人员的功能。
(4)负责人角色查看信息
查看信息模块主要是查看项目负责人信息和查看参加项目人员信息。
在查看负责人时只能查看到该负责人的项目相关信息,并不能查看到其他负责人员的信息。
而查看参加项目人信息的时候可以查看到具体项目中的人员信息。
具体的系统结构图如图4所示。
图4科研信息管理系统功能结构图
3.2业务流程图
当管理员或负责人进入系统前,首先要在登录页面输入用户名和密码校验,然后选择管理员或负责人登录身份,校验成功后便进入相应角色的主界面。
由于我涉及到的业务流程图较多,在此我挑选了两个重要的流程图进行详细介绍,其他流程图与此原理相同。
下面重点介绍管理员查看项目参加人员和负责人申请项目流程。
管理员在查看项目参加人员时,首先要通过管理员身份登录管理员主界面,在进入管理员主界面后,管理员选择左侧菜单栏中的“人员管理”,点击“项目参加人员”超链接右侧显示框便可进入查看参加人员界面。
在查找项目参加人员时输入要查找参加项目人员的姓名,点击查询按钮就可以显示查询结果。
具体的管理员查看项目参加人员流程如图5所示。
负责人和管理员用上述同样的方式登录管理员主界面。
点击左侧下拉菜单栏中的“项目申请”超链接,在右侧显示区域中便可以出现项目申请的具体属性填写。
填写完成后点击申请项目便可以提示申请结果。
具体的负责人申请项目流程如图6所示。
图5管理员查看项目参加人员流程图
图6负责人申请项目流程图
3.3系统开发技术简介
3.3.1Servlet技术简介
在B/S架构中,Servlet技术是Web服务器处理动态资源请求的必备工具。
它是使用Java语言编写的一套应用程序规范,当客户端发出请求时,Web服务器会把请求发送给应用程序来处理,并将处理结果返回给客户端。
通过Servlet技术Web服务器会单独分配一个线程来处理客户端请求,可以大大提升处理效率。
因为Java语言具有跨平台性的特点,所以也提升了Web服务器程序的移植性。
目前,B/S架构中的大部分主流框架本质上都是基于Servlet来实现的,其中最常见的还是SSH组合框架。
3.3.2JDBC数据库连接技术简介
JDBC是一组由Java语言编写的类和接口,可以起到连接不同数据库的桥梁作用。
因为JDBC访问数据库具有高效性和简单性,所以大多数的数据库厂商都为JDBC的访问留有相应的接口。
在程序中配置JDBC时,只需输入需要访问数据库的资源访问路径、用户名、密码等重要信息就可以进行访问数据库的操作了。
在高级框架中连接数据时,底层也是通过对JDBC数据库连接的封装。
因此,可以说JDBC数据库连接是使用最广泛的数据库连接技术。
3.4数据库设计与实现
3.4.1数据库概要说明
底层数据库系统的开发工具种类很多。
现在用的较多的是SQLserver、MySQL、Oracle等,这些数据库系统的开发工具各有千秋。
选择一个合适的数据库存储工具变得尤为重要。
由于MySQL是小型数据库开发工具、对数据库用户数量的访问不受限制、保存记录多、运行速度快、用户权限设置简单有效等特点。
综合考虑我们选择了MySQL作为我们系统数据库的存储工具。
3.4.2实体—联系图
本系统主要涉及到的实体为管理员、项目负责人、参加项目人员、项目和项目经费实体。
管理员与项目负责人、参加项目人员、项目和项目经费分别为一对多的关系;而项目负责人与参加项目人员和项目之间也是多对多的关系;项目与项目经费之间为一对多的关系。
具体的E—R图如图7所示。
图7科研信息管理系统E-R图
3.4.3主要数据表的结构
系统数据库名称为“srms”,由以上实体属性图和E-R图可以导出项目负责人表(admin)、参加人员表(attendee)、项目表(pro)、系别表(department)、管理员表(manage_login)、经费表(money)、职位表(position)、项目参加人员映射表(project_attendee)、项目经费映射表(project_money)、项目类别映射表(project_type)和单位表(work)。
库中的数据表见表1—表11。
负责人表(admin):
用来存储项目负责人详细信息。
该表的结构如表1所示。
表1负责人表
字段名
数据类型
长度
描述
关键字
备注
adm_id
varchar
50
负责人ID
是
主键
adm_name
varchar
100
负责人姓名
非空
adm_pwd
varchar
100
负责人密码
非空
dep_id
varchar
50
系别ID
非空
pos_id
varchar
50
职位ID
非空
adm_tel
varchar
20
电话号码
非空
adm_note
varchar
255
备注
可空
参加人员表(attendee):
用来存储项目的参加人员信息。
该表结构如表2所示。
表2参加人员
字段名
数据类型
长度
描述
关键字
备注
att_id
varchar
50
参加人员ID
是
主键
att_name
varchar
100
参加人员名称
非空
dep_id
varchar
50
系别ID
可空
wor_id
varchar
50
单位ID
可空
att_note
varchar
255
备注
可空
项目表(pro):
用来存储项目具体信息。
该表的结构如表3所示。
表3项目表
字段名
数据类型
长度
描述
关键字
备注
pro_id
varchar
50
项目ID
是
主键
pro_name
varchar
100
项目名称
非空
pro_type_id
varchar
200
项目类别ID
非空
adm_id
varchar
50
第一负责人ID
非空
adm_id_second
varchar
50
第二负责人ID
非空
pro_money_amount
double
20
项目经费总额
非空
dep_id
varchar
50
系别ID
非空
pro_rate
char
3
进展情况
非空
pro_start
date
0
项目开始时间
非空
pro_pre_finish
date
0
项目预结题时间
非空
pro_end
date
0
项目结题时间
非空
pro_true
varchar
5
项目是否审核
非空
pro_note
varchar
200
备注
可空
系别表(department):
用来存储项目参加人员或负责人的系别信息。
该表的结构如表4所示。
表4系别表
字段名
数据类型
长度
描述
关键字
备注
dep_id
varchar
50
系别ID
是
主键
dep_name
varchar
100
系别名称
非空
管理员表(manage_login):
用来存储管理员的登录信息。
该表的结构如表5所示。
表5管理员表
字段名
数据类型
长度
描述
关键字
备注
man_id
varchar
50
管理员ID
是
主键
man_pwd
varchar
100
管理员密码
非空
man_name
varchar
100
管理员姓名
非空
pos_id
varchar
50
职位ID
非空
经费表(money):
用来存储项目经费的所占比例信息。
该表的结构如表6所示。
表6经费表
字段名
数据类型
长度
描述
关键字
备注
mon_id
varchar
50
经费ID
是
主键
mon_name
varchar
50
经费名
非空
mon_scale_max
double
50
所持经费最高比例
非空
mon_scale_min
double
200
所持经费最低比例
非空
职位表(position):
用来存储项目参加人员的职位信息。
该表的结构如表7所示。
表7职位表
字段名
数据类型
长度
描述
关键字
备注
pos_id
varchar
50
职位ID
是
主键
pos_name
varchar
50
职位名称
非空
项目参加人员映射表(project_attendee):
用来存储项目与参加人员的映射信息。
该表的结构如表8所示。
表8项目参加人员映射表
字段名
数据类型
长度
描述
关键字
备注
pro_att_id
varchar
50
项目参加人映射ID
是
主键
pro_id
varchar
50
项目ID
非空
att_id
varchar
50
参加人ID
非空
项目经费映射表(project_money):
用来存储项目与经费的映射信息。
该表的结构如表9所示。
表9项目经费映射表
字段名
数据类型
长度
描述
关键字
备注
pro_mon_id
varchar
50
项目经费映射ID
是
主键
pro_id
varchar
100
项目ID
非空
mon_id
varchar
200
经费ID
非空
pro_mon_money
double
20
项目申请金额
非空
pro_mon_pay
double
20
项目已花费金额
非空
submit_time
date
0
项目申请时间
非空
pro_mon_note
varchar
255
备注
非空
项目类别映射表(project_type):
用来存储项目与项目类别的映射信息。
该表的结构如表10所示。
表10项目类别映射表
字段名
数据类型
长度
描述
关键字
备注
pro_type_id
varchar
50
项目类别ID
是
主键
pro_type_name
varchar
30
项目类别名称
非空
单位表(work):
用来存储项目参加人员的单位信息。
该表的结构如表11所示。
表11单位表
字段名
数据类型
长度
描述
关键字
备注
wor_id
varchar
50
单位ID
是
主键
wor_name
varchar
50
单位名
非空
四.科研信息管理系统详细设计与实现
该系统有三种人员角色,管理员,项目负责人及项目参加人员。
(1)管理员:
可以修改自己登录时的基本信息。
但不能修改管理员指定的编号,可以修改管理员密码,姓名和所属单位等属性。
(2)项目负责人:
管理员可以查看该系统的所有项目负责人,可以按负责人姓名模糊查询;也可以添加项目负责人、删除或修改项目负责人。
(3)项目参加人员:
管理员可以对项目参加人员查询和删除等权限的操作,但不包括添加参加人员和修改参加人员信息。
具体的人员管理界面如图8所示。
图8人员管理界面图
(1)管理员修改自己个人信息的实现
点击“管理员”超链接,JSP页面发送查询管理员基本信息的请求,该管理员的信息在登录时存入session中,从session中取出该管理的信息,执行查询管理员信息Servlet,Servlet调用Service层,Service层调用Dao层,最后逐层向上将信息显示在manage.jsp页面中;管理员按格式修改manage.jsp页面中个人信息,信息用正则表达式做格式校验,完成校验,点击“修改”按钮,提交修改请求,执行servlet-service-dao的操作,完成信息的修改,数据库内容更新。
(2)项目负责人模块
①添加项目负责人的实现
点击“添加”按钮,jsp页面发送添加项目负责人请求,跳转至相应界面,添加信息,采用正则表达式做格式校验,完成校验,点击“添加”按钮,提交添加请求,先查询数据库中是否已有该记录存在,若存在,提示“项目负责人已存在”,重新添加;若不存在,成功添加负责人,完成对数据库中负责人表的添加操作。
②删除项目负责人的实现
点击“删除”按钮,系统提示是否确认删除,若确认删除,发送删除负责人请求,执行servlet-service-dao的操作,完成负责人的删除,数据库内容更新。
③修改项目负责人的实现
点击“修改”按钮,发送修改负责人信息的请求,首先加载出所选负责人的具体信息,管理员按格式修改该负责人的姓名,密码,系别,职位及备注信息,修改完成后点击“修改负责人”按钮,再次执行servlet-service-dao的操作,完成信息的修改,数据库内容更新。
④查询项目负责人的实现
输入负责人姓名,点击“查询”按钮,发送查询请求,执行servlet-service-dao的操作,若数据库中有记录,加载相应信息;若数据库中没有相关记录,没有相关负责人信息。
(3)项目参加人员模块
①删除项目参加人的实现
点击“删除”按钮,系统提示是否确认删除,若确认删除,发送删除项目参加人请求,执行servlet-service-dao的操作,完成项目参加人的删除,数据库内容更新。
前台提示删除项目参加人员成功。
②查询项目参加人的实现
输入项目参加人姓名,点击“查询”按钮,发送查询请求,执行servlet-service-dao的操作,若数据库中有记录,加载相应信息;若数据库中没有相关记录,没有相关项目参加人信息。
以上即为人员管理模块中的各种增删改查逻辑实现过程,各层之间的调用顺序如图9所示。
图9各层调用顺序图
管理员角色系统管理模块主要包括系别管理、职位管理和单位管理,这些管理中几乎都包括有相应的增删改查。
该系统目前所支持的查询为名称查询。
在查询的时候,为了方便快速查询到所需要的结果也使用了模糊查询的功能。
这样如果系统中数据量较大的时候,忘记了所要找的信息就会大大节省查询的时间。
具体的系统管理界面如图10所示。
图10系统管理页面图
管理员角色系统管理模块有3个模块组成,分别为:
系别管理、职位管理和单位管理。
因为每一模块的增删改查代码执行流程与上边“人员管理”模块中的“项目负责人”模块增删改查类似,这里就不做详细介绍。
(1)系别管理:
管理员可以对系别实现添加、删除、修改和查询操作,其中查询包含模糊查询功能。
(2)职位管理:
目前职位主要包括教授、副教授、班主任、系主任等几个职位,可以随着职位的增加继续在数据库中添加需要的职位信息。
如果数据量过大可以进行数据库的模糊查询。
还可以进行修改或删除某个职位信息。
(3)单位管理:
在需求分析阶段了解到了科研项目可能存在的一些相关机构,包括学院、其他或者某个合作等位等等。
可以根据具体研究项目的需求来进行相关的增删改查操作。
负责人角色项目管理模块主要包括项目申请和查看项目功能。
项目申请主要是当前登录用户进行的项目申请,考虑到数据的完整性,项目的负责人和参加人员都是通过下拉列表的形式进行选择;考虑到数据的正确性,项目中的立项时间、预结题时间和结题时间都加入的正则表达式进行时间格式校验。
查看项目模块主要是当前登录用户的项目信息查询。
具体的负责人项目管理界面如图11所示。
图11负责人项目管理主界面
负责人角色系统管理模块有2个模块组成,分别为:
项目申请和查看项目。
项目申请代码执行流程与上边管理员角色“人员管理”模块中的“项目负责人”模块添加“项目负责人”类似,这里不做详细介绍。
(1)项目申请:
当前登录负责人可以进行申请项目操作。
需要填写的属性主要包括项目名称、项目类别、第一负责人、第二负责人、项目经费、所属系别、进展状况、立项时间、预结题时间、结题时间等。
(2)查看项目:
主要是当前负责人参加项目的查询和添加项目参加人员操作。
负责人角色查看信息模块主要包括负责人信息和参加项目人信息功能。
该模块中负责人只能进行查看操作,不具有更新数据库中数据的操作。
负责人信息主要是查看自己的个人信息,而参加项目人信息是当前负责人可以查看学校所有项目的参加人员基本信息。
具体的负责人查看信息界面如图12所示。
图12负责人查看信息主界面
负责人角色查找信息模块有2个模块组成,分别为:
“负责人信息”和“参加项目人信息”模块。
这里涉及到查询操作的代码执行流程与上边管理员角色“人员管理”模块中的“项目负责人”模块查询“项目负责人”类似,这里不做详细介绍。
(1)负责人信息:
当前登录负责人个人信息的查看。
(2)参加项目人信息:
这里主要是通过项目名称进行查询参加人员的基本信息。