版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理及应用课程设计报告题目:工资管理系统所在学院:信息工程学院班级:学号:姓名:指导教师:2023年1月2日目录概述二、需求分析三、概念设计四、逻辑设计五、系统实现六、小结一、概述在工资管理中,需要从公司管理方式以及实际情况中提取相关信息,以反映工资管理情况。传统的手工操作方式,易发生数据丢失,记录错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完毕以上工作。避免反复劳动,规范工资管理行为,从而提高了管理效率和水平。让人们的效率大大提高.不难想象,正是资讯的迅速发展使得人们从过去繁复的手工劳作中得以解脱,从而使这种服务在现在才也许迅速普及。同时,编写一套完整的工资管理系统的任务就显得尤为重要。本课程设计共分为四大模块:1.系统数据初始化2.工基本信息数据的输入、修改、删除;3.员工个人信息及工资表的查询;4,员工工资的计算;二、需求分析本系统重要用于员工基本信息的管理,对员工以及其他信息的添加、修改、删除、查询等基本操作。对于数据库的保护有数据备份和数据恢复的功能。针对这些规定,设计本月工资信息管理系统。该系统重要涉及职工信息、工资级别和工资金额、公司福利表等。=1\*GB1⒈员工基本状况涉及员工号、员工姓名、性别、所在部门、工资级别、工资等级等。2.工资级别和工资金额涉及工资等级、工资额。3.公司部门及工作岗位信息涉及部门名称、工作岗位名称、工作岗位工资等。4.工龄和工资金额涉及工龄及相应工资额。5.公司福利表涉及福利名称、福利值。本系统概念设计思想:1.对公司软硬件调查,从实际环境出发,以便充足运用公司现在资源,提高系统开发水平和应用效果。2.了解公司的需要及相关方面的规定,根据需要做出符合规定的软件,并达成操作过程中的直观、方便、实用、安全等规定。3.将系统按模块分工到人,提高效率,且模块化设计便于系统功能的各种组合和修改及日后的维护。4.系统应具有数据库维护功能,及时根据用户需求进行数据的添加、删除、修改等操作。工资管理系统工资管理系统员工管理模块考勤管理模块津贴管理模块工资生成模块系统模块员工管理模块考勤管理模块津贴管理模块工资生成模块系统模块图1.1系统功能模块图数据库操作数据库操作操作数据系统操作工资信息考勤信息进入基本界面职工信息津贴管理图2.1第一层数据流图修改职工信息修改职工信息删除职工记录输入职工基本信息职工表添加操作修改操作删除操作用户查询操作职工号修改工资信息修改工资信息删除工资信息输入工资基本信息工资表添加操作修改操作删除操作查询操作图2.3工资的信息载入修改考勤信息修改考勤信息删除考勤信息输入考勤基本信息考勤表添加操作修改操作删除操作查询操作用户图2.4考勤的信息载入修改津贴信息修改津贴信息删除津贴信息输入津贴基本信息津贴表添加操作修改操作删除操作查询操作用户图2.5津贴的信息载入职工管理员进入系统职工管理员进入系统 进入员工(工资,考勤,津贴)表进入员工(工资,考勤,津贴)表津贴表职工表津贴表职工表考勤表工资表考勤表工资表进行录入,修改,删除,查询操作进行录入,修改,删除,查询操作图2.6信息查询及管理的流程图三、概念设计分析前面的系统功能规定,需要一个表来存储和管理员工信息,使系统可以接受员工原始的各项数据,以实现数据录入、查询或记录员工信息等功能。员工是本系统的第一个实体。为了能实现查询和记录部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。部门是本系统的第二个实体。工资是以员工工作情况来制定的。需要建立一个表来记录各种工资、津贴、扣款的信息。它重要为各种查询和记录功能提供工资数据。工资是第3个实体。据此可以绘出工资管理系统数据库的E-R图如下:部门部门1工作工作N获得工资员工MM1获得工资员工实体属性列表如下:实体属性员工工号姓名性别年龄籍贯身份证号婚姻状况学历部门名称工种工龄职务等级部门部门名称部门负责人部门人数工资工号工资年月岗位工资岗位补贴出勤天数加班工时加班天数加班类别加班工资病假扣款事假扣款其他扣款应发工资实发工资四、逻辑设计将数据库的概念模型转换为关系模型:实体转换成的关系模式有:员工(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部门名称,工种,工龄,职务等级)部门(部门编号,部门名称,部门负责人,部门人数)获得(工号,姓名)工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)由于,员工与工资是1:N的关系,所以各关系模式为:员工(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部门名称,工种,工龄,职务等级)部门(部门名称,部门负责人,部门人数)工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。关系规范式:工资管理系统∈1NF每个属性均不可再分 系统实现5界面截图5.1主界面5.2登录界面5.3管理员管理工资界面5.4信息录入,修改,删除,查询界面5.5职工信息查询界面5.6职工密码修改界面小结通过这次的课程设计实验,我发现自己对数据库课程的爱好有了很大提高,并且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。以前不懂为什么要创建触发器、视图等,现在终于知道它们的优点了。在自己没做数据库课程设计以前,总是觉得自己什么都不懂什么都不会,但是现在做出来了,所以我觉得自己还是有能力做一些实际操作方面的东西。我相信以后通过自己自学其它课程,我一定会做出一个更好的数据库通过课程设计让我有机会把知识学以至用,而不单是停留在理论的基础上,为以后的学习和工作提供了宝贵的经验,打下了坚实的基础,虽然课程设计时间短暂,但对我来说过的很充实,更重要的是学到了很多书本上没有的东西,提高了自己的动手能力.在此过程中又学到了许多未知的代码,大大的充实了自己的知识.数据库代码CREATEDATABASE工资管理库ONPRIMARY(NAME=工资管理库,FILENAME='D:\工资管理库_data.mdf',SIZE=4MB,MAXSIZE=6MB,FILEGROWTH=2MB)LOGON(NAME='工资管理库_log',FILENAME='D:\工资管理库.ldf',SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)createtable部门( 部门名称CHAR(50)NOTNULLprimarykey, 部门负责人CHAR(50)NOTNULL,部门人数CHAR(50));createtable员工(工号CHAR(50)NOTNULLprimarykey,姓名CHAR(50)NOTNULL,性别CHAR(2)DEFAULT'男'CHECK(性别IN('男','女')),年龄CHAR(10)NOTNULL,籍贯VARCHAR(50)NOTNULL,身份证号CHAR(50)UNIQUENOTNULL,婚姻情况CHAR(50),学历CHAR(50),部门名称CHAR(50)NOTNULL,工种CHAR(50),工龄CHAR(4)NOTNULL,职务等级CHAR(50));CREATETABLE工资(工号char(50)notnullprimarykey,工资年月char(50)notnull,岗位工资decimalnotnull,岗位补贴decimal,出勤天数decimalnotnull,加班工时decimal,加班工资decimal,加班天数decimal,加班类别char(50),病假扣款decimal,事假扣款decimal,其他扣款decimal,应发工资decimal,实发工资decimalnotnull,foreignkey(工号)references员工(工号));altertable工资addconstraintCK_gonghocheck(工号>0);createtable系统用户(用户名char(50)primarykey,用户权限char(50),用户密码char(10),)createtable工龄工资(工龄char(4)primarykey,工龄工资float(8)notnull);createtable员工登陆密码(工号CHAR(50)primarykey,密码char(6),foreignkey(工号)references员工(工号));altertable员工登陆密码addconstraintCK_gonghcheck(工号>0);(三)视图(1)查询员工工资情况建立一个视图,反映员工姓名及工资情况。CREATEVIEW员工_工资ASSELECT员工.姓名,工资.*FROM员工,工资WHERE员工.工号=工资.工号(四)存储过程(1)指定员工工资情况的查询定义一个名为stsffCost的存储过程,该存储过程以以工资年月(@staffgongzi)、出勤天数(@staffchuqin)、加班工资(@staffjiaban)、应发工资(@staffying)、实发工资(@staffshi)为输入参数返回指定员工工资信息的存储过程。stsffCost代码如下:CREATEPROCEDUREstaffCost@staffgongzidecimal,@staffchuqindecimal,@staffjiabandecimal,@staffyingdecimal,@staffshidecimalASSELECT*FROM工资WHERE工资年月=@staffgongziAND出勤天数=@staffchuqinAND加班工资=@staffjiabanAND应发工资=@staffyingAND实发工资=@staffshiGO(2)指定范围的员工的信息查询。以员工工号、部门编号为输入参数返回指定员工基本信息的存储过程,规定输入部分员工信息查询员工所有信息。定义一个名为stsffInfo的存储过程,该存储过程以员工工号(@staffNum)、部门编号(@bmNum)作为输入参数,存储过程返回查询到的结果集。satffInfo的定义代码如下:CREATEPROCEDUREstaffInfo@staffNumVARCHAR(50)='%',@bmNumVARCHAR(50)='%'ASSELECT*FROM员工,部门WHERE员工.部门名称=部门.部门名称AND((员工.工号LIKE@staffNumVARCHAR(50)+'%')AND(部门编号LIKE@bmNumVARCHAR(50)+'%'))GO(3)记录指定年份各部门每月份的工资总额。以年份为输入参数,以总工资金额为输出参数,产生该年度12个月份的每部门工资记录的存储过程。定义该存储过程名为bmMonhSum,输入参数为@ThisYear,实现代码如下:CREATEPROCEDUREbmMonthSum@ThisYearCHAR(10)ASSELECTDATEPART(MM,工资年月)AS员工工资月份,SUM(实发工资)AS部门人数FROM员工,工资,部门WHERE员工.工号=工资.工号AND员工.部门名称=部门.部门名称ANDDATEPART(YYYY,工资年月)=@ThisYearGROUPBYDATEPART(MM,工资年月)GO(五)触发器(1)关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。定义这个触发器名称为insert_工资。代码如下:createtriggerinsert_工资on工资forinsertasdeclare@ichar(20)declare@bbintset@i=casewhen@bb=0001then'实发工资'when@bb=0002then'实发工资'endprint@i(2)员工新调入进行员工新调入操作是在员工信息表中添加一条新的记录,可认为员工信息表设计一个Insert触发器,当员工信息表执行Insert操作后自动更改出部门信息表相应记录的数据。定义这个触发器名称为staff_insert。其代码如下:CREATETRIGGERstaff_insertON员工FORINSERTASIF(SELECTCOUNT(*)FROM部门,inserted,工资WHERE部门.部门人数=inserted.部门人数AND工资.工号=inserted.工号)=0ROLLBACKTRANSACTIONGO(3)员工调出进行员工调出操作是在员工信息表中删除该员工的记录,可认为员工信息表设计一个Delete触发器,当员工信息表执行Delete操作后,工资表、部门表中的记录也将所有删除。定义这个触发器名称为staff_delete。其实现代码如下:CREATETRIGGERstaff_deleteON员工FORDELETEASSELECTCOUNT(*)FROM部门,工资,deletedWHERE部门.部门人数=deleted.部门人数AND工资.工号=deleted.工号GO(4)员工内部调动为员工表设计一个名为staff_update的UPDATE触发器,当系统对员工表进行UPDATE操作后,将会自动触发它。该触发器将相应记录的部门人数、部门名称、工资更新。下面是client_update触发器的定义代码;CREATETRIGGERstaff_updateON员工FORUPDATEASSELECTCOUNT(*)FROMupdated,部门WHERE部门.部门名称=updated.部门名称GO(六)索引为提高检索性能,为表创建符合索引,其索引项为工号、姓名。CREATEINDEX工号_姓名_indON员工(工号,姓名)GOJava代码insertinto部门values('财务部','王玲','20')insertinto部门values('生产部','丽丽','400')insertinto部门values('董事会','李四','10')insertinto部门values('后勤部','二子','40')insertinto部门values('公关部','小丽','15')insertinto部门values('行政部','琪琪','20')insertinto部门values('企划部','小新','15')insertinto部门values('销售部','小海','10')insertinto部门values('人力资源部','丽子','5')insertinto员工values('1001','李民','男','25','天津','','已婚','专科','销售部','内销','4','职工')insertinto员工values('1002','李四','男','50','上海','','已婚','本科','董事长','null','30','董事长')insertinto员工values('1003','丽丽','女','25','北京','','未婚','本科','生产部','电工','8','生产部部长')insertinto员工values('1004','王玲','男','35','东京','','已婚','研究生','财务部','预算','6','财务部部长')insertinto员工values('1005','二子','女','30','江西','','未婚','本科','后勤部','车工','7','后勤部部长')insertinto员工values('1006','小丽','女','26','苏州','','已婚','本科','公关部','null','3','公关部部长')insertinto员工values('1007','小新','男','27','扬州','','已婚','研究生','企划部','主管','2','企划部部长')insertinto员工values('1008','琪琪','女','24','安徽','','未婚','本科','行政部','null','8','行政部部长')insertinto员工values('1009','小海','男','23','南京','','已婚','专科','销售部','主管','4','销售部部长')insertinto员工values('1010','丽子','女','22','江西','','未婚','本科','人力资源部','null','4','人力资源部部长')insertinto员工values('1011','小美','女','26','海南','','已婚','本科','公关部','前台','5','职工')insertinto员工values('1012','小韩','男','20','山东','','离异','本科','财务部','融资','5','出纳')insertinto工资values('1001','2023-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')insertinto工资values('1002','2023-12','10000','600','100','5','25','2','null','0','0','0','15000','20230')insertinto工资values('1003','2023-12','4000','500','30','2','30','4','核对','50','50','100','5000','4800')insertinto工资values('1004','2023-12','3500','500','30','2','30','4','加急','50','50','100','5000','4800')insertinto工资values('1005','2023-12','4000','500','30','2','30','4','加急','50','50','100','5000','4800')insertinto工资values('1006','2023-12','4000','500','30','2','30','4','加急','50','50','100','5000','4800')insertinto工资values('1007','2023-12','3500','500','30','2','30','4','审核','50','50','100','5200','5000')insertinto工资values('1008','2023-12','3500','500','30','2','30','4','加急','50','50','100','5400','5200')insertinto工资values('1009','2023-12','3500','500','30','2','30','4','审核','50','50','100','5000','4800')insertinto工资values('1010','2023-12','3500','500','30','2','30','4','加急','50','50','100','4800','4300')insertinto工资values('1011','2023-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')insertinto工资values('1012','2023-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')insertinto员工登陆密码values('1001','1101')insertinto员工登陆密码values('1002','1102')insertinto员工登陆密码values('1003','1103')insertinto员工登陆密码values('1004','1104')insertinto员工登陆密码values('1005','1105')insertinto员工登陆密码values('1006','1106')insertinto员工登陆密码values('1007','1107')insertinto员工登陆密码values('1008','1108')insertinto员工登陆密码values('1009','1109')insertinto员工登陆密码values('1010','1110')insertinto员工登陆密码values('1011','1111')insertinto员工登陆密码values('1012','1112')insertinto工龄工资values('1','3000')insertinto工龄工资values('2','4000')insertinto工龄工资values('3','5000')insertinto工龄工资values('4','6000')insertinto工龄工资values('5','7000')insertinto工龄工资values('6','8000')insertinto工龄工资values('7','10000')insertinto工龄工资values('8','12023')insertinto工龄工资values('9','15000')insertinto工龄工资values('10','20230')insertinto工龄工资values('11','40000')packageWageMangement;
importjava.sql.*;
importjavax.swing.JOptionPane;
publicclassDBHelper{
privatestaticStringurl="jdbc:odbc:cc";
privatestaticStringuser="sa",password="3213388s";
privatestaticConnectioncon=null;
static{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exceptionex){
ex.printStackTrace();
}
}
publicstaticResultSetexecuteQuery(Stringsql){
ResultSetrs=null;
try{
con=DriverManager.getConnection(url,user,password);
Statementcmd=con.createStatement();
rs=cmd.executeQuery(sql);
}catch(Exceptionex){ex.printStackTrace();}
returnrs;
}
publicstaticvoidexecuteUpdate(Stringsql){
try{
con=DriverManager.getConnection(url,user,password);
Statementcmd=con.createStatement();
cmd.executeUpdate(sql);
}catch(Exceptionex){
ex.printStackTrace();
}
finally{
conclose();
}
}
publicstaticvoidconclose(){
try{
if(con!=null&&!con.isClosed()){
con.close();
}
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
/*主界面类*/packageWageMangement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassWageMainextendsJFrameimplementsActionListener{
privateJButtonbtn_quit=newJButton("注销登录");
privateJTextFieldch20231798=newJTextField("\t@欢迎使用工资管理系统!);
/*创建菜单栏*/
privateJMenuBarmainMune=newJMenuBar();
/*创建部门菜单项*/
privateJMenumenudept=newJMenu("部门信息管理");
privateJMenuItemdept_insert=newJMenuItem("添加新部门信息");
privateJMenuItemdept_update=newJMenuItem("更新部门信息");
privateJMenuItemdept_del=newJMenuItem("撤消部门");
/*创建员工菜单项*/
privateJMenumenuemp=newJMenu("员工基本信息管理");
privateJMenuItememp_insert=newJMenuItem("添加新员工信息");
privateJMenuItememp_update=newJMenuItem("更新员工信息");
privateJMenuItememp_del=newJMenuItem("删除员工");
/*创建工资菜单项*/
privateJMenumenuwage=newJMenu("员工工资信息管理");
privateJMenuItemwage_insert=newJMenuItem("添加新工资信息");
privateJMenuItemwage_update=newJMenuItem("更新工资信息");
privateJMenuItemwage_del=newJMenuItem("删除员工工资信息");
/*创建记录菜单项*/
privateJMenumenustat=newJMenu("查询汇总——部门、员工、员工工资信息");
privateJMenuItemmerge=newJMenuItem("汇总部门年份工资总额信息及人数");
privateJMenuItemsearch=newJMenuItem("查询部门和员工基本信息及工资明细");
WageMain(){
JPaneljp=(JPanel)this.getContentPane();
jp.setLayout(newBorderLayout());
JPaneljp1=newJPanel(newFlowLayout());
jp.add(ch20231798);ch20231798.setEditable(false);
jp1.add(btn_quit);
jp.add(jp1,BorderLayout.SOUTH);
menudept.add(dept_insert);
menudept.add(dept_update);
menudept.add(dept_del);
menuemp.add(emp_insert);
menuemp.add(emp_update);
menuemp.add(emp_del);
menuwage.add(wage_insert);
menuwage.add(wage_update);
menuwage.add(wage_del);
menustat.add(merge);
menustat.add(search);
mainMune.add(menudept);
mainMune.add(menuemp);
mainMune.add(menuwage);
mainMune.add(menustat);
this.setJMenuBar(mainMune);
dept_insert.addActionListener(this);
dept_update.addActionListener(this);
dept_del.addActionListener(this);
emp_insert.addActionListener(this);
emp_update.addActionListener(this);
emp_del.addActionListener(this);
wage_insert.addActionListener(this);
wage_update.addActionListener(this);
wage_del.addActionListener(this);
merge.addActionListener(this);
search.addActionListener(this);
btn_quit.addActionListener(this);
this.setSize(570,300);
this.setVisible(true);
this.setLocation(350,220);
this.setTitle("工资管理系统");
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==dept_insert){
DeptInsertdeptinsert=newDeptInsert();this.dispose();
}elseif(e.getSource()==dept_update){
DeptUpdatedeptipdate=newDeptUpdate();this.dispose();
}elseif(e.getSource()==dept_del){
DeptDeldeptdel=newDeptDel();this.dispose();
}elseif(e.getSource()==emp_insert){
EmpInsertempinsert=newEmpInsert();this.dispose();
}elseif(e.getSource()==emp_update){
EmpUpdateempupdate=newEmpUpdate();this.dispose();
}elseif(e.getSource()==emp_del){
EmpDelempdel=newEmpDel();this.dispose();
}elseif(e.getSource()==wage_insert){
WageInsertwageinsert=newWageInsert();this.dispose();
}elseif(e.getSource()==wage_update){
WageUpdatewageupdate=newWageUpdate();this.dispose();
}elseif(e.getSource()==wage_del){
WageDelwagedel=newWageDel();this.dispose();
}elseif(e.getSource()==merge){
Mergemerge=newMerge();this.dispose();
}elseif(e.getSource()==search){
Searchsearch=newSearch();this.dispose();
}elseif(e.getSource()==btn_quit){
LandFramelandfrm=newLandFrame();this.dispose();
}
}
}
/*部门添加界面类*/packageWageMangement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassDeptInsertextendsJFrameimplementsActionListener{
privateJLabellbl_dno=newJLabel("新增部门编号(7位数字)");
privateJLabellbl_dname=newJLabel("新增部门名称(至多20字符)");
privateJLabellbl_principal=newJLabel("新增部门负责人(至多10字符)");
privateJTextFieldtxt_dno=newJTextField();
privateJTextFieldtxt_dname=newJTextField();
privateJTextFieldtxt_principal=newJTextField();
privateJButtonbtn_insert=newJButton("确认添加");
privateJButtonbtn_back=newJButton("返回");
privateWageDaowagedao=newWageDao();
DeptInsert(){
JPaneljp=(JPanel)this.getContentPane();
jp.setLayout(newBorderLayout());
JPaneljp1=newJPanel(newGridLayout(3,2,5,8));
jp1.setBorder(BorderFactory.createTitledBorder("添加部门"));
jp1.add(lbl_dno);jp1.add(txt_dno);
jp1.add(lbl_dname);jp1.add(txt_dname);
jp1.add(lbl_principal);jp1.add(txt_principal);
JPaneljp2=newJPanel(newGridLayout(1,2,10,10));
jp2.setBorder(BorderFactory.createTitledBorder("作者:杜舒静学号:20231798"));
jp2.add(btn_insert);jp2.add(btn_back);
jp.add(jp1,BorderLayout.NORTH);
jp.add(jp2,BorderLayout.SOUTH);
this.setSize(343,190);
this.setVisible(true);
this.setLocation(500,280);
this.setTitle("工资管理系统");
this.setResizable(false);
btn_insert.addActionListener(this);
btn_back.addActionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn_insert){
System.out.println("insert");
wagedao.deptInsert(this,
txt_dno.getText().trim(),
txt_dname.getText().trim(),
txt_principal.getText().trim()
);
}elseif(e.getSource()==btn_back){
WageMainwageMain=newWageMain();this.dispose();
}
}
}
/*部门信息修改类*/packageWageMangement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassDeptUpdateextendsJFrameimplementsActionListener{
privateJComboBoxtxt_dept=newJComboBox();
privateJLabelempty=newJLabel();
privateJLabelinput=newJLabel("需更新的部门:");
privateJLabelempty_2=newJLabel("原部门信息");
privateJLabelempty_3=newJLabel("新部门信息");
privateJLabellbl_dno=newJLabel("部门编号");
privateJLabellbl_dname=newJLabel("部门名称");
privateJLabellbl_principal=newJLabel("部门负责人");
privateJTextFieldtxt_old_dno=newJTextField();
privateJTextFieldtxt_old_dname=newJTextField();
privateJTextFieldtxt_old_principal=newJTextField();
privateJTextFieldtxt_new_dno=newJTextField();
privateJTextFieldtxt_new_dname=newJTextField();
privateJTextFieldtxt_new_principal=newJTextField();
privateJButtonbtn_query=newJButton("查询");
privateJButtonbtn_update=newJButton("更新");
privateJButtonbtn_back=newJButton("返回");
privateWageDaodao=newWageDao();
publicvoidwriteOldTxt(Stringone,Stringtwo,Stringthree){
txt_old_dno.setText(one);
txt_old_dname.setText(two);
txt_old_principal.setText(three);
}
publicvoidsetItem(){
dao.getDeptItem(txt_dept);
}
DeptUpdate(){
JPaneljp=(JPanel)this.getContentPane();
jp.setLayout(newBorderLayout());
jp.setBorder(BorderFactory.createTitledBorder("更新部门"));
this.setItem();
JPaneljp1=newJPanel(newBorderLayout());
JPaneljp2=newJPanel(newGridLayout(5,2,5,5));
JPaneljp3=newJPanel(newGridLayout(5,1,3,5));
JPaneljp4=newJPanel(newBorderLayout());
jp4.setBorder(BorderFactory.createTitledBorder("20231798"));
JPaneljp5=newJPanel(newGridLayout(1,2,8,8));
txt_old_dno.setEditable(false);
txt_old_dname.setEditable(false);
txt_old_principal.setEditable(false);
txt_new_dno.setEditable(false);
jp2.add(input);jp2.add(txt_dept);
jp2.add(empty);jp2.add(empty_2);
jp2.add(lbl_dno);jp2.add(txt_old_dno);
jp2.add(lbl_dname);jp2.add(txt_old_dname);
jp2.add(lbl_principal);jp2.add(txt_old_principal);
jp3.add(btn_query);
jp3.add(empty_3);
jp3.add(txt_new_dno);
jp3.add(txt_new_dname);
jp3.add(txt_new_principal);
jp5.add(btn_update);jp5.add(btn_back);
jp4.add(jp5);
jp1.add(jp2,BorderLayout.WEST);
jp1.add(jp3,BorderLayout.EAST);
jp.add(jp1,BorderLayout.NORTH);
jp.add(jp4,BorderLayout.SOUTH);
this.setSize(460,270);
this.setVisible(true);
this.setLocation(400,280);
this.setTitle("工资管理系统");
this.setResizable(false);
btn_query.addActionListener(this);
btn_update.addActionListener(this);
btn_back.addActionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn_query){
dao.individual_querty_dept(this,(String)txt_dept.getSelectedItem());
}elseif(e.getSource()==btn_update){
Stringdept=(String)txt_dept.getSelectedItem();
booleanz=false;
if(dept.length()>0){
Stringx=txt_new_dname.getText().trim();
if(x.length()>1&&x.length()<10){
if(dao.dQuery(txt_new_dname.getText().trim())==null){
dao.deptUpdate("dname",x,txt_old_dno.getText().trim());
}else{
JOptionPane.showMessageDialog(this,"@部门已存在@");
}
z=true;
}
Stringy=txt_new_principal.getText().trim();
if(y.length()>0&&y.length()<10){
dao.deptUpdate("principal",y,txt_old_dno.getText().trim());
z=true;
}
if(z){
txt_dept.removeAllItems();
this.setItem();
dao.individual_querty_dept(this,txt_new_dname.getText().trim());
dao.individual_querty_dept(this,txt_new_principal.getText().trim());
txt_new_principal.setText(null);
txt_new_dname.setText(null);
}
}
}elseif(e.getSource()==btn_back){
WageMainwageMain=newWageMain();
this.dispose();
}
}
}/*部门信息删除类*/packageWageMangement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassDeptDelextendsJFrameimplementsActionListener{
privateJLabellbl_dno_or_dname=newJLabel("需撤消的部门的名称或编号");
privateJButtondel=newJButton("撤消部门");
privateJButtonback=newJButton("返回");
privateJTextFieldtxt_dno_or_dname=newJTextField();
privateWageDaodao=newWageDao();
DeptDel(){
JPaneljp=(JPanel)this.getContentPane();
jp.setBorder(BorderFactory.createTitledBorder("部门撤消"));
jp.setLayout(newBorderLayout());
JPaneljp1=newJPanel(newGridLayout(1,3,5,5));
jp1.add(lbl_dno_or_dname);jp1.add(txt_dno_or_dname);jp1.add(del);
JPaneljp2=newJPanel(newFlowLayout());
jp2.add(back);
jp.add(jp1,BorderLayout.NORTH);
jp.add(jp2);
del.addActionListener(this);
back.addActionListener(this);
this.setSize(500,130);
this.setVisible(true);
this.setLocation(420,280);
this.setTitle("工资管理系统");
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==del){
dao.deptDel(this,txt_dno_or_dname.getText().trim());
}elseif(e.getSource()==back){
WageMainwageMain=newWageMain();
this.dispose();
}
}
}
/*员工信息添加界面类*/packageWageMangement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassEmpInsertextendsJFrameimplementsActionListener{
privateWageDaodao=newWageDao();
privateJLabellbl_eno=newJLabel("员工编号");
privateJLabellbl_name=newJLabel("姓名");
privateJLabellbl_sex=newJLabel("性别");
privateJLabellbl_birth=newJLabel("生日");
privateJLabellbl_attendtime=newJLabel("参与工作时间");
privateJLabellbl_dept=newJLabel("部门");
privateJLabellbl_post=newJLabel("职务");
privateJLabellbl_TechnicalTitle=newJLabel("职称");
privateJLabellbl_politicalstatus=newJLabel("政治面貌");
privateJLabellbl_wedlock=newJLabel("婚姻状况");
privateJTextFieldtxt_eno=newJTextField();
privateJTextFieldtxt_name=newJTextField();
privateString[]str_sex={"男","女"};
privateJComboBoxcmbsex=newJComboBox(str_sex);
privateJComboBoxtxt_birth_year;
privateJComboBoxtxt_birth_month;
privateJComboBoxtxt_birth_day;
privateJComboBoxtxt_attendtime_year;
privateJComboBoxtxt_attendtime_month;
privateJComboBoxtxt_attendtime_day;
privateJComboBoxtxt_dept=newJComboBox();
privateJTextFieldtxt_post=newJTextField();
privateJTextFieldtxt_TechnicalTitle=newJTextField();
privateString[]str_pol={"群众","团员","党员"};
privateJComboBoxcmbpol=newJComboBox(str_pol);
privateString[]str_wedlock={"未婚","已婚"};
privateJComboBoxcmbwedlock=newJComboBox(str_wedlock);
privateJLabellbl_empty=newJLabel();
privateJLabellbl_empty_1=newJLabel();
privateJButtonbtn_insert=newJButton("添加");
privateJButtonbtn_back=newJButton("返回");
privateString[]day=newString[32];
privateString[]month=newString[13];
privateString[]birth_year=newString[32];
privateString[]attendtime_year=newString[32];
privateString[]day_28=newString[29];
privateString[]day_29=newString[30];
privateString[]day_30=newString[31];
privateintc_year=0;privateintC_year=0;
publicvoidsetItem(){
dao.getDeptItem(txt_dept);
day[0]="";
month[0]="";
birth_year[0]="";
attendtime_year[0]="";
for(inti=1;i<32;i++){
day[i]=""+i;
}
for(inti=1;i<13;i++){
month[i]=""+i;
}
for(inti=1;i<32;i++){
intx=1980+i;birth_year[i]=""+x;
}
for(inti=1;i<32;i++){
intx=1996+i;attendtime_year[i]=""+x;
}
txt_birth_year=newJComboBox(birth_year);
txt_birth_month=newJComboBox(month);
txt_birth_day=newJComboBox(day);
txt_attendtime_year=newJComboBox(attendtime_year);
txt_attendtime_month=newJComboBox(month);
txt_attendtime_day=newJComboBox(day);
}
EmpInsert(){
JPaneljp=(JPanel)this.getContentPane();
jp.setLayout(newBorderLayout());
jp.setBorder(BorderFactory.createTitledBorder("员工信息添加"));
this.setItem();
JPaneljp1=newJPanel(newGridLayout(6,4,3,3));
JPaneljp2=newJPanel(newGridLayout(1,2,50,20));
JPaneljp3=newJPanel(newGridLayout(1,3,2,2));
JPaneljp4=newJPanel(newGridLayout(1,3,2,2));
jp4.add(txt_birth_year);jp4.add(txt_birth_month);jp4.add(txt_birth_day);
jp3.add(txt_attendtime_year);jp3.add(txt_attendtime_month);jp3.add(txt_attendtime_day);
jp2.add(btn_insert);jp2.add(btn_back);
jp1.add(lbl_eno);jp1.add(txt_eno);jp1.add(lbl_name);jp1.add(txt_name);
jp1.add(lbl_birth);jp1.add(jp4);jp1.add(lbl_attendtime);jp1.add(jp3);
jp1.add(lbl_sex);jp1.add(cmbsex);jp1.add(lbl_dept);jp1.add(txt_dept);
jp1.add(lbl_post);jp1.add(txt_post);jp1.add(lbl_TechnicalTitle);jp1.add(txt_TechnicalTitle);
jp1.add(lbl_politicalstatus);jp1.add(cmbpol);jp1.add(lbl_wedlock);jp1.add(cmbwedlock);
jp.add(jp1,BorderLayout.NORTH);
jp.add(jp2,BorderLayout.SOUTH);
btn_insert.addActionListener(this);
btn_back.addActionListener(this);
txt_birth_year.addActionListener(this);
txt_birth_month.addActionListener(this);
txt_attendtime_year.addActionListener(this);
txt_attendtime_month.addActionListener(this);
this.setSize(680,260);
this.setVisible(true);
this.setLocation(370,200);
this.setTitle("工资管理系统");
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
day_28[0]="";
day_29[0]="";
day_30[0]="";
for(inti=1;i<29;i++){
day_28[i]=""+i;
}
for(inti=1;i<30;i++){
day_29[i]=""+i;
}
for(inti=1;i<31;i++){
day_30[i]=""+i;
}
}
publicvoidactionPerformed(ActionEvente){
//1为闰年,0为平年
if(e.getSource()==btn_back){
WageMainwageMain=newWageMain();
this.dispose();
}elseif(e.getSource()==txt_birth_year){
StringCY=(String)txt_birth_year.getSelectedItem();
intyear=Integer.parseInt(CY);
intg=year;
if(g%4==0||g%400==0){
c_year=1;
}else{
c_year=0;
}
}elseif(e.getSource()==txt_birth_month){
StringCM=(String)txt_birth_month.getSelectedItem();
intmonth=Integer.parseInt(CM);
if(month==2){
if(c_year==1){
txt_birth_day.removeAllItems();
for(inti=0;i<day_29.length;i++){
txt_birth_day.addItem(day_29[i]);
}
}elseif(c_year==0){
txt_birth_day.removeAllItems();
for(inti=0;i<day_28.length;i++){
txt_birth_day.addItem(day_28[i]);}
}
}elseif(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
txt_birth_day.removeAllItems();
for(inti=0;i<day.length;i++){
txt_birth_day.addItem(day[i]);}
}el
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公务员阆中市委组织部关于阆中市2025年考调35人备考题库完整答案详解
- 2025至2030中国锂电池回收利用行业市场潜力及政策导向分析报告
- 2025至2030中国智能仓储行业市场现状供需特点及投资效益研究报告
- 2026年石家庄城市更新集团有限公司劳务派遣制人员招聘备考题库参考答案详解
- 2025至2030中国第三方检测认证行业市场集中度及扩张策略研究报告
- 2026中国辛烯基琥珀酸淀粉钠行业应用动态及投资前景预测报告
- 2025-2030中国量子级联激光器市场应用趋势及投资战略规划建议研究报告
- 2025至2030中国工业传感器行业市场现状供需分析及投资评估规划分析研究报告
- 2025至2030教育智慧校园分析及管理系统集成与投资回报周期研究报告
- 2025至2030中国再生资源回收行业政策扶持与盈利模式分析研究报告
- 2026年南阳科技职业学院单招职业适应性考试必刷测试卷完美版
- 2026届广东省佛山市南海区石门实验中学数学七上期末达标测试试题含解析
- 医保结算清单质控管理制度及流程
- 河南省2025年度河南省气象部门招聘应届高校毕业生24名(第2号)笔试历年参考题库附带答案详解
- 腹部手术围手术期疼痛管理指南(2025年)解读课件
- 2025年江苏事业单位教师招聘体育学科专业知识考试试卷含答案与解析
- 员工考勤记录表模板(2024Excel版)
- 2025保险合同协议-责任险及意外险组合
- 溶剂回收装置工艺考核试卷及答案
- GJB373B-2019引信安全性设计准则
- 城市轨道交通智慧运维系统建设与智能设备状态监测技术研究
评论
0/150
提交评论