java课程设计雇员信息管理系统.docx
《java课程设计雇员信息管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计雇员信息管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
java课程设计雇员信息管理系统
JAVA程序设计课程设计报告
课题:
雇员信息管理系统
姓名:
学号:
专业班级:
计算机科学与技术****班
指导教师:
设计时间:
评阅意见:
评定成绩:
指导老师签名:
年月日
一、 系统描述
1.1系统开发目的
(1)大大提高雇员信息管理的运作效率;
(2)通过对雇员全面的信息采集和处理,为雇员职位升迁、调薪提供决策依据;
(3)由计算机来代替人工执行一系列诸如增加新员工、删除员工、工资修改、查询、统计等操作。
这样就使管理人员轻松快捷的完成雇员信息的管理工作。
1.2背景说明
企业中,经常涉及到对雇员的信息进行管理。
本系统采取普通的Java客户端形式与SQL2000数据库进行连接来进行数据的增、删、改操作。
1.3系统设计意义
在本课程设计中,需要熟悉JDBC在SQL2000环境中的用法。
在GUI设计上,采用纯Java语言开发,目的在于熟悉Java的GUI开发和JDBC用法。
1.4系统的具体任务
该系统的具体任务就是设计一个雇员信息的数据库管理系统,由计算机来代替人工执行一系列诸如增加新员工、删除旧员工、工资修改、查询、对扣除工资等的处理操作,以方便管理人员的管理信息工作。
本设计以客户为中心,界面要美观大方,操作尽量简单明了,且要有良好的容错性,在用户出现误操作时能及时给出警告并修改。
在现有的技术和资金的情况下完全可以设计出这套功能完善的应用软件。
1.5系统功能分析
系统功能分析是在系统开发的总体任务的基础上完成的。
本系统需要完成的功能主要有:
雇员编号、姓名、曾用名、性别、出生日期、籍贯、户口所在地、出生地、学历、毕业院校、专业、政治面貌、电子邮件、电话号码、雇佣日期、从事工作编号、薪水等进行插入、删除、修改、查询等操作。
1.6系统环境需求
编程语言:
JAVA
开发工具:
EclipseSDK(英文版)
SQL2000(中文版)
运行环境:
Windowsxp或windows2000
二、 分析与设计
2.1雇员信息管理系统概念设计文档
(1)数据流程图
说明:
管理员用户登陆系统,系统根据用户录入的信息与从数据库读入的信息进行比对无误后用户进入系统,可以进入相应的模块根据需要操作职工的相关信息,修改,查询,插入时系统都会连接数据库存取数据。
(2)数据字典
数据项:
首先根据分析出的字段抽象成数据库表。
系统中包含企业部门信息,人员信息,还有一些基本信息。
根据给出的字段及各个信息之间的关系,得到数据库的表如下:
1tb_deptkind:
部门类别表
包含字段如下:
列名
数据类型
长度
允许空
描述
Dkid
Int
4
否
部门类别编号(主键)
Dkind
Varchar2
50
否
部门类别名称
2tb_deptinfo:
部门详细信息
包含字段如下:
列名
数据类型
长度
允许空
描述
Deptno
Int
4
否
部门编号(主键)
Dname
Varchar
50
否
部门名称
Dkid
Int
4
否
部门类别编号
3tb_duty:
职务信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Dutyid
Int
4
否
职务id(主键)
Dutyname
Varchar
20
否
职务名称
Dutygrade
Int
4
是
部门等级
Hiredate
Varchar
10
是
聘任日期
Firedate
Varchar
10
是
终止日期
4tb_degree:
学历信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Id
Int
4
否
学历编号(主键)
Degree
Varchar
20
否
学历名称
5tb_nation:
民族信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Id
Int
4
否
民族编号(主键)
Nation
Varchar
20
否
民族名称
6tb_nativeplace:
籍贯信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Id
Int
4
否
籍贯编号(主键)
Npname
Varchar
30
否
籍贯名称
7tb_specialkind:
专业类别表
包含字段如下:
列名
数据类型
长度
允许空
描述
Skindid
Int
4
否
类别编号(主键)
Skindname
Varchar
50
否
专业类别名称
8tb_special:
专业信息表
包含字读如下:
列名
数据类型
长度
允许空
描述
Sid
Int
4
否
专业编号(主键)
Sname
Varhcar
50
否
专业名称
Skindid
Int
4
否
专业类别编号
9tb_specialduty:
职称信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Sdid
Int
4
否
职称编号(主键)
Sdname
Varchar
30
否
职称名称
Sdsid
Int
4
否
职称序列号
Hiremark
Varchar
10
是
聘任标志
Hiredate
Varchar
10
是
雇用日期
Firedate
Varchar
10
是
聘任终止日期
Sdsalgrade
Int
4
是
工资等级
Sdsal
Int
4
是
工资金额
Sdsalmoddate
Varchar
10
是
工资修改日期
Sdgrade
Int
4
否
职称等级
10tb_specialdutygrade:
职称等级表
包含字段如下:
列名
数据类型
长度
允许空
描述
Sdgrade
Int
4
4
职称等级(主键)
Sdgradename
Varchar
50
50
职称名称
11tb_specialdutyserial:
职称序列表
包含字段如下:
列名
数据类型
长度
允许空
描述
Sdsid
Int
4
否
职称序列号(主键)
Sdserialname
Varchar
50
否
职称序列名称
12tb_stationkind:
岗位类别
包含字段如下:
列名
数据类型
长度
允许空
描述
Stkindid
Int
4
否
岗位类别编号(主键)
Stkindname
Varchar
50
否
岗位类别名称
13tb_stationinfo:
岗位信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Stid
Int
4
否
岗位编号
Stationname
Varchar
50
否
岗位名称
Stkindid
Int
4
否
岗位类别编号
Stsal
Int
4
是
岗位工资
Stsalmoddate
Varhcar
10
是
工资修改日期
14tb_employee:
员工信息表
包含字段如下:
列名
数据类型
长度
允许空
描述
Empid
Int
4
否
员工号(主键)
Ename
Varchar
30
否
员工姓名
Eyname
Varhcar
30
是
员工曾用名
Sex
Varchar
10
否
性别
Birthday
Varchar
10
是
出生年月
Nativeplace
Varchar
50
是
籍贯
Nation
Varchar
20
是
民族
Hkszd
Varchar
20
是
户口所在地
Bornaddress
Varchar
50
是
出生地
Commnityname
Varchar
50
是
社区名称
Firstedu
Varchar
50
是
最初学历
Education
Varchar
20
是
学历
School
Varchar
50
是
毕业院校
Specialname
Varchar
50
是
专业名称
Intoschooldate
Varchar
10
是
入学日期
Graduate
Varchar
10
是
毕业日期
Isfirstedu
Varchar
10
是
是否第一学历
Degree
Varchar
30
是
学位
Eduyears
Int
4
是
受教育年限
Studyway
Varchar
50
是
学习形式
Ploityface
Varchar
20
是
政治面貌
Intoparydate
Varchar
10
是
入党时间
Workway
Varchar
10
是
用工形式
Dutyname
Varchar
20
否
职务
Stationname
Varchar
50
是
岗位
Spedutyname
Varchar
30
是
职称
Beginworkdate
Varchar
10
是
开始工作时间
Intodeptdate
Varchar
10
是
进入本部门时间
Workstate
Varchar
10
是
工作状态
Retireddate
Varchar
10
是
退休时间
Grsf
Varchar
30
是
个人身份
Bgphone
Varchar
20
是
办公电话
Sjphone
Varchar
20
是
手机
Homephone
Varchar
20
是
家用电话
Fyzymark
Varchar
10
是
复员转业标识
Idcard
Varchar
20
是
身份证号
Xxdate
varchar
10
是
下乡时间
Ldhtid
Varchar
20
否
劳动合同编号
Deptno
Int
4
否
部门号
Classname
Varchar
20
是
班组名称
Menu
Varchar
50
是
备注
(3)系统分ER图(部分)
2.2数据表设计
tb_deptkind:
部门类别表(部门类别编号,部门类别名称)
tb_deptinfo:
部门详细信息(部门编号,部门名称,部门类别编号)
tb_duty:
职务信息表(职务id,职务名称,部门等级,聘任日期,终止日期)
tb_degree:
学历信息表(学历编号,学历名称)
tb_nation:
民族信息表(民族编号,民族名称)
tb_employee:
员工信息表(员工号,员工姓名,员工曾用名,性别,出生年月,籍贯,民族,户口所在地,出生地,社区名称,最初学历,学历,毕业院校,专业名称,入学日期,毕业日期,是否第一学历,学位,受教育年限,学习形式,政治面貌,入党时间,用工形式,职务,岗位,职称,开始工作时间,进入本部门时间,工作状态,退休时间,个人身份,办公电话,手机,家庭电话,复员转业标识,身份证号,下乡日期,劳动合同编号,部门编号,班组名称,备注)
2.3模块界面设计
登陆界面设计
在文本框内输入正确的用户名和密码可以进入系统主界面。
系统主界面设计
主界面正中显示欢迎使用雇员信息管理系统的背景图片,菜单栏内分为五大功能模块:
部门管理、信息查询、员工信息操作、基本信息管理、系统。
部门管理模块设计
本模块是信息查询与管理功能有添加、删除、修改部门信息。
信息查询模块设计
本模块包含的功能有查询全体员工信息和条件查询,其中条件查询可以根据人员编码、姓名、职务、年龄、性别、职称、部门、受聘时间分别进行查询相应信息。
员工信息操作模块设计
本模块包含的功能有添加员工信息、删除员工信息、修改员工信息、添加职工可以输入员工姓名、曾用名、性别、出生日期、籍贯、民族、户口所在地、出生地、社区名称、最初学历、学历、毕业院校、专业名称、入学日期、毕业日期、是否第一学历、学位、受教育年限、学习形式、政治面貌、入党时间、用工形式、职务、岗位名称、专业技术职务、开始工作时间、入本单位时间、工作状态、退休时间、个人身份、办公电话、手机、家庭电话、复员转业标识、身份证号、下乡日期、劳动合同编号、部门编号、班组名称、备注。
删除员工信息则根据姓名进行删除。
修改员工信息可以对员工姓名、曾用名、性别、出生日期、籍贯、民族、户口所在地、出生地、社区名称、最初学历、学历、毕业院校、专业名称、入学日期、毕业日期、是否第一学历、学位、受教育年限、学习形式、政治面貌、入党时间、用工形式、职务、岗位名称、专业技术职务、开始工作时间、入本单位时间、工作状态、退休时间、个人身份、办公电话、手机、家庭电话、复员转业标识、身份证号、下乡日期、劳动合同编号、部门编号、班组名称、备注进行相应的修改操作。
基本信息管理模块设计
本模块包含的功能有学历、职务、职称、岗位添加操作。
系统模块设计
本模块包含的功能有系统介绍、操作说明、版本信息。
显示文档里面的相关信息。
2.4系统结构
系统总体结构
模块子系统结构
功能描述:
可以将包括员工姓名、曾用名、性别、出生日期、籍贯、民族、户口所在地、出生地、社区名称、最初学历、学历、毕业院校、专业名称、入学日期、毕业日期等信息全部显示出来。
功能描述:
查询全体员工信息和条件查询,其中条件查询可以根据人员编码、姓名、职务、年龄、性别、职称、部门、受聘时间分别进行查询相应信息。
功能描述:
可以添加员工信息、删除员工信息、修改员工信息。
功能描述:
对数据库用户进行学历、职务、职称、岗位添加操作。
功能描述:
查看系有关该系统的介绍及一些本系统的操作说明和版本信息。
三、系统实现
根据上面的功能模块图进行分模块设计,具体的各模块设计如下:
(1)主界面功能模块设计的实现
主窗体设计形式:
程序运行后,主窗体打开铺平整个screen。
主窗体带有菜单栏,上面有五个菜单项,分别是部门管理,信息查询,员工信息操作,基本信息管理,系统。
在部门管理菜单项下面有一个Item,部门信息查询与管理。
信息查询下有查询全部员工信息和条件查询两个Item。
员工信息操作包括添加员工信息、修改员工信息和删除员工信息三个Item。
基本信息管理下有学历添加,职务添加,职称添加,岗位添加。
系统项中有帮助和退出两个Item。
将这些菜单项都添加到菜单中。
然后将菜单放入frame中。
首先,在frame包中新建DeptInfo.java类,继承自JFrame。
在部门信息查询与管理菜单项中添加以下时间监听程序:
jmi6.addActionListener(newActionListener()
在frame包中新建QueryAllEmployee.java类,继承自JFrame,给查询全部员工信息菜单项添加以下事件监听程序:
jmi.addActionListener(newActionListener()
新建QueryCondition.java类,继承自JFrame,给条件查询添加以下事件监听程序:
jmi1.addActionListener(newActionListener()
新建AddEmployee.java类,继承自JFrame。
给添加员工信息项添加事件监听程序:
jmi7.addActionListener(newActionListener()
新建UpdateEmployee.java,继承自JFrame。
给修改员工信息想添加事件监听程序:
jmi2.addActionListener(newActionListener()
新建DeleteEmployee.java,继承自JFrame。
给删除员工信息添加事件监听程序:
jmi3.addActionListener(newActionListener()
新建BasicInfoAdd.java,继承自JFrame。
给学历添加注册事件监听:
jmi8.addActionListener(newActionListener()
新建AddSpecialDuty.java,添加职称添加的事件监听程序:
jmi10.addActionListener(newActionListener()
新建AddStation.java,继承自JFrame。
给岗位添加菜单项添加事件监听:
jmi11.addActionListener(newActionListener()
新建About.java,继承自JFrame。
给有关本系统添加事件监听:
jmi5.addActionListener(newActionListener()
给退出菜单项添加事件监听如下:
jmi4.addActionListener(newActionListener()
publicstaticbooleanaddEmployee(TbEmployeeInfoinfo)
重置按钮的事件监听程序如下:
btnreset.addActionListener(newActionListener()
打开AddEmployee.java文件,此类实现员工信息的添加。
先调用model包中的InitFrame方法进行初始化。
界面中的几个下拉框需要从数据库查找数据来进行添加项,所以给窗体添加监听程序如下:
ae.addWindowListener(newWindowAdapter()
在点击添加按钮时将添加的数据经判断无误后添加到数据库表中,首先将信息封装到TbEmployee的对象中,将此对象作为参数传递到DAO的方法中,此方法通过此JavaBean中的getXxx方法获取到封装到对象中的信息,然后进行添加操作:
按钮的监听程序:
btnadd.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(ename.equals("")||dutyname.equals("")||spedutyname.equals("")||idcard.equals("")||
deptno.equals("")||idcard.equals("")){
JOptionPane.showMessageDialog(null,"请输入完整的员工信息!
","警告",JOptionPane.WARNING_MESSAGE);
之后为删除按钮添加事件监听:
btndele.addActionListener(newActionListener()
打开QueryAllEmployee.java类,此类用于显示所有员工的信息,在打开窗体时就直接将员工的信息显示到JFrame中的JTable中。
首先在DAO中编写查找所有员工信息的方法:
publicstaticResultSetgetEmployee()
之后在类的初始化里调用初始化表的方法:
publicvoidgetEmployee()
打开QueryConditin.java类。
该类实现通过不同的查询条件查询符合条件的员工信息。
将信息显示出来。
该界面包括两个JComboBox,第一个用于选择查询条件,第二个根据第一个查询条件的不同显示不同的值,据此查询员工信息;第一个下拉框当选择发生变化时的事件监听程序如下:
cbo.addActionListener(newActionListener()
查询按钮的事件监听如下:
btnquery.addActionListener(newActionListener()
同时在DAO实现对数据库操作的方法:
publicstaticResultSetgetConditionEmp(Stringcol,Stringval)
打开AddEmployee.java文件,此类实现员工信息的添加。
先调用model包中的InitFrame方法进行初始化。
界面中的几个下拉框需要从数据库查找数据来进行添加项,所以给窗体添加监听程序如下:
ae.addWindowListener(newWindowAdapter()
在点击添加按钮时将添加的数据经判断无误后添加到数据库表中,首先将信息封装到TbEmployee的对象中,将此对象作为参数传递到DAO的方法中,此方法通过此JavaBean中的getXxx方法获取到封装到对象中的信息,然后进行添加操作:
按钮的监听程序:
btnadd.addActionListener(newActionListener()
数据库操作的实现:
publicstaticbooleanaddEmployee(TbEmployeeInfoinfo)
重置按钮的事件监听程序如下:
btnreset.addActionListener(newActionListener()
四、系统调试
图1主界面
图2部门管理界面
图3全部员工信息查询功能
图4修改员工数据功能
图5基本信息添加
五、小结
这一周的java课程设计,我收获了很多,学到了很多知识,同时也发现了自己许多的不足。
在一个星期的学习中,我发现了很多问题。
总的来讲:
对系统分析不全面,分析不具体,模型太抽象,有很大的局限性。
具体如下:
在数据库这块,在用SQL语句查询的时候,连接查询和嵌套查询语句不是很熟,自己还没达到那种熟悉的地步。
其次我没有很好的把握系统的全局。
另外对Java的类库不是很熟。
GUI这块学的不是很好。
当然,我也学到了很多。
第一,通过这一周的课程设计,我从总体上加深了对数据库的了解,
学会了数据库各个方面的知识包括动态查询语句的使用。
第二,在过程中我遇到了不少困难,但我还是坚持下来了,这让我发发现问题,解决问题的能力得到加强。
为以后的软件设计打下良好的基础。
第三,系统的分析、设计、调试等整个开发过程,我们是团队分工合作的。
这让我有了项目相关方面的经验,懂得内部人员的良好的沟通是非常重要的。
最后要说的是,这一周的时间我没有浪费,在各个方面我都学会了很多。
为我以后的学习打下良好的基础。
因此以后在数据库方面还要多加努力。
六、参考文献
[1]黄晓东等.Java课程设计案例精编(第2版)[M].北京:
中国水利水电出版社,2007
[2]李尊朝苏军.JAVA语言程序设计[M].北京:
中国铁通出版社,2007.10
[3]李明袁晓君.Java计算机语言函数应用[M].北京:
科学出版社,2000
七、部分源代码
数据库操作的实现:
/**
*