數(shù)據(jù)庫(kù)系統(tǒng)概論設(shè)計(jì)課程設(shè)計(jì)--員工薪資管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《數(shù)據(jù)庫(kù)》課程設(shè)計(jì)報(bào)告</p><p>  指導(dǎo)教師: 職稱(chēng): </p><p>  2014年12月12日</p><p> 學(xué)生姓名:學(xué) 號(hào):</p><p> 學(xué) 院:理學(xué)院</p><p> 班 級(jí):</p><

2、p> 題 目:題目11 員工薪資管理系統(tǒng)</p><p><b>  目 錄</b></p><p><b>  目 錄I</b></p><p><b>  一、選題背景1</b></p><p>  1.1 開(kāi)發(fā)工具1</p>&l

3、t;p>  1.2 選題背景1</p><p>  1.3 系統(tǒng)目標(biāo)1</p><p>  二、 員工薪資管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)2</p><p>  2.1 需求分析2</p><p>  2.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)分析3</p><p>  2.2.1 設(shè)計(jì)策略3</p><p&g

4、t;  2.2.2 系統(tǒng)總體結(jié)構(gòu)圖3</p><p>  2.2.3 系統(tǒng)詳細(xì)設(shè)計(jì)說(shuō)明4</p><p>  2.2 概念結(jié)構(gòu)設(shè)計(jì)4</p><p>  2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)6</p><p>  2.3.1 主要實(shí)體6</p><p>  2.3.2 實(shí)體間的聯(lián)系7</p><

5、;p>  2.3.3 完整性約束8</p><p>  2.4 數(shù)據(jù)字典9</p><p>  2.5 問(wèn)題及解決方法11</p><p>  2.5.1 創(chuàng)建數(shù)據(jù)庫(kù)11</p><p>  2.5.2 利用JAVA實(shí)現(xiàn)數(shù)據(jù)庫(kù)可視化操作12</p><p><b>  三、總結(jié)21<

6、;/b></p><p>  四、課程設(shè)計(jì)心得體會(huì)22</p><p><b>  參考文獻(xiàn)23</b></p><p><b>  源程序1</b></p><p><b>  一、選題背景</b></p><p><b>  1

7、.1 開(kāi)發(fā)工具</b></p><p>  本程序硬件要求能運(yùn)行Windows9.X操作系統(tǒng)的微機(jī)系統(tǒng),JAVA程序設(shè)計(jì)語(yǔ)言及相應(yīng)的集成開(kāi)發(fā)環(huán)境,J2SDK和ECLIPSE開(kāi)發(fā)工具,MYSQL。</p><p><b>  1.2 選題背景</b></p><p>  隨著企業(yè)人員數(shù)量增加,企業(yè)的工資管理工作也變得越來(lái)越復(fù)雜。早

8、期的工資統(tǒng)計(jì)和發(fā)放都是使用人工方式處理紙質(zhì)材料,不僅花費(fèi)財(cái)務(wù)人員大量的時(shí)間且不易保存,往往由于個(gè)人的因素抄寫(xiě)不慎或計(jì)算疏忽,出現(xiàn)工資發(fā)放錯(cuò)誤的現(xiàn)象。早期工資管理多采取紙質(zhì)材料和具有較強(qiáng)的時(shí)間限制。隨著我國(guó)國(guó)民經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展和具有中國(guó)特色的社會(huì)主義市場(chǎng)經(jīng)濟(jì)體制的迅速完善,各個(gè)行業(yè)都在積極使用現(xiàn)代化的手段,不斷改善服務(wù)質(zhì)量,提高工作效率,這些都在很大程度上給企業(yè)提出越來(lái)越嚴(yán)峻的挑戰(zhàn),對(duì)企業(yè)體系無(wú)論是在行政職能、企業(yè)管理水平以及優(yōu)質(zhì)服務(wù)上

9、都提出更高的要求。建設(shè)一個(gè)科學(xué)高效的信息管理系統(tǒng)是解決這一問(wèn)題的必由之路。企業(yè)內(nèi)部財(cái)務(wù)管理是該企業(yè)運(yùn)用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟(jì)效益的主要因素之一。工資管理作為企業(yè)內(nèi)部的一種財(cái)務(wù)管理也是如此,由于企業(yè)職工人數(shù)較多,每一位職工的具體實(shí)際情況也不盡相同,各項(xiàng)工資條款的發(fā)放,如果沒(méi)有一個(gè)完整的管理系統(tǒng)對(duì)企業(yè)和員工的工作都帶來(lái)許多的不便?;谝陨显颍髽I(yè)工資管理系統(tǒng)使用電腦安全保存、快速計(jì)算、全面統(tǒng)計(jì),實(shí)現(xiàn)工資管理的系統(tǒng)化、規(guī)范化、自動(dòng)化。

10、</p><p><b>  1.3 系統(tǒng)目標(biāo)</b></p><p>  員工薪資管理系統(tǒng)的主要目的是利用計(jì)算機(jī)對(duì)員工的各種工資信息進(jìn)行日常的管理,如查詢(xún)、修改、添加、刪除以及存儲(chǔ)等,迅速準(zhǔn)確地完成各種工資信息的統(tǒng)計(jì)計(jì)算和匯總工作,針對(duì)系統(tǒng)服務(wù)對(duì)象的具體要求,設(shè)計(jì)了企業(yè)工資管理系統(tǒng)。企業(yè)工資管理系統(tǒng)主要有以下幾大功能:</p><p>  

