版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java 課程設(shè)計課程設(shè)計題目題目:員工工資管理系統(tǒng)員工工資管理系統(tǒng)班級班級:09 軟件軟件 學號學號:姓名姓名:丘素泉丘素泉設(shè)計時間設(shè)計時間:2011.6.目錄目錄一、一、目錄目錄*1二、二、內(nèi)容內(nèi)容1、時間進度安排、時間進度安排*22. 系統(tǒng)的軟硬件環(huán)境(運行平臺)系統(tǒng)的軟硬件環(huán)境(運行平臺)*23. 系統(tǒng)的適用范圍系統(tǒng)的適用范圍*24. 系統(tǒng)總體框架圖系統(tǒng)總體框架圖*35. 模塊功能模塊功能*36. UML 類圖、關(guān)鍵技術(shù)與主要算法等類圖、關(guān)鍵技術(shù)與主要算法等*61) 、創(chuàng)建主界面的類、創(chuàng)建主界面的類 DBApplicationTest*62)、創(chuàng)建連接數(shù)據(jù)庫進行插入操作的類、創(chuàng)建連接數(shù)
2、據(jù)庫進行插入操作的類InsertInfo*83)、創(chuàng)建一個連接數(shù)據(jù)庫進行刪除操作的類、創(chuàng)建一個連接數(shù)據(jù)庫進行刪除操作的類DeleteInfo*94)、創(chuàng)建一個連接數(shù)據(jù)庫進行查詢操作的類、創(chuàng)建一個連接數(shù)據(jù)庫進行查詢操作的類 SearchInfo*105)、創(chuàng)建一個連接數(shù)據(jù)庫進行修改操作的類、創(chuàng)建一個連接數(shù)據(jù)庫進行修改操作的類 UpdateInfo*126)、創(chuàng)建一個定義表格的類、創(chuàng)建一個定義表格的類MyTableModel*147、系統(tǒng)使用說明、系統(tǒng)使用說明*158 8、總結(jié)、總結(jié)*169 9、參考文獻、參考文獻*161.時間進度安排時間進度安排順序階段日期計 劃 完 成 內(nèi) 容備注16 月 7
3、 日6 月 11 日充分解讀題目內(nèi)容,查閱資料,安排具體任務(wù)。5 天26 月 12 日自學 Mysql 數(shù)據(jù)庫基本知識,安裝 Mysql 數(shù)據(jù)庫1 天36 月 13 日6 月 17 日編制程序,單元測試。5 天46 月 18 日、19 日程序整合,綜合調(diào)試。2 天56 月 20 日22 日撰寫課程設(shè)計報告。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)數(shù)據(jù)庫:Mysql3. 系統(tǒng)的適用范圍系統(tǒng)的適用范圍一般的個體戶,小商場,小超市,專賣店及
4、對系統(tǒng)要求不是很高的小企業(yè)等。4. 系統(tǒng)總體框架圖系統(tǒng)總體框架圖5. 模塊功能模塊功能主界面:主界面:查詢:查詢:查詢:查詢:01插入界面:插入界面:刪除:刪除:02修改:修改:036. UML類圖、關(guān)鍵技術(shù)與主要算法等類圖、關(guān)鍵技術(shù)與主要算法等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);/設(shè)置按鈕之間的高度boxButton.add(btnInsert);/將插入按鈕放入組件中boxButton.add(Box.createVerticalStrut(20);/設(shè)置按鈕之間的高度boxButton.add(btnUpdate);/將修改按鈕放入組件中boxButton.add(Box.createVerticalS
8、trut(20);/設(shè)置按鈕之間的高度boxButton.add(btnDelete);/將刪除按鈕放入組件中boxButton.add(Box.createVerticalStrut(20);/設(shè)置按鈕之間的高度boxButton.add(btnExit); /將退出按鈕放入組件中JPanel spnl1=new JPanel(); /創(chuàng)建畫板spnl1.setLayout(new BorderLayout();/為畫板設(shè)置邊界布局管理器spnl1.add(txfstaffID,BorderLayout.NORTH);/將表示員工編號的文本框放入到布局的上部spnl1.add(lblErrM
9、sg,BorderLayout.CENTER);/將表示錯誤信息的標簽放入到布局的中央pnlInit.setLayout(new BorderLayout(); /為畫板設(shè)置邊界布局管理器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()取得的數(shù)據(jù)進行 double 型轉(zhuǎn)換,否則沒辦法進行四則運算。進入主函數(shù)public static void main(String args)DBApplicationTest dba = new DBApplicationTest();dba.mainFram();2)、創(chuàng)建連接數(shù)據(jù)庫進行
11、插入操作的類)、創(chuàng)建連接數(shù)據(jù)庫進行插入操作的類InsertInfopublic class UpdateInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest?user=root&password=root&useUnicode=true&characterEncoding=gb2312;String userName = root; / 數(shù)據(jù)庫用戶名String password = root; / 數(shù)據(jù)庫密碼private Connection conn = null; / 數(shù)據(jù)
12、庫連接對象private Statement stmt = null; / 執(zhí)行SQL文對象private ResultSet rs = null;/結(jié)果集對象/*構(gòu)造方法*/public UpdateInfo() try Class.forName(driver); / 加載驅(qū)動器conn = DriverManager.getConnection(url, userName, password);/ 建立數(shù)據(jù)庫連接System.out.println(數(shù)據(jù)庫連接成功); catch (ClassNotFoundException e)System.out.print(ClassNotFou
13、ndException+ e.getMessage();/打印輸出異常信息e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容/*修改操作*/public boolean updateInfo( String staffID, String age, String dep, double basic_salary, double d
14、eduction_salary)throwsboolean udpflag = false;/定義表示修改成功標志變量 try /*設(shè)置可以滾動和更新的結(jié)果集*/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、的個數(shù) if(count0) /*如果有SQL語句被更新*/ udpflag = true;/將修改成功標志設(shè)置為true else/*如果沒有SQL語句被更新*/ udpflag = false;/將修改成功標志設(shè)置為false /返回修改成功標志 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 return udpflag;public void setRs(ResultSet rs) this.
17、rs = rs;public ResultSet getRs() return rs;3)、創(chuàng)建一個連接數(shù)據(jù)庫進行刪除操作的類)、創(chuàng)建一個連接數(shù)據(jù)庫進行刪除操作的類DeleteInfopublic class DeleteInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest;String userName = root; / 數(shù)據(jù)庫用戶名String password = root; / 數(shù)據(jù)庫密碼private Connection conn = null; / 數(shù)據(jù)庫連接對象private State
18、ment stmt = null; / 執(zhí)行SQL文對象private ResultSet rs = null;/結(jié)果集對象/*構(gòu)造方法*/public DeleteInfo() try Class.forName(driver); / 加載驅(qū)動器conn = DriverManager.getConnection(url, userName, password);/ 建立數(shù)據(jù)庫連接System.out.println(數(shù)據(jù)庫連接成功); catch (ClassNotFoundException e) System.out.print(ClassNotFoundException+ e.ge
19、tMessage(); /打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容/*刪除操作*/public boolean deleteInfo( String staffID)boolean delflag = false;/定義表示刪除成功標志的變量 try /*設(shè)置可以滾動和更新的結(jié)果集*/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;/將刪除成功標志設(shè)置為true else /*如果沒有SQL語句被更新*/ delflag = false;/將刪除成功標志設(shè)置為false catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 return delflag;/返回刪除成功標志public void setRs(ResultSet rs) this.rs = rs;public ResultSet getRs() return
22、 rs; 4)、創(chuàng)建一個連接數(shù)據(jù)庫進行查詢操作的類、創(chuàng)建一個連接數(shù)據(jù)庫進行查詢操作的類 SearchInfopublic class SearchInfo String driver = ; String url = jdbc:mysql:/localhost:3306/mysqlTest;String userName = root; / 數(shù)據(jù)庫用戶名String password = root; / 數(shù)據(jù)庫密碼private Connection conn = null; / 數(shù)據(jù)庫連接對象private Statement stmt = null; / 執(zhí)行SQL文對象private R
23、esultSet rs = null;/結(jié)果集對象public static int rowcount = 0;/表示檢索出表中記錄數(shù)的變量/*構(gòu)造方法*/public SearchInfo() try Class.forName(driver); / 加載驅(qū)動器conn = DriverManager.getConnection(url, userName, password);/ 建立數(shù)據(jù)庫連接System.out.println(數(shù)據(jù)庫連接成功); catch (ClassNotFoundException e) System.out.print(ClassNotFoundExcepti
24、on+ e.getMessage(); /打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容/*員工工資等信息查詢*/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 /*設(shè)置可以滾動和更新的結(jié)果集*/stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(selstaffInfo); rs.last(); /將結(jié)果集位置移到最后
27、 rowcount = rs.getRow(); /獲得當前的行編號 System.out.println(檢索出記錄數(shù)為:+rowcount);/打印輸出當前行編號 if (rowcount 0) /*如果檢索到記錄*/ return rs;/返回取得的結(jié)果集 else rs = null;/將結(jié)果集設(shè)置為空 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容return rs; /返回結(jié)果集 5)、創(chuàng)建
28、一個連接數(shù)據(jù)庫進行修改操作的類)、創(chuàng)建一個連接數(shù)據(jù)庫進行修改操作的類 UpdateInfopublic class UpdateInfo String driver = ;String url = jdbc:mysql:/localhost:3306/mysqlTest?user=root&password=root&useUnicode=true&characterEncoding=gb2312;String userName = root; / 數(shù)據(jù)庫用戶名String password = root; / 數(shù)據(jù)庫密碼private Connection conn
29、= null; / 數(shù)據(jù)庫連接對象private Statement stmt = null; / 執(zhí)行SQL文對象private ResultSet rs = null;/結(jié)果集對象/*構(gòu)造方法*/public UpdateInfo() try Class.forName(driver); / 加載驅(qū)動器conn = DriverManager.getConnection(url, userName, password);/ 建立數(shù)據(jù)庫連接System.out.println(數(shù)據(jù)庫連接成功); catch (ClassNotFoundException e)System.out.print
30、(ClassNotFoundException+ e.getMessage();/打印輸出異常信息e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息e.printStackTrace(); /追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容 /*修改操作*/public boolean updateInfo( String staffID, String age, String dep, double basic_sal
31、ary, double deduction_salary)throws boolean udpflag = false;/定義表示修改成功標志變量 try /*設(shè)置可以滾動和更新的結(jié)果集*/ 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 + ;說明:畫線部分實現(xiàn)把double型轉(zhuǎn)化為字符串,否則在數(shù)據(jù)庫中見無法識別。 System.out.println(更新員工工資等信息的SQL語句為:+updstaffInfo);/打印輸出更新的SQL語
33、句int count = stmt.executeUpdate(updstaffInfo); /取得更新的個數(shù) if(count0) /*如果有SQL語句被更新*/ udpflag = true;/將修改成功標志設(shè)置為true else /*如果沒有SQL語句被更新*/ udpflag = false;/將修改成功標志設(shè)置為false /返回修改成功標志 catch (SQLException e) System.out.println(SQLException異常 + e.getMessage();/打印輸出異常信息 e.printStackTrace();/追蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容
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);/調(diào)用查詢員工工資等信息的方法 int count = SearchInfo.rowcount; /
36、取得查詢的員工工資等信息的數(shù)目 final Object data = new ObjectcountcolumnNames.length ;/創(chuàng)建二維表格 /*構(gòu)造方法*/ public MyTableModel() try rs.first();/將結(jié)果集指針移到到第一個位置 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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腹腔鏡微創(chuàng)手術(shù)治療異位妊娠的臨床效果及安全性研究
- 二零二五年度林業(yè)碳匯交易林地承包合同范本3篇
- 二零二五年度環(huán)保產(chǎn)業(yè)委托擔保合同模板3篇
- 通信行業(yè)安全設(shè)備檢修
- 二零二五年度個人租賃車輛保險合同范本2篇
- 《二零二五版水電站施工合同爭議解決及仲裁條款》3篇
- 二零二五年度電子商務(wù)平臺銷售擔保合同范本
- 初中學年度第二學期八年級地理教案
- 關(guān)注民生-加強公共安全-構(gòu)建和諧社會
- 二零二五年度金融創(chuàng)新產(chǎn)品居間服務(wù)合同3篇
- 培訓學校 組織架構(gòu)及部門崗位職責
- 2023-2024學年浙江省金華市金東區(qū)九年級(上)期末語文試卷
- 《亞太經(jīng)合組織》課件
- 2024解析:第三章物態(tài)變化-講核心(解析版)
- 《會展概述》課件
- 《郴州市總體規(guī)劃》課件
- 山東濰坊2024~2025第一學期高三階段性調(diào)研監(jiān)測考試英語試題含答案
- 《投資項目管理培訓》課件
- 【高中物理競賽大全】 競賽3 電磁學 50題競賽真題強化訓練解析版-高考物理備考復習重點資料歸納
- 初級會計實務(wù)會計專業(yè)考試試題及解答參考(2025年)
- 2025屆山東省濟南市歷城二中高二上數(shù)學期末學業(yè)質(zhì)量監(jiān)測試題含解析
評論
0/150
提交評論