企业人资管理系统实习报告Word文档下载推荐.docx
《企业人资管理系统实习报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《企业人资管理系统实习报告Word文档下载推荐.docx(67页珍藏版)》请在冰点文库上搜索。
![企业人资管理系统实习报告Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/9b11aff6-3220-4430-8995-1ab7464abd71/9b11aff6-3220-4430-8995-1ab7464abd711.gif)
三、总体设计
(1)数据库的设计
数据库设计我负责员工管理、工资管理两个模块涉及的内容。
数据库的设计主要就是根据各模块的功能设计各种表格和建立相应的外键,其中职工编号是所有表的外键。
各模块包含的表格如图1。
在MySql数据库中设置可远程访问,通过提供每个人相应的用户名和密码使每个人都可以远程访问数据库所在的服务器,确保数据库的正确。
图1系统各表关系图
(2)系统的设计
系统总体布局如图2:
图2系统总功能图
(3)接口的设计
接口设计分为外部和内部两方面:
1.内部接口:
系统界面比较清晰,调理清楚,各个功能模块独立封装成类,并且从各个功能界面均可回到主界面。
方便用户使用,而且,才有跳转方式,使出现的窗口尽量少。
2.外部接口:
各个模块远程访问数据库,实现数据的共享,动态更新数据库,完成各个模块之间的联系,同时各个模块跨表进行使用,及多表调用,比如工资模块调查时,根据工资信息表id,同时搜索员工表显示员工的姓名。
四、详细设计说明
(1)数据库的设计
(1)用户管理者信息表如表1所示:
表1登陆信息表
字段
字段名
类型
宽度
Null
1
用户编号
字符型
10
否
2
用户名
3
密码
20
(2)职工信息表如表2所示:
表2职工信息表
职工编号
数值型
职工姓名
籍贯
50
4
性别
5
民族
6
住址
7
出生日期
日期型
8
婚否
9
所在部门
电话
12
11
政治面貌
进入公司的时间
13
职位
14
文化程度
15
工资
16
目前的职位
17
备注
是
(3)部门信息表如表3所示:
表3部门信息表
部门编号
部门名称
职能描述
200
职工人数
(4)员工部门调整表如表4所示:
表4员工部门调整表
编号
旧部门
新部门
调整时间
100
(5)工资表如表7所示:
表5工资信息表
工资编号
基本工资
奖金
加班费
(6)职员加班表如表9所示:
表6职员加班表
表编号
时间
(2)系统功能的实现
1、设计思路
这次的实习时面向对象,要求我们将方法抽象出来,只进行调用,同时要体现一些面向对象的特性,比如多态,继承之类的。
可是这次,我们主要是用java的swt和jdbc以及数据库的知识。
所以,在体现上,只能封装,其他方面薄弱了点。
在封装方面,我一部分用了功能是通过调用类来实现的,还有一部分功能就是直接在界面的设计过程中完成的类。
包括一个DBconnect类,是专门用于数据库的连接和关闭的,凡是涉及到来连接数据库的一律来调用这个类。
专门设计这个类是为了实现代码的重用。
而且为了保证数据库打开了要随时关闭,调用这个类也是很安全的。
这个类的使用也确实带来了很多的好处,每次如果服务器换了,只需要改变一个地方,代码就可以正常运行了。
另外,每个界面封装成类,方便了我进行界面的切换和相互调用。
减少了代码的累赘。
2、登陆模块
该部分一个有两个功能一个子界面,就是注册界面,用于注册用户,将信息写入到数据库中的用户表中;
功能一是判断用户是否是用户表中的成员,如果不是,跳出对话框提醒。
功能二是判断用户选择的身份是什么,根据不同身份,进入不同界面,授以不同权限,具体的系统运行图如下:
Yes
No
图3登陆界面运行图
3、员工管理模块
该模块主要包括了数据的添加、修改、查看和删除,操作的步骤基本一致,下图以添加信息为例,展示了操作的基本步骤。
员工管理模块主要分为三个主要的部分,主要是员工信息,部门信息和岗位调整三个方面。
每个方面设计了增删改以及查询,查询的时候是根据特定的职工编号,部门编号,岗位编号,查看对应的信息,每次,只显示一个。
增删改的时候,先进行判断,主要是查看内容是否存在于数据库中,如果存在,则进行,不存在,就信息提示。
4、工资管理模块
工资管理模块主要分为工资编辑,加班管理,工资调整,三个部分,每个部分都是单独的一个界面。
工资编辑的模块,分为查询,插入,删除,在查询的时候,与员工管理系统不同是,主要是用了表格的操作,用于显示所有员工的信息。
缺点是,每一次的查询结果跟在下一个后面。
如果是普通用户,则只显示和自己有关的信息,不是显示所有人的相关信息
在插入和删除的时候,先判断,插入删除里面的录入的正确性,然后,才执行对应的操作,问题是,不能成批的操作。
五、调试与测试
(1)数据库的测试
1、管理员表测试
图3用户管理员表
2、员工信息表测试
图4员工信息表
3、部门信息表测试:
图5部门信息表
4、员工部门调整表测试:
图6部门信息表
5、工资信息表测试:
图7工资信息表
6、加班信息表测试:
图8加班信息表
(2)系统调试
在测试中,主要存在的问题就是对异常的处理,选择部分内容展示如下。
1.登陆系统部分:
①登陆界面显示
如果什么都不输入,则出现一个出错的对话框
图9登陆出错界面图
②注册界面显示
情况一:
如果用户已经存在,弹出提醒对话框。
图10注册用户存在出错图
情况二:
成功注册,弹出恭喜的对话框。
图11注册成功图
③普通用户身份进入后主界面显示
图12普通用户主界面图
④管理员身份进入后主界面显示
图13管理员主界面图
2.员工管理系统调试
以管理员身份进入后:
①主界面
图14管理员员工管理界面图
②员工信息查询以及按下‘删除记录’按钮后界面
图15删除界面图
再次查询:
图16删除验证图
③添加员工后,再次查询记录验证:
图17添加员工验证图
④部门删除添加以及查询:
图18部门删除出错图
图19部门添加成功图
⑤岗位调整功能调试:
图20岗位调整成功图
以普通用户身份进入后:
1员工信息部分只能查看不能删除:
图21普通用户查询图
2部门信息只能查看不能增删改:
图22部门查询图
3岗位调整也只能查看岗位信息,不能修改:
图23岗位信息查询图
不存在的员工编号,弹出对话框提醒:
图24查看出错图
3.工资管理模块
以管理员身份进入:
1工资管理主界面:
图25管理员工资管理主界面图
2工资编辑,查询按钮,表格显示所有人的工资情况
图26管理员查询结果图
3按插入按钮,插入记录成功:
图27员工工资信息插入成功图
如果插入的编号,不在员工信息表中,则报错:
图28员工工资信息插入失败图
插入后,再次查询,显示发生变化:
图29插入结果验证图
4按删除按钮,删除记录:
如果删除的职工号不存在,则报错:
图30删除信息错误图
如果,删除的职工号存在:
图31删除成功图
再次查询验证:
图32删除结果验证图
5加班情况,按查询按钮,查看所有的加班信息:
图33加班信息查询结果图
6选择插入按钮,插入一条加班信息:
图34加班信息插入成功图
再次查询,验证插入情况:
图35加班插入结果验证图
7选择删除按钮,输入要删除的编号:
图36删除成功图
再次查询,检验结果:
图37删除结果验证图
8选择工资调整按钮,输入编号,选择操作为涨,验证:
图38工资调整运行图
以普通人员身份进入:
1工资查询部分,只能查询工资组成各部分薪酬:
图39普通用户工资查询图
2加班情况查询,只能查询给定编号的员工情况,显示其加班费用:
图40普通用户加班情况查询图
六、实习日志
2011-12-31:
今天是实习的第一天,题目很早就已经选定了,是关于企业人事管理系统,主要是用到了java的jdbc和数据库知识,虽然上学期已经进行了数据库实习,这个数据库部分应该是比较容易实现的,可是,一个学期的没有接触,导致很多地方都很生疏,不得不查看了原来的教材,进行温故。
并且耿楠老师要求我们完成实施计划书,我就和刘婷婷分工了一下,明确了各自的任务,同时,讨论了时间安排和进度安排,并进行实施计划书的撰写。
2012-01-03:
新年过后实习,放松太久了,手又有生疏的迹象,今天,我听说耿楠老师对我们的实施计划书进行了回复,我认真阅读了老师的意见,并结合老师提出的问题,对我的实施计划书进行了完善和修改,同时,开始正式的开始了系统的编写,首先我分析了我所负责的模块所要完成的功能是什么,因为工程比较大,我先分析了员工管理的模块,主要是实现员工信息的增删改以及查询,还有相关部门的查询和岗位的调整,然后根据这几个功能,确定表的张数。
并且着手数据库的设计,工具确定为mysql,因为比较简单,可是一开始,mysql进入需要密码,一直很纠结,最后,经过反复的调试,才发现,首先要对数据库参数进行重新的设置,编码改为了utf8,并且,设置初始密码为123。
2012-01-04:
我今天主要做的是根据昨天的讨论和表格的初步设计,完善功能时需要的一些表格,经过昨天的思考和完善,数据库的大体内容已经基本确立,上午的时候我主要就是建立的了这些表格,和完成了主键和外键的建立,并着手开始建立一些触发器,发现非常的困难,在网上查到了基本的语句,却又执行不了,学习了一个下午,没有找到错误的原因在哪里,同时,我开始界面的设计,设计了1个员工管理主界面,4个员工管理功能界面,若干个增删改以及查询界面,工程量巨大。
并且,实现了与数据库的连接,把它打包成一个独立的类,以后只要设计到数据库连接部分,直接调用就可以了,用的了面向对象的思想,方便代码使用及实现。
2012-01-05:
今天关于员工管理那方面的数据库完善的差不多了,主要是用jdbc进行与数据库的连接,并且显示。
因为错误的认为把swt当做swing,接下的只能硬着头皮用swt做,发现与swing有很多相似的地方,但是没有找到面板,无法实现标签的背景为透明。
上午一直在研究这个问题,下午,我主要是对按钮添加了监听器,然后,将按钮的功能实现,用到了jdbc的内容,虽然jdbc这块Java课中有涉及,我们之前也实习过,可是还是忘掉的差不多了。
我用静态建立,实习多条查询,增删改,看书让我回忆起了不少的知识,可是也有问题出现,在查询过程中,可以正常输出,但赋值到文本框中就出现错误,检查也没发现什么问题,一直以为问题出现在文本框赋值那里,检查了半天也没发现问题,最后发现是有两句语句的位置不对,就是两句赋值语句,到现在我也没觉得它错了,但不知道为什么改了后就好了,很郁闷的一个问题。
2012-01-06:
今天员工管理方面的内容做的差不多了,除了日常的维护和完善已经不需要做什么,于是,我转而进行员工工资管理系统方面的设计,同样的,我分析了员工工资模块要实习的内容,主要把它分为工资管理,那里又包含了查询,增删功能;
工资调整,用于主管对基本工资的调整,里面有增和降两方面;
想到工资也与加班有关,所以又设置了加班管理功能,分析之后,我就针对这些功能,设计需要的表格,增加到数据库中,下午,我对上午的设计,进行了完善,考虑到时间问题,我又快马加鞭的,用swt的可视化界面,把所有模块的界面设计完毕,总之,发现,当时想法很简单,可是真正实施以后,有好多的表格,好多的界面,让我看得胆寒。
另外,又复习了Java中jdbc的相关知识,这也是我们程序设计中用到对多的知识模块。
2012-01-08:
昨天完成了工资管理模块的设计,接下来又是添加监听器和实现数据库连接,以及读取显示的事情了,其实比较满意我们的进度,不快不慢,每天都有事情做,比较充实。
今天,本来由于步骤和过程,就是实现代码都和原来的员工管理,比较类似,刚开始很轻松,后来设计到了Table组件的用法,花了一会的时间熟悉了Table组件的用法后,问题就出现了,一开始读出了问题,后来才发现,要显示,必须建立一个tableitem,然后将内容赋值给它的settext,并且要用字符数组实现,可是,在运行过程中我发现,虽然可以显示,但就是不能刷新表格内容,每一次查询结都会累加的在后面输出,用clear方法后,也是这样,只不过前面的内容为空,但仍是跟在后面,到现在也没有找到刷新覆盖的办法。
2012-01-09:
到今天系统功能部分的实现任务都基本完成了,接着,我负责做进入的页面,一开始我就设想,正规系统,必须考虑到安全性,所以一般都有管理员和普通用户两个用户类型,不同的用户有不同的权限,界面的设计很简单,没多少时间就基本搞定了,可是怎样实现权限的设置,并且实现不同用户的判断,一个上午一直在纠结这个问题,一开始,觉得可以用判断语句,可是各个窗口的变量不会相互的调用,总是出错,下午的时候,我决定将问题简单化,就是根据单选按钮判断用户类型,然后根据用户类型进入不同的主界面,而不是改变界面,结果实施的很顺利,然后,我又设置了注册界面,实现用户的注册。
2010-01-10:
今天是编写代码的最后一天,主要的任务就是将同学的和自己的设计进行整合,可是由于先前比较自我,交流的有些少,界面的风格不是很统一,于是我们对界面做了修改,发现美工比代码更困难,图片难找,又要正式又要好看,花了很长时间。
此外,整合起来后,修改变得十分困难,一改后,基本就这不行,那不行的一大堆小问题,而且,调试时,似乎越到最后出现了越来越多的问题。
每一个程序单独的时候都是可以顺利运行的,但整合之后在数据库的连接上总是出现问题,运行的时候结果总会出现异常,有几次都是数据库的连接上出现的问题,也有一些是程序代码间在连接的时候因标准不一造成的,还有一些如功能混乱重复的也都删除掉了。
虽然这次实习都不是一些很大的题目,但同样体现了合作的重要性和在合作中应该注意的问题。
2011-01-11~12:
在这两天的时间里,主要是编写了论文以及修改了实施计划书,同时在不断的修改着不断出现的问题,编写报告的过程同时也是将我们整个任务从头又思考一边的过程,每写一步都是对这个模块和功能再次思考和完善的工程。
在这两天里又出现了很多的问题,在运行的过程中,我们发现当初想的很片面,有些功能不完善,有的安全性不够,而且,对于一个系统,我们的界面十分的不科学,可是,时间不允许我们有太大的改进,越到后面越发现动一发动全身。
在修修改改的紧张忙碌中,终于实习结束了……回想起十天的辛勤以及最终的成果,虽然粗糙,可也有一种无法言语的成就感,比较是自己的成品啊!
七、实习总结
两周的面向对象实习训练接近尾声,通过这两周的实习,使我不仅对面向对象的思想有了更深的理解,同时体会到团队合作的重要性,虽然是两个人的小团队,但也是我明白,没有团队的合作,一个人是很难完美的完成各项任务的,团队的合作才是成功完成任务的保证。
这次的课程设计是在我们两个人的配合下完成的,以前都是一个人再做实习,两个人就要讲究配合,如何分配任务,如何设计功能模块的接口,如何整合程序等问题都要提前考虑,让我初步体验了该如何合作的去完成一个任务。
在两周的时间里,我们讲前面学过的理论知识运用到实践中来,由于比较长时间没有接触java,对于java的一些基本知识有些生疏,在复习了一下知识后,便开始了我们的工作。
首先就是分配任务,我们两个人在商量后,合理的分配了各自的任务,然后便开始了各自的任务。
开始的几天,由于对java的生疏,尤其是关于SWT的知识也有很多都忘记了,所以进度比较慢,在完成了一个功能模块后,对SWT也熟悉了,进度才慢慢的快了起来。
在功能界面的设计和实现过程中遇到了很多问题,比如图像用相对路径无法找到图片进行插入,而只能用绝对路径才可以,后来在同学的帮助和交流中解决了这个问题。
还有一个比较麻烦的问题就是数据库编码的问题,数据库中的汉字总是没办法正常显示,读到界面中更是无法显示中文,改了几次编码方式也没有得到正确的解决,后来通过查询和与同学交流最终解决了这个麻烦的问题,只有使用gbk编码才可以正常显示。
最后就是程序的整合,在开始分配任务的时候忘记考虑变量等一些问题,结果在整合后,遇到了很多冲突,变量名冲突,函数名冲突等一些问题,这时才意识到,合作原来有这么多问题要提前考虑,不然如果是一个很大的项目,那估计就得重新编写代码了。
此次的实习不仅在动手能力上得到了很大的锻炼,对学过的知识也重新复习了一遍,加深了对知识运用的理解。
此外,还有一个收获就是体验到了合作的重要性,学会了如何合作,合作的好坏直接关系到工作的效率。
最后,感谢老师在本次实习中给予的知道和帮助,也感谢在本次实习中同学的帮助,在老师和同学的帮助下,我们顺利的完成了此次实习任务。
八、附录:
核心代码清单
1、与数据库建立连接的DBconnect类:
publicclassDBconnect{
publicConnectionconn=null;
publicDBconnect()
{
try{
Class.forName("
com.mysql.jdbc.Driver"
);
Stringurl="
jdbc:
mysql:
//localhost:
3306/company?
useUnicode=true&
characterEncoding=utf8"
;
conn=DriverManager.getConnection(url,"
root"
"
123"
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione)
{
}
}
publicvoidcloseDB()
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
2、登陆界面代码
publicclassenter{
protectedShellshell;
privateTextname;
privateTextpwd;
publicButtonmanager;
publicButtoncommon;
/**
*Launchtheapplication.
*@paramargs
*/
publicstaticvoidmain(String[]args){
enterwindow=newenter();
window.open();
}catch(Exceptione){
*Openthewindow.
publicvoidopen(){
Displaydisplay=Display.getDefault();
createContents();
shell.open();
shell.layout();
while(!
shell.isDisposed()){
if(!
display.readAndDispatch()){
display.sleep();
*Createcontentsofthewindow.
protectedvoidcreateContents(){
shell=newShell();
shell.setSize(459,296);
shell.setText("
SWTApplication"
shell.setBackgroundMode(SWT.I