项目实例1 办公管理系统.docx
- 文档编号:25337701
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:152
- 大小:1.61MB
项目实例1 办公管理系统.docx
《项目实例1 办公管理系统.docx》由会员分享,可在线阅读,更多相关《项目实例1 办公管理系统.docx(152页珍藏版)》请在冰豆网上搜索。
项目实例1办公管理系统
项目实例1办公管理系统
本章的目标是实现一个C/S结构的局域网办公管理系统,包括考勤签到,公告,通信聊天以及系统管理等四个主要功能。
本系统在局域网内部署后,可供多个用户同时使用。
在系统实现中,涉及到多台计算机通过服务器进行通信的问题,目前,此类通信要求可靠、安全,一般都是基于TCP/IP协议实现的。
本系统涉及到的Java知识点有界面编程与事件处理、集合类、TCPSocket套接字通信、对象序列化、对象流、多线程和数据库编程等。
15.1需求分析与项目目标
办公管理系统的用户主要是公司内部员工,包括的高级职员和普通员工,其功能一般包括考勤签到、公告、通信聊天以及系统管理等四个模块。
本章需要实现如图15-1所示的办公管理系统客户端主界面。
(1)考勤模块,主要功能包括:
员工签到和签到历史信息查询。
(2)公告模块,主要功能包括:
查看公告,删除公告和发布公告。
(3)通信模块,主要功能包括:
单人通信,上下线状态显示,离线信息发送,多人通信。
(4)系统管理模块,主要功能包括:
查看个人信息,修改个人信息,注册员工,删除员工,查看员工信息。
图15-1办公管理系统主界面
用例分析
用户使用办公管理系统一般要经历下几个步骤,首先打开软件,然后在成功登陆后,根据自己拥有的权限可以在考勤模块,通信模块,公告模块,管理模块使用相应的功能,最后使用完毕后关闭程序界面。
根据这个过程,图15-2和15-3分别列出了不同角色(员工和经理)所拥有的权限和能使用的功能,表15-1给出了各个用例的详细描述。
图15-2员工权限用例分析图
图15-3经理权限用例分析图
表15-1局域网管理系统用例描述
用例
用例描述
用户操作
软件功能
用例1
启动服务器
显示服务器主界面;
界面上显示开启服务器和关闭服务器按钮以及显示需要使用的端口号。
用例2
打开客户端并登陆
显示客户端主界面;
在界面上输入账号密码登陆,登陆时的前提条件是连接服务器成功,登陆时需要去服务器端并连接相应的数据库判断密码正确与否,正确则进入功能界面并且得到相应的权限,否则弹出密码错误。
用例3
考勤签到
若没签到则弹出签到成功,否则则弹出今天已签到。
用例4
查看考勤
在此可以选择相应的ID账号和年份可以查看到不同员工每月的签到天数,若按清空记录则清楚全部已经签到过的记录。
用例5
查看及删除公告
进入查看界面后有删除公告、上一页和下一页的按钮;
能够查看到全部已经发布的公告及发布的时间;
点相应公告的标题则可以查看到详细的公告内容。
选中标题前面的正方形框,然后按删除则可以删除选中的公告。
若公告条数够多的话可以按下一页查看,不过的话会显示已经是最后一页。
用例6
发布公告
在界面中的标题框和正文框内输入相应的信息按发布公告,则会把数据发去服务器端并插入相应的数据库
用例7
聊天上下线
若一个好友上线了,则其它相应好友的客户端头像将会边亮,好友下线同理头像会变暗。
用例8
聊天发送消息
双击好友姓名,在输入框内输入相应的内容按发送即可
用例9
聊天信息接收
若发送者发送时,接收方不在线则会在接收方上线时,发送者姓名便红以便提示接收方有留言信息。
若接收方在线则发送者头像直接变红。
用例10
多人通信
添加群组:
弹出的输入框中输入群组名字即可进群;
删除群组:
单击相应的群组名使名字变蓝,然后按删除群组即可;
群组通信:
用鼠标移动到你要发送的群组名,名字会变粉红。
双击则会弹出群组消息框,在相应消息框中输入要发送的信息按发送即可。
用例11
查看个人信息
在主界面中点击查看个人信息按钮则弹出自己相应信息的框
用例12
修改个人信息
在主界面中点击修改个人信息,然后再点击修改按钮,在相应输入框内修改你要改的信息,然后按确认修改即可。
用例13
注册员工
在主界面中点击注册员工在相应输入框中输入要注册的信息按确定即可
用例14
删除员工
进入相应界面,点击要删除的员工名单,名字就会显示在右边,然后点击删除即可。
用例15
删除员工实现分页
在删除员工界面可以点击上一页和下一页
用例16
查看员工信息
直接查看:
左下角会显示相应的员工名单你可以点你要查看信息的员工名字,则输入框内会显示相应名字,按查看后会把你要查看的信息显示出来;
搜索查看:
在输入框中直接打你要查看的名字,你每打一个字
下角的员工名单都会跟着作出相应的改变,你可以用直接查看
方法选出你要查看的人,也可以把名字打全然后按查看,也会
显示出相应的信息。
需求分析
根据表15-1用例描述,表15-2给出了并得出具体的需求条款及需求描述。
表15-2办公管理系统需求列表
需求编号
需求描述
解释
Req15-1
服务器端界面上有“开启服务器”和“关闭服务器”两个按钮
用例1
Req15-2
客户端登录界面有“账号”和“密码”输入框以及“登录”按钮,并且以及背景图片,并且客户端登录界面有背景图片
用例2
Req15-3
能够验证账号及登录密码的正确性
用例2
Req15-4
密码错误可以弹出密码错误提示框
用例2
Req15-5
密码正确能够显示功能选择界面并判断好相应权限保证不同功能的权限访问
用例2
Req15-6
功能界面有各个功能的GUI按钮及对应的背景图片
用例2
Req15-7
签到后能够提示签到成功或者今天已签到
用例3
Req15-8
实现考勤页面的GUI
用例4
Req15-9
提供两种查看考勤记录的方法:
按账号和按年份
用例4
Req15-10
能够清除考勤记录
用例4
Req15-11
实现查看公告功能的GUI
用例5
Req15-12
能够显示公告及公告发布时间
用例5
Req15-13
能够删除公告
用例5
Req15-14
能够查看上一页及下一页公告
用例5
Req15-15
实现发布功能的GUI
用例6
Req15-16
能够发布公告
用例6
Req15-17
实现聊天功能的GUI
用例7
Req15-18
能够显示好友上下线头像的变化
用例7
Req15-19
实现单人聊天通信
用例7
Req15-20
能够发送留言信息
用例7
Req15-21
能够发送在线消息
用例7
Req15-22
能够提示收到消息使好友的头像变红
用例7
Req15-23
实现多人聊天
用例7
Req15-24
实现管理功能的全部GUI
用例11~16
Req15-25
能够查看个人信息
用例11
Req15-26
能够修改个人信息
用例12
Req15-27
能够注册新员工
用例13
Req15-28
能够删除员工
用例14
Req15-29
删除员工界面具有分页效果
用例15
Req15-30
经理能够直接查看员工信息
用例16
Req15-31
经理能够搜索、查找、查看员工信息
用例16
项目目标
本章的设计目标是设计一个局域网办公管理系统,其主界面效果如图15-1所示,由于通信功能与第13章的局域网聊天工具类似,通信功能的实现不被放在在项目目标中。
所以,本项目的项目目标有:
实现图15-2和图15-3中除去聊天功能之外的所有用例,满足表15-3中包含的Req15-1到Req16和Req24到Req30的需求条款。
15.2功能分析与软件设计
本节在需求分析的基础上,从功能的角度分析软件的实现流程和软件设计,然后设计用户数据库表格以及相应的用户数据表提供的程序接口。
15.2.1界面效果设计
本系统的界面主要是通过背景图片和一些处理过的按钮所构成,背景图片通过PhotoShop处理可以实现更好的效果,如下面的“登陆”按钮和“查看个人信息”按钮通过photoshop处理后实现了不同的界面效果。
下面给出具有背景图片的按钮的实现过程,首先准备三张经过处理的图片素材(如下所示),然后编写Java代码,如代码15-1所示。
代码15-1具有背景图片的按钮的Java代码实现
JButtonenter=newJButton();
//鼠标经过的时候的图片
ImageIconentered=newImageIcon("src/image/button1.png");
//初始图片
ImageIconreleased=newImageIcon("src/image/button2.png");
//按下去的图片
ImageIconpressed=newImageIcon("src/image/button3.png");enter.setOpaque(false);//透明化
enter.setIcon(released);//初始化
enter.setBorderPainted(false);
enter.setBorder(null);
enter.setBounds(267,290,90,32);//按钮大小,位置
//按钮透明,这样用圆形按钮的时候也不会出现按钮边框
enter.setContentAreaFilled(false);
//按下按钮时的图片
enter.setPressedIcon(pressed);
//经过时的图片
enter.setRolloverIcon(entered);
15.2.2登陆功能
用户进入客户端主界面(效果如图15-4所示)时需要登陆,登陆过程如图15-5所示。
在用户填写账号和密码并按“登陆”按钮后,客户端将通过TCPSocket与服务器端进行连接,然后服务器通过读取数据库中保存的帐号和密码来验证登录的合法性。
如果验证通过,服务器则在数据库下记录相应的Socket信息,否则不做记录,然后服务器把登陆验证的结果返回给客户端,如果验证通过,客户端进入功能界面,否则显示密码错误。
图15-4登录界面
图15-5登陆过程
15.2.3管理模块
用户成功登录后,就可以通过管理模块管理相关信息,对于一般员工来说,只能查看个人信息,对于经理用户来说,可以查看个人信息、修改个人信息、注册员工、删除员工和查看员工信息等功能。
15.2.3.1查看个人信息功能
用户成功登录后,可以点击“管理”功能的“查看个人信息”按钮查看用户自己的信息。
查看个人信息的软件流程图如图15-6所示,图中,用户点击查看个人信息按钮后,客户端(如图15-1所示)会向服务器发一个查询请求,服务器根据用户的ID号从数据库中读出用户信息,然后发送回客户端,最后客户端把收到的信息显示在如图15-7的个人信息界面中。
图15-6查看个人信息软件流程图
图15-7个人信息界面
15.2.3.2修改个人信息功能
用户成功登录后,可以点击“管理”功能的“修改个人信息”按钮修改用户自己的信息。
修改个人信息的软件流程如图15-8所示。
首先,用户按下“修改个人信息”按钮,然后客户端根据不同的用户权限显示不同的界面效果,若是普通员工,则禁止修改,若用户是经理,则可以做相应的修改。
进入如图15-9所示的个人信息修改页面后,客户端需要从服务器端的数据库内读取相应用户数据,然后显示用户信息界面中,接下来,用户只需要按下修改按钮然后在相应的提示框内打上你所要修改的信息,点击确认修改即可,这时客户端会把更新的的个人信息发送给服务器,服务器负责把新的个人信息更新到数据库内。
图15-8修改个人信息流程
图15-9个人信息修改界面
15.2.3.3注册员工
经理成功登录后,可以点击“管理”功能的“注册员工”按钮注册新的员工信息。
“注册员工”软件流程如图15-10所示。
首先用户按下“注册员工”按钮,然后客户端判断用户权限,若是普通员工则不做响应,若是经理用户则进入“注册员工”界面(如图15-11所示)。
在填写相关注册信息后,用户按下“确定”按钮,客户端会通过Socket连接,采用序列化技术把员工信息发送到服务器端,服务器负责把新的员工信息写入数据库。
图15-10注册员工流程
图15-11注册员工界面
15.2.3.4删除员工
经理成功登录后,可以点击“管理”功能的“删除员工”按钮删除员工信息。
“删除员工”软件流程如图15-12所示。
用户按下“删除员工”按钮时,客户端需要判断用户权限,若是普通员工用户则不做响应,若是经理用户则显示删除员工界面(如图15-13所示)。
进入删除页面后,用户选中待删除员工记录后,点击“确定”按钮,客户端会通过Socket连接和序列化技术把员工信息发送到服务器端,服务器负责把次员工记录从数据库中删除。
图15-12删除员工流程
图15-13删除员工界面
15.2.3.5查看员工信息
经理成功登录后,可以点击“管理”功能的“查看员工信息”按钮查看员工信息。
“查看员工信息”软件流程如图15-14所示。
用户按下“查看员工信息”按钮,客户端需要判断用户权限,若是普通员工用户则不做响应,若是经理用户则显示“查看员工信息”界面(如图15-15所示)。
在页面上显示员工列表的过程中,客户端首先发消息给服务器获取员工列表,然后再把员工列表显示在“查看员工信息”界面上。
然后,经理可以通过搜索查看也可以通过选择用户记录直接查看员工信息。
如果员工比较多,用户可以在输入框内填写待查看的员工姓名,客户端会自动筛选含有填写的用户名记录,如果只有一条记录,经理可以点击“查看”按钮,客户端就会通过Socket连接到服务器并发送一个消息,请求服务器返回对应的员工信息,服务器从数据库中得出具体员工的信息并返回给客户端,最后客户端再从相应的消息读出数据显示在“查看员工信息”界面的右半部分,效果如图15-16所示。
经理也可以从员工列表中找到员工记录,双击即可查看员工信息。
图15-14查看员工信息流程
图15-15查看员工信息界面
图15-16查询员工信息的结果示例
15.2.4考勤模块
考勤模块需要实现客户端主界面(如图15-1所示)中的“考勤”功能,包括“签到”和“查看考勤”两个子功能。
15.2.4.1签到
用户“签到”的软件流程如图15-17所示。
登录后,用户可以点击“签到“按钮进行签到,客户端会向服务器端中的数据库查看是否已经签到,如果员工是当天第一次签到,客户端会发送给服务器一个签到消息,并且显示“签到成功”对话框(如图15-18所示),服务器会更新数据库使此员工的签到记录加1。
如果员工当天已经签到了,客户端则会弹出“今天已签到”对话框(如图15-19所示),提示今天已签到。
图15-17用户签到流程
图15-18签到成功对话框图15-19已签到对话框
15.2.4.2查看考勤
用户“查看考勤”的软件流程如图15-20所示。
用户按下查看考勤按钮后,客户端会判断用户权限,若用户为员工则提示权限不足,如果为经理则否则进入“查看考勤”界面(如图12-21所示),用户可以选择相应账号和年份查看。
用户选择完成后,客户端会向服务器端发送查看考情记录请求,服务器从数据库中读取指定信息后发送给客户端,客户端把到的考勤记录显示在界面上。
当用点击“清空记录”按钮时,客户端会将指定的员工帐号和年份发给服务器去删出相关信息,服务器收到消息后更新数据库。
图15-20查看考勤和清空考勤流程
图15-21查看考勤界面
15.2.5公告模块
用户登录成功后,即可点击“查看公告”查看公司内部公告。
对于经理用户来说,还可以“发布公告”和删除公告。
15.2.5.1查看公告
用户“查看公告”和“删除公告”的软件流程如图15-22所示。
用户可以通过客户端,点击“查看公告”按钮查看公告,客户端首先向服务器端发送查看公告请求信息,服务器回从数据库中读取公告标题信息,并返回给客户端,客户端在界面上显示公告列表(如图15-23所示),用户点击任意公告标题即可查看公告内容(如图15-24所示)。
在公告列表中,用户可以选择一条或者多条公告,然后点击“删除”按钮进行删除。
由于只有经理权限才能删除公告,客户端首先会检查用户权限,如果权限为员工权限,删除操作将没有反映,如果权限为经理级别,客户端会把指定公告条款的信息发送给服务器进行删除,服务器收到删除信息的请求后,从数据库中删除相应记录即可。
图15-22公告查看、删除公告流程
图15-23查看公告
图15-24查看公告内容
15.2.5.2发布公告
用户“发布公告”的软件流程如图15-25所示。
用户点击“发布公告”按钮,由于只有经理权限才能发布公告,所以客户端首先会检查用户权限,如果权限为员工权限,发布公告操作将没有反映,如果权限为经理级别,客户端会弹出发布公告界面(如图15-26所示),在用户填好公告点击“发布公告”按钮时,客户端会把新创建公告的信息发送给服务器,服务器收到发布公告请求后,把公告信息更新进数据库,这样用户查看公告时,就可以获得最新的公告列表。
图15-25发布公告流程
图15-26发布公告界面
15.2.6通信模块
这里仅简单分析一下通信模块需要实现的功能,但不予实现。
15.2.6.1上下线通知及页面初始化
当用户点击“通信”中的“聊天”按钮时,客户端会弹出如图15-27所示的聊天界面。
在该界面的“好友列表”和“群组列表”中,好友名为黑色字体,表示用户处于在线状态,用户名为灰色字体,表示用户处于离线状态。
如果好友的状态发生变化,“好友列表”和“群组列表”中也会及时更新。
好友上下线的软件流程如图12-28所示。
在客户端弹出如图15-27所示的聊天界面后,客户端向服务器通过Socket发送一系列的用户信息请求,依次为:
好友列表信息,群组列表信息,离线好友消息。
服务器收到请求后,按照请求类型,从数据库中查询,并把查询结果依次通过Socket返回给客户端。
客户端把收到的好友信息、群组信息和一次更新到聊天界面中。
如果用户状态发生变化,则服务器通过检测到相应Socket的开关状态,更新用户在数据库中的信息和状态,然后把相应用户及其状态变化发送给其好友和群组。
这样客户端收到好友信息变化时,就可以在好友列表和群组列表中更新好友的状态。
在客户下线时,客户端会发送下线消息给服务器,服务器更新数据库中对应用户的信息,然后把下线消息发共给相应在线好友客户端。
如果客户处于离线状态,服务器会把相应的离线个人信息和群组聊天信息保存进数据库,等用户上线时再发送给客户。
图15-27聊天主界面
图15-28好友上下线的软件流程
15.2.6.2单人通信
当用户双击好友名(这里也称为头像),客户端会弹出如图15-29所示的单人通信聊天框,若双击用户名时好友名为红色,聊天框中会显示未读信息。
好友上下线的软件流程如图12-29所示。
首先,用户可以在输入框内输入想要发送的信息,然后按“发送消息”按钮进行发送。
客户端在发送消息前会判断好友是否在线,如果好友在线则发送聊天消息给客户,如果好友离线,则把聊天信息消息发送给服务器,服务器会把离线消息保存进数据库,等相应的好友上线时再发给该用户。
若好友在下线前已经读取了聊天消息,则这些消息不会存入数据库中,相反,如果好友在下线前未能读取消息,服务器则会把这些消息存进数据库待客户下次上线时接收。
从技术上来说,这里用到了对象序列化技术,使用消息对象在Client端与Server端来来进行聊天消息的通信。
图15-29单人通信聊天框
图15-30单人通信软件设计流程
15.2.6.3多人通信
多人通信的原理与单人通信基本相同,感兴趣的读者可以参考第12章予以实现。
15.2.7数据库表格与脚本设计
局域网办公管理系统的数据库(取名office)的设计需要以用户为中心来考虑,设计到的数据库表有员工信息表(以员工ID为主键),用户聊天消息记录表(以员工ID为主键),用户群组表,公告表(以公告ID为主键),员工签到表(以签到记录ID为主键,以员工ID为外键),所有表格汇总于表15-3。
表15-3局域网办公管理系统数据库表汇总
表名
功能说明
员工信息表
用于查询、更新员工信息
聊天消息记录表
用来存放讨论消息
群组表
用于存放群组
公告表
用于存放公告
签到表
用于签到
员工信息表
表15-4给出了员工信息表的字段描述,代码15-2给出了创建该表的数据库SQL脚本。
表15-4员工信息表userinfo
字段名称
字段名称
类别
主键
非空
用户ID
id
varchar
是
是
用户权限
authority
varchar
否
是
用户密码
pass
varchar
否
是
薪水
income
int
否
是
年龄
age
int
否
是
性别
sex
varchar
否
是
地址
address
varchar
否
是
代码15-2员工信息表SQL创建脚本
createtableuserinfo(
idvarchar(16)primarykey,
authorityvarchar(10)notnull,
passvarchar(16)notnull,
incomeintnotnull,
ageintnotnull,
sexvarchar(4)notnull,
addressvarchar(100)notnull,
telpNumvarchar(15)notnull,
QQNumvarchar(15)notnull
);
聊天消息记录表
表15-5给出了聊天消息记录表的字段描述,代码15-3给出了创建该表的数据库SQL脚本。
表15-5聊天消息记录表message
字段名称
字段名称
类别
主键
非空
发送ID
SenderID
varchar
否
是
接收者ID
GetterID
varchar
否
是
信息内容
Cont
varchar
否
是
代码15-3聊天消息记录表SQL创建脚本
createtablemessage(
SenderIDvarchar(25)notnull,
GetterIDvarchar(25)notnull,
Contvarchar(150)notnull
);
群组表
表15-6给出了群组表的字段描述,代码15-4给出了创建该表的数据库SQL脚本。
表15-6群组表groups
字段名称
字段名称
类别
主键
非空
用户ID
id
varchar
否
是
组名
groupName
varchar
否
是
createtablegroups(
idvarchar(40)notnull,
groupNamevarchar(40)notnull
);
代码15-4群组表SQL创建脚本
公告表
表15-7给出了群组表的字段描述,代码15-5给出了创建该表的数据库SQL脚本。
表15-7公告表publication
字段名称
字段名称
类别
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目实例1 办公管理系统 项目 实例 办公 管理 系统