11、(1)對(duì)單位人員的變動(dòng)進(jìn)行處理:一個(gè)單位的職工不會(huì)是一成不變的,總是在不斷的變化:有調(diào)出、有調(diào)入、也有職工在本單位內(nèi)部調(diào)動(dòng)。因此,設(shè)計(jì)系統(tǒng)是應(yīng)考慮到這些情況。</p><p> ?。?)對(duì)職工的工資進(jìn)行計(jì)算、修改:可以對(duì)職工的工資檔案進(jìn)行個(gè)別、部分和批量修改,同時(shí),能對(duì)各職工的工資進(jìn)行計(jì)算,即計(jì)算基本工資、崗位工資、水電費(fèi)及實(shí)發(fā)金額等。</p><p>  (3) 查詢(xún)統(tǒng)計(jì)功能:要求即可以

12、單項(xiàng)查詢(xún),比如查看某個(gè)職工的工資情況等;也可以多項(xiàng)查詢(xún),比如某個(gè)部門(mén)所有的員工的工資信息。</p><p>  (4)對(duì)用戶(hù)管理功能:一個(gè)系統(tǒng)的應(yīng)用有管理員和普通用戶(hù),他們對(duì)系統(tǒng)的權(quán)限受到限制。</p><p>  員工薪資管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p><b>  2.1 需求分析</b></p><p>  本

13、系統(tǒng)定位于中小型單位,暫時(shí)考慮單機(jī)環(huán)境下的實(shí)現(xiàn)。</p><p>  本系統(tǒng)采用會(huì)員式管理,每個(gè)屬于該單位的職工都有一個(gè)屬于自己的用戶(hù)名和密碼,通過(guò)該用戶(hù)名和密碼就可以登陸系統(tǒng)執(zhí)行基于自己權(quán)限范圍內(nèi)的操作,系統(tǒng)功能應(yīng)包括員工基本信息的輸入輸出與修改、各部門(mén)的基本信息輸入修改、員工工資的基本情況、總工資的計(jì)算、統(tǒng)計(jì)分析。員工可以通過(guò)此系統(tǒng)查詢(xún)自己本月的基本工資,福利,獎(jiǎng)金以及出去失業(yè)保險(xiǎn)可住房公積金后的工資。系統(tǒng)界

14、面盡量做到簡(jiǎn)潔友好易用,在實(shí)現(xiàn)基本功能的基礎(chǔ)上使其新穎美觀。</p><p>  該工資管理系統(tǒng)主要是由基本資料、工資登記、工資查詢(xún)、系統(tǒng)管理幾個(gè)部分組成的,主要用于單位工資發(fā)放管理。</p><p>  (1)基本資料包括員工基本資料和部門(mén)的基本資料:</p><p>  員工基本資料:可以輸入該員工的編號(hào)、姓名、性別、出生日期、位于哪個(gè)部門(mén)、所處的職業(yè)。<

15、/p><p>  部門(mén)基本資料:可以輸入部門(mén)的編號(hào)、名稱(chēng)和員工人數(shù)。</p><p> ?。?)工資登記包括工資登記和清數(shù)據(jù):可以錄入員工本月的基本工資、獎(jiǎng)金、福利、失業(yè)保險(xiǎn)和住房公積金,可以清除以前的數(shù)據(jù)。</p><p> ?。?)工資查詢(xún)包括員工工資匯總查詢(xún)。</p><p> ?。?)分類(lèi)查詢(xún)包括按部門(mén)查詢(xún)和按日期查詢(xún)。</p>

16、;<p> ?。?)系統(tǒng)管理包括用戶(hù)登錄、數(shù)據(jù)備份、數(shù)據(jù)初始化。</p><p>  2.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)分析</p><p>  2.2.1 設(shè)計(jì)策略</p><p>  由于該系統(tǒng)主要用于員工的工資管理,其中工資的錄入、計(jì)算、扣除與查詢(xún),人員的增刪減是主要功能,所以應(yīng)用程序主要就是實(shí)現(xiàn)這幾個(gè)功能。</p><p>  2.2

17、.2 系統(tǒng)總體結(jié)構(gòu)圖</p><p>  圖2—1 系統(tǒng)總體結(jié)構(gòu)圖</p><p>  2.2.3 系統(tǒng)詳細(xì)設(shè)計(jì)說(shuō)明</p><p> ?、賳T工基本信息表的創(chuàng)建;</p><p> ?、诓块T(mén)基本信息表的創(chuàng)建;</p><p> ?、蹎T工工資基本信息表的創(chuàng)建;</p><p> ?、苡脩?hù)名密碼表的

18、創(chuàng)建:(這個(gè)表保存?zhèn)€用戶(hù)的用戶(hù)名和密碼,便于登陸時(shí)核對(duì))。</p><p>  2.2 概念結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫(kù)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。根據(jù)用戶(hù)需求設(shè)計(jì)數(shù)據(jù)庫(kù)的概念,數(shù)據(jù)模型。我們首先要將現(xiàn)實(shí)世界中的客觀對(duì)象首先抽象為不依賴(lài)任何具體機(jī)器的信息結(jié)構(gòu),這種信息結(jié)構(gòu)不是DBMS支持的數(shù)據(jù)模型,而是概念級(jí)模型。然后再把概念模型轉(zhuǎn)換為具體機(jī)器上DBMS支持的數(shù)據(jù)模型。<

