基于java的职工考勤管理信息系统Word格式文档下载.docx
《基于java的职工考勤管理信息系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于java的职工考勤管理信息系统Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
工作内容
2016.7.25—8.10
根据软件设计要求,查询相关Java、数据库知识。
2016.8.11—8.23
构建数据库结构,编写程序应用界面。
2016.8.24—8.26
调试程序,完善功能,完成学年设计报告。
主
要
参
考
资
料
[1].王诚.JAVA实用编程技术[M].北京:
人民邮电出版社,2012.
[2].王雨竹.MySQL入门经典[M].北京:
机械工业出版社,2013.
[3].张逸.软件设计精要与模式[M].北京:
电子工业出版社,2007.
[4].王德永.数据库原理与应用[M].北京:
人民邮电出版社,2011.
[5].[美]BruceEckel.Java编程思想[M].北京:
机械工业出版社,2007.
[6].[美]HerbertSchildt著.马海军,景丽等译.Java实用教程(第三版).北京:
清华大学出版社.2005.
指导教师
意见
(签字):
年月日
系(教研室)主任意见
年月日
职工考勤管理信息系统设计说明书
(封面)
学院名称:
计算机与信息工程学院
班级名称:
网络工程14级2班
学生姓名:
朱赛赛
学号:
2014211585
题目:
职工考勤管理信息系统
姓名:
任倩
起止日期:
2016.7.26–2016.8.26
目录
第一部分:
正文部分1
一、选题背景1
二、方案论证(或设计理念)1
三、过程论述1
3.1相关知识介绍1
3.2系统功能模块图2
3.3系统流程图2
3.4数据库设计3
3.5系统的各部分功能模块设计4
3.5.1系统管理部分设计4
3.5.2职工信息管理部分设计10
3.5.3出勤信息查询15
3.5.4出差信息查询17
3.5.5请假信息查询18
3.5.6加班信息查询19
3.5.7系统主界面集成设计21
四、结果分析25
4.1登录系统测试25
4.2员工管理测试26
4.3出勤信息查询测试26
4.4出差信息查询测试26
4.5请假信息查询测试27
4.6加班信息查询测试27
五、结论(或总结)28
第二部分:
参考文献28
第三部分:
指导教师评语30
第四部分:
成绩评定30
正文部分
一、选题背景
计算机网络技术的发展,给信息时代的人们带来了很大的便利。
如今在互联网上,随处可见各种类型的信息管理系统。
随着信息技术的发展已经深入到社会的各个角落,各个大小企业都充分认识到传统的手工管理模式已经不能顺应时代的发展,为了企业更好的发展,纷纷开发适合自己的管理系统。
相对于手工管理模式的效率低,易出错,手续繁琐,耗费大量的人力,物力,财力来说,职工考勤管理信息系统能够通过电脑化管理实现职工信息增加,删除,修改,以及出勤信息,出差信息,请假信息,加班信息的查询。
二、方案论证(或设计理念)
由于该系统所要满足的硬件是计算机,软件方面是采用JDK1.8开发环境、
Eclipse开发工具和MySQL数据库,这些设备和软件易于实现和满足。
采用的语言是Java语言,具有可移植性,功能易于实现,界面比较美观,操作简单,能够移植到其他计算机上运行,与平台无关,能够满足更多的用户,使得该系统能被很多家庭所接受和使用。
因此采用该Java+MySQL方案来设计职工考勤管理信息系统。
三、过程论述
3.1相关知识介绍
MySQL是一个关系型数据库管理系统,MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策,其体积小、速度快、总体拥有成本低,致使其被广泛应用。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
3.2系统功能模块图
在该小型应用系统中,用户可以直接执行管理员权限,对员工信息进行增删,修改,保存,实现出勤信息,出差信息,加班信息,请假信息的查询。
系统功能如图3-1所示。
图3-1系统功能模块图
3.3系统流程图
在该系统中,用户可以通过可以运行程序进入主界面,在主界面中可以管理各个功能模块,进而通过各个功能模块对后台数据库进行数据操作和管理。
系统流程图如图3-2所示。
图3-2系统流程图
3.4数据库设计
根据实体类型、属性和联系的方法,绘制职工,出勤,出差,加班,请假实体集间的实体-联系图。
如图3-3所示。
图3-3E-R图
本系统的基本功能是设计职工考勤管理信息,因此设置了5张表,分别是表Yuangong、表Chuqin、表Chuchai、表Qingjia、表Jiaban。
对数据的增、删、改、查,主要在这四个表上进行。
(1)员工表用来记录员工的基本信息,表结构如表3-1所示。
表3-1员工表
属性名
类型
长度
字段约束
含义
Id
int
5
notnull
编号
Name
char
4
姓名
Sex
2
check
性别
Age
年龄
Zhichen
null
职称
(2)出勤表用来记录出勤的基本信息,表结构如表3-2所示。
表3-2出勤表
Am0
date
上午开始打卡
Pm0
下午开始打卡
Am1
上午结束打卡
Pm1
下午结束打卡
Judge
缺勤记录
(3)出差表用来记录出差的基本信息,表结构如表3-3所示。
表3-3出差表
Beginday
开始时间
Endday
结束时间
Days
总时间
(4)请假表用来记录请假的基本信息,表结构如表3-4所示。
表3-4请假表
(5)加班表用来记录加班的基本信息,表结构如表3-5所示。
表3-5加班表
BeginTime
EndTime
SumTime
double
6
3.5系统的各部分功能模块设计
3.5.1系统管理部分设计
系统管理模块的主要功能有:
用户登录、退出。
该模块可以实现用户的登录,在程序中主要涉及的类为CheckPassword,在系统核对用户名和密码时需对数据库test中的user1表进行查询对比。
登录界面如图3-4所示。
图3-4用户登录界面
具体代码如下:
publicstaticvoidmain(String[]args){
try{
UIManager.setLookAndFeel("
com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
);
}
catch(Throwablee){
e.printStackTrace();
}
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
ExpandFrameframe=newExpandFrame();
frame.setVisible(true);
catch(Exceptione){
e.printStackTrace();
});
publicExpandFrame(){
this.setTitle("
登录窗体"
addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowOpened(WindowEvente){
do_this_windowOpened(e);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,0,221);
contentPane=newJPanel();
contentPane.setBackground(newColor(135,206,250));
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabellabel=newJLabel("
登录模块"
label.setOpaque(true);
label.setBackground(newColor(245,222,179));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(newFont("
SansSerif"
Font.PLAIN,30));
label.setBounds(6,6,422,72);
contentPane.add(label);
JLabellabel_1=newJLabel("
用户名:
"
label_1.setBounds(31,90,55,18);
contentPane.add(label_1);
JLabellabel_2=newJLabel("
密码:
label_2.setBounds(31,134,55,18);
contentPane.add(label_2);
textField=newJTextField();
textField.setBounds(83,84,184,30);
contentPane.add(textField);
textField.setColumns(10);
textField_1=newJTextField();
textField_1.setBounds(83,128,184,30);
contentPane.add(textField_1);
textField_1.setColumns(10);
JButtonbutton=newJButton("
登录"
button.setBounds(304,84,90,30);
contentPane.add(button);
button.addActionListener(newEnter());
JButtonbutton_1=newJButton("
关闭"
button_1.setBounds(304,128,90,30);
contentPane.add(button_1);
setLocationRelativeTo(null);
button_1.addActionListener(newClose());
}
classEnterimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
setVisible(false);
try{
Class.forName("
com.mysql.jdbc.Driver"
}
catch(ClassNotFoundExceptione1){System.out.println("
加载驱动程序失败!
try{
Connectioncon=DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/test"
"
root"
Statementsql=con.createStatement();
Stringuname=textField.getText().trim();
StringMima=textField_1.getText().trim();
StringqueryMima="
select*fromuser1where用户名='
+uname+"
'
and密码='
+Mima+"
;
ResultSetrs=sql.executeQuery(queryMima);
if(rs.next())
{
JOptionPane.showMessageDialog(null,"
登录成功!
JOptionPane.YES_NO_OPTION);
MainFramesf=newMainFrame();
sf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sf.show();
}else{
该用户不存在"
提示!
}
textField.setText("
textField_1.setText("
}catch(SQLExceptiong)
{
System.out.println("
ECode"
+g.getErrorCode());
EM"
+g.getMessage());
}
classCloseimplementsActionListener{
@Override
//TODOAuto-generatedmethodstub
System.exit(0);
}
classwinCloseextendsWindowAdapter
{
publicvoidwindowClosing(WindowEvente)
(e.getWindow()).dispose();
System.exit(0);
protectedvoiddo_this_windowOpened(WindowEvente){
finalintheight=getHeight();
//记录窗体高度
newThread(){//创建新线程
Rectanglerec=getBounds();
for(inti=0;
i<
frameWidth;
i+=10){//循环拉伸窗体
setBounds(rec.x-i/2,rec.y,i,height);
//不断
Thread.sleep(10);
//线程休眠10毫秒
}catch(InterruptedExceptione1){
e1.printStackTrace();
}.start();
//启动线程
publicstaticvoidDISPOSE_ON_CLOSE(){
//TODOAuto-generatedmethodstub
3.5.2职工信息管理部分设计
职工信息管理部分有员工信息增添、查询、职工出差信息查询、职工请假信息查询、职工加班信息查询四个主模块。
如图3-5所示。
图3-5职工信息查询选项
员工资料管理部分有查看所有员工信息,添加员工信息,修改员工信息,删除员工信息五个模块。
主要通过类来对数据库进行操作,如添加员工信息。
如图3-6所示。
图3-6添加员工信息
publicstaticintInsertYuangongInfo(Yuangongyuangong){
Connectionconn=getConn();
inti=0;
Stringsql="
InsertintoYuangong(ID,Name,Sex,Age,Zhichen)values(?
?
)"
PreparedStatementpstmt;
pstmt=(PreparedStatement)conn.prepareStatement(sql);
pstmt.setInt(1,yuangong.getId());
pstmt.setString(2,yuangong.getName());
pstmt.setString(3,yuangong.getSex());
pstmt.setInt(4,yuangong.getAge());
pstmt.setString(5,yuangong.getZhichen());
i=pstmt.executeUpdate();
pstmt.close();
conn.close();
}catch(SQLExceptione){
returni;
查询员工信息。
如图3-7所示。
图3-7查询员工信息
publicstaticYuangonggetYuangongInfo(intid){
Stringsql="
Select*fromYuangongwhereid='
+id+"
pstmt=(PreparedStatement)conn.prepareStatement(sql);
ResultSetrs=pstmt.executeQuery();
Yuangongyuangong=newYuangong();
while(rs.next()){
yuangong.setId(rs.getInt("
ID"
));
yuangong.setName(rs.getString("
Name"
yuangong.setSex(rs.getString("
Sex"
yuangong.setAge(rs.getInt("
Age"
yuangong.setZhichen(rs.getString("
Zhichen"
returnyuangong;
returnnull;
删除员工信息。
如图3-8所示。
图3-8删除员工信息
publicstaticintDeleteYuangongInfo(intid){
DeletefromYuangongwhereID='
System.out.println("
resutl:
"
+i);