基于java的职工考勤管理信息系统.docx

上传人:b****7 文档编号:8894977 上传时间:2023-02-02 格式:DOCX 页数:33 大小:169.54KB
下载 相关 举报
基于java的职工考勤管理信息系统.docx_第1页
第1页 / 共33页
基于java的职工考勤管理信息系统.docx_第2页
第2页 / 共33页
基于java的职工考勤管理信息系统.docx_第3页
第3页 / 共33页
基于java的职工考勤管理信息系统.docx_第4页
第4页 / 共33页
基于java的职工考勤管理信息系统.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于java的职工考勤管理信息系统.docx

《基于java的职工考勤管理信息系统.docx》由会员分享,可在线阅读,更多相关《基于java的职工考勤管理信息系统.docx(33页珍藏版)》请在冰豆网上搜索。

基于java的职工考勤管理信息系统.docx

基于java的职工考勤管理信息系统

小型应用系统学年设计任务书

学院

计算机与信息工程学院

专业

网络工程

课程名称

小型应用系统设计

题目

职工考勤管理信息系统

完成期限

自2016年7月26日至2016年8月26日共四周

一、项目的目的

采用Java和MySQL数据库技术,设计一个小型应用系统实现职工考勤管理信息。

锻炼在软件设计过程中的业务逻辑和业务流程设计能力、以及图形化的用户界面设计和数据库的使用能力。

二、项目任务的主要内容和要求

采用Java和MySQL数据库技术,设计一个小型的应用系统实现职工考勤信息的管理,有图形化的用户界面。

内容及要求如下:

(1)职工信息,包括职工编号、职工姓名、性别、年龄、职称等;

(2)出勤记录信息,包括上班打卡时间,下班打开时间,缺勤记录等;

(3)出差信息,包括出差起始时间、结束时间、统计总共天数等;

(4)请假信息,包括请假开始时间,结束时间,统计请假天数等;

(5)加班信息,包括加班开始时间、结束时间、统计加班总时间。

三、项目设计(研究)思路

先期设计数据库,画出数据库的E-R图,设计员工表,出差表,出勤表,加班表,请假表。

然后设计和制作分别完成各个小项的功能,如员工表的增加、删除、查询、修改以及其他表格的查询。

在各个小功能都完善后,接入数据库,再考虑设计一个主界面,将软件的各项功能集成在一起。

小系统达成后,进行调试与界面编辑设计,最终完成设计。

四、具体成果形式和要求

(1)设计完成一个职工考勤管理信息系统。

要求能对MySQL数据库进行增、删、改、查操作,并且具备图形化的用户界面。

(2)完成和提交一份职工考勤管理信息设计报告文档。

起止日期

工作内容

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

notnull

姓名

Sex

char

2

check

性别

Age

int

2

notnull

年龄

Zhichen

char

4

null

职称

(2)出勤表用来记录出勤的基本信息,表结构如表3-2所示。

 

表3-2出勤表

属性名

类型

长度

字段约束

含义

Id

int

5

notnull

编号

Am0

date

0

null

上午开始打卡

Pm0

date

0

null

下午开始打卡

Am1

date

0

null

上午结束打卡

Pm1

date

0

null

下午结束打卡

Judge

int

5

null

缺勤记录

(3)出差表用来记录出差的基本信息,表结构如表3-3所示。

表3-3出差表

属性名

类型

长度

字段约束

含义

Id

int

5

notnull

编号

Beginday

date

0

null

开始时间

Endday

date

0

null

结束时间

Days

int

5

null

总时间

(4)请假表用来记录请假的基本信息,表结构如表3-4所示。

表3-4请假表

属性名

类型

长度

字段约束

含义

Id

int

5

notnull

编号

Beginday

date

0

null

开始时间

Endday

date

0

null

结束时间

Days

int

5

null

总时间

(5)加班表用来记录加班的基本信息,表结构如表3-5所示。

表3-5加班表

属性名

类型

长度

字段约束

含义

Id

int

5

notnull

编号

BeginTime

date

0

null

开始时间

EndTime

date

0

null

结束时间

SumTime

double

6

null

总时间

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(){

try{

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","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{

JOptionPane.showMessageDialog(null,"该用户不存在","提示!

",JOptionPane.YES_NO_OPTION);

}

textField.setText("");

textField_1.setText("");

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

}

classCloseimplementsActionListener{

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

System.exit(0);

}

}

classwinCloseextendsWindowAdapter

{

publicvoidwindowClosing(WindowEvente)

{

(e.getWindow()).dispose();

System.exit(0);

}

}

protectedvoiddo_this_windowOpened(WindowEvente){

finalintheight=getHeight();//记录窗体高度

newThread(){//创建新线程

publicvoidrun(){

Rectanglerec=getBounds();

for(inti=0;i

setBounds(rec.x-i/2,rec.y,i,height);//不断

try{

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;

try{

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){

e.printStackTrace();

}

returni;

}

查询员工信息。

如图3-7所示。

图3-7查询员工信息

具体代码如下:

publicstaticYuangonggetYuangongInfo(intid){

Connectionconn=getConn();

Stringsql="Select*fromYuangongwhereid='"+id+"'";

PreparedStatementpstmt;

try{

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;

}catch(SQLExceptione){

e.printStackTrace();

}

returnnull;

}

删除员工信息。

如图3-8所示。

图3-8删除员工信息

具体代码如下:

publicstaticintDeleteYuangongInfo(intid){

Connectionconn=getConn();

inti=0;

Stringsql="DeletefromYuangongwhereID='"+id+"'";

PreparedStatementpstmt;

try{

pstmt=(PreparedStatement)conn.prepareStatement(sql);

i=pstmt.executeUpdate();

System.out.println("resutl:

"+i);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1