useBean>动作元素。
程序员还可以通过编写袭击的元素来实现特定的功能,开发出更为强大的Web应用程序。
2系统需求
2.1可行性分析
2.1.1问题描述
随着教育的改革的不断深入发展,各种学术交流会议,研讨会,培训讲座的召开日渐增多,规模和要求也不断提高,会议组织管理工作量也随之加大。
传统的手工操作,工作效率低,容易出错,难以适应此种发展趋势。
因此,采用信息化手段实现科学合理的会议管理运作方式显得尤为重要。
运用计算机来管理会议信息具有公正、严格和高效等诸多优点从而取代了人工管理模式下由于各种原因出现管理漏洞的可能性,因而增强了参会人员工作的积极性,提高了参会人员工作效率,确保会议能够正常地举行。
能够高效、快速管理会议,这是系统开发和评价的依据。
2.1.2可行性分析研究
当接受一个软件开发任务时,就进入软件生命的第一个阶段,即进行可行性的研究。
并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。
因此通过可行性的研究分析可以知道问题。
有无可行性的解决方法,进而避免人力、物力和才力的浪费。
在现行系统初步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。
系统目标应充分体现,直接为会议管理系统服务,并且,程序可以分期分批实现。
但是,需要指出的是,系统目标是不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。
以达到更加出色的程序系统。
随着计算机技术的不断发展以及计算机在政府各部门、企事业单位中的普及应用,它给人们带来便利以及在社会各个领域发挥的作用已无可替代。
传统的会议模式已不再适应当今社会的发展。
因此,研究与开发会议管理系统是一件非常中重要和必须的事情。
根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。
同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
2.1.3结论意见
经过认真地可行性研究,系统基本上做到了在目的、技术、运行上的可行性。
所以,系统开发是可以进行的。
2.2概要设计
2.2.1系统流程
图2-1系统流程图
图2-2系统数据流图
2.2.2登陆模块
管理员、用户必须要经过登陆页面进入系统,在登陆页面必须输入正确的用户名、密码和验证码,若没有输入用户名、密码或验证码或者输入的密码和用户名不匹配那么就弹出相应的提示信息,然后重新输入。
验证码是随机的字母和数字的组合,如果看不清验证码图片可以点击验证码重新生成一个新的验证码。
2.2.3管理员模块
管理员具有系统的所有权限,可以进行会议的管理,用户对于会议可以进行预约,当用户预约了会议之后必须要等待管理员进行审批,管理员可以查看预约会议室用户申请的设备,如果管理员审批通过了用户的预约申请,那么这次预约的会议就可以正常的召开,如果管理员不同意会议的召开那么就删除这次的会议预约。
管理员可以查看所有的已经通过审批的会议,但是不能更改任何会议信息,如果想要修改会议信息,只有申请者通过系统进行修改。
管理员可以管理会议室,会议室的信息包括房间号、地址、容纳的人数、负责的员工,管理员可以通过输入房间号查找特定的房间,如果不输入任何的信息就显示所有的会议室信息。
如果有新的会议室可以使用,管理员可以通过系统将新的会议室的信息添加到系统供员工使用。
如果会议室不能使用那么管理员必须将会议室的信息删除。
如果会议室的信息发生了改变,管理员可以通过系统修改会议室的所有信息。
管理员可以管理系统的使用用户,每当有新的用户使用系统,管理员可以将新的用户的信息录入系统,管理员可以按照姓名、部门来查找用户,如果不输入任何信息,那么就显示所有的用户信息。
如果用户离开,那么管理员必须删除当前用户信息,禁止访问权限。
管理员可以管理设备的信息,管理员通过设备名、设备类型、设备所属的会议室来查找设备,也可以查找所有的设备。
每当有新的设备加入的时候可以将设备信息添加进系统同,也可以删除设备的信息,若果设备的信息发生了改变,那么通过一同更改设备的信息。
图2-3管理员用例图
图2-4管理员功能模块
2.2.4用户模块
员工只能对自身的会议进行管理,员工可以通过系统进行会议的预约选择会议的时间、会议的人数然后查看有没有相匹配的会议室,如果有就选中进行下一步,员工可以选择要不要申请设备的使用,然后输入会议的主题上传会议有关的文档,选择要开会的人员进行预约会议。
员工可以通过系统进行查看自己的预约情况。
如果管理员通过了会议的预约那么就可以查看会议的信息,包括其他的用户已经申请的包含自己的会议。
图2-5用户用例图
图2-6用户功能模块
2.3数据库设计
数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
好的数据库结构设计会减少数据库的储存量,数据库的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等。
由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。
但这些设计方法和设计者的工作经验有很大的关系。
因此要从根本上解决所有数据库设计的问题,需要多实践,在实践中积累经验和教训,最终成为数据库结构设计的专家。
2.3.1数据库概念结构设计
图2-7用户E-R图
图2-8部门E-R图
图2-9设备E-R图
图2-10实体与实体之间的E-R图
2.3.2数据字典
表2-1预约会议申请表(meetingApply)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
workerID
varchar(20)
否
发起人ID
topic
varchar(100)
否
会议主题
documentLink
varchar(50)
会议说明文档地址
homeID
int
否
会议室编号
attendance
int
否
参加会议人数
beginTime
datetime
否
会议开始时间
endTime
datetime
否
会议结束时间
statusID
int
否
0
审核状态
applyTime
datetime
否
申请日期
表2-2会议申请状态表(meetingApplyStauts)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
statusName
varchar(10)
状态名称(0:
预约中,1:
使用中)
表2-3与会人员表(attendWorkers)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
meetingID
int
否
会议编号
workerID
int
否
与会员工编号
表2-4设备申请表(equipmentApply)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
meetingID
int
会议编号
equipmentID
int
否
设备主键
表2-5登录表(login)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
workerID
varchar(20)
否
登录名
password
varchar(30)
否
密码
roleID
int
否
普通用户
用户角色(0:
普通用户;1:
系统管理员)
表2-6用户角色表(role)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
roleName
varchar(20)
否
表2-7职员表(workers)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
workerID
varchar(20)
否
职工号
name
varchar(10)
否
职工姓名
userGroup
varchar(10)
用户组(普通用户/管理员)
telephone
char(11)
电话号码
sex
char
(2)
否
性别
birthday
date
否
生日
departmentID
int
否
所属部门
positionID
int
职位编号
eMail
varchar(50)
否
邮箱
表2-8职位表(position)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
positionName
varchar(20)
否
职位名称
表2-9部门表(department)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
departmentName
varchar(20)
否
部门名称
表2-10会议室表(homes)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
homeNo
varchar(10)
否
房间号(名称)
address
varchar(100)
否
所在地点
space
int
否
可容纳人数
hosterID
varchar(20)
负责人ID
表2-11会议室日程表(schedule)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
homeID
int
否
会议室编号
beginTime
datetime
否
占用开始时间
endTime
datetime
否
占用结束时间
表2-12设备表(equipments)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
equipmentID
varchar(20)
否
设备编号
equipmentName
varchar50)
设备名称
belongTo
varchar(10)
否
所属单位(仓库;会议室名)
storeTime
date
否
入库时间
equipType
int
否
设备类型
表2-13设备类型(equipTypes)
字段名
数据类型
是否为空
默认值
备注
id
int
否
主键,自增
typeName
varchar(20)
否
设备类型名称
图2-11数据交互图
3系统设计
系统设计是在系统分析的基础上,设计出能满足预定目标的系统的过程。
系统设计内容主要包括:
确定设计方针和方法,将系统分解为若干子系统,确定各子系统的目标、功能及其相互关系,决定对子系统的管理体制和控制方式,对各子系统进行技术设计和评价,对全系统进行技术设计和评价等。
系统设计通常应用两种方法:
一种是归纳法,另一种是演绎法。
应用归纳法进行系统设计的程序是:
首先尽可能地收集现有的和过去的同类系统的系统设计资料;在对这些系统的设计、制造和运行状况进行分析研究的基础上,根据所设计的系统的功能要求进行多次选择,然后对少数几个同类系统做出相应修正,最后得出一个理想的系统。
演绎法是一种公理化方法,即先从普遍的规则和原理出发,根据设计人员的知识和经验,从具有一定功能的元素集合中选择能符合系统功能要求的多种元素,然后将这些元素按照一定形式进行组合,从而创造出具有所需功能的新系统。
图3-1操作界面流程图
3.1管理员操作
管理员操作主要包括对预约会议的审批、查询会议、会议室管理、用户管理、设备管理。
首先,进入登录界面,输入正确的用户名、密码和验证码,如果输入的用户名和密码不匹配则弹出对话框提示输入错误,成功则进入会议管理系统,验证码错误显示相应的提示框,并且输入错误情况下不保存用户名和密码,必须重新输入。
登陆信息匹配成功就进入系统。
图3-2登陆流程图
3.1.1管理员登陆
用户登录必须要输入正确的用户名、密码和验证码,用户名、密码和验证码不能为空,验证码不区分大小写。
而且必须要点击正确的身份。
校验代码:
varreg=/^[\w]{6,12}$/;
if(!
reg.test(mypwd)){
alert("密码不正确!
");
returnfalse;
}
密码校验写在JS代码中,使用正则表达式进行验证。
^匹配开头,[\w]匹配字母,数字,{6,12}重复匹配前面的表达式6-12次,$匹配结束。
数据库匹配SQL语句:
select*fromtb_loginwhereworkerID=?
andpassword=?
androleID=?
将用户名和密码与数据库中的用户名和密码匹配,成功则返回1,否则返回0。
验证码相关代码
验证码的生成使用java库中提供的绘图方法,将0~9和26个字母随机排列,再产生随机的颜色生成5个随意颜色的字母数字,再配合随机生成的干扰点线生成验证码图片。
//产生随机的字母数字
publicstaticfinalchar[]CHARS={'1','2','3','4','5','6','7',
'8','9','0','A','B','C','D','E','F','G','H','I','J',
'K','L','M','N','O','P','Q','R','S','T','U','V','W',
'X','Y','Z'};
publicstaticRandomrandom=newRandom();
publicstaticStringgetRandomString(){
StringBufferbuffer=newStringBuffer();
for(inti=0;i<5;i++){
buffer.append(CHARS[random.nextInt(CHARS.length)]);
}
returnbuffer.toString();
}
publicstaticColorgetRandomColor(){
returnnewColor(random.nextInt(255),random.nextInt(255),random.nextInt(255));
}
publicstaticColorgetReverseColor(Colorc){
returnnewColor(255-c.getRed(),255-c.getGreen(),255-c.getBlue());
}
//生成验证码
BufferedImagebi=newBufferedImage(100,30,1);
Graphics2Dg=bi.createGraphics();
g.setFont(newFont("SansSerif",1,22));
g.setColor(newColor(244,244,244));
g.fillRect(0,0,100,35);
g.setColor(reverse);
g.drawString(radomString,15,22);
inti=0;
for(intn=random.nextInt(100);ig.drawRect(random.nextInt(100),random.nextInt(30),1,1);
}
ServletOutputStreamout=response.getOutputStream();
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
使用随机颜色的5位数字字母组合作为验证码。
再添加一些干扰图像生成图像作为验证码图片。
在内存中创建图像,将信息写入图像,通过session传输验证码图片到前端,在登录或注册时通过servlet进行匹配。
3.1.2管理员基本操作
管理员通过系统对用户的预约请求进行审核,审核通过则会议可以正常的进行,用户可以通过查询会议得知是否通过会议。
图3-3审批预约流程图
管理员可以通过系统对当前系统中的会议室进行管理,具体功能有添加会议室、删除会议室、修改会议室信息。
图3-4会议室管理流程图