版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工薪資系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)系統(tǒng)概論課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告--- 企業(yè)員工薪資管理
- 醫(yī)藥管理系統(tǒng)——數(shù)據(jù)庫(kù)系統(tǒng)概論課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)--數(shù)據(jù)庫(kù)系統(tǒng)概論課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)系統(tǒng)概論課程設(shè)計(jì)---客房管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-薪資管理系統(tǒng)
- 《數(shù)據(jù)庫(kù)系統(tǒng)概論》課程設(shè)計(jì)-車(chē)輛租賃系統(tǒng)
- 住院管理系統(tǒng)-數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)--員工考勤管理子系統(tǒng)
- 數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)
- 《數(shù)據(jù)庫(kù)系統(tǒng)概論》課程設(shè)計(jì)--酒店客房數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)系統(tǒng)概論課程設(shè)計(jì)報(bào)告書(shū)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--數(shù)據(jù)庫(kù)系統(tǒng)原理
- 數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)--人事管理系統(tǒng)數(shù)據(jù)庫(kù)
- 《數(shù)據(jù)庫(kù)系統(tǒng)原理》課程設(shè)計(jì)
- 住院管理系統(tǒng)-數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)
- 《數(shù)據(jù)庫(kù)系統(tǒng)原理》課程設(shè)計(jì)---倉(cāng)庫(kù)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論