19、;/p><p>  概念模型是對(duì)現(xiàn)實(shí)世界的抽象和概括。它真實(shí),充分地反映了現(xiàn)實(shí)世界中的事物和事物之間的聯(lián)系,能滿(mǎn)足用戶(hù)對(duì)數(shù)據(jù)的處理要求。由于其簡(jiǎn)潔、明晰、獨(dú)立于機(jī)器,很容易理解,因此可以用概念模型和不熟悉計(jì)算機(jī)的用戶(hù)交換意見(jiàn),使用戶(hù)能積極參與數(shù)據(jù)庫(kù)的設(shè)計(jì)工作。概念模型易于變動(dòng),還很容易向各種數(shù)據(jù)模型轉(zhuǎn)換。</p><p>  概念模型的基本概念涉及的主要有7個(gè),分別為實(shí)體、屬性、碼、域、實(shí)體型

20、、實(shí)體集、聯(lián)系。</p><p>  E-R圖是概念模型最常用的表示方法,在E-R圖中:</p><p>  1)用長(zhǎng)方形表示實(shí)體型,在框內(nèi)寫(xiě)上實(shí)體名。</p><p>  2)用菱形表示實(shí)體間的聯(lián)系,菱形框內(nèi)寫(xiě)上聯(lián)系名,用無(wú)向邊把菱形分別與有關(guān)實(shí)體相連,在無(wú)向邊旁標(biāo)上聯(lián)系的類(lèi)型。若實(shí)體間的聯(lián)系也具有屬性,則把屬性和菱形也用無(wú)向邊連上。</p><

21、;p>  圖2—2 員工實(shí)體關(guān)系圖</p><p>  圖2—3 部門(mén)實(shí)體關(guān)系圖</p><p>  圖2—4 工資實(shí)體關(guān)系圖</p><p>  圖2—5 部門(mén)——員工實(shí)體關(guān)系圖</p><p>  圖2—6 員工——工資實(shí)體關(guān)系圖</p><p>  2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</p><

22、;p>  2.3.1 主要實(shí)體</p><p>  根據(jù)上述概念模型設(shè)計(jì)得出的E—R圖,我們可以得出系統(tǒng)中涉及的主要實(shí)體有3個(gè),其結(jié)構(gòu)如下:</p><p>  1、員工(職工號(hào),姓名、性別、年齡、單位和職業(yè))</p><p>  2、部門(mén)(部門(mén)編號(hào),部門(mén)名稱(chēng))</p><p>  3、工資(職工號(hào),日期,基本工資,獎(jiǎng)勵(lì)工資,福利補(bǔ)貼,

23、住房公積金,失業(yè)保險(xiǎn))</p><p>  2.3.2 實(shí)體間的聯(lián)系</p><p>  工資管理系統(tǒng)中實(shí)體之間有6個(gè)聯(lián)系,其關(guān)系如下:</p><p>  1、具有1關(guān)系:?jiǎn)T工和獎(jiǎng)金的關(guān)系是1:N,N個(gè)職位相同的員工具有相同的獎(jiǎng)金基數(shù)。</p><p>  2、工薪關(guān)系:?jiǎn)T工和工資單的關(guān)系是1:N,每個(gè)員工每個(gè)月都有一張工資單。</p

24、><p>  3、屬于關(guān)系:?jiǎn)T工和部門(mén)的關(guān)系是N:1,一個(gè)部門(mén)可以有多個(gè)員工。</p><p>  4、聘用關(guān)系:?jiǎn)T工和職務(wù)的關(guān)系是N:1,一個(gè)職務(wù)可以聘用多個(gè)員工。</p><p>  5、設(shè)置關(guān)系:部門(mén)和職務(wù)的關(guān)系是M:N,一個(gè)部門(mén)可以設(shè)置多個(gè)職務(wù),相同的職務(wù)也可以設(shè)置在多個(gè)部門(mén)。</p><p>  根據(jù)以上邏輯結(jié)構(gòu)分析我們可以知道:一個(gè)部

25、門(mén)有多個(gè)員工,每個(gè)員工都有工資,工資又由基本工資等組成,其關(guān)系模式為:</p><p>  表2—1 圖表、視圖匯總</p><p>  2.3.3 完整性約束</p><p>  表2—2 員工基本表</p><p>  表2—3 科室基本表</p><p>  表2—4 工資基本表</p><p

26、><b>  2.4 數(shù)據(jù)字典</b></p><p>  繪制數(shù)據(jù)流圖以后,只是對(duì)數(shù)據(jù)處理和彼此之間的聯(lián)系進(jìn)行了說(shuō)明,為了進(jìn)一步明確數(shù)據(jù)的詳細(xì)內(nèi)容和數(shù)據(jù)加工過(guò)程,應(yīng)將數(shù)據(jù)流圖中的各元素作出詳細(xì)的定義和說(shuō)明,以便于此后系統(tǒng)設(shè)計(jì)的進(jìn)行。</p><p>  數(shù)據(jù)字典描述的主要內(nèi)容有:數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理、外部實(shí)體。數(shù)據(jù)流程圖配以數(shù)據(jù)詞典,就可以從圖

