Java+sqlsever人事管理系统 报告.doc_第1页
Java+sqlsever人事管理系统 报告.doc_第2页
Java+sqlsever人事管理系统 报告.doc_第3页
Java+sqlsever人事管理系统 报告.doc_第4页
Java+sqlsever人事管理系统 报告.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库课程设计班 级: 09计算机应用技术 学 号: 姓 名: 设计题目: 人事管理系统 指导老师: 设计时间: 2011-12-28 2012-1-10 前言人事管理系统是企业管理系统中不可缺少的重要组成部分,它的内容对于企 业的决策者和管理者来说都至关重要,所以人事档案管理系统应该能够为用户提 供充足的信息和快捷的查询手段。 但一直以来人们使用传统人工的方式管理文件 档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产 生大量的文件何数据,这对于查找、更新和维护都带来了不少的困难。随着科学 技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进 入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对人事档案信息进行管理,具有着手 工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保 密性好、寿命长、成本低等。这些优点能够极大地提高人事档案管理的效率,也 是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管 理软件成为很有必要的事情。目录一、系统定义1二、需求分析21、系统功能的基本要求22、系统功能模块图23、数据流程图2三、系统设计41、概念结构设计42、数据库结构的详细设计5四、物理设计71、数据库物理设计72、数据库的建立7五、系统实现与测试101、开发工具和平台选择102、系统实现103、系统测试19六、设计日志22七、设计总结23八、参考文献24九、附录25一、系统定义不管是公司还是企业的管理离不开人事管理,对于现代社会的公司管理,人事管理系统是不可或缺的一部分,它为人事管理部门的工作人员提供多种方式的人事查询以及统计功能,另外还提供对企业的人事调动(包括添加新员工、人员退休、人员辞职等)、人员信息的改动以及查询企业员工信息等操作。本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,然后进行数据库的概念设计和逻辑结构设计,最后进行数据库详细设计的方法,完成了一个人事管理系统数据库系统的设计。最终,在SQL SEVER 2000完成的人事管理系统,可以实现:对员工基本档案的管理、奖惩记录的管理、出勤记录的管理、职务调动记录的管理、工资管理、请销假管理。二、需求分析1、系统功能的基本要求(1)登录管理(2)人员管理:包括添加,浏览,修改,删除,查询等(3)部门管理:部门管理包括添加、修改,删除(4)报表打印登录管理人事管理系统员工管理部门管理部门信息查询部门信息查询添加新部门员工信息查询员工信息修改添加新员工2、系统功能模块图管理员人事管理系统系统data人员人事信息人事信息3、数据流程图 图 1 第一层数据流职工信息表管理员登记新员工信息信息查询修改自己的信息员工新增员工的信息修改信息员工信息员工信息查询图 2 员工信息管理数据流更新部门信息员工部门信息表管理员信息查询需要更新的部门信息部门信息部门信息查询图 3 部门信息管理数据流三、系统设计1、概念结构设计画出系统E-R图图 4 员工实体图部门部门号部门名图 5 部门实体图管理员用户名密码编号图 6 管理员实体图部门(1)员工(n)管理员(1)属于管理管理账号管理密码编号姓名性别出生日期民族学历部门名照片联系电话联系地址身份证号部门号部门名图 7 各实体之间联系图(总体E-R图)2、数据库结构的详细设计 经过检查,此数据库的详细逻辑设计满足第3范式的要求。人事管理系统中各表的属性设计逻辑结构如下:用户表(编号,用户名,密码)员工表(编号,姓名,性别,出生日期,民族,学历,部门名,照片,联系电话,联系地址,身份证号)部门表(部门号,部门名)四、物理设计1、数据库物理设计数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库系统确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。(1)建立索引:对表 部门 在属性列 部门号 上建立非聚集索引,对表 员工 在属性列 出生日期 上建立非聚集索引,在属性列 学历 上建立非聚集索引(2)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。所以,系统应将日志文件和数据文件存放在不同磁盘上。2、数据库的建立具体SQL代码如下:create database 人事管理系统on primary(name=人事管理系统,filename=F:朱赟人事管理系统Data人事管理系统.mdf,size=5MB,maxsize=20MB,filegrowth=10%)log on( name=人事管理系统_日志, filename=F:人事管理系统Data人事管理系统_日志.ldf, size=5MB, maxsize=10MB, filegrowth=10% )go-创建用户表create table 用户表(UserID int primary key,UserName varchar(20) not null,UserPassword char(10) not null)go-创建职工信息表create table 员工表(编号 int primary key,姓名 char(10) not null,性别 char(2) check(性别 in(男,女),出生日期 datetime,民族 varchar(16) not null,学历 varchar(32) not null,部门名 char(20) not null,照片 image,联系电话 char(20),联系地址 char(50),身份证号 varchar(32) not null,)go-创建部门表create table 部门表(部门号 int primary key,部门名 char(20)五、系统实现与测试1、开发工具和平台选择NetBeans IDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中运行。NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C /C + +等开发语言NetBeans 平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。当基于NetBeans 平台的应用被执行,平台主要类别的main方法便会被执行。可用的模组会被放置在存储器中,并且开始执行任务。通常模组会只在被需要时,其代码才会被装进记忆。2、系统实现具体JAVA代码如下:(1)、连接数据库的类和相关方法package a;import java.sql.*;import javax.swing.JOptionPane;public class dbcon private Connection conn; private ResultSet rs; private Statement stmt; private PreparedStatement pstmt = null;/定义预处理对象 public boolean login(String name, String pwd) boolean flag = false; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); stmt = conn.createStatement(); rs = stmt.executeQuery(select UserID from 用户表 where UserName= + name + and UserPassword= + pwd + ); if (rs.next() flag = true; else JOptionPane.showMessageDialog(null, 用户名不存在!, 提示, 1); flag = false; catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return flag; /将部门名的信息放到node中 public ResultSet node() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); stmt = conn.createStatement(); rs = stmt.executeQuery(select 部门名 from 部门表); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return rs; /将员工的信息放到tab表中 public ResultSet tab(String name) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); stmt = conn.createStatement(); rs = stmt.executeQuery(select a.* from 员工表 a,部门表 b where a.部门名=b.部门名 and b.部门名= + name + ); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return rs; /添加员工信息的方法 public boolean insert(String id, String name, String sex, String birth, String minzu, String xueli, String bumenhao, String cellphone, String address, String idcard) boolean flag = false; int eid = Integer.parseInt(id); /int did = Integer.parseInt(bumenhao); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); /stmt = conn.createStatement(); pstmt = conn.prepareStatement(insert into 员工表(编号,姓名,性别,出生日期,民族,学历,部门名,联系电话,联系地址,身份证号) values ( + eid + , + name + , + sex + , + birth + , + minzu + , + xueli + , + bumenhao + , + cellphone + , + address + , + idcard + ); pstmt.executeUpdate(); flag = true;JOptionPane.showMessageDialog(null, 添加成功!, 提示, 1); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return flag; /删除的方法 public boolean Del(int k) boolean flag = false; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn = DriverManager.getConnection(jdbc:odbc:zhuyun); pstmt = conn.prepareStatement(delete from 员工表 where 编号=?); pstmt.setInt(1, k);/赋值 int n = pstmt.executeUpdate(); if (n 0) JOptionPane.showMessageDialog(null, 删除成功!); flag = true; else JOptionPane.showMessageDialog(null, 删除失败!); stmt.executeUpdate(delete from 员工表 where 编号=); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return flag; /获取编号的的方法 public void getNum(int k) boolean flag = false; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:zhuyun);stmt = conn.createStatement();stmt.executeUpdate(select 编号 from 员工表 where 编号=); flag = true;JOptionPane.showMessageDialog(null, 删除成功!, 提示, 1); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); /查询出员工信息并放到指定的位置 public void info(int k) int id, hao = 0; Stringname, sex,brith,minzu,xueli,bumenhao=”,cellphone,address,idcard; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); stmt = conn.createStatement();rs = stmt.executeQuery(select * from 员工表 where 编号= + k + ); while (rs.next() id = rs.getInt(1); name = rs.getString(2); sex = rs.getString(3); birth = rs.getString(4); minzu = rs.getString(5); xueli = rs.getString(6); bumenhao = rs.getString(7); cellphone = rs.getString(9); address = rs.getString(10); idcard = rs.getString(11); new Modify(String.valueOf(id), name, sex, birth, minzu, xueli, bumenhao, cellphone, address, idcard,k).setVisible(true); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); /修改员工信息的方法 public boolean change(String name, String sex, String birth, String minzu, String xueli, String bumenhao, String cellphone, String address, String idcard,int k) boolean flag = false; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); stmt = conn.createStatement(); stmt.executeUpdate(update 员工表 set 姓名= + name + ,性别= + sex + ,出生日期= + birth + ,民族= + minzu + , 学历= + xueli + , 部门名= + bumenhao + , 联系电话= + cellphone + , 联系地址= + address + , 身份证号= + idcard + where 编号=+k+); flag = true; JOptionPane.showMessageDialog(null, 修改成功!, 提示, 1); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return flag; /查询员工详细信息 public ResultSet tab1(int id) /int idd=Integer.parseInt(id); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= riverManager.getConnection(jdbc:odbc:zhuyun); stmt = conn.createStatement();rs = stmt.executeQuery(select * from 员工表 where 编号= + id+ ); catch (Exception e) JOptionPane.showMessageDialog(null, e.toString(), 错误, 1); return rs; 3、系统测试当输入用户名和密码(admin和123),点击“登录”按钮,就自动连接到相应的数据库登录进去后进入主界面,鼠标点击部门名称,会自动弹出数据库表中的部门名,当单击部门名时,在右边界面会自动弹出该部门下的所有员工并输出基本信息。当点击主界面上的“添加员工”按钮,会自动弹出添加信息的界面,填写完相应的信息后点击“保存”按钮,系统将会把相应的信息写入数据库中保存。当要删除某个员工信息时,选中该员工,点击主界面上的“删除员工”按钮,就可以从数据库中删除该员工的信息。当要修改某个员工信息时,选中该员工,点击主界面上的“修改信息”按钮,就可以从数据修改员工信息,并重新保存在数据库中。当要查看某个员工的详细信息时,可以在主界面“快速查找”前的文本框中输入员工编号,就可以查看到该员工的详细信息六、设计日志2011-12-28 星期三 今天是实训的第一天,没想到这一学期还是数据库的实习课程,这次我们实训只有两个周了,时间很紧急,我也有了一些紧迫感。2011-12-29 星期四 已经分好了组,可以九人一组,也可以八人一组,因为时间的原因,我选择了六人一组,并且确定了要做的内容人事管理系统。2011-12-30 星期五 今天,我们还是得乖乖呆在教室做实习,我们想,既然定好了目标,我们就该分工合作,查找资料。2011-12-31 星期六今天,我们继续昨天的工作,并开始了数据库的相关设计,每个人都各行其是,认真做自己的工作。2012-1-4 星期三 又是一个星期的开始,今天的实习很轻松,因为已经有了一些头绪,所以做起来比较得心应手,只想着要这样一直发展下去就好了。2012-1-5 星期四我们已经开始调试程序了,在数据库中建表,实现了数据库与JAVA程序的连接,只要能顺利调试成功,我们就算是得到一半的收获了。2012-1-6 星期五 昨天的程序在今天终于可以运行了,数据库中的数据可以传到JAVA程序中去了,只是好久没有接触JAVA了,现在对它好像又有种似曾相识的感觉。2012-1-9 星期一 今天,在程序可以运行的时候,我们就考虑到了怎么来美化界面了,这方面也只是在JAVA中去实现,然后传给数据库,这样一来,我们都轻松了一半了 。 到今天为此,好多人都已经做完了自己的任务,就等着老师的检查了,想想这两个星期也过得真快啊,现在只想有个完整的结束。2012-1-10 星期二: 今天老师检查所有的作业,大家都如释重任。七、设计总结经过两个星期的学习,数据库实训已

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论