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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  《數(shù)據(jù)庫》課程設計報告</p><p>  指導教師: 職稱: </p><p>  2014年12月12日</p><p> 學生姓名:學 號:</p><p> 學 院:理學院</p><p> 班 級:</p><

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

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

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

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

6、;/b></p><p>  四、課程設計心得體會22</p><p><b>  參考文獻23</b></p><p><b>  源程序1</b></p><p><b>  一、選題背景</b></p><p><b>  1

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

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

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

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

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

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

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

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

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

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

17、.2 系統(tǒng)總體結構圖</p><p>  圖2—1 系統(tǒng)總體結構圖</p><p>  2.2.3 系統(tǒng)詳細設計說明</p><p> ?、賳T工基本信息表的創(chuàng)建;</p><p> ?、诓块T基本信息表的創(chuàng)建;</p><p>  ③員工工資基本信息表的創(chuàng)建;</p><p>  ④用戶名密碼表的

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

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

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

21、;p>  圖2—2 員工實體關系圖</p><p>  圖2—3 部門實體關系圖</p><p>  圖2—4 工資實體關系圖</p><p>  圖2—5 部門——員工實體關系圖</p><p>  圖2—6 員工——工資實體關系圖</p><p>  2.3 數(shù)據(jù)庫邏輯結構設計</p><

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

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

24、><p>  3、屬于關系:員工和部門的關系是N:1,一個部門可以有多個員工。</p><p>  4、聘用關系:員工和職務的關系是N:1,一個職務可以聘用多個員工。</p><p>  5、設置關系:部門和職務的關系是M:N,一個部門可以設置多個職務,相同的職務也可以設置在多個部門。</p><p>  根據(jù)以上邏輯結構分析我們可以知道:一個部

25、門有多個員工,每個員工都有工資,工資又由基本工資等組成,其關系模式為:</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ù)流圖以后,只是對數(shù)據(jù)處理和彼此之間的聯(lián)系進行了說明,為了進一步明確數(shù)據(jù)的詳細內(nèi)容和數(shù)據(jù)加工過程,應將數(shù)據(jù)流圖中的各元素作出詳細的定義和說明,以便于此后系統(tǒng)設計的進行。</p><p>  數(shù)據(jù)字典描述的主要內(nèi)容有:數(shù)據(jù)項、數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)處理、外部實體。數(shù)據(jù)流程圖配以數(shù)據(jù)詞典,就可以從圖

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

28、5.1 創(chuàng)建數(shù)據(jù)庫</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)建部門信息表</b></p><p>  insert into Dep </p><p><b>  values</b></p><p>  (01,&

31、#39;經(jīng)理室'),</p><p>  (02,'財務科'),</p><p>  (03,'技術科'),</p><p>  (04,'銷售科');</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.表的結構</b></p><p><b>  員工基本信息結構:</b></p><p><b>  部門

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

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

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

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

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

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

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

42、><p>  e11 = new Label("失業(yè)保險");</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("查詢");</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>  //將面板的布局設置為FlowLayout,面板上增加的組件默認是按照從左到右順序排列&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>  界面在保證可以概括實現(xiàn)各種功能的前提下力求簡潔,實現(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語句</p><p><b>  }&

62、lt;/b></p><p>  catch(Exception e2){</p><p>  msg.setText("添加記錄出錯!");</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語句</p><p><b>  }</b></p><p>  catch(Exception e2){</p><p>  msg.setText("添加記錄出錯!");</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>  結果如下:</b></p><p><b>  3.查詢功能:</b></p><p><b>  (1)查詢?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語句</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>  查詢結果:</b></p><p><b>  按員工號查詢:</b></p><p>  //按員工號查找信息</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語句</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("沒有此人信息!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結果:</b></p><p><b

85、>  按姓名查詢:</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語句</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("沒有此人信息!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結果:</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語句</p><p>  //清空各輸入框</p><p>  msg.setText("刪除成功");</p><p>  text1.requestFocus();//焦點移到第一個輸入框</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語句</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>  結果:</b></p><p>  只需要在輸入框內(nèi)輸入員工號,

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語句</p><p><b>  }</b></p><p>  catch(Exception e2){</p><p>  msg.setText("修

104、改記錄出錯!");</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語句</p><p><b>  }</b></p>&

111、lt;p>  catch(Exception e2){</p><p>  msg.setText("修改記錄出錯!");</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>  結果:</b></p><p>  說明:此功能按員工號修改。</p>

114、<p><b>  關閉窗口</b></p><p><b>  //關閉窗口</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、三、總結</b></p><p>  此次課程設計給我的體會有以下幾點:</p><p>  一、看似簡單,其實不然</p><p>  以前沒有過課程設計的經(jīng)驗,作為第一次課程設計課,我抱著試試看的態(tài)度去寫,一開始看了只有這么幾個模塊是心里挺高興的,但是當我真真正正地去把一個操作寫成功時,很多意想不到的情況發(fā)生了。有時候會為了一個操作不能調(diào)試成功而整個

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

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

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

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

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

123、t;/p><p>  [4] 丁振凡. JAVA語言使用教程.北京郵電大學出版社,2005</p><p><b>  源程序</b></p><p>  package 數(shù)據(jù)庫課設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ù)庫</p><p>  String url="jdbc:mysql://localhost:3306/ygxz";

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

130、);</p><p>  //Class.forYname("com.mysql.jdbc.Driver").newInstance();</p><p><b>  //連接數(shù)據(jù)庫</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ù)庫連接錯誤!");</p><p><b>  }</b></p><p><b>  //標簽</b&

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

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

溫馨提示

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

評論

0/150

提交評論