




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java 課程設計課程設計題目題目:員工工資管理系統(tǒng)員工工資管理系統(tǒng)班級班級:09 軟件軟件 學號學號:姓名姓名:丘素泉丘素泉設計時間設計時間:2011.6.目錄目錄一、一、目錄目錄*1二、二、內容內容1、時間進度安排、時間進度安排*22. 系統(tǒng)的軟硬件環(huán)境(運行平臺)系統(tǒng)的軟硬件環(huán)境(運行平臺)*23. 系統(tǒng)的適用范圍系統(tǒng)的適用范圍*24. 系統(tǒng)總體框架圖系統(tǒng)總體框架圖*35. 模塊功能模塊功能*36. UML 類圖、關鍵技術與主要算法等類圖、關鍵技術與主要算法等*61) 、創(chuàng)建主界面的類、創(chuàng)建主界面的類 DBApplicationTest*62)、創(chuàng)建連接數據庫進行插入操作的類、創(chuàng)建連接數
2、據庫進行插入操作的類InsertInfo*83)、創(chuàng)建一個連接數據庫進行刪除操作的類、創(chuàng)建一個連接數據庫進行刪除操作的類DeleteInfo*94)、創(chuàng)建一個連接數據庫進行查詢操作的類、創(chuàng)建一個連接數據庫進行查詢操作的類 SearchInfo*105)、創(chuàng)建一個連接數據庫進行修改操作的類、創(chuàng)建一個連接數據庫進行修改操作的類 UpdateInfo*126)、創(chuàng)建一個定義表格的類、創(chuàng)建一個定義表格的類MyTableModel*147、系統(tǒng)使用說明、系統(tǒng)使用說明*158 8、總結、總結*169 9、參考文獻、參考文獻*161.時間進度安排時間進度安排順序階段日期計 劃 完 成 內 容備注16 月 7
3、 日6 月 11 日充分解讀題目內容,查閱資料,安排具體任務。5 天26 月 12 日自學 Mysql 數據庫基本知識,安裝 Mysql 數據庫1 天36 月 13 日6 月 17 日編制程序,單元測試。5 天46 月 18 日、19 日程序整合,綜合調試。2 天56 月 20 日22 日撰寫課程設計報告。3 天66 月 23 日答辯。1 天2. 系統(tǒng)的軟硬件環(huán)境(運行平臺)系統(tǒng)的軟硬件環(huán)境(運行平臺)硬件環(huán)境PC 機軟件環(huán)境(1) 操作系統(tǒng):Windows XP(2) 開發(fā)工具: Eclipse (3)數據庫:Mysql3. 系統(tǒng)的適用范圍系統(tǒng)的適用范圍一般的個體戶,小商場,小超市,專賣店及
4、對系統(tǒng)要求不是很高的小企業(yè)等。4. 系統(tǒng)總體框架圖系統(tǒng)總體框架圖5. 模塊功能模塊功能主界面:主界面:查詢:查詢:查詢:查詢:01插入界面:插入界面:刪除:刪除:02修改:修改:036. UML類圖、關鍵技術與主要算法等類圖、關鍵技術與主要算法等1) 、創(chuàng)建主界面的類、創(chuàng)建主界面的類 DBApplicationTest,在此類中創(chuàng)建用于顯示的窗體 JFrame frame; 創(chuàng)建用于初始化顯示的面板 JPanel pnlInit,創(chuàng)建用于顯示員工工資等信息的面板 JPanel pnlShow,創(chuàng)建用于以表格顯示員工工資等信息的面 Jpane pnlSearchInfoShow,/*顯示初始化界
5、面*/public void showWel()pnlInit=new JPanel();/創(chuàng)建用于初始化界面的面板lblErrMsg=new JLabel();/創(chuàng)建顯示錯誤信息的標簽JLabel lblteaID=new JLabel(請輸入員工編號:);/創(chuàng)建表示輸入員工編號的標簽txfstaffID=new JTextField(25);/創(chuàng)建用于員工編號的文本框btnSearch=new JButton(查詢);/創(chuàng)建表示查詢的按鈕btnInsert=new JButton(插入);/創(chuàng)建表示插入的按鈕btnUpdate=new JButton(修改);/創(chuàng)建表示修改的按鈕btnDe
6、lete=new JButton(刪除);/創(chuàng)建表示刪除系統(tǒng)的按鈕btnExit=new JButton(退出);/創(chuàng)建表示退出系統(tǒng)的按鈕btnSearch.addActionListener(this); /為查詢按鈕添加監(jiān)聽方法btnInsert.addActionListener(this); /為插入按鈕添加監(jiān)聽方法btnUpdate.addActionListener(this); /為修改按鈕添加監(jiān)聽方法btnDelete.addActionListener(this); /為刪除按鈕添加監(jiān)聽方法btnExit.addActionListener(this);/為退出按鈕添加監(jiān)聽方
7、法 Box boxButton= Box.createVerticalBox();/創(chuàng)建縱向顯示其組件的BoxboxButton.add(btnSearch);/將查詢按鈕放入組件中boxButton.add(Box.createVerticalStrut(20);/設置按鈕之間的高度boxButton.add(btnInsert);/將插入按鈕放入組件中boxButton.add(Box.createVerticalStrut(20);/設置按鈕之間的高度boxButton.add(btnUpdate);/將修改按鈕放入組件中boxButton.add(Box.createVerticalS
8、trut(20);/設置按鈕之間的高度boxButton.add(btnDelete);/將刪除按鈕放入組件中boxButton.add(Box.createVerticalStrut(20);/設置按鈕之間的高度boxButton.add(btnExit); /將退出按鈕放入組件中JPanel spnl1=new JPanel(); /創(chuàng)建畫板spnl1.setLayout(new BorderLayout();/為畫板設置邊界布局管理器spnl1.add(txfstaffID,BorderLayout.NORTH);/將表示員工編號的文本框放入到布局的上部spnl1.add(lblErrM
9、sg,BorderLayout.CENTER);/將表示錯誤信息的標簽放入到布局的中央pnlInit.setLayout(new BorderLayout(); /為畫板設置邊界布局管理器pnlInit.add(lblteaID,BorderLayout.NORTH);/將表示員工編號的標簽放入到布局的上部pnlInit.add(spnl1,BorderLayout.CENTER);/將表示員工的文本框和錯誤信息的標簽的畫板放入到布局的中央pnlInit.add(boxButton,BorderLayout.EAST);/將存放按鈕的Box組件放入到布局的右邊。double basic_sal
10、ary= Double.valueOf(txfbasic_salary.getText();/取得輸入的員工底薪double deduction_salary = Double.valueOf(txfdeduction_salary.getText();/取得輸入的員工提成說明:必須將 getText()取得的數據進行 double 型轉換,否則沒辦法進行四則運算。進入主函數public static void main(String args)DBApplicationTest dba = new DBApplicationTest();dba.mainFram();2)、創(chuàng)建連接數據庫進行
11、插入操作的類)、創(chuàng)建連接數據庫進行插入操作的類InsertInfopublic class UpdateInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest?user=root&password=root&useUnicode=true&characterEncoding=gb2312;String userName = root; / 數據庫用戶名String password = root; / 數據庫密碼private Connection conn = null; / 數據
12、庫連接對象private Statement stmt = null; / 執(zhí)行SQL文對象private ResultSet rs = null;/結果集對象/*構造方法*/public UpdateInfo() try Class.forName(driver); / 加載驅動器conn = DriverManager.getConnection(url, userName, password);/ 建立數據庫連接System.out.println(數據庫連接成功); catch (ClassNotFoundException e)System.out.print(ClassNotFou
13、ndException+ e.getMessage();/打印輸出異常信息e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內容/*修改操作*/public boolean updateInfo( String staffID, String age, String dep, double basic_salary, double d
14、eduction_salary)throwsboolean udpflag = false;/定義表示修改成功標志變量 try /*設置可以滾動和更新的結果集*/stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String updstaffInfo = UPDATE staffInfo SET age = +age +,department =+dep+, +basic_salary = +basic_salary + ,+deduction_salary =
15、+deduction_salary + ,monthly_salary = +String.valueOf(basic_salary+deduction_salary)+,+annual_salary = +String.valueOf(basic_salary+deduction_salary)*12)+ + WHERE staffID= +staffID + ; System.out.println(更新員工工資等信息的SQL語句為:+updstaffInfo);/打印輸出更新的SQL語句int count = stmt.executeUpdate(updstaffInfo); /取得更新
16、的個數 if(count0) /*如果有SQL語句被更新*/ udpflag = true;/將修改成功標志設置為true else/*如果沒有SQL語句被更新*/ udpflag = false;/將修改成功標志設置為false /返回修改成功標志 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 return udpflag;public void setRs(ResultSet rs) this.
17、rs = rs;public ResultSet getRs() return rs;3)、創(chuàng)建一個連接數據庫進行刪除操作的類)、創(chuàng)建一個連接數據庫進行刪除操作的類DeleteInfopublic class DeleteInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest;String userName = root; / 數據庫用戶名String password = root; / 數據庫密碼private Connection conn = null; / 數據庫連接對象private State
18、ment stmt = null; / 執(zhí)行SQL文對象private ResultSet rs = null;/結果集對象/*構造方法*/public DeleteInfo() try Class.forName(driver); / 加載驅動器conn = DriverManager.getConnection(url, userName, password);/ 建立數據庫連接System.out.println(數據庫連接成功); catch (ClassNotFoundException e) System.out.print(ClassNotFoundException+ e.ge
19、tMessage(); /打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內容/*刪除操作*/public boolean deleteInfo( String staffID)boolean delflag = false;/定義表示刪除成功標志的變量 try /*設置可以滾動和更新的結果集*/stmt = co
20、nn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String delstaffInfo = DELETE FROM staffInfo WHERE staffID= +staffID + ; System.out.println(刪除員工工資等信息的SQL語句為:+delstaffInfo);/打印輸出更新的SQL語句 int count = stmt.executeUpdate(delstaffInfo); if(count0) /*如果有SQL語句被更新*/ delflag
21、= true;/將刪除成功標志設置為true else /*如果沒有SQL語句被更新*/ delflag = false;/將刪除成功標志設置為false catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 return delflag;/返回刪除成功標志public void setRs(ResultSet rs) this.rs = rs;public ResultSet getRs() return
22、 rs; 4)、創(chuàng)建一個連接數據庫進行查詢操作的類、創(chuàng)建一個連接數據庫進行查詢操作的類 SearchInfopublic class SearchInfo String driver = ; String url = jdbc:mysql:/localhost:3306/mysqlTest;String userName = root; / 數據庫用戶名String password = root; / 數據庫密碼private Connection conn = null; / 數據庫連接對象private Statement stmt = null; / 執(zhí)行SQL文對象private R
23、esultSet rs = null;/結果集對象public static int rowcount = 0;/表示檢索出表中記錄數的變量/*構造方法*/public SearchInfo() try Class.forName(driver); / 加載驅動器conn = DriverManager.getConnection(url, userName, password);/ 建立數據庫連接System.out.println(數據庫連接成功); catch (ClassNotFoundException e) System.out.print(ClassNotFoundExcepti
24、on+ e.getMessage(); /打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內容/*員工工資等信息查詢*/public ResultSet search(String staffID) String selstaffInfo =; /*如果員工編號為空,執(zhí)行查詢員工工資等信息SQL語句*/if(sta
25、ffID .equals() selstaffInfo = SELECT staffID,staffName,age,sex,nation,department,basic_salary, + deduction_salary,monthly_salary,annual_salary +FROM staffInfo ;else /*如果員工編號不為空,執(zhí)行查詢員工工資等信息SQL語句*/ selstaffInfo = SELECT staffID,staffName,age,sex,nation,department,basic_salary, +deduction_salary,monthl
26、y_salary,annual_salary +FROM staffInfo where staffID= +staffID + ; System.out.println(查詢員工工資等信息的SQL語句為:+selstaffInfo);/打印輸出查詢SQL語句 try /*設置可以滾動和更新的結果集*/stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(selstaffInfo); rs.last(); /將結果集位置移到最后
27、 rowcount = rs.getRow(); /獲得當前的行編號 System.out.println(檢索出記錄數為:+rowcount);/打印輸出當前行編號 if (rowcount 0) /*如果檢索到記錄*/ return rs;/返回取得的結果集 else rs = null;/將結果集設置為空 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內容return rs; /返回結果集 5)、創(chuàng)建
28、一個連接數據庫進行修改操作的類)、創(chuàng)建一個連接數據庫進行修改操作的類 UpdateInfopublic class UpdateInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest?user=root&password=root&useUnicode=true&characterEncoding=gb2312;String userName = root; / 數據庫用戶名String password = root; / 數據庫密碼private Connection conn
29、= null; / 數據庫連接對象private Statement stmt = null; / 執(zhí)行SQL文對象private ResultSet rs = null;/結果集對象/*構造方法*/public UpdateInfo() try Class.forName(driver); / 加載驅動器conn = DriverManager.getConnection(url, userName, password);/ 建立數據庫連接System.out.println(數據庫連接成功); catch (ClassNotFoundException e)System.out.print
30、(ClassNotFoundException+ e.getMessage();/打印輸出異常信息e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內容 /*修改操作*/public boolean updateInfo( String staffID, String age, String dep, double basic_sal
31、ary, double deduction_salary)throws boolean udpflag = false;/定義表示修改成功標志變量 try /*設置可以滾動和更新的結果集*/ stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String updstaffInfo = UPDATE staffInfo SET age = +age +,department =+dep+, +basic_salary = +basic_salary + ,+dedu
32、ction_salary = +deduction_salary + ,monthly_salary = +String.valueOf(basic_salary+deduction_salary)+,+annual_salary = +String.valueOf(basic_salary+deduction_salary)*12)+ + WHERE staffID= +staffID + ;說明:畫線部分實現把double型轉化為字符串,否則在數據庫中見無法識別。 System.out.println(更新員工工資等信息的SQL語句為:+updstaffInfo);/打印輸出更新的SQL語
33、句int count = stmt.executeUpdate(updstaffInfo); /取得更新的個數 if(count0) /*如果有SQL語句被更新*/ udpflag = true;/將修改成功標志設置為true else /*如果沒有SQL語句被更新*/ udpflag = false;/將修改成功標志設置為false /返回修改成功標志 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內容
34、 catch (NumberFormatException e) System.out.println(NumberFormatException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace(); return udpflag;public void setRs(ResultSet rs) this.rs = rs;public ResultSet getRs() return rs;6)、創(chuàng)建一個定義表格的類)、創(chuàng)建一個定義表格的類MyTableModelpublic class MyTableModel extends AbstractTa
35、bleModel private static final long serialVersionUID = 1L;final String columnNames = 員工編號,員工姓名,年齡 , 性別,民族,所在部門,底薪, 提成,月薪, 年薪; /定義表頭顯示信息 String staffID = ;/定義表示員工編號的變量 SearchInfo si = new SearchInfo();/創(chuàng)建查詢員工工資等信息類的對象 ResultSet rs = si.search(staffID);/調用查詢員工工資等信息的方法 int count = SearchInfo.rowcount; /
36、取得查詢的員工工資等信息的數目 final Object data = new ObjectcountcolumnNames.length ;/創(chuàng)建二維表格 /*構造方法*/ public MyTableModel() try rs.first();/將結果集指針移到到第一個位置 data 00=rs.getString(1);/取得員工編號 data 01=rs.getString(2);/取得員工姓名 data 02=rs.getString(3);/取得員工年齡 data 03=rs.getString(4);/取得員工性別 data 04=rs.getString(5); /取得民族
37、data 05=rs.getString(6);/取得員工所在部門 data 06=rs.getString(7);/取得底薪 data 07=rs.getString(8);/取得提成 data 08=rs.getString(9);/取得員工月薪 data 09=rs.getString(10); /取得員工年薪 int i =1;/初始化變量i int j = 0;/初始化變量jwhile(rs.next()data ij+=rs.getString(1);/取得員工編號data ij+=rs.getString(2);/取得員工姓名data ij+=rs.getString(3);/取得員工年齡data ij+=rs.getString(4);/取得員工性別data ij+=rs.getString(5); /取得民族data ij+=rs.getString(6);/取得員工所在部門data ij+=rs.getString(7);/取得底薪data ij+=rs.getString(8);/取得提成data i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療設備融資租賃中區(qū)塊鏈技術的便捷性體現
- 細胞膜-系統(tǒng)的邊界教學設計與反思
- app推廣服務合同樣本
- 親子活動基地合同范例
- 機器人焊接 10 項目五任務5.2教學設計
- 公共綠化養(yǎng)護合同范例
- 化學教學個人年度工作總結模版
- 光伏材料購銷合同范例
- 幼兒園小班暑期家訪工作總結模版
- 供貨附加合同范例
- 塑料污染治理-洞察分析
- 商場運營管理規(guī)定范文(2篇)
- 反詐知識競賽題庫及答案(共286題)
- 稀土材料技術基礎知識單選題100道及答案解析
- 生理學基礎題庫(46道)
- 量子儲能材料的探索
- 2023年人教版六年級語文下冊期末考試卷(A4打印版)
- ESG信息披露、表現和評級綜合研究:國內外對比分析
- 2024年全國普法知識競賽法律知識題庫及答案
- DB5101-T135-2021城市公園分類分級管理規(guī)范
- 氣象行業(yè)天氣預報技能競賽理論試題庫資料(含答案)
評論
0/150
提交評論