工資管理系統(tǒng)設(shè)計報告.doc
《工資管理系統(tǒng)設(shè)計報告.doc》由會員分享,可在線閱讀,更多相關(guān)《工資管理系統(tǒng)設(shè)計報告.doc(62頁珍藏版)》請在裝配圖網(wǎng)上搜索。
延安大學(xué) 課程設(shè)計報告 科目:數(shù)據(jù)庫系統(tǒng)概論 題目:工資管理系統(tǒng) 學(xué)院:數(shù)學(xué)與計算機科學(xué)學(xué)院 班級:軟件12 成員:鄧茂記: 王曉武: 宋彤彤: 彭文麗: 設(shè)計時間:2013年11月12日—— 2013年12月20日 目錄 第一章 開發(fā)背景及意義 1.1項目開發(fā)背景 1.2項目開發(fā)的目標及意義 1.3系統(tǒng)開發(fā)方法 第二章 可行性研究 2.1 目標方案可行性 2.2 技術(shù)可行性 2.3 經(jīng)濟可行性 2.4 操作可行性 2.5 系統(tǒng)流程圖 第三章 系統(tǒng)分析 3.1 需求分析 3.2 數(shù)據(jù)流圖 3.3 數(shù)據(jù)字典 第四章 數(shù)據(jù)庫設(shè)計 4.1 概念結(jié)構(gòu)設(shè)計 4.2 邏輯結(jié)構(gòu)設(shè)計 4.3 物理結(jié)構(gòu)設(shè)計 4.4 數(shù)據(jù)庫結(jié)構(gòu)的實現(xiàn) 第五章 工資管理系統(tǒng)功能實現(xiàn) 5.1 功能界面設(shè)計 5.2實現(xiàn)工資管理系統(tǒng)的java代碼 第六章 總結(jié)與體會 第一章 開發(fā)背景及意義 1.1 項目開發(fā)背景 眾所周知當今時代的世界經(jīng)濟正從工業(yè)經(jīng)濟向知識經(jīng)濟轉(zhuǎn)變,而知識經(jīng)濟的兩個重要特征就是信息化合全球化。要實現(xiàn)信息化和全球化就必須依靠完善的網(wǎng)絡(luò)和數(shù)據(jù)庫機制。處于現(xiàn)在這樣一個飛速發(fā)展的信息時代,在各行各業(yè)中都離不開信息處理,這正是計算機被廣泛應(yīng)用于管理信息系統(tǒng)的環(huán)境,使用計算機進行信息控制不僅提高了工作效率,而且大大的提高了其安全性。尤其是對于復(fù)雜的信息管理,計算機能夠充分發(fā)揮其優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)時系統(tǒng)管理的前提。 因此,對于企業(yè)或是事業(yè)單位來說開發(fā)一套工資管理系統(tǒng)是很必要的。雖然企業(yè)事業(yè)單位的管理已經(jīng)進入信息化管理,但對于不同的單位所需要的功能是不一樣的,這樣通用的軟件使用效率不高,還會造成人力,財力的浪費,這樣就不能滿足所有單位和部門的需求。所以必須做好客戶的需求分析工作,設(shè)計符合用戶要求的系統(tǒng)。 1.2 系統(tǒng)開發(fā)的目標及意義 企業(yè)和事業(yè)單位工資管理系統(tǒng)唯有采用自動化,高效率,人性化的管理,才能滿足服務(wù)員工的需求。工資管理系統(tǒng)的主要目標在于加強服務(wù)而不在于精簡人力。所以系統(tǒng)要能提供更自動化的服務(wù),期望以最快的速度將人事工資信息做最適當?shù)倪\用。主要目標有:以自動化、系統(tǒng)化、高效管理代替分散重復(fù)操作;提高單位效益和現(xiàn)代化信息管理水平;提高員工的自律性,促進員工人才的成長和流動;減輕人事工資管理員的負擔,節(jié)省人力物力的開支等。 引進以計算機信息管理技術(shù)和網(wǎng)絡(luò)通訊技術(shù),是加快人事工資管理信息服務(wù)進程的重要手段。新的管理系統(tǒng)的使用會給人事管理體系發(fā)生變化。這促進了工資數(shù)據(jù)管理方式和理念的轉(zhuǎn)變,提高了企業(yè)單位的現(xiàn)代化和信息化水平,為企業(yè)帶來更多的效益。 1.3 系統(tǒng)開發(fā)方法 1.開發(fā)工具:eclipse sql server 2005 2.開發(fā)語言:java語言 sql語言 第二章 可行性研究 2.1 目標方案可行性 (1).計算機設(shè)備處理繁雜的工資增減問題,大幅度減少人力,物力,極大地提高企業(yè)的管理水平和管理效率。 (2).管理水平和管理效率的提高能直接產(chǎn)生經(jīng)濟效益。 (3).高效率的管理形成了良好的經(jīng)營氛圍,為企業(yè)打造優(yōu)良形象,提高企業(yè)競爭力。 (4).本系統(tǒng)安全保密性可靠,實施獨立的局域網(wǎng)絡(luò),人員進入系統(tǒng)需要登錄,需輸入賬戶和密碼。 (5).本系統(tǒng)的管理,可以根據(jù)市場需要進行調(diào)整,實用性強。 2.2 技術(shù)可行性 (1).工作人員一般都要求掌握計算機技術(shù),會使用各種管理軟件。 (2).員工及工作人員需要熟悉系統(tǒng)的功能和使用方法使系統(tǒng)能夠順利運行。 2.3 經(jīng)濟可行性 (1).企業(yè)有能力承擔系統(tǒng)開發(fā)費用。 (2).新系統(tǒng)將為企業(yè)帶來經(jīng)濟效益。管理系統(tǒng)是一個信息化,智能化和先進理念的集合體,其主要表現(xiàn)就是減少了企業(yè)管理費用和人力開發(fā)。 2.4 操作可行性 該系統(tǒng)是大家熟悉的Windows操作系統(tǒng),簡單明了,操作方便,不需要對數(shù)據(jù)庫進行深入了解,對于那些有一般的計算機知識的人員都可以輕松使用。 2.5 系統(tǒng)流程圖 員工出勤 員工加班 員工錄入 加班信息 出勤信息 基本 信息 基本工資 津貼 獎金 人事管理信息 工資核算 工資管理 工資報表 第三章 系統(tǒng)分析 工資管理系統(tǒng)是一個企業(yè)單位不可或缺的部分,它能為用戶提供充足的信息和快捷的查詢手段,可以高效能、大容量的收集、處理、存儲工資管理信息,能夠為企業(yè)管理人員及時掌握整個工資管理系統(tǒng)的全面情況,提供系統(tǒng)的準確的工資管理信息,可以促進工資管理工作的規(guī)范化及各項管理制度與指標體系的建立與健全,為企業(yè)提供各種工資管理信息,以滿足工資管理的特殊要求。主要任務(wù)是對員工信息和工資信息的輸入、查詢、修改、增加、刪除,迅速準確地完成工資信息的統(tǒng)計計算和匯總,快速打印出報表。 3.1 需求分析 3.1.1 員工基本檔案信息管理功能需求: 凡屬于本部門的員工,都需要對其基本的檔案信息做好記錄存儲處理。以方便高級管理人員時時的了解或查閱其員工基本信息。對員工基本信息的操作包括添加信息、修改信息、查詢信息,同時在數(shù)據(jù)庫中要形成員工基本信息表。 3.1.2 工資管理功能需求: (1).工資計算: 在進行工資計算之前,管理員首先應(yīng)該根據(jù)部門的實際業(yè)務(wù)情況確定好各個部門中所需要的工資項目及分別對工資項目進行計算的方式,然后按照系統(tǒng)工資種類的設(shè)定,對每個員工分別依次實際工資項目構(gòu)成情況,如基本工資、工齡工資、獎金、津貼工資、加班工資等項目,錄入相應(yīng)的工資金額數(shù),再計算出總的實得工資的工資項目。在數(shù)據(jù)的錄入過程中系統(tǒng)會根據(jù)用戶誤輸、錯誤輸入智能提示引導(dǎo)用戶錄入數(shù)據(jù)的正確性。要形成的數(shù)據(jù)庫中的表為員工工資信息表。 (2).工資統(tǒng)計分析: 對員工工資數(shù)據(jù)計算完后,同時要將工資信息統(tǒng)計分析,如匯總統(tǒng)計,工資項目明細數(shù)據(jù)的匯總等,又分為對員工個人工資統(tǒng)計分析、部門工資統(tǒng)計分析、月份工資統(tǒng)計分析。且統(tǒng)計分析以報表形式顯示統(tǒng)計結(jié)果。通過報表的方式反饋到高級管理人員處,這時,在數(shù)據(jù)庫中要形成員工個人工資信息統(tǒng)計表、部門工資信息統(tǒng)計表、統(tǒng)計員工年終獎。 3.1.3 工資查詢功能描述: 在查詢這個模塊里,系統(tǒng)能支持用戶在客戶端按照各種不同的字段名稱進行工資信息的查詢。同時,迅速的響應(yīng)用戶的查詢請求,不同級別的人系統(tǒng)會根據(jù)其權(quán)限級別的大小享有不同程度的功能。不同級別的人不能越權(quán)進行操作。 3.1.4 報表生成與打?。? 在員工領(lǐng)取工資時,能為個人生成個人工資組成及相應(yīng)金額的工資條。同時形成部門月報表。 3.1.5 工資管理系統(tǒng)是針對企事業(yè)單位的大量業(yè)務(wù)處理工作用計算機進行全面現(xiàn)代化管理,主要包括: (a)員工每個工種基本工資的設(shè)定 (b)加班津貼管理,根據(jù)加班時間和類型給予不同的加班津貼; (c)按照不同工種的基本工資情況、員工的考勤情況產(chǎn)生員工的每月的月工資; (d)員工年終獎金的生成,員工的年終獎金計算公式=(員工本年度的工資總和+津貼的總和)/12; (e)企業(yè)工資報表。能夠查詢單個員工的工資情況、每個部門的工資情況、按月的工資統(tǒng)計,并能夠打??; 3.1.6 員工月工資是指各單位在一個月時期內(nèi)支付給本單位全體員工的全部勞動報酬。 員工月工資=基本工資+工齡工資+津貼+加班工資+獎金 3.1.7 系統(tǒng)功能模塊 該系統(tǒng)分為員工管理功能模塊,工資管理功能模塊,工資統(tǒng)計功能模塊,工資報表查詢功能模塊。 工資管理系統(tǒng) 系統(tǒng) 員工查詢 工資管理功能 員工管理功能 基本信息查詢 考勤信息查詢 年終獎查詢 生成工資 工資查詢 職務(wù)工資設(shè)定 刪除員工信息 修改員工信息 添加員工信息 退出 對工資管理系統(tǒng)各個功能模塊的說明: (1).員工管理功能模塊:實現(xiàn)對員工信息的查詢、修改、添加、刪除。 (2).工資管理功能模塊:實現(xiàn)對員工基本工資的設(shè)定與查詢,對員工加班、請假、曠工標準工資的設(shè)定,對員工總工資的計算。 (3).工資統(tǒng)計功能模塊:實現(xiàn)對員工工資的統(tǒng)計功能。 (4).工資報表查詢功能模塊:產(chǎn)生每個員工的月工資報表,提交到相應(yīng)部門。 3.2 數(shù)據(jù)流圖 根據(jù)系統(tǒng)功能的描述,得到工資管理系統(tǒng)的數(shù)據(jù)流圖如下: 1.頂層數(shù)據(jù)流圖與0層數(shù)據(jù)流圖 員 工 工資管理 系統(tǒng) 系統(tǒng)管理員 管理 查詢 瀏覽 圖3.1 頂層數(shù)據(jù)流圖 員工基 本信息 人事管理系統(tǒng) 員工 錄 員工號 入 員工考 勤信息 主管部門 員工信息 考勤 工資計算 員工津貼信息 基本工資信息查詢 基本工資信息 部門 打印工資報表 員工基本信息查詢 設(shè) 定 考 基本工資設(shè)定 勤 工 津貼 資 基本工資 員 工資匯總 公 工 年終獎生成 工 式 信 資 息 信 總 息 工 產(chǎn)生工資報表 資 工資表 輸 出 圖3.2 0層數(shù)據(jù)流圖 2.各層功能模塊數(shù)據(jù)流圖 工種基本 工資 工種表 工種基本 工資 工 員工編號 資 表 圖3.3 工種基本工資設(shè)定 考勤表 員工津貼工資 津貼管理 工 員工編號 資 表 津貼表 圖3.4 員工津貼設(shè)定 年度工資總和 員工年終獎 年終獎生成 工 員工編號 公式 資 表 津貼總和 圖3.5 員工年終獎生成 工種表 工資錄入 查詢部門及員工信息 工 員工編號 資 信 息 考勤表 津貼 工資數(shù)據(jù) 圖3.6 工資核算 考 月工資查詢要求 工 勤 工 資 表 種 表 表 查詢 處理 要求 加工 員工信息 查詢規(guī)則 查詢結(jié)果 查詢要求 輸出到 打印機 津 貼 員工信息表 表 打印 圖3.7 信息查詢 3.3 數(shù)據(jù)字典 數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合 簡要說明工資管理系統(tǒng)的數(shù)據(jù)字典。 (1).名字:員工編號 別名:員工號 描述:員工號唯一地標識數(shù)據(jù)庫中職工信息相關(guān)表中的一個特定員工的關(guān)鍵域 定義:職工號=6{char} 位置:員工信息表 考勤表 工資表 (2).名字:職務(wù) 別名:員工職務(wù) 描述:職務(wù)能唯一地標識數(shù)據(jù)庫中職務(wù)基本工資信息相關(guān)表中的一個特定職務(wù)的關(guān)鍵域 定義:職務(wù)=10{char} 位置:員工信息表 職務(wù)工資表 (3).名字:加班類型 別名:加班類型 描述:加班類型能唯一地標識數(shù)據(jù)庫中員工津貼信息相關(guān)表中的一個特定加班類型的關(guān)鍵域 定義:加班類型=10{char} 位置:員工津貼表 員工考勤表 (4).名字:員工信息表 別名:員工基本信息 描述:用戶指定條件下的員工基本信息情況查詢結(jié)果的信息表 定義:員工信息表=員工號+員工姓名+性別+出生日期+職務(wù)+學(xué)歷+電話號碼+住址+身份證號 位置:輸出到員工工資表 (5).名字:考勤信息表 別名:考勤信息 描述:用戶指定條件下的員工考勤信息查詢結(jié)果的信息表 定義:員工考勤信息表=考勤編號+員工號+員工姓名+加班天數(shù)+請假天數(shù)+曠工天數(shù)+考勤日期+加班類型 位置:輸出到員工工資表 (6)名字:員工津貼表 別名:員工津貼信息表 描述:用戶指定條件下的員工加班類型給予不同加班津貼的信息表 定義:員工津貼表=加班類型+加班津貼 位置:輸出到員工工資表 (7).名字:職務(wù)工資表 別名:職務(wù)基本工資信息表 描述:用戶指定條件下的職務(wù)基本工資信息查詢結(jié)果的信息表 定義:職務(wù)工資表=職務(wù)+基本工資+加班標準+請假標準+曠工標準+ 獎金 位置:輸出到員工工資表 (8).名字:員工工資表 別名:工資信息 描述:記錄工資的組成部分以及員工的工資情況的信息 定義:工資信息報表=員工編號+員工姓名+基本工資+加班津貼+加班費+請假扣款+曠工扣款+獎金+實發(fā)工資 位置:輸出到打印機 第四章 數(shù)據(jù)庫設(shè)計 4.1 概念結(jié)構(gòu)設(shè)計 1. 根據(jù)如上的信息可得到實體之間的關(guān)系E-R圖如下: 出生日期 學(xué)歷 職務(wù) 電話 性別 住址 姓名 身份證號 編號 員工 1 領(lǐng)取 1 基本工資 獎金 工資 加班費 津貼工資 加班工資 請假扣款 曠工扣款 圖4.1 E-R圖 錄入 主管部門 1 天數(shù) 加班標準 屬于 領(lǐng)導(dǎo) 1 1 n 員工基本信息 加班工資 加班 1 設(shè)定 n n 1 1 請假扣款 請假 員工 1 1 1 1 基本工資 1 請假標準 天數(shù) 1 1 獎金 曠工扣款 曠工 1 1 工資計算 1 1 曠工標準 天數(shù) 計算公式 1 年終獎 工資 1 1 實體—— 圖4.2 總E-R圖 4.2 邏輯結(jié)構(gòu)設(shè)計 (1)員工考勤表(Checkstat): 考勤編號(CheckID),員工編號(Eno),員工姓名(Ename),加班天數(shù)(OvertimeDay),曠工天數(shù)(AbsentDay),請假天數(shù)(LeaveDay),考勤日期(CheckDate),加班類型(OvertimeType) (2)員工津貼表(Allowance): 加班類型(OvertimeType),加班津貼(Osubsidy) (3)員工信息表(Emplogee): 員工編號(Eno),員工姓名(Ename),性別(Esex),出生年月(Ebirth),職務(wù)(Eduty),學(xué)歷(Eedu),電話(Etel),身份證號(IDidentity),住址(Eaddr) (4)員工工種表(Wageconfig): 職務(wù)(Eduty),基本工資(BaseWage),加班標準(OverDay),請假標準(LeaveDay),曠工標準(AbsentDay),獎金(Bonus) (5)員工工資表(Wage): 員工編號(Eno),員工姓名(Ename),基本工資(BaseWage),加班津貼(Osubsidy0),加班費(OvertimeWage),請假扣款(LeaveDayWage),曠工扣款(AbsentDayWage),獎金(Bonus),實發(fā)工資(ActWage) 依據(jù)上面的關(guān)系模式,設(shè)計數(shù)據(jù)表如下: (1).員工考勤表(Checkstat):記錄員工的到職情況 列名 數(shù)據(jù)類型 長度 屬性 描述 CheckID int 主鍵 考勤編號 Eno char 6 外鍵 員工編號 Ename Char 15 不允許空 員工姓名 OvertimeDay Smallint 加班天數(shù) AbsentDay Smallint 曠工天數(shù) LeaveDay Smallint 請假天數(shù) CheckDate Smalldatetime 考勤日期 OvertimeType Char 10 加班類型 (2).員工津貼表(Allowance):記錄員工的加班津貼信息 列名 數(shù)據(jù)類型 長度 屬性 描述 OvertimeType Char 10 主鍵 加班類型 Osubsidy Money 不為空 加班津貼 (3).職務(wù)工資表(wageconfig):記錄職務(wù)的基本工資 列名 數(shù)據(jù)類型 長度 屬性 描述 Eduty Char 10 主鍵 職務(wù) BaseWage Money 不為空 基本工資 OvertimeWage Money 不為空 加班標準 LeaveWage Money 不為空 請假標準 AbsentWage Money 不為空 曠工標準 Bonus Money 不為空 獎金 (4)員工信息表(Emplogee):記錄員工的基本信息 列名 數(shù)據(jù)類型 長度 屬性 描述 Eno Char 6 主鍵 員工編號 Ename Char 15 不為空 員工姓名 Esex Char 10 不為空 性別 Ebirth Datetime 出生日期 Eduty Char 10 外鍵 職務(wù) Eedu Char 10 學(xué)歷 Etel nvarchar 50 電話 IDidentity nvarchar 50 身份證號 Eaddr Char 10 地址 (5)員工工資表(Wage):記錄保存計算出來的工資 列名 數(shù)據(jù)類型 長度 屬性 描述 Eno Char 6 主鍵 員工編號 Ename Char 15 不為空 員工姓名 BaseWage Money 不為空 基本工資 Osubsidy Money 不為空 加班津貼 OvertimeDayWage Money 不為空 加班費 LeaveDayWage Money 不為空 請假扣款 AbsentDayWage Money 不為空 曠工扣款 Bonus Money 不為空 獎金 ActWage Money 不為空 實發(fā)工資 4.3 物理結(jié)構(gòu)設(shè)計 1.員工基本信息數(shù)據(jù)表定義 其中,“Eno”是表的主鍵,唯一標識。 “Eduty”是外鍵。 此表取名為“Emplogee”。 2. 員工考勤信息數(shù)據(jù)表定義 其中,“CheckID”是主鍵,唯一標識。“OvertimeType”為外鍵。 此表取名為”Checkstat“。 3. 員工津貼信息數(shù)據(jù)表定義 其中,”O(jiān)vertimeType“為主鍵,唯一標識。此表取名為”Allowance“。 4. 職務(wù)基本工資信息數(shù)據(jù)表定義 其中,”Eduty”為主鍵,唯一標識。此表取名為“Wageconfig” 5. 工資信息數(shù)據(jù)表定義 其中,“Eno”為主鍵,唯一標識。此表取名為“Wage” 4.4 數(shù)據(jù)庫結(jié)構(gòu)的實現(xiàn) 1. 數(shù)據(jù)庫表的創(chuàng)建 (1)創(chuàng)建Wageconfig表: create table Wageconfig (Eduty char(10) primary key, BaseWage money, OverDay money, LeaveDayWage money, AbsentDayWage money, Bonus money, ); (2)創(chuàng)建Allowance表: create table Allowance (OvertimeType char(10) primary key, Osubsidy money, ); (3)創(chuàng)建Checkstat表: create table Checkstat (CheckID int primary key, Eno char(6) not null, Ename char(15) not null, OvertimeDay smallint, AbsentDay smallint, LeaveDay smallint, CheckDate smalldatetime, OvertimeTtpe char(10), ); (4)創(chuàng)建Emplogee表: create table Emplogee (Eno char(6) primary key, Ename char(15) not null, Esex char(10) not null, Ebirth datetime, Eduty char(10), Eedu char(10), Etel nvarchar(50), IDidentity nvarchar(50), Eaddr char(10), ); (5)創(chuàng)建Wage表: create table Wage (WageID int primary key, Eno char(6) not null, Ename char(15) not null, BaseWage money not null , Osubsidy money not null, OvertimeWage money not null, LeaveDayWage money not null, AbsentDayWage money not null, Bonus money not null, ActWage money not null, ); 2. 數(shù)據(jù)庫關(guān)系圖: 第五章 工資管理系統(tǒng)功能實現(xiàn) 5.1 功能界面設(shè)計 5.1 .1系統(tǒng)登錄界面的設(shè)計 輸入用戶名和密碼,點擊登錄可以進入工資管理系統(tǒng)。 5.1.2 系統(tǒng)主界面功能設(shè)計 各個菜單按鈕下的子系統(tǒng)有: 系統(tǒng)(退出) 員工管理(添加員工基本信息,修改員工基本信息,刪除員工基本信息) 工資管理(設(shè)定職務(wù)工資,工資報表生成,月工資查詢,年終獎查詢) 員工查詢(員工基本信息查詢,員工考勤信息查詢) 5.1.3 添加員工基本信息界面設(shè)計 輸入員工編號,姓名,性別,出生日期,職務(wù),學(xué)歷,電話,身份證號碼,住址能將員工的基本信息添加到數(shù)據(jù)庫表中。 5.1.4 刪除員工基本信息界面設(shè)計 輸入員工編號可以刪除數(shù)據(jù)庫表中員工的基本信息。 5.1.5修改員工基本信息界面設(shè)計 輸入員工編號將員工信息顯示出來,然后進行修改。 5.1.6 設(shè)定職務(wù)基本工資界面設(shè)計 輸入職務(wù)名稱將職務(wù)各項標準顯示出來,然后進行重新設(shè)定。 5.1.7. 工資報表生成界面設(shè)計 通過員工編號查出員工姓名,職務(wù),加班天數(shù),請假天數(shù),曠工天數(shù)及加班類型,填入到對應(yīng)框中,然后通過職務(wù)名稱查出基本工資,加班標準,請假標準,曠工標準及獎金,填入對應(yīng)框中,通過加班類型查出加班津貼,最后計算出加班費,請假減薪,曠工減薪,實發(fā)工資。產(chǎn)生員工工資。 5.1.8 員工月工資查詢界面設(shè)計 輸入員工編號可以查詢員工的月工資。 5.1.9 員工年終獎查詢界面設(shè)計 輸入員工編號可以查詢員工的年終獎。 5.1.10 員工基本信息查詢界面設(shè)計 輸入員工編號可以查詢員工基本信息。 5.1.11 員工考勤及員工加班津貼查詢界面設(shè)計 輸入員工編號可以查詢員工考勤信息,輸入員工加班類型可以查詢員工加班津貼。 5.2實現(xiàn)工資管理系統(tǒng)的java代碼 (1)登錄界面代碼 package gzgl; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.Statement; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import gzgl.MainFrame; import gzgl.DBConnect; public class LogOn { public static void main(String[] args){ final JFrame jfrmlogin=new JFrame("系統(tǒng)登錄");//框標題是 系統(tǒng)登錄 jfrmlogin.setSize(400,280);//設(shè)置框的大小 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); jfrmlogin.setLocation((int) (screenSize.width-400)/2,(int)(screenSize.height-300)/2);//設(shè)置框出現(xiàn)的位置 //構(gòu)建面板 p1、p2、p3 //p1->用戶名+文本框 JPanel p1=new JPanel(); p1.add(new JLabel("用戶名:")); final JTextField jtxtuser=new JTextField(14); //p2->密碼+文本框 JPanel p2=new JPanel(); p2.add(new JLabel("密碼:")); final JPasswordField jspwd=new JPasswordField(14); //p3->登陸+退出 兩按鈕 JPanel p3=new JPanel(); JButton jbtok=new JButton("登錄"); JButton jbtexit=new JButton("退出"); //將組件加入到面板中 p1.add(jtxtuser); p2.add(jspwd); p3.add(jbtok); p3.add(jbtexit); //,登陸鍵的監(jiān)聽器設(shè)置 jbtok.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String a,b; a=jtxtuser.getText(); //獲取用戶輸入的信息 //密碼框置為不可見的字符 b=jspwd.getText(); if((a.equals("dmj")==true)&&(b.equals("123456")==true)) { //如果成功則調(diào)用系統(tǒng)程序 隱藏當前登陸框 JOptionPane.showMessageDialog(null,"你已成功登陸系統(tǒng)!","系統(tǒng)提示",JOptionPane.INFORMATION_MESSAGE); MainFrame mf=new MainFrame(); mf.setVisible(true); jfrmlogin.dispose(); } else{ JOptionPane.showMessageDialog(null,"用戶名或密碼不一致,請重新輸入!","系統(tǒng)提示",JOptionPane.ERROR_MESSAGE); //不正確則將用戶框和密碼框都置空 jtxtuser.setText(""); jspwd.setText(""); } } }); jbtexit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null,"您已成功退出系統(tǒng)!","系統(tǒng)提示",JOptionPane.CANCEL_OPTION); System.exit(0); } }); //采用網(wǎng)格布局 jfrmlogin.getContentPane().setLayout(new GridLayout(3,1)); jfrmlogin.getContentPane().add(p1); jfrmlogin.getContentPane().add(p2); jfrmlogin.getContentPane().add(p3); jfrmlogin.setVisible(true); } } (2)主函數(shù)代碼 package gzgl; import java.awt.Dimension; import java.awt.Toolkit; import gzgl.MainFrame; public class Main { public static void main (String[] args) { //創(chuàng)建主界面,調(diào)用MainFrame()構(gòu)造函數(shù)和方法 MainFrame frame=new MainFrame(); //獲取屏幕尺寸 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); //獲取主界面的窗體尺寸 Dimension frameSize =frame.getSize(); //令主界面窗體居中 if(frameSize.height>screenSize.height) frameSize.height=screenSize.height; if(frameSize.width>screenSize.width) frameSize.width=screenSize.width; frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); //令主界面顯示 frame.setVisible(true); } } (3)用JDBC連接java與數(shù)據(jù)庫的代碼 package gzgl; import java.sql.Connection; import java.sql.DriverManager; public class DBConnect { //靜態(tài)方法提高數(shù)據(jù)庫的連接效率 public static Connection getConn() throws Exception { //加載JDBC驅(qū)動 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //以系統(tǒng)默認用戶身份,連接數(shù)據(jù)庫StudentManager return DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=gzglxt","gzglxt","123456"); } } (4)系統(tǒng)主框架界面代碼 package gzgl; import java.awt.Dimension; import java.awt.Font; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import gzgl.AddEmployee; import gzgl.AddSalary; import gzgl.DeleteEmployee; import gzgl.EmployeeHelp; import gzgl.InquireOnGH; import gzgl.InquireOnName; import gzgl.ModifyEmployee; import gzgl.ModifySalary; import gzgl.SalaryInquire; public class MainFrame extends JFrame implements ActionListener{ //創(chuàng)建內(nèi)容面板 JPanel contentPane; //創(chuàng)建菜單欄組件的對象 JMenuBar jMenuBar1=new JMenuBar();//菜單條 JMenu jMenu0=new JMenu("系統(tǒng)");//菜單 JMenuItem jMenuItem0=new JMenuItem("退出");//子菜單 JMenu jMenu1=new JMenu("員工管理"); JMenuItem jMenuItem1=new JMenuItem("添加員工信息"); JMenuItem jMenuItem2=new JMenuItem("修改員工信息"); JMenuItem jMenuItem3=new JMenuItem("刪除員工信息"); JMenu jMenu2=new JMenu("工資管理"); JMenuItem jMenuItem4=new JMenuItem("工資查詢"); JMenuItem jMenuItem5=new JMenuItem("設(shè)定職務(wù)工資"); JMenuItem jMenuItem8=new JMenuItem("工資生成"); JMenuItem jMenuItem9=new JMenuItem("年終獎查詢"); JMenu jMenu3=new JMenu("員工查詢"); JMenuItem jMenuItem6=new JMenuItem("員工信息查詢"); JMenuItem jMenuItem7=new JMenuItem("員工考勤查詢"); //創(chuàng)建標簽,用于顯示信息 JLabel jLabel1=new JLabel(" 歡迎使用工資管理系統(tǒng)"); JLabel jLabel2=new JLabel(" 延安大學(xué)軟件12課程設(shè)計"); //創(chuàng)建構(gòu)造方法 public MainFrame() { try{ //關(guān)閉框架窗口時的默認事件方法 setDefaultCloseOperation(EXIT_ON_CLOSE); //調(diào)用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } } //界面初始化方法 private void jbInit() throws Exception { //創(chuàng)建內(nèi)容面板 contentPane =(JPanel) getContentPane(); //設(shè)置內(nèi)容面板的布局為空 contentPane.setLayout(null); //主框架的大小 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); setLocation((int) (screenSize.width-400)/2,(int)(screenSize.height-360)/2); setSize(new Dimension(400,500)); //主框架的標題 setTitle("工資管理系統(tǒng)"); //添加事件監(jiān)聽器 jMenuItem0.addActionListener(this); jMenuItem1.addActionListener(this); jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuItem5.addActionListener(this); jMenuItem6.addActionListener(this); jMenuItem7.addActionListener(this); jMenuItem8.addActionListener(this); jMenuItem9.addActionListener(this); //添加菜單條到主框架 setJMenuBar(jMenuBar1); //添加菜單到菜單條 jMenuBar1.add(jMenu0); jMenuBar1.add(jMenu1); jMenuBar1.add(jMenu2); jMenuBar1.add(jMenu3); //添加菜單項到菜單 jMenu0.add(jMenuItem0); jMenu1.add(jMenuItem1); jMenu1.add(jMenuItem2); jMenu1.add(jMenuItem3); jMenu2.add(jMenuItem4); jMenu2.add(jMenuItem5); jMenu2.add(jMenuItem8); jMenu2.add(jMenuItem9); jMenu3.add(jMenuItem6); jMenu3.add(jMenuItem7); //添加標簽到主框架內(nèi)容面板 contentPane.add(jLabel1); contentPane.add(jLabel2); //設(shè)置標簽組件的大小和字體 jLabel1.setFont(new java.awt.Font("黑體",Font.BOLD,20)); jLabel1.setBounds(new Rectangle(65,70,275,55)); jLabel2.setFont(new java.awt.Font("黑體",Font.BOLD,16)); jLabel2.setBounds(new Rectangle(90,150,200,35)); } //菜單項事件對應(yīng)的處理方法 public void actionPerformed(ActionEvent actionEvent) { //點擊“系統(tǒng)”菜單下的“退出”菜單項 if(actionEvent.getSource()==jMenuItem0) { JOptionPane.showMessageDialog(null,"您已成功退出系統(tǒng)!","系統(tǒng)提示",JOptionPane.CANCEL_OPTION); System.exit(0); } //點擊“職工管理”菜單下的“添加職工”菜單項 if(actionEvent.getSource()==jMenuItem1) { //創(chuàng)建“添加職工”面板對象 AddEmployee AddEmp=new AddEmployee(); //移除主框架上原有的內(nèi)容 this.remove(this.getContentPane()); //加載“添加職工”面板的對象到主框架 this.setContentPane(AddEmp); //令界面可見 this.setVisible(true); } //點擊“職工管理”菜單下的“修改職工”菜單項 if(actionEvent.getSource()==jMenuItem2) { //創(chuàng)建“修改職工”面板對象 ModifyEmployee ModifyEmp=new ModifyEmployee(); this.remove(this.getContentPane()); //加載“修改職工”面板的對象到主框架 this.setContentPane(ModifyEmp); this.setVisible(true); } //點擊“職工管理”菜單下的“刪除職工”菜單項 if(actionEvent.getSource()==jMenuItem3) { //創(chuàng)建“刪除職工”面板對象 DeleteEmployee DeleteEmp=new DeleteEmployee(); this.remove(this.getContentPane()); //加載“刪除職工”面板的對象到主框架 this.setContentPane(DeleteEmp); this.setVisible(true); } //點擊“工資管理”菜單下的“添加工資”菜單項 if(actionEvent.getSource()==jMenuItem4) { //創(chuàng)建工資添加的面板對象 AddSalary AddSal=new AddSalary(); this.remove(this.getContentPane()); //加載工資添加面板的對象到主框架 this.setContentPane(AddSal); this.setVisible(true); } //點擊“工資管理”菜單下的“修改工資”菜單項 if(actionEvent.getSource()==jMenuItem5) { //創(chuàng)建工資修改的面板對象 ModifySalary ModifySal=new ModifySalary(); this.remove(this.getContentPane()); //加載工資修改面板的對象到主框架 this.setContentPane(ModifySal); this.setVisible(true); } //點擊“工資管理”菜單下的“工資查詢”菜單項 if(actionEvent.getSource()==jMenuItem8) { //創(chuàng)建工資修改的面板對象 SalaryInquire SalaryInq=new SalaryInquire(); this.remove(this.getContentPane()); //加載工資修改面板的對象到主框架 this.setContentPane(SalaryInq); this.setVisible(true); } //點擊“職工查詢”菜單下的“按工號查詢- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 工資管理 系統(tǒng) 設(shè)計 報告
鏈接地址:http://www.820124.com/p-6521907.html