javaweb人事管理系統(tǒng).doc
《javaweb人事管理系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《javaweb人事管理系統(tǒng).doc(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
綜合課程實(shí)習(xí)說(shuō)明書(shū) 課程名稱: 綜合課程實(shí)習(xí) 設(shè)計(jì)題目: 人事管理系統(tǒng) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí): 0601 學(xué)生姓名: 郭威 學(xué) 號(hào): 0612030108 指導(dǎo)教師: 文志強(qiáng) 湖南工業(yè)大學(xué)科技學(xué)院教務(wù)部 制 2010年 1 月 15 日 目 錄 1 引言 1 1.1管理信息系統(tǒng)概述.........................................1 1.2 SQL2005介紹.............................................2 1.3框架介紹.................................................3 2 系統(tǒng)分析.....................................................6 2.1需求分析.................................................6 2.2系統(tǒng)目標(biāo).................................................6 2.3系統(tǒng)概況.................................................6 2.4系統(tǒng)性能要求.............................................6 3系統(tǒng)設(shè)計(jì)......................................................7 3.1概要設(shè)計(jì).................................................7 3.2詳細(xì)設(shè)計(jì)................................................10 4系統(tǒng)實(shí)現(xiàn).....................................................14 4.1編程環(huán)境介紹............................................14 4.2系統(tǒng)運(yùn)行結(jié)果............................................14 5總結(jié)與體會(huì)...................................................25 參考文獻(xiàn)......................................................16 1 引言 人事管理是現(xiàn)代企業(yè)管理工作不可缺少的一部分,是適應(yīng)現(xiàn)代企業(yè)管理尺度的要求、推動(dòng)企業(yè)勞動(dòng)人事管理走向科學(xué)化、規(guī)范化的必要條件。只有人事管理規(guī)范了,才能在其他方面更好的發(fā)展。為了適應(yīng)現(xiàn)代企業(yè)或公司經(jīng)營(yíng)發(fā)展的需要,人事管理也從以前的手工管理逐漸被規(guī)范化的管理信息系統(tǒng)所代替。眾所周知,當(dāng)今社會(huì)為信息社會(huì),世界已進(jìn)入在計(jì)算機(jī)信息管理領(lǐng)域中激烈競(jìng)爭(zhēng)的年代,因此,加強(qiáng)人事管理在單純依靠以手工管理的方法,不僅需要耗用大量的人力、物力、財(cái)力,而且工作效率低,而且難以達(dá)到預(yù)期的目的,為提高企業(yè)工作效率、保證企業(yè)人事管理質(zhì)量、快而準(zhǔn)確地為企業(yè)制定好的經(jīng)營(yíng)方針與決策,,人事管理是當(dāng)今企事業(yè)單位中不可缺少的一部分.它適應(yīng)時(shí)代潮流,順應(yīng)時(shí)代發(fā)展,是現(xiàn)代企業(yè)制度發(fā)展的要求,推動(dòng)企業(yè)人事管理科學(xué)化,規(guī)范化的必要條件“科學(xué)技術(shù)是第一 生產(chǎn)力”,只有人事管理規(guī)范化,其他事情才能辦好。適應(yīng)現(xiàn)代企事業(yè)單位管理規(guī)范化,經(jīng)營(yíng)發(fā)展戰(zhàn)略的需要,人事管理也應(yīng)由原來(lái)的手工管理逐漸被規(guī)范化的信息管理系統(tǒng)所代替。 眾所周知,當(dāng)今社會(huì)是信息社會(huì),特別是在我國(guó)加入WTO之后,信息更是科學(xué)化,迅速化,全球化。因此,要想加強(qiáng)人事管理,單純依靠以前的手工管理,不僅會(huì)浪費(fèi)大量的人力,物力,財(cái)力,而且效率不高,而且很難達(dá)到預(yù)期的目的。所以人事管理信息系統(tǒng)能夠?yàn)楦邔宇I(lǐng)導(dǎo)者提供準(zhǔn)確的人員信息,以便領(lǐng)導(dǎo)者了解企業(yè)各個(gè)部門(mén)的人員構(gòu)成,計(jì)算好人力成本,安排好工作計(jì)劃,使企業(yè)變的更高效,更具有生命力。 1.1 管理信息系統(tǒng)概述 20世紀(jì),隨著全球世界經(jīng)濟(jì)的發(fā)展,眾多經(jīng)濟(jì)學(xué)家紛紛提出了新的管理理論。20世紀(jì)50年代,西蒙提出管理依賴于信息和決策的思想。同時(shí)期的維納 發(fā)表了控制論,他認(rèn)為管理是一個(gè)控制過(guò)程。1958年,蓋爾寫(xiě)到:“管理將以較低的成本得到及時(shí)準(zhǔn)確的信息,做到較好的控制”。這個(gè)時(shí)期,計(jì)算機(jī)開(kāi)始用于會(huì)計(jì)工作。數(shù)據(jù)處理一詞已經(jīng)出現(xiàn)。 管理信息系統(tǒng)的創(chuàng)始人,明尼蘇達(dá)大學(xué)的管理學(xué)教授Gordon B. Davis在1985年給了管理信息系統(tǒng)一個(gè)較完整的定義,即“管理信息系統(tǒng)是一個(gè)利用計(jì)算機(jī)軟硬件資源以及數(shù)據(jù)庫(kù)的人-機(jī)系統(tǒng)。它能提供信息支持企業(yè)或組織的運(yùn)行,管理和決策功能?!边@個(gè)定義全面地說(shuō)明了管理信息系統(tǒng)的目標(biāo),功能和組成,而且反映了管理信息系統(tǒng)在當(dāng)時(shí)達(dá)到的水平。 管理工作的成敗,取決于能否做出有效的決策,而決策的正確程度則取決于信息的質(zhì)量。計(jì)算機(jī)在管理中的應(yīng)用不僅僅只用于數(shù)據(jù)處理,而且輔助決策的工具。計(jì)算機(jī)能把生產(chǎn)、經(jīng)營(yíng)過(guò)程中的巨大數(shù)據(jù)流收集、組織起來(lái),經(jīng)過(guò)處理,轉(zhuǎn)換為對(duì)各部門(mén)不可缺少的數(shù)據(jù),經(jīng)過(guò)分析,使它變?yōu)楦骷?jí)管理人員做出決策具有重要意義的信息。管理方面應(yīng)用計(jì)算機(jī)已經(jīng)發(fā)展成為專門(mén)的管理信息系統(tǒng)(Management Information System,簡(jiǎn)稱MIS)。我國(guó)的管理信息系統(tǒng)應(yīng)用已從單項(xiàng)業(yè)務(wù)的信息管理,迅速向綜合的管理層和決策層的信息管理發(fā)展,應(yīng)用水平日趨提高。 1.2 SQL2005介紹 SQL(Structured Query Language),結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫(kù)都對(duì)SQL語(yǔ)句進(jìn)行了再開(kāi)發(fā)和擴(kuò)展,但是包括Select, Insert, Update, Delete, Create,以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來(lái)完成幾乎所有的數(shù)據(jù)庫(kù)操作。 SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開(kāi)發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。 SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。 SQL Server 2005 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外 SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。這使您的企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的 BI 解決方案,幫助您的團(tuán)隊(duì)通過(guò)記分卡、Dashboard、Web services 和移動(dòng)設(shè)備將數(shù)據(jù)應(yīng)用推向業(yè)務(wù)的各個(gè)領(lǐng)域。 與 Microsoft Visual Studio、Microsoft Office System 以及新的開(kāi)發(fā)工具包(包括 Business Intelligence Development Studio)的緊密集成使 SQL Server 2005 與眾不同。無(wú)論您是開(kāi)發(fā)人員、數(shù)據(jù)庫(kù)管理員、信息工作者還是決策者,SQL Server 2005 都可以為您提供創(chuàng)新的解決方案,幫助您從數(shù)據(jù)中更多地獲益。 1.3 框架介紹 本系統(tǒng)采用Struts+Spring+Hibernate的框架實(shí)現(xiàn)。 SSH=Struts + Spring + Hibernat。其中,Struts進(jìn)行流程控制,Spring進(jìn)行業(yè)務(wù)流轉(zhuǎn),Hibernate進(jìn)行數(shù)據(jù)庫(kù)操作的封裝。 典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問(wèn)及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫(kù)交互,而是通過(guò)組件與中間層建立連接,再由中間層與數(shù)據(jù)庫(kù)交互。 表現(xiàn)層是傳統(tǒng)的JSP技術(shù),自1999年問(wèn)世以來(lái),經(jīng)過(guò)多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。 中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種: Web層,就是MVC模式里面的“C”(controller),負(fù)責(zé)控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC框架采用Struts。 Service層(就是業(yè)務(wù)邏輯層),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO層為基礎(chǔ),通過(guò)對(duì)DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。 DAO層,負(fù)責(zé)與持久化對(duì)象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。 PO,持久化對(duì)象。通過(guò)實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)映射成對(duì)象,很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫(kù)。 Spring的作用貫穿了整個(gè)中間層,將Web層、Service層、DAO層及PO無(wú)縫整合,其數(shù)據(jù)服務(wù)層用來(lái)存放數(shù)據(jù)。 1)Model部分 由ActionForm和JavaBean組成,其中ActionForm用于封裝用戶的請(qǐng)求參數(shù),封裝成ActionForm對(duì)象,該對(duì)象被ActionServlet轉(zhuǎn)發(fā)給Action,Action根據(jù)ActionFrom里面的請(qǐng)求參數(shù)處理用戶的請(qǐng)求。 JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫(kù)訪問(wèn)等。 2)View部分 該部分采用JSP實(shí)現(xiàn)。 Struts提供了豐富的標(biāo)簽庫(kù),通過(guò)標(biāo)簽庫(kù)可以減少腳本的使用,自定義的標(biāo)簽庫(kù)可以實(shí)現(xiàn)與Model的有效交互,并增加了現(xiàn)實(shí)功能。對(duì)應(yīng)上圖的JSP部分。 3)Controller組件 Controller組件有兩個(gè)部分組成——系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。 系統(tǒng)核心控制器,對(duì)應(yīng)上圖的ActionServlet。該控制器由Struts框架提供,繼承HttpServlet類(lèi),因此可以配置成標(biāo)注的Servlet。該控制器負(fù)責(zé)攔截所有的HTTP請(qǐng)求,然后根據(jù)用戶請(qǐng)求決定是否要轉(zhuǎn)給業(yè)務(wù)邏輯控制器。 業(yè)務(wù)邏輯控制器,負(fù)責(zé)處理用戶請(qǐng)求,本身不具備處理能力,而是調(diào)用Model來(lái)完成處理。對(duì)應(yīng)Action部分。 Spring: Spring是一個(gè)開(kāi)源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 目的:解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性 功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能 范圍:任何Java應(yīng)用 簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。 輕量——從大小與開(kāi)銷(xiāo)兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開(kāi)銷(xiāo)也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類(lèi)。 控制反轉(zhuǎn)——Spring通過(guò)一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。 面向切面——Spring提供了面向切面編程的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開(kāi)發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。 容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。 框架——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開(kāi)發(fā)留給了你。 所有Spring的這些特征使你能夠編寫(xiě)更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。 Hibernate: Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。 Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。 業(yè)務(wù)層 Web層 DAO Model Action Form DAOManager ActionServlet DAO 工廠 數(shù) 據(jù) 庫(kù) 視圖層 Jsp,Html 2 系統(tǒng)分析 2.1需求分析 人事管理是每個(gè)企業(yè)必不可少的。人事檔案管理系統(tǒng)一般包括對(duì)人事檔案的統(tǒng)計(jì)、查詢、更新、報(bào)表輸出等功能。 如果人工直接統(tǒng)計(jì)的話,工作量將十分龐大,特別是,如果企業(yè)員工有幾萬(wàn)或幾十萬(wàn)人時(shí),人工統(tǒng)計(jì)將變得不可能想象。 用計(jì)算機(jī)可使人們從繁重而又單調(diào)的統(tǒng)計(jì)運(yùn)算中解脫出來(lái),僅用一些簡(jiǎn)單的操作便可及時(shí)準(zhǔn)確地獲得需要的信息。效率大大高于人工統(tǒng)計(jì)。 我們利用計(jì)算機(jī)替代手工操作建立的人事信息系統(tǒng),即計(jì)算機(jī)人事信息系統(tǒng),其主要功能可以歸納為以下三點(diǎn): 一是可以高效能、大容量地收集、處理、存貯人事信息,大幅度地提高人事管理信息系統(tǒng)的工作質(zhì)量和效率。 二是可以及時(shí)掌握整個(gè)人事管理系統(tǒng)的全面情況,提供系統(tǒng)的準(zhǔn)確的人事信息,可以促進(jìn)人事工作的規(guī)范化及各項(xiàng)管理制度與指標(biāo)體系的建立和健全,從而提高行政管理水平。 三是可以提供各種加工處理了的人事信息,以滿足人事管理的特殊要求,適應(yīng)新形勢(shì)對(duì)教職工隊(duì)伍提出的新要求,幫助選擇方案,實(shí)現(xiàn)優(yōu)化決策。 2.2系統(tǒng)目標(biāo) 通過(guò)人事管理系統(tǒng)可使管理者快速高效地完成企業(yè)日常事務(wù)中的人事工作,降低人事管理的成本,使管理者能集中精力實(shí)現(xiàn)企業(yè)戰(zhàn)略目標(biāo)。人事管理系統(tǒng)的具體目標(biāo)如下: 1) 企業(yè)人事管理的基本信息進(jìn)行管理。 2) 企業(yè)的員工信息(即人事管理功能)。 3) 實(shí)現(xiàn)為個(gè)人提供網(wǎng)絡(luò)工作平臺(tái)的功能。 4) 實(shí)現(xiàn)企業(yè)的應(yīng)聘信息的管理功能。 5) 實(shí)現(xiàn)企業(yè)員工培訓(xùn)的一系列相關(guān)信息的管理。 6) 員工薪酬信息管理。 7) 系統(tǒng)用戶信息的管理。 8) 系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。 2.3 系統(tǒng)功能分析 人事管理系統(tǒng)的主要任務(wù)是對(duì)人事檔案進(jìn)行整理,使得能方便快捷地對(duì)人事檔案進(jìn)行查詢、統(tǒng)計(jì)、更新,并且能按一定要求輸出報(bào)表。 通過(guò)該系統(tǒng),使企業(yè)的人事管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而提高企業(yè)人事管理的效率。 2.4系統(tǒng)性能要求 1)系統(tǒng)安全、可靠; 2)功能齊全; 3)操作方便、界面友好; 4) 易于維護(hù)和擴(kuò)充。 3 系統(tǒng)設(shè)計(jì) 3.1概要設(shè)計(jì) 3.1.1系統(tǒng)流程圖 圖3.1 人事信息管理系統(tǒng)的系統(tǒng)運(yùn)行流程圖 3.1.2系統(tǒng)功能模塊 1)部門(mén)管理:對(duì)部門(mén)信息進(jìn)行添加、查詢及刪除操作。 2)員工管理:對(duì)員工信息進(jìn)行添加、修改、查詢及刪除操作。 3)招聘管理:對(duì)招聘人信息進(jìn)行添加、查詢、刪除及錄用操作。 4)培訓(xùn)管理:對(duì)培訓(xùn)信息進(jìn)行添加、查詢及刪除操作。 5)薪資管理:對(duì)薪資信息進(jìn)行添加、查詢及刪除操作。 6)獎(jiǎng)懲管理:對(duì)員工獎(jiǎng)勵(lì),處罰信息進(jìn)行添加、查詢及刪除操作 3.1.3人事管理系統(tǒng)總體結(jié)構(gòu)圖 人事管理系統(tǒng)總體結(jié)構(gòu)圖如下圖所示: 人事管理系統(tǒng) 獎(jiǎng)懲管理 獎(jiǎng)勵(lì)管理 懲罰管理 招聘管理 員工管理 培訓(xùn)管理 薪資管理 部門(mén)信息管理 企業(yè)人才管理 招聘信息管理 培訓(xùn)信息管理 員工考勤管理 薪酬信息管理 部門(mén)管理 圖3.2人事信息管理系統(tǒng)總體結(jié)構(gòu)圖 3.1.4系統(tǒng)數(shù)據(jù)流圖 管理 查詢 員工 管理員 人事管理系統(tǒng) 員工信息 圖3.3 系統(tǒng)數(shù)據(jù)流圖 3.3.5系統(tǒng)分工 這次課程設(shè)計(jì)我主要做的是培訓(xùn)管理管理模塊、獎(jiǎng)懲管理模塊和員工管理模塊。 3.3.6培訓(xùn)管理模塊ER圖 如圖3.4 培訓(xùn)編號(hào) 培訓(xùn)主題 培訓(xùn) 姓名 培訓(xùn)時(shí)間 培訓(xùn)地點(diǎn) 圖3.4培訓(xùn)管理ER圖 3.3.7獎(jiǎng)罰管理模塊ER圖 如圖3.5 獎(jiǎng)罰主題 獎(jiǎng)罰編號(hào) 獎(jiǎng)懲 獎(jiǎng)金 獎(jiǎng)罰時(shí)間 圖3.5獎(jiǎng)罰管理ER圖 3.3.8員工管理模塊ER圖 如圖3.6 圖3.6員工信息E-R圖 員工信息 編號(hào) 流水號(hào) 姓名 性別 工種號(hào) 出生日期 民族 婚否 政治面貌 住址 電話號(hào)碼 畢業(yè)學(xué)校 就讀專業(yè) 從事工作時(shí)間 備注 創(chuàng)建此員工信息的帳戶名 工作類(lèi)型 部門(mén)號(hào) 從事本公司工作時(shí)間 3.2詳細(xì)設(shè)計(jì) 3.2.1數(shù)據(jù)項(xiàng)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì) 通過(guò)需求分析,可確定系統(tǒng)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下: 1)培訓(xùn)管理模塊: 培訓(xùn)(編號(hào)、姓名、主題、時(shí)間、地點(diǎn)); 如圖3.7 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 是否主鍵 描述 id int 20 是 培訓(xùn)編號(hào) name varchar 50 培訓(xùn)人 theme varchar 100 培訓(xùn)主題 time Date 培訓(xùn)時(shí)間 place varchar 100 培訓(xùn)地點(diǎn) 圖3.7培訓(xùn)數(shù)據(jù)表字典 2) 獎(jiǎng)罰管理模塊: 獎(jiǎng)罰(編號(hào)、主題、獎(jiǎng)金、時(shí)間); 如圖3.8 字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 是否主鍵 描述 id int 20 是 獎(jiǎng)罰編號(hào) theme varchar 100 獎(jiǎng)罰主題 money int 10 獎(jiǎng)金 time Date 獎(jiǎng)罰時(shí)間 圖3.8獎(jiǎng)罰數(shù)據(jù)表字典 3) 員工管理模塊: 員工(編號(hào)、流水號(hào)、姓名、性別、工種號(hào)、出生日期、民族、婚否、政治面貌、住址、電話號(hào)碼、畢業(yè)學(xué)校、就讀專業(yè)、從事工作時(shí)間、部門(mén)號(hào)、工作類(lèi)型、從事公司工作時(shí)間、創(chuàng)建此員工信息的帳戶名、備注); 如圖3.9 圖3.9員工管理數(shù)據(jù)表字典 3.2.2培訓(xùn)管理模塊模塊 培訓(xùn)是員工培訓(xùn)技能的統(tǒng)一信息。系統(tǒng)操作管理員可以對(duì)培訓(xùn)員工進(jìn)行添加、查詢及刪除培訓(xùn)信息的操作。 培訓(xùn)管理 查詢培訓(xùn)信息 更新培訓(xùn)信息 3.10培訓(xùn)模塊結(jié)構(gòu)圖 3.2.3獎(jiǎng)罰管理模塊模塊 獎(jiǎng)罰管理是員工獎(jiǎng)罰的統(tǒng)一信息。管理員對(duì)員工獎(jiǎng)懲信息進(jìn)行添加、查詢及刪除操作。 獎(jiǎng)罰管理 查詢獎(jiǎng)罰信息 更新獎(jiǎng)罰信息 3.11獎(jiǎng)罰管理模塊結(jié)構(gòu)圖 3.2.4員工管理模塊 3.12員工管理模塊圖 4系統(tǒng)實(shí)現(xiàn) 4.1編程環(huán)境介紹 操作系統(tǒng):Microsoft Windows xp; 數(shù)據(jù)庫(kù):SQL server 2005; 開(kāi)發(fā)語(yǔ)言: Java。 4.2系統(tǒng)運(yùn)行結(jié)果 培訓(xùn)管理管理運(yùn)行結(jié)果如下圖。 3.13培訓(xùn)管理運(yùn)行結(jié)果 培訓(xùn)管理結(jié)果實(shí)現(xiàn)關(guān)鍵代碼: package com.wy.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.wy.dao.ObjectDao; import com.wy.form.TrainForm; public class TrainAction extends DispatchAction { private ObjectDao objectDao; public ObjectDao getObjectDao() { return objectDao; } public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } // 培訓(xùn)察看操作 public ActionForward queryTrain(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { List list = objectDao.getObjectList("from TrainForm order by id desc"); request.setAttribute("list", list); return mapping.findForward("queryTrain"); } // 添加培訓(xùn)操作 public ActionForward deleteTrain(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id=request.getParameter("id"); TrainForm trainForm=(TrainForm)objectDao.getObjectForm("from TrainForm where id="+id+""); this.objectDao.deleteObjectForm(trainForm); return this.queryTrain(mapping, form, request, response); } //添加培訓(xùn)操作 public ActionForward saveTrain(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { TrainForm trainForm=(TrainForm)form; this.objectDao.insertObjectForm(trainForm); return mapping.findForward("operationTrain"); } //培訓(xùn)詳細(xì)查詢 public ActionForward queryOneTrain(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id=request.getParameter("id"); TrainForm trainForm=(TrainForm)objectDao.getObjectForm("from TrainForm where id="+id+""); request.setAttribute("trainForm", trainForm); return mapping.findForward("queryOneTrain"); } } 獎(jiǎng)懲管理運(yùn)行結(jié)果如下圖。 3.14獎(jiǎng)罰管理運(yùn)行結(jié)果 獎(jiǎng)懲管理實(shí)現(xiàn)關(guān)鍵代碼: package com.wy.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.wy.dao.ObjectDao; import com.wy.form.CjForm; import com.wy.form.TrainForm; public class CjAction extends DispatchAction { private ObjectDao objectDao; public ObjectDao getObjectDao() { return objectDao; } public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } // 獎(jiǎng)懲察看操作 public ActionForward queryCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String information = "from CjForm order by id desc"; if (request.getParameter("type") != null) { String type = request.getParameter("type").trim(); information = "from CjForm where cj_type=" + type + " order by id desc"; request.setAttribute("type", type); } System.out.println("information:"+information); List list = objectDao.getObjectList(information); request.setAttribute("list", list); return mapping.findForward("queryCj"); } // 刪除獎(jiǎng)懲操作 public ActionForward deleteCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getParameter("id"); if (id == null) { CjForm cjForm = (CjForm) objectDao .getObjectForm("from CjForm where id=" + id + ""); this.objectDao.deleteObjectForm(cjForm); } return this.queryCj(mapping, form, request, response); } // 添加獎(jiǎng)懲操作 public ActionForward saveCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { CjForm cjForm = (CjForm) form; this.objectDao.insertObjectForm(cjForm); return mapping.findForward("operationCj"); } // 獎(jiǎng)懲詳細(xì)查詢 public ActionForward queryOneCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getParameter("id"); CjForm cjForm = (CjForm) objectDao .getObjectForm("from CjForm where id=" + id + ""); request.setAttribute("cjForm", cjForm); return mapping.findForward("queryOneCj"); } } 員工管理運(yùn)行結(jié)果如下圖。 點(diǎn)擊員工管理,頁(yè)面會(huì)跳到員工查詢頁(yè)面。用戶可以根據(jù)分類(lèi)部門(mén)查詢按鈕來(lái)查詢各個(gè)部門(mén)的員工情況,如圖3.14。 3.15員工管理運(yùn)行結(jié)果 管理員可以點(diǎn)擊頁(yè)面右下角的添加員工信息連接來(lái)添加員工信息:如圖3.15。 3.16添加員工運(yùn)行結(jié)果 員工管理模塊便于管理員對(duì)員工的信息進(jìn)行添加刪除與修改查詢。而且可以為普通用戶查詢員工信息給予一個(gè)方便的平臺(tái)。員工管理模塊的流程圖如下3.16所示: 員工管理實(shí)現(xiàn)關(guān)鍵代碼: package com.wy.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.wy.dao.ObjectDao; import com.wy.form.DepartmentForm; import com.wy.form.EmployeeForm; import com.wy.form.InviteJobForm; import com.wy.form.ManagerForm; import com.wy.tool.GetAutoNumber; public class EmployeeAction extends DispatchAction { private ObjectDao objectDao; public ObjectDao getObjectDao() { return objectDao; } public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } // 轉(zhuǎn)向員工錄用的頁(yè)面 public ActionForward forwardEmploye(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { this.saveToken(request); String condition = "from EmployeeForm order by id desc"; List list = objectDao.getObjectList(condition); String autoNumber = "1"; if (list.size() != 0) { EmployeeForm employeeform = (EmployeeForm) list.get(0); Integer em_serialNumber = Integer.valueOf(employeeform.getId()) + 1; autoNumber = String.valueOf(em_serialNumber); } autoNumber = GetAutoNumber.getMaxNuber(autoNumber); request.setAttribute("departmentList", objectDao .getObjectList("from DepartmentForm")); EmployeeForm employeeForm =(EmployeeForm)form; String id = request.getParameter("id"); InviteJobForm inviteJobForm = (InviteJobForm) objectDao .getObjectForm("from InviteJobForm where id=" + id + ""); employeeForm.setEm_serialNumber(autoNumber);//將員工編號(hào)自動(dòng)賦值 employeeForm.setEm_name(inviteJobForm.getName());//將員工姓名賦值 employeeForm.setEm_afterschool(inviteJobForm.getAfterSchool());//將員工的畢業(yè)學(xué)校自動(dòng)賦值 employeeForm.setEm_sex(inviteJobForm.getSex());//將員工的性別賦值 employeeForm.setEm_born(inviteJobForm.getBorn());//將員工的出生日期賦值 employeeForm.setEm_address(inviteJobForm.getAddress());//將員工地址賦值 employeeForm.setEm_culture(inviteJobForm.getTeachSchool());//將員工的文化程度賦值 employeeForm.setEm_tel(inviteJobForm.getTel());//將員工電話賦值 employeeForm.setEm_speciality(inviteJobForm.getSpecialty());//將員工所學(xué)專業(yè)賦值 request.setAttribute("employeeForm", employeeForm); request.setAttribute("id", id); return mapping.findForward("forwardEmploy"); } //員工錄用 public ActionForward addEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { EmployeeForm employeeForm = (EmployeeForm) form; if (this.isTokenValid(request)) { this.resetToken(request); objectDao.insertObjectForm(employeeForm); } else { this.saveToken(request); request.setAttribute("result", "不能重復(fù)提交!?。?); } request.setAttribute("id", request.getParameter("id")); return mapping.findForward("operationEmployee"); } // 員工查看詳細(xì)信息操作 public ActionForward queryOneEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String em_serialNumber = request.getParameter("em_serialNumber"); String condition = "from EmployeeForm where em_serialNumber=" + em_serialNumber + ""; EmployeeForm employeeForm = (EmployeeForm) objectDao .getObjectForm(condition); request.setAttribute("employeeForm", employeeForm); request.setAttribute("departmentList", objectDao .getObjectList("from DepartmentForm")); return mapping.findForward("queryOneEmployee"); } // 員工查看操作 public ActionForward queryEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { List list = null; String condition = "from EmployeeForm order by id desc"; if (request.getParameter("departmentId") != null) { String em_departmentId = request.getParameter("departmentId"); condition = "from EmployeeForm where em_departmentId=" + em_departmentId + " order by id desc"; request.setAttribute("departmentId", em_departmentId); } list = objectDao.getObjectList(condition); request.setAttribute("list", list); request.setAttribute("departmentList", objectDao .getObjectList("from DepartmentForm")); return mapping.findForward("queryEmployee"); } // 轉(zhuǎn)向添加員工的頁(yè)面 public ActionForward forwardInsertEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { this.saveToken(request); String condition = "from EmployeeForm order by id desc"; List list = objectDao.getObjectList(condition); String autoNumber = "1"; if (list.size() != 0) { EmployeeForm employeeform = (EmployeeForm) list.get(0); Integer em_serialNumber = Integer.valueOf(employeeform.getId()) + 1; autoNumber = String.valueOf(em_serialNumber); } autoNumber = GetAutoNumber.getMaxNuber(autoNumber); request.setAttribute("autoNumber", autoNumber); request.setAttribute("departmentList", objectDao .getObjectList("from DepartmentForm")); return mapping.findForward("forwardInsertEmployee"); } // 添加員工 public ActionForward saveEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { EmployeeForm employeeForm = (EmployeeForm) form; if (this.isTokenValid(request)) { this.resetToken(request); objectDao.insertObjectForm(employeeForm); } else { this.saveToken(request); request.setAttribute("result", "不能重復(fù)提交?。?!"); } return queryEmployee(mapping, form, request, response); } // 轉(zhuǎn)向修改員工的頁(yè)面 public ActionForward forwardUpdateEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { this.saveToken(request); String em_serialNumber = request.getParameter("em_serialNumber"); String condition = "from EmployeeForm where em_serialNumber=" + em_serialNumber + ""; EmployeeForm employeeForm = (EmployeeForm)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- javaweb 人事管理系統(tǒng)
鏈接地址:http://www.820124.com/p-6643771.html