当前位置:文档之家› 本科毕业设计论文--基于java的职工考勤管理信息系统

本科毕业设计论文--基于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].王诚.JA V A 实用编程技术[M].北京:人民邮电出版社,2012.[2].王雨竹.MySQL入门经典[M].北京:机械工业出版社,2013.[3].张逸.软件设计精要与模式[M].北京:电子工业出版社,2007.[4].王德永.数据库原理与应用[M].北京:人民邮电出版社,2011.[5].[美]Bruce Eckel.Java编程思想[M].北京:机械工业出版社,2007.[6].[美]Herbert Schildt著.马海军,景丽等译.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 (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的SQL 语言是用于访问数据库的最常用标准化语言。

MySQL 软件采用了双授权政策,其体积小、速度快、总体拥有成本低,致使其被广泛应用。

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

3.2 系统功能模块图在该小型应用系统中,用户可以直接执行管理员权限,对员工信息进行增删,修改,保存,实现出勤信息,出差信息,加班信息,请假信息的查询。

系统功能如图3-1所示。

图3-1系统功能模块图3.3 系统流程图在该系统中,用户可以通过可以运行程序进入主界面,在主界面中可以管理各个功能模块,进而通过各个功能模块对后台数据库进行数据操作和管理。

系统流程图如图3-2所示。

图3-2 系统流程图3.4数据库设计根据实体类型、属性和联系的方法,绘制职工,出勤,出差,加班,请假实体集间的实体-联系图。

如图3-3所示。

图3-3 E-R图本系统的基本功能是设计职工考勤管理信息,因此设置了5张表,分别是表Yuangong、表Chuqin、表Chuchai、表Qingjia、表Jiaban。

对数据的增、删、改、查,主要在这四个表上进行。

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

表3-1 员工表属性名类型长度字段约束含义Id int 5 not null 编号Name char 4 not null 姓名Sex char 2 check 性别Age int 2 not null 年龄Zhichen char 4 null 职称(2)出勤表用来记录出勤的基本信息,表结构如表3-2所示。

表3-2 出勤表属性名类型长度字段约束含义Id int 5 not null 编号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 not null 编号Beginday date 0 null 开始时间Endday date 0 null 结束时间Days int 5 null 总时间(4)请假表用来记录请假的基本信息,表结构如表3-4所示。

表3-4请假表属性名类型长度字段约束含义Id int 5 not null 编号Beginday date 0 null 开始时间Endday date 0 null 结束时间Days int 5 null 总时间(5)加班表用来记录加班的基本信息,表结构如表3-5所示。

表3-5 加班表属性名类型长度字段约束含义Id int 5 not null 编号BeginTime date 0 null 开始时间EndTime date 0 null 结束时间SumTime double 6 null 总时间3.5 系统的各部分功能模块设计3.5.1系统管理部分设计系统管理模块的主要功能有:用户登录、退出。

该模块可以实现用户的登录,在程序中主要涉及的类为CheckPassword,在系统核对用户名和密码时需对数据库test中的user1表进行查询对比。

登录界面如图3-4所示。

图3-4 用户登录界面具体代码如下:public static void main(String[] args) {try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");}catch (Throwable e) {e.printStackTrace();}EventQueue.invokeLater(new Runnable() {public void run() {try {ExpandFrame frame = new ExpandFrame();frame.setVisible(true);}catch (Exception e) {e.printStackTrace();}}});}public ExpandFrame() {this.setTitle("登录窗体");addWindowListener(new WindowAdapter() {@Overridepublic void windowOpened(WindowEvent e) {do_this_windowOpened(e);}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 0, 221);contentPane = new JPanel();contentPane.setBackground(new Color(135, 206, 250));contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel label = new JLabel("登录模块");label.setOpaque(true);label.setBackground(new Color(245, 222, 179));label.setHorizontalAlignment(SwingConstants.CENTER);label.setFont(new Font("SansSerif", Font.PLAIN, 30));label.setBounds(6, 6, 422, 72);contentPane.add(label);JLabel label_1 = new JLabel("用户名:");label_1.setBounds(31, 90, 55, 18);contentPane.add(label_1);JLabel label_2 = new JLabel("密码:");label_2.setBounds(31, 134, 55, 18);contentPane.add(label_2);textField = new JTextField();textField.setBounds(83, 84, 184, 30);contentPane.add(textField);textField.setColumns(10);textField_1 = new JTextField();textField_1.setBounds(83, 128, 184, 30);contentPane.add(textField_1);textField_1.setColumns(10);JButton button = new JButton("登录");button.setBounds(304, 84, 90, 30);contentPane.add(button);button.addActionListener(new Enter());JButton button_1 = new JButton("关闭");button_1.setBounds(304, 128, 90, 30);contentPane.add(button_1);setLocationRelativeTo(null);button_1.addActionListener(new Close());}class Enter implements ActionListener{public void actionPerformed(ActionEvent e) {setVisible(false);try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e1){System.out.println("加载驱动程序失败!");}try{Connectioncon=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");Statement sql=con.createStatement();String uname=textField.getText().trim();String Mima=textField_1.getText().trim();String queryMima="select * from user1 where 用户名='"+uname+"' and 密码='"+Mima+"'";ResultSet rs=sql.executeQuery(queryMima);if(rs.next()){JOptionPane.showMessageDialog(null,"登录成功!","",JOptionPane.YES_NO_OPTION);MainFrame sf=new MainFrame();sf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);sf.show();}else{JOptionPane.showMessageDialog(null,"该用户不存在","提示!",JOptionPane.YES_NO_OPTION);}textField.setText("");textField_1.setText("");} catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}}class Close implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}}class winClose extends WindowAdapter{public void windowClosing(WindowEvent e){(e.getWindow()).dispose();System.exit(0);}}protected void do_this_windowOpened(WindowEvent e) {final int height = getHeight();// 记录窗体高度new Thread() {// 创建新线程public void run() {Rectangle rec = getBounds();for (int i = 0; i < frameWidth; i += 10) {// 循环拉伸窗体setBounds(rec.x - i / 2, rec.y, i, height);// 不断try {Thread.sleep(10);// 线程休眠10毫秒} catch (InterruptedException e1) {e1.printStackTrace();}}}}.start();// 启动线程}public static void DISPOSE_ON_CLOSE() {// TODO Auto-generated method stub}}3.5.2职工信息管理部分设计职工信息管理部分有员工信息增添、查询、职工出差信息查询、职工请假信息查询、职工加班信息查询四个主模块。

相关主题