




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計報告題目:工資管理系統(tǒng)所在學(xué)院:信息工程學(xué)院班級:學(xué)號:姓名:指引教師:1月2日目錄概述二、需求分析三、概念設(shè)計四、邏輯設(shè)計五、系統(tǒng)實現(xiàn)六、小結(jié)一、概述在工資管理中,需要從公司管理方式以及實際狀況中提取有關(guān)信息,以反映工資管理狀況。老式手工操作方式,易發(fā)生數(shù)據(jù)丟失,記錄錯誤,勞動強度高,且速度慢。使用計算機可以高速,快捷地完畢以上工作。避免重復(fù)勞動,規(guī)范工資管理行為,從而提高了管理效率和水平。讓人們效率大大提高.不難想象,正是資訊迅速發(fā)展使得人們從過去繁復(fù)手工勞作中得以解脫,從而使這種服務(wù)在當(dāng)前才也許迅速普及。同步,編寫一套完整工資管理系統(tǒng)任務(wù)就顯得尤為重要。本課程設(shè)計共分為四大模塊:1.系統(tǒng)數(shù)據(jù)初始化2.工基本信息數(shù)據(jù)輸入、修改、刪除;3.員工個人信息及工資表查詢;4,員工工資計算;二、需求分析本系統(tǒng)重要用于員工基本信息管理,對員工以及其她信息添加、修改、刪除、查詢等基本操作。對于數(shù)據(jù)庫保護有數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)功能。針對這些規(guī)定,設(shè)計本月工資信息管理系統(tǒng)。該系統(tǒng)重要涉及職工信息、工資級別和工資金額、公司福利表等。=1\*GB1⒈員工基本狀況涉及員工號、員工姓名、性別、所在部門、工資級別、工資級別等。2.工資級別和工資金額涉及工資級別、工資額。3.公司部門及工作崗位信息涉及部門名稱、工作崗位名稱、工作崗位工資等。4.工齡和工資金額涉及工齡及相應(yīng)工資額。5.公司福利表涉及福利名稱、福利值。本系統(tǒng)概念設(shè)計思想:1.對公司軟硬件調(diào)查,從實際環(huán)境出發(fā),以便充分運用公司當(dāng)前資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果。2.理解公司需要及有關(guān)方面規(guī)定,依照需要做出符合規(guī)定軟件,并達到操作過程中直觀、以便、實用、安全等規(guī)定。3.將系統(tǒng)按模塊分工到人,提高效率,且模塊化設(shè)計便于系統(tǒng)功能各種組合和修改及日后維護。4.系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護功能,及時依照顧客需求進行數(shù)據(jù)添加、刪除、修改等操作。工資管理系統(tǒng)工資管理系統(tǒng)員工管理模塊考勤管理模塊津貼管理模塊工資生成模塊系統(tǒng)模塊員工管理模塊考勤管理模塊津貼管理模塊工資生成模塊系統(tǒng)模塊圖1.1系統(tǒng)功能模塊圖數(shù)據(jù)庫操作數(shù)據(jù)庫操作操作數(shù)據(jù)系統(tǒng)操作工資信息考勤信息進入基本界面職工信息津貼管理圖2.1第一層數(shù)據(jù)流圖修改職工信息修改職工信息刪除職工記錄輸入職工基本信息職工表添加操作修改操作刪除操作顧客查詢操作職工號修改工資信息修改工資信息刪除工資信息輸入工資基本信息工資表添加操作修改操作刪除操作查詢操作圖2.3工資信息載入修改考勤信息修改考勤信息刪除考勤信息輸入考勤基本信息考勤表添加操作修改操作刪除操作查詢操作顧客圖2.4考勤信息載入修改津貼信息修改津貼信息刪除津貼信息輸入津貼基本信息津貼表添加操作修改操作刪除操作查詢操作顧客圖2.5津貼信息載入職工管理員進入系統(tǒng)職工管理員進入系統(tǒng) 進入員工(工資,考勤,津貼)表進入員工(工資,考勤,津貼)表津貼表職工表津貼表職工表考勤表工資表考勤表工資表進行錄入,修改,刪除,查詢操作進行錄入,修改,刪除,查詢操作圖2.6信息查詢及管理流程圖三、概念設(shè)計分析前面系統(tǒng)功能規(guī)定,需要一種表來存儲和管理員工信息,使系統(tǒng)可以接受員工原始各項數(shù)據(jù),以實現(xiàn)數(shù)據(jù)錄入、查詢或記錄員工信息等功能。員工是本系統(tǒng)第一種實體。為了能實現(xiàn)查詢和記錄部門內(nèi)員工狀況等功能,必要有一種表來存儲和管理所有部門信息。部門是本系統(tǒng)第二個實體。工資是以員工工作狀況來制定。需要建立一種表來記錄各種工資、津貼、扣款信息。它重要為各種查詢和記錄功能提供工資數(shù)據(jù)。工資是第3個實體。據(jù)此可以繪出工資管理系統(tǒng)數(shù)據(jù)庫E-R圖如下:部門部門1工作工作N獲得工資員工MM1獲得工資員工實體屬性列表如下:實體屬性員工工號姓名性別年齡籍貫身份證號婚姻狀況學(xué)歷部門名稱工種工齡職務(wù)級別部門部門名稱部門負(fù)責(zé)人部門人數(shù)工資工號工資年月崗位工資崗位補貼出勤天數(shù)加班工時加班天數(shù)加班類別加班工資病假扣款事假扣款其她扣款應(yīng)發(fā)工資實發(fā)工資四、邏輯設(shè)計將數(shù)據(jù)庫概念模型轉(zhuǎn)換為關(guān)系模型:實體轉(zhuǎn)換成關(guān)系模式有:員工(工號,姓名,性別,年齡,籍貫,身份證號,婚姻狀況,學(xué)歷,部門名稱,工種,工齡,職務(wù)級別)部門(部門編號,部門名稱,部門負(fù)責(zé)人,部門人數(shù))獲得(工號,姓名)工資(工號,工資年月,崗位工資,崗位補貼,出勤天數(shù),加班工時,加班工資,加班天數(shù),加班類別,病假扣除,事假扣除,其他扣除,應(yīng)發(fā)工資,實發(fā)工資)由于,員工與工資是1:N關(guān)系,因此各關(guān)系模式為:員工(工號,姓名,性別,年齡,籍貫,身份證號,婚姻狀況,學(xué)歷,部門名稱,工種,工齡,職務(wù)級別)部門(部門名稱,部門負(fù)責(zé)人,部門人數(shù))工資(工號,工資年月,崗位工資,崗位補貼,出勤天數(shù),加班工時,加班工資,加班天數(shù),加班類別,病假扣除,事假扣除,其他扣除,應(yīng)發(fā)工資,實發(fā)工資)帶下劃線屬性為各關(guān)系模式外碼,字體為粗體屬性為各關(guān)系模式主碼。關(guān)系規(guī)范式:工資管理系統(tǒng)∈1NF每個屬性均不可再分 系統(tǒng)實現(xiàn)5界面截圖5.1主界面5.2登錄界面5.3管理員管理工資界面5.4信息錄入,修改,刪除,查詢界面5.5職工信息查詢界面5.6職工密碼修改界面小結(jié)通過這次課程設(shè)計實驗,我發(fā)現(xiàn)自己對數(shù)據(jù)庫課程興趣有了很大提高,并且對課本知識更加理解并有了一定掌握,通過實驗我懂得了如何創(chuàng)立索引、視圖、存儲過程以及觸發(fā)器。此前不懂為什么要創(chuàng)立觸發(fā)器、視圖等,當(dāng)前終于懂得它們長處了。在自己沒做數(shù)據(jù)庫課程設(shè)計此前,總是覺得自己什么都不懂什么都不會,但是當(dāng)前做出來了,因此我覺得自己還是有能力做某些實際操作方面東西。我相信后來通過自己自學(xué)其他課程,我一定會做出一種更好數(shù)據(jù)庫通過課程設(shè)計讓我有機會把知識學(xué)以至用,而不單是停留在理論基本上,為后來學(xué)習(xí)和工作提供了寶貴經(jīng)驗,打下了堅實基本,雖然課程設(shè)計時間短暫,但對我來說過很充實,更重要是學(xué)到了諸多課本上沒有東西,提高了自己動手能力.在此過程中又學(xué)到了許多未知代碼,大大充實了自己知識.數(shù)據(jù)庫代碼CREATEDATABASE工資管理庫ONPRIMARY(NAME=工資管理庫,FILENAME='D:\工資管理庫_data.mdf',SIZE=4MB,MAXSIZE=6MB,FILEGROWTH=2MB)LOGON(NAME='工資管理庫_log',F(xiàn)ILENAME='D:\工資管理庫.ldf',SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)createtable部門( 部門名稱CHAR(50)NOTNULLprimarykey, 部門負(fù)責(zé)人CHAR(50)NOTNULL,部門人數(shù)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),學(xué)歷CHAR(50),部門名稱CHAR(50)NOTNULL,工種CHAR(50),工齡CHAR(4)NOTNULL,職務(wù)級別CHAR(50));CREATETABLE工資(工號char(50)notnullprimarykey,工資年月char(50)notnull,崗位工資decimalnotnull,崗位補貼decimal,出勤天數(shù)decimalnotnull,加班工時decimal,加班工資decimal,加班天數(shù)decimal,加班類別char(50),病假扣款decimal,事假扣款decimal,其她扣款decimal,應(yīng)發(fā)工資decimal,實發(fā)工資decimalnotnull,foreignkey(工號)references員工(工號));altertable工資addconstraintCK_gonghocheck(工號>0);createtable系統(tǒng)顧客(顧客名char(50)primarykey,顧客權(quán)限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)、出勤天數(shù)(@staffchuqin)、加班工資(@staffjiaban)、應(yīng)發(fā)工資(@staffying)、實發(fā)工資(@staffshi)為輸入?yún)?shù)返回指定員工工資信息存儲過程。stsffCost代碼如下:CREATEPROCEDUREstaffCost@staffgongzidecimal,@staffchuqindecimal,@staffjiabandecimal,@staffyingdecimal,@staffshidecimalASSELECT*FROM工資WHERE工資年月=@staffgongziAND出勤天數(shù)=@staffchuqinAND加班工資=@staffjiabanAND應(yīng)發(fā)工資=@staffyingAND實發(fā)工資=@staffshiGO(2)指定范疇員工信息查詢。以員工工號、部門編號為輸入?yún)?shù)返回指定員工基本信息存儲過程,規(guī)定輸入某些員工信息查詢員工所有信息。定義一種名為stsffInfo存儲過程,該存儲過程以員工工號(@staffNum)、部門編號(@bmNum)作為輸入?yún)?shù),存儲過程返回查詢到成果集。satffInfo定義代碼如下:CREATEPROCEDUREstaffInfo@staffNumVARCHAR(50)='%',@bmNumVARCHAR(50)='%'ASSELECT*FROM員工,部門WHERE員工.部門名稱=部門.部門名稱AND((員工.工號LIKE@staffNumVARCHAR(50)+'%')AND(部門編號LIKE@bmNumVARCHAR(50)+'%'))GO(3)記錄指定年份各部門每月份工資總額。以年份為輸入?yún)?shù),以總工資金額為輸出參數(shù),產(chǎn)生該年度12個月份每部門工資記錄存儲過程。定義該存儲過程名為bmMonhSum,輸入?yún)?shù)為@ThisYear,實當(dāng)代碼如下:CREATEPROCEDUREbmMonthSum@ThisYearCHAR(10)ASSELECTDATEPART(MM,工資年月)AS員工工資月份,SUM(實發(fā)工資)AS部門人數(shù)FROM員工,工資,部門WHERE員工.工號=工資.工號AND員工.部門名稱=部門.部門名稱ANDDATEPART(YYYY,工資年月)=@ThisYearGROUPBYDATEPART(MM,工資年月)GO(五)觸發(fā)器(1)核心操作,在工資表里添加一條新記錄,實發(fā)工資會自動更新新數(shù)據(jù)。定義這個觸發(fā)器名稱為insert_工資。代碼如下:createtriggerinsert_工資on工資forinsertasdeclare@ichar(20)declare@bbintset@i=casewhen@bb=0001then'實發(fā)工資'when@bb=0002then'實發(fā)工資'endprint@i(2)員工新調(diào)入進行員工新調(diào)入操作是在員工信息表中添加一條新記錄,可覺得員工信息表設(shè)計一種Insert觸發(fā)器,當(dāng)員工信息表執(zhí)行Insert操作后自動更改出部門信息表相應(yīng)記錄數(shù)據(jù)。定義這個觸發(fā)器名稱為staff_insert。其代碼如下:CREATETRIGGERstaff_insertON員工FORINSERTASIF(SELECTCOUNT(*)FROM部門,inserted,工資WHERE部門.部門人數(shù)=inserted.部門人數(shù)AND工資.工號=inserted.工號)=0ROLLBACKTRANSACTIONGO(3)員工調(diào)出進行員工調(diào)出操作是在員工信息表中刪除該員工記錄,可覺得員工信息表設(shè)計一種Delete觸發(fā)器,當(dāng)員工信息表執(zhí)行Delete操作后,工資表、部門表中記錄也將所有刪除。定義這個觸發(fā)器名稱為staff_delete。其實當(dāng)代碼如下:CREATETRIGGERstaff_deleteON員工FORDELETEASSELECTCOUNT(*)FROM部門,工資,deletedWHERE部門.部門人數(shù)=deleted.部門人數(shù)AND工資.工號=deleted.工號GO(4)員工內(nèi)部調(diào)動為員工表設(shè)計一種名為staff_updateUPDATE觸發(fā)器,當(dāng)系統(tǒng)對員工表進行UPDATE操作后,將會自動觸發(fā)它。該觸發(fā)器將相應(yīng)記錄部門人數(shù)、部門名稱、工資更新。下面是client_update觸發(fā)器定義代碼;CREATETRIGGERstaff_updateON員工FORUPDATEASSELECTCOUNT(*)FROMupdated,部門WHERE部門.部門名稱=updated.部門名稱GO(六)索引為提高檢索性能,為表創(chuàng)立符合索引,其索引項為工號、姓名。CREATEINDEX工號_姓名_indON員工(工號,姓名)GOJava代碼insertinto部門values('財務(wù)部','王玲','20')insertinto部門values('生產(chǎn)部','麗麗','400')insertinto部門values('董事會','李四','10')insertinto部門values('后勤部','二子','40')insertinto部門values('公關(guān)部','小麗','15')insertinto部門values('行政部','琪琪','20')insertinto部門values('企劃部','小新','15')insertinto部門values('銷售部','小海','10')insertinto部門values('人力資源部','麗子','5')insertinto員工values('1001','李民','男','25','天津','','已婚','???,'銷售部','內(nèi)銷','4','職工')insertinto員工values('1002','李四','男','50','上海','','已婚','本科','董事長','null','30','董事長')insertinto員工values('1003','麗麗','女','25','北京','','未婚','本科','生產(chǎn)部','電工','8','生產(chǎn)部部長')insertinto員工values('1004','王玲','男','35','東京','','已婚','研究生','財務(wù)部','預(yù)算','6','財務(wù)部部長')insertinto員工values('1005','二子','女','30','江西','','未婚','本科','后勤部','車工','7','后勤部部長')insertinto員工values('1006','小麗','女','26','蘇州','','已婚','本科','公關(guān)部','null','3','公關(guān)部部長')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','海南','','已婚','本科','公關(guān)部','前臺','5','職工')insertinto員工values('1012','小韓','男','20','山東','','離異','本科','財務(wù)部','融資','5','出納')insertinto工資values('1001','-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')insertinto工資values('1002','-12','10000','600','100','5','25','2','null','0','0','0','15000','0')insertinto工資values('1003','-12','4000','500','30','2','30','4','核對','50','50','100','5000','4800')insertinto工資values('1004','-12','3500','500','30','2','30','4','加急','50','50','100','5000','4800')insertinto工資values('1005','-12','4000','500','30','2','30','4','加急','50','50','100','5000','4800')insertinto工資values('1006','-12','4000','500','30','2','30','4','加急','50','50','100','5000','4800')insertinto工資values('1007','-12','3500','500','30','2','30','4','審核','50','50','100','5200','5000')insertinto工資values('1008','-12','3500','500','30','2','30','4','加急','50','50','100','5400','5200')insertinto工資values('1009','-12','3500','500','30','2','30','4','審核','50','50','100','5000','4800')insertinto工資values('1010','-12','3500','500','30','2','30','4','加急','50','50','100','4800','4300')insertinto工資values('1011','-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')insertinto工資values('1012','-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','1')insertinto工齡工資values('9','15000')insertinto工齡工資values('10','0')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("注銷登錄");
privateJTextFieldch1798=newJTextField("\t@歡迎使用工資管理系統(tǒng)!);
/*創(chuàng)立菜單欄*/
privateJMenuBarmainMune=newJMenuBar();
/*創(chuàng)立部門菜單項*/
privateJMenumenudept=newJMenu("部門信息管理");
privateJMenuItemdept_insert=newJMenuItem("添加新部門信息");
privateJMenuItemdept_update=newJMenuItem("更新部門信息");
privateJMenuItemdept_del=newJMenuItem("撤銷部門");
/*創(chuàng)立員工菜單項*/
privateJMenumenuemp=newJMenu("員工基本信息管理");
privateJMenuItememp_insert=newJMenuItem("添加新員工信息");
privateJMenuItememp_update=newJMenuItem("更新員工信息");
privateJMenuItememp_del=newJMenuItem("刪除員工");
/*創(chuàng)立工資菜單項*/
privateJMenumenuwage=newJMenu("員工工資信息管理");
privateJMenuItemwage_insert=newJMenuItem("添加新工資信息");
privateJMenuItemwage_update=newJMenuItem("更新工資信息");
privateJMenuItemwage_del=newJMenuItem("刪除員工工資信息");
/*創(chuàng)立記錄菜單項*/
privateJMenumenustat=newJMenu("查詢匯總——部門、員工、員工工資信息");
privateJMenuItemmerge=newJMenuItem("匯總部門年份工資總額信息及人數(shù)");
privateJMenuItemsearch=newJMenuItem("查詢部門和員工基本信息及工資明細(xì)");
WageMain(){
JPaneljp=(JPanel)this.getContentPane();
jp.setLayout(newBorderLayout());
JPaneljp1=newJPanel(newFlowLayout());
jp.add(ch1798);ch1798.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("工資管理系統(tǒng)");
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位數(shù)字)");
privateJLabellbl_dname=newJLabel("新增部門名稱(至多20字符)");
privateJLabellbl_principal=newJLabel("新增部門負(fù)責(zé)人(至多10字符)");
privateJTextFieldtxt_dno=newJTextField();
privateJTextFieldtxt_dname=newJTextField();
privateJTextFieldtxt_principal=newJTextField();
privateJButtonbtn_insert=newJButton("確認(rèn)添加");
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("作者:杜舒靜學(xué)號:1798"));
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("工資管理系統(tǒng)");
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("部門負(fù)責(zé)人");
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("1798"));
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("工資管理系統(tǒng)");
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("工資管理系統(tǒng)");
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("職務(wù)");
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("工資管理系統(tǒng)");
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]);}
}else{
txt_birth_day.removeAllItems();
for(inti=0;i<day_30.length;i++){
txt_birth_day.addItem(day_30[i]);}
}
/**/
}elseif(e.getSource()==txt_attendtime_year){
StringCY=(String)txt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 阿克蘇工業(yè)職業(yè)技術(shù)學(xué)院《特種膠黏劑》2023-2024學(xué)年第二學(xué)期期末試卷
- 阿壩職業(yè)學(xué)院《數(shù)學(xué)教學(xué)技能綜合訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 隴東學(xué)院《工程制圖與CAD》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西中醫(yī)藥大學(xué)《外貿(mào)商品學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西學(xué)前師范學(xué)院《文化藝術(shù)管理研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西工商職業(yè)學(xué)院《景觀設(shè)計綜合》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西旅游烹飪職業(yè)學(xué)院《微機原理與接口技術(shù)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西省洛南中學(xué)2024-2025學(xué)年高三下學(xué)期五調(diào)考試物理試題試卷含解析
- 陜西省西安市工大附中2025年普通高中初三教學(xué)質(zhì)量測試試題化學(xué)試題試卷含解析
- 陜西省西安市鐵一中2025屆高考化學(xué)試題命題比賽模擬試題含解析
- 綜合實踐項目 制作細(xì)胞模型 教學(xué)實錄-2024-2025學(xué)年人教版生物七年級上冊
- 對口高考模擬卷(1)-【中職專用】2025年湖南省普通高等學(xué)校對口招生高考模擬測試(原卷版)
- 橋隧建筑物安全監(jiān)控相關(guān)知79課件講解
- 九下 化學(xué) 科學(xué) 第七單元 跨學(xué)科實踐活動:海洋資源的綜合利用與制鹽
- 預(yù)防校園欺凌安全教育課件
- 全國園地、林地、草地分等定級數(shù)據(jù)庫規(guī)范1123
- 女性的中醫(yī)養(yǎng)生保健
- 2024年 廣西壯族自治區(qū) 數(shù)學(xué) 中考真題
- 汽車行業(yè)智能汽車維修與保養(yǎng)方案
- 繩子莫泊桑課件
- 中國國家圖書獎歷屆獲獎書目(第1-8屆)
評論
0/150
提交評論