27、形和文字兩個(gè)方面對(duì)系統(tǒng)的邏輯模型進(jìn)行描述,從而形成一個(gè)完整的說(shuō)明。</p><p>  在系統(tǒng)分析中會(huì)產(chǎn)生大量的數(shù)據(jù)詞典,以下將以圖表形式分別列出系統(tǒng)中代表性的數(shù)據(jù)流、數(shù)據(jù)元素、數(shù)據(jù)存儲(chǔ)和外部實(shí)體以及所有的加工處理。</p><p>  表2—5 員工薪資管理系統(tǒng)數(shù)據(jù)字典</p><p>  2.5 問(wèn)題及解決方法</p><p>  2.

28、5.1 創(chuàng)建數(shù)據(jù)庫(kù)</p><p>  1.創(chuàng)建員工基本信息表</p><p>  create table tmp</p><p>  (Yno int primary key,</p><p>  Yname char(10) not null,</p><p>  Ysex char(2) check(Ysex

29、in('男','女')),</p><p>  Yage smallint check(Yage between 18 and 65),</p><p>  Depno int,</p><p>  Yjob char(20),</p><p>  FOREIGN KEY (Depno) REFERENCES

30、Dep(Depno)</p><p><b>  );</b></p><p><b>  2.創(chuàng)建部門(mén)信息表</b></p><p>  insert into Dep </p><p><b>  values</b></p><p>  (01,&

31、#39;經(jīng)理室'),</p><p>  (02,'財(cái)務(wù)科'),</p><p>  (03,'技術(shù)科'),</p><p>  (04,'銷(xiāo)售科');</p><p><b>  3.創(chuàng)建員工薪資表</b></p><p>  create

32、 table Mon</p><p>  (Yno int primary key,</p><p>  Date char(10) not null,</p><p><b>  Mjb int,</b></p><p><b>  Mfl int,</b></p><p>

33、;<b>  Mjl int,</b></p><p><b>  Msy int,</b></p><p><b>  Mzf int,</b></p><p>  FOREIGN KEY (Yno) REFERENCES tmp(Yno),</p><p>  constr

34、aint c1 check(Mjb+Mfl+Mjl-Msy-Mzf<=3000)</p><p><b>  );</b></p><p><b>  4.表的結(jié)構(gòu)</b></p><p><b>  員工基本信息結(jié)構(gòu):</b></p><p><b>  部門(mén)

35、信息表:</b></p><p><b>  員工薪資表:</b></p><p>  2.5.2 利用JAVA實(shí)現(xiàn)數(shù)據(jù)庫(kù)可視化操作</p><p><b>  創(chuàng)建圖形界面</b></p><p><b>  gonzi(){</b></p><

36、;p>  try{//連接數(shù)據(jù)庫(kù)</p><p>  String url="jdbc:mysql://localhost:3306/ygxz";</p><p>  String user="root";</p><p>  String pwd="huangxin";</p><

37、;p>  //加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序</p><p>  DriverManager.registerDriver(new com.mysql.jdbc.Driver());</p><p>  //Class.forYname("com.mysql.jdbc.Driver").newInstance();</p><p><b> 

38、 //連接數(shù)據(jù)庫(kù)</b></p><p>  cn=DriverManager.getConnection(url,user,pwd);</p><p><b>  }</b></p><p>  catch(SQLException e1){</p><p>  msg.setText("數(shù)據(jù)庫(kù)連

39、接錯(cuò)誤!");</p><p><b>  }</b></p><p><b>  //標(biāo)簽</b></p><p>  e1 = new Label("員工編號(hào)");</p><p>  e2 = new Label("姓名");</p>

40、;<p>  e3 = new Label("性別");</p><p>  e4 = new Label("年齡");</p><p>  e5 = new Label("所屬部門(mén)編號(hào)");</p><p>  e6 = new Label("職業(yè)");</p>

41、;<p>  e7 = new Label("日期");</p><p>  e8 = new Label("基本工資");</p><p>  e9 = new Label("福利補(bǔ)貼");</p><p>  e10 = new Label("獎(jiǎng)金工資");</p

42、><p>  e11 = new Label("失業(yè)保險(xiǎn)");</p><p>  e12 = new Label("住房公積金");</p><p>  msg = new Label(" ");</p><p>  /

43、/msg2 = new Label(" ");</p><p><b>  //輸入框</b></p><p>  text1 =

44、new TextField("",6);</p><p>  text2 = new TextField("",3);</p><p>  text3 = new TextField("",2);</p><p>  text4 = new TextField("",2);</p&

45、gt;<p>  text5 = new TextField("",2);</p><p>  text6 = new TextField("",4);</p><p>  text7 = new TextField("",8);</p><p>  text8 = new TextFiel

46、d("",4);</p><p>  text9 = new TextField("",4);</p><p>  text10 = new TextField("",4);</p><p>  text11 = new TextField("",4);</p><p

47、>  text12 = new TextField("",4);</p><p><b>  //按鈕</b></p><p>  btn1 = new Button("添加");</p><p>  btn2 = new Button("刪除");</p><

48、;p>  btn3 = new Button("查詢(xún)");</p><p>  btn4 = new Button("修改");</p><p>  ta = new TextArea(20,100);//20列,100行</p><p>  //界面布局,添加元素</p><p><b&g

49、t;  add(msg);</b></p><p>  p1 = new Panel();p2 = new Panel();p3 = new Panel();p4 = new Panel();</p><p>  p1.add(e1);p1.add(text1);</p><p>  p1.add(e2);p1.add(text2);</p>

50、<p>  p1.add(e3);p1.add(text3);</p><p>  p1.add(e4);p1.add(text4);</p><p>  p1.add(e5);p1.add(text5);</p><p>  p1.add(e6);p1.add(text6);</p><p><b>  add(p1

51、);</b></p><p>  p2.add(e7);p2.add(text7);</p><p>  p2.add(e8);p2.add(text8);</p><p>  p2.add(e9);p2.add(text9);</p><p>  p2.add(e10);p2.add(text10);</p>&l

52、t;p>  p2.add(e11);p2.add(text11);</p><p>  p2.add(e12);p2.add(text12);</p><p><b>  add(p2);</b></p><p>  p3.add(btn1);</p><p>  p3.add(btn2);</p>

53、<p>  p3.add(btn3);</p><p>  p3.add(btn4);</p><p><b>  add(p3);</b></p><p>  p4.add(ta);add(p4);</p><p>  //將面板的布局設(shè)置為FlowLayout,面板上增加的組件默認(rèn)是按照從左到右順序排列&l

54、t;/p><p>  setLayout(new FlowLayout());</p><p>  btn1.addActionListener(new Btn1());</p><p>  btn2.addActionListener(new Btn2());</p><p>  btn3.addActionListener(new Btn3(

55、));</p><p>  btn4.addActionListener(new Btn4());</p><p>  addWindowListener(new WinClose());</p><p>  setSize(800,1000);</p><p>  setTitle("員工薪資管理系統(tǒng)");</p

56、><p>  setVisible(true);//顯示界面</p><p><b>  }</b></p><p><b>  圖形界面如下:</b></p><p>  界面在保證可以概括實(shí)現(xiàn)各種功能的前提下力求簡(jiǎn)潔,實(shí)現(xiàn)可視化操作。</p><p><b>  添

57、加信息功能</b></p><p>  class Btn1 implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e){</p><p><b>  try{</b></p><p>  ssql = &qu

58、ot;insert into tmp values(?,?,?,?,?,?)";</p><p>  ps=cn.prepareStatement(ssql);</p><p>  demo.setYno(Integer.parseInt(text1.getText()));</p><p>  ps.setInt(1, demo.getYno());&l

59、t;/p><p>  demo.setYname(text2.getText());</p><p>  ps.setString(2, demo.getYname());</p><p>  demo.setYsex(text3.getText());</p><p>  ps.setString(3, demo.getYsex());<

60、/p><p>  demo.setYage(Integer.parseInt(text4.getText()));</p><p>  ps.setInt(4, demo.getYage());</p><p>  demo.setDepno(Integer.parseInt(text5.getText()));</p><p>  ps.set

61、Int(5, demo.getDepno());</p><p>  demo.setYjob(text6.getText());</p><p>  ps.setString(6, demo.getYjob());</p><p>  ps.executeUpdate();//執(zhí)行insert語(yǔ)句</p><p><b>  }&

62、lt;/b></p><p>  catch(Exception e2){</p><p>  msg.setText("添加記錄出錯(cuò)!");</p><p>  text1.setText("");</p><p>  text2.setText("");</p>

63、<p>  text3.setText("");</p><p>  text4.setText("");</p><p>  text5.setText("");</p><p>  text6.setText("");</p><p>  tex

64、t1.requestFocus();</p><p><b>  }</b></p><p><b>  try{</b></p><p>  ssql2 = "insert into Mon values(?,?,?,?,?,?,?)";</p><p>  ps2=cn.pr

65、epareStatement(ssql2);</p><p>  demo2.setYno(Integer.parseInt(text1.getText()));</p><p>  ps2.setInt(1, demo2.getYno());</p><p>  demo2.setDate(text7.getText());</p><p>

66、;  ps2.setString(2, demo2.getDate());</p><p>  demo2.setMjb(Integer.parseInt(text8.getText()));</p><p>  ps2.setInt(3, demo2.getMjb());</p><p>  demo2.setMfl(Integer.parseInt(text9.

67、getText()));</p><p>  ps2.setInt(4, demo2.getMfl());</p><p>  demo2.setMjl(Integer.parseInt(text10.getText()));</p><p>  ps2.setInt(5, demo2.getMjl());</p><p>  demo2.s

68、etMsy(Integer.parseInt(text11.getText()));</p><p>  ps2.setInt(6, demo2.getMsy());</p><p>  demo2.setMzf(Integer.parseInt(text12.getText()));</p><p>  ps2.setInt(7, demo2.getMzf());

69、</p><p>  ps2.executeUpdate();//執(zhí)行insert語(yǔ)句</p><p><b>  }</b></p><p>  catch(Exception e2){</p><p>  msg.setText("添加記錄出錯(cuò)!");</p><p> 

70、 text7.setText("");</p><p>  text8.setText("");</p><p>  text9.setText("");</p><p>  text10.setText("");</p><p>  text11.setText

71、("");</p><p>  text12.setText("");</p><p>  text1.requestFocus();</p><p><b>  }</b></p><p><b>  }</b></p><p>&l

72、t;b>  }</b></p><p><b>  界面如下:</b></p><p><b>  結(jié)果如下:</b></p><p><b>  3.查詢(xún)功能:</b></p><p><b>  (1)查詢(xún)?nèi)浚?lt;/b></p&

73、gt;<p>  if(text1.getText().equals("")&&text2.getText().equals("")){</p><p>  ssql= "SELECT tmp.Yno,yname,ysex,yage,yjob,Depname,date,mjb,mfl,mjl,msy,mzf FROM tmp,mon,

74、dep WHERE tmp.yno=mon.yno and tmp.Depno=Dep.Depno;";</p><p>  ps=cn.prepareStatement(ssql);</p><p>  rs=ps.executeQuery();//執(zhí)行select語(yǔ)句</p><p>  ta.setText("");</p&

75、gt;<p>  while(rs.next()){</p><p>  ta.append(rs.getString(1)+"\t");</p><p>  ta.append(rs.getString(2)+"\t");</p><p>  ta.append(rs.getString(3)+"\t

76、");</p><p>  ta.append(rs.getString(4)+"\t");</p><p>  ta.append(rs.getString(5)+"\t");</p><p>  ta.append(rs.getString(6)+"\t");</p><p

77、>  ta.append(rs.getString(7)+"\t");</p><p>  ta.append(rs.getString(8)+"\t");</p><p>  ta.append(rs.getString(9)+"\t");</p><p>  ta.append(rs.getStr

78、ing(10)+"\t");</p><p>  ta.append(rs.getString(11)+"\t");</p><p>  ta.append(rs.getString(12)+"\n");</p><p><b>  }</b></p><p>

79、<b>  查詢(xún)結(jié)果:</b></p><p><b>  按員工號(hào)查詢(xún):</b></p><p>  //按員工號(hào)查找信息</p><p>  if(text1.getText().equals("")==false)</p><p><b>  {</

80、b></p><p>  ssql = "SELECT tmp.yno,yname,ysex,yage,yjob,Depname,date,mjb,mfl,mjl,msy,mzf FROM tmp,mon,dep WHERE tmp.yno=mon.yno and tmp.Depno=Dep.Depno and tmp.yno=?;";</p><p>  ps=

81、cn.prepareStatement(ssql);</p><p>  ps.setString(1, text1.getText());</p><p>  rs=ps.executeQuery();//執(zhí)行select語(yǔ)句</p><p>  if(rs.next()!=false){ta.setText(rs.getString(1)+&qu

82、ot;\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getString(5)+"\t"+rs.getString(6)+"\t"+rs.getString(7)+"\t"+rs.getString(8)+"

83、\t"+rs.getString(9)+"\t"+rs.getString(10)+"\t"+rs.getString(11)+"\t"+rs.getString(12)+"\n");</p><p><b>  }</b></p><p><b>  else{<

84、;/b></p><p>  ta.setText("沒(méi)有此人信息!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié)果:</b></p><p><b

85、>  按姓名查詢(xún):</b></p><p><b>  //按姓名查找信息</b></p><p>  if(text2.getText().equals("")==false)</p><p><b>  {</b></p><p>  ssql = &quo

86、t;SELECT tmp.yno,yname,ysex,yage,yjob,Depname,date,mjb,mfl,mjl,msy,mzf FROM tmp,mon,dep WHERE tmp.yno=mon.yno and tmp.Depno=Dep.Depno and tmp.yname=?;";</p><p>  ps=cn.prepareStatement(ssql);</p>

87、<p>  ps.setString(1, text2.getText());</p><p>  rs=ps.executeQuery();//執(zhí)行select語(yǔ)句</p><p>  if(rs.next()!=false){ta.setText(rs.getString(1)+"\t"+rs.getString(2)+"\

88、t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getString(5)+"\t"+rs.getString(6)+"\t"+rs.getString(7)+"\t"+rs.getString(8)+"\t"+rs.getString(9)+"\t&q

89、uot;+rs.getString(10)+"\t"+rs.getString(11)+"\t"+rs.getString(12)+"\n");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  ta.se

90、tText("沒(méi)有此人信息!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié)果:</b></p><p><b>  刪除功能</b></p><

91、;p>  class Btn2 implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e){</p><p><b>  try{</b></p><p>  ssql2 = "delete from Mon Where Yno

92、 =?; ";</p><p>  ps2=cn.prepareStatement(ssql2);</p><p>  ps2.setInt(1, Integer.parseInt(text1.getText()));</p><p>  text1.setText(" ");</p><p>  ps2.ex

93、ecuteUpdate();//執(zhí)行update語(yǔ)句</p><p>  //清空各輸入框</p><p>  msg.setText("刪除成功");</p><p>  text1.requestFocus();//焦點(diǎn)移到第一個(gè)輸入框</p><p><b>  }</b>&

94、lt;/p><p>  catch(Exception e2){</p><p>  msg.setText("該員工不存在!");</p><p>  text1.requestFocus();</p><p><b>  }</b></p><p><b>  try

95、{</b></p><p>  ssql = "delete from tmp Where Yno = ? ;";</p><p>  ps=cn.prepareStatement(ssql);</p><p>  ps.setInt(1, Integer.parseInt(text1.getText()));</p>

96、<p>  ps.executeUpdate();//執(zhí)行update語(yǔ)句</p><p><b>  }</b></p><p>  catch(Exception e2){</p><p>  msg.setText("該員工不存在!");</p><p>  text1.reques

97、tFocus();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié)果:</b></p><p>  只需要在輸入框內(nèi)輸入員工號(hào),

98、就可以將其所有信息刪除。</p><p><b>  5.修改功能</b></p><p><b>  //修改記錄</b></p><p>  class Btn4 implements ActionListener{</p><p>  public void actionPerformed(A

99、ctionEvent e){</p><p><b>  try{</b></p><p>  ssql = "Update tmp Set Yname=?,Ysex=?,Yage=?,Depno=?,Yjob=? Where Yno=?";</p><p>  ps=cn.prepareStatement(ssql);

100、</p><p>  demo.setYno(Integer.parseInt(text1.getText()));</p><p>  ps.setInt(6, demo.getYno());</p><p>  demo.setYname(text2.getText());</p><p>  ps.setString(1, demo.g

101、etYname());</p><p>  demo.setYsex(text3.getText());</p><p>  ps.setString(2, demo.getYsex());</p><p>  demo.setYage(Integer.parseInt(text4.getText()));</p><p>  ps.setI

102、nt(3, demo.getYage());</p><p>  demo.setDepno(Integer.parseInt(text5.getText()));</p><p>  ps.setInt(4, demo.getDepno());</p><p>  demo.setYjob(text6.getText());</p><p>

103、;  ps.setString(5, demo.getYjob());</p><p>  ps.executeUpdate();//執(zhí)行insert語(yǔ)句</p><p><b>  }</b></p><p>  catch(Exception e2){</p><p>  msg.setText("修

104、改記錄出錯(cuò)!");</p><p>  text1.setText("");</p><p>  text2.setText("");</p><p>  text3.setText("");</p><p>  text4.setText("");&l

105、t;/p><p>  text6.setText("");</p><p>  text1.requestFocus();</p><p><b>  }</b></p><p><b>  try{</b></p><p>  ssql1 = "

106、;Update Mon Set Date=?,Mjb=?,Mfl=?,Mjl=?,Msy=?,Mzf=? Where Yno=?";</p><p>  ps2=cn.prepareStatement(ssql1);</p><p>  demo2.setYno(Integer.parseInt(text1.getText()));</p><p>  p

107、s2.setInt(7, demo2.getYno());</p><p>  demo2.setDate(text7.getText());</p><p>  ps2.setString(1, demo2.getDate());</p><p>  demo2.setMjb(Integer.parseInt(text8.getText()));</p

108、><p>  ps2.setInt(2, demo2.getMjb());</p><p>  demo2.setMfl(Integer.parseInt(text9.getText()));</p><p>  ps2.setInt(3, demo2.getMfl());</p><p>  demo2.setMjl(Integer.parse

109、Int(text10.getText()));</p><p>  ps2.setInt(4, demo2.getMjl());</p><p>  demo2.setMsy(Integer.parseInt(text11.getText()));</p><p>  ps2.setInt(5, demo2.getMsy());</p><p&g

110、t;  demo2.setMzf(Integer.parseInt(text12.getText()));</p><p>  ps2.setInt(6, demo2.getMzf());</p><p>  ps2.executeUpdate();//執(zhí)行insert語(yǔ)句</p><p><b>  }</b></p>&

111、lt;p>  catch(Exception e2){</p><p>  msg.setText("修改記錄出錯(cuò)!");</p><p>  text7.setText("");</p><p>  text8.setText("");</p><p>  text9.set

112、Text("");</p><p>  text10.setText("");</p><p>  text11.setText("");</p><p>  text12.setText("");</p><p>  text1.requestFocus();&

113、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié)果:</b></p><p>  說(shuō)明:此功能按員工號(hào)修改。</p>

114、<p><b>  關(guān)閉窗口</b></p><p><b>  //關(guān)閉窗口</b></p><p>  class WinClose extends WindowAdapter{</p><p>  public void windowClosing(WindowEvent e){</p>&

115、lt;p><b>  try{</b></p><p>  cn.commit();</p><p>  cn.close();</p><p><b>  }</b></p><p>  catch(SQLException e3){}</p><p>  (e.ge

116、tWindow()).dispose();</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

117、三、總結(jié)</b></p><p>  此次課程設(shè)計(jì)給我的體會(huì)有以下幾點(diǎn):</p><p>  一、看似簡(jiǎn)單,其實(shí)不然</p><p>  以前沒(méi)有過(guò)課程設(shè)計(jì)的經(jīng)驗(yàn),作為第一次課程設(shè)計(jì)課,我抱著試試看的態(tài)度去寫(xiě),一開(kāi)始看了只有這么幾個(gè)模塊是心里挺高興的,但是當(dāng)我真真正正地去把一個(gè)操作寫(xiě)成功時(shí),很多意想不到的情況發(fā)生了。有時(shí)候會(huì)為了一個(gè)操作不能調(diào)試成功而整個(gè)

118、晚上都不能去安心做其他的作業(yè)。</p><p><b>  冷靜沉著、兢兢業(yè)業(yè)</b></p><p>  編程是一個(gè)很繁瑣的過(guò)程,要考慮到很多錯(cuò)誤轉(zhuǎn)移情況,在這期間會(huì)有很多以前不曾想過(guò)的問(wèn)題出現(xiàn),次數(shù)多了,不免會(huì)有覺(jué)得做不下去的感覺(jué)。但是我從中發(fā)現(xiàn),只要一步一步調(diào)試、靜下心來(lái)看待問(wèn)題,再?gòu)?fù)雜再微小的問(wèn)題都會(huì)迎刃而解,當(dāng)一個(gè)程序被調(diào)試出來(lái)時(shí),那時(shí)的快樂(lè)相比與任何困難都

119、值得的。</p><p><b>  立足程序、回歸書(shū)本</b></p><p>  在著手寫(xiě)程序時(shí)覺(jué)得思路一片混亂,無(wú)意間出現(xiàn)的問(wèn)題會(huì)不知道怎么解決。這時(shí),需要回歸書(shū)本,書(shū)本是前人總結(jié)的經(jīng)驗(yàn),幾乎所有情況都會(huì)有解決方法。只有把書(shū)本“吃透”,在遇到問(wèn)題是才會(huì)反應(yīng)快。</p><p>  四、課程設(shè)計(jì)心得體會(huì)</p><p&g

120、t;  通過(guò)幾個(gè)星期的努力奮斗,完成了員工薪資管理系統(tǒng)的一些簡(jiǎn)單功能的設(shè)計(jì),便捷的查詢(xún)員工的基本信息情況和員工的工資的詳細(xì)情況等,能方便的把新進(jìn)員工的基本信息插入員工信息資料表中,刪除辭職員工的基本信息,等等。這個(gè)員工薪資管理系統(tǒng)只是實(shí)現(xiàn)了一些簡(jiǎn)單的基本功能,當(dāng)中仍存在不足,需要改進(jìn)的地方還是存在的。</p><p>  這次的課程設(shè)計(jì),并不是的一帆風(fēng)順,困難是在所難免的,但是通過(guò)各種查閱資料、詢(xún)問(wèn)老師和同學(xué),最

121、終消滅了種種敵人。同時(shí),在此次的課程設(shè)計(jì)中,我明白了做任何事情都要有始有終,要敢于同困難作斗爭(zhēng),要養(yǎng)成獨(dú)立思考的習(xí)慣,通過(guò)攻克一道道難題,收獲更多的是喜悅?!耙环指?,一份收獲”,在設(shè)計(jì)員工薪資管理系統(tǒng)的過(guò)程中,加深了我對(duì)數(shù)據(jù)庫(kù)這門(mén)學(xué)科的認(rèn)識(shí),對(duì)許多原來(lái)不太清楚地知識(shí)有了更進(jìn)一步的理解,較熟練的掌握了SQL Server數(shù)據(jù)庫(kù),鍛煉了我得項(xiàng)目開(kāi)發(fā)能力,使我對(duì)軟件工程的知識(shí)有了更深刻的理解。</p><p><

122、;b>  參考文獻(xiàn)</b></p><p>  [1] SQL Server 2000 系統(tǒng)管理及應(yīng)用開(kāi)發(fā)[M] 趙松濤 編著 人民郵電出版社</p><p>  [2] 006數(shù)據(jù)庫(kù)系統(tǒng)概論 第四版[M] 王珊 薩師軒 清華大學(xué)出版社</p><p>  [3] 鄭莉. JAVA語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2006&l

123、t;/p><p>  [4] 丁振凡. JAVA語(yǔ)言使用教程.北京郵電大學(xué)出版社,2005</p><p><b>  源程序</b></p><p>  package 數(shù)據(jù)庫(kù)課設(shè)2;</p><p>  import java.sql.*;</p><p>  import java.awt.ev

124、ent.*;</p><p>  import java.awt.*;</p><p>  public class 界面 {</p><p>  public static void main(String args[])</p><p><b>  {</b></p><p>  new go

125、nzi();</p><p><b>  }</b></p><p><b>  }</b></p><p>  class gonzi extends Frame{</p><p>  static int a = 0;</p><p><b>  int i;

126、</b></p><p>  Panel p1,p2,p3,p4;</p><p>  Label e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,msg;</p><p>  TextField text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,tex

127、t11,text12;</p><p>  TextArea ta;</p><p>  Button btn1,btn2,btn3,btn4;</p><p>  Connection cn;</p><p>  PreparedStatement ps,ps1,ps2;</p><p>  ResultSet rs

128、,rs1;</p><p>  String ssql,ssql1,ssql2,ssex;</p><p><b>  gonzi(){</b></p><p>  try{//連接數(shù)據(jù)庫(kù)</p><p>  String url="jdbc:mysql://localhost:3306/ygxz";

129、</p><p>  String user="root";</p><p>  String pwd="huangxin";</p><p>  //加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序</p><p>  DriverManager.registerDriver(new com.mysql.jdbc.Driver()

130、);</p><p>  //Class.forYname("com.mysql.jdbc.Driver").newInstance();</p><p><b>  //連接數(shù)據(jù)庫(kù)</b></p><p>  cn=DriverManager.getConnection(url,user,pwd);</p>

131、<p><b>  }</b></p><p>  catch(SQLException e1){</p><p>  msg.setText("數(shù)據(jù)庫(kù)連接錯(cuò)誤!");</p><p><b>  }</b></p><p><b>  //標(biāo)簽</b&

132、gt;</p><p>  e1 = new Label("員工編號(hào)");</p><p>  e2 = new Label("姓名");</p><p>  e3 = new Label("性別");</p><p>  e4 = new Label("年齡")

133、;</p><p>  e5 = new Label("所屬部門(mén)編號(hào)");</p><p>  e6 = new Label("職業(yè)");</p><p>  e7 = new Label("日期");</p><p>  e8 = new Label("基本工資"

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論