![Java課程設計員工管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/5e049352-02c8-406f-a71f-8f92af8ded45/5e049352-02c8-406f-a71f-8f92af8ded451.gif)
![Java課程設計員工管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/5e049352-02c8-406f-a71f-8f92af8ded45/5e049352-02c8-406f-a71f-8f92af8ded452.gif)
![Java課程設計員工管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/5e049352-02c8-406f-a71f-8f92af8ded45/5e049352-02c8-406f-a71f-8f92af8ded453.gif)
![Java課程設計員工管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/5e049352-02c8-406f-a71f-8f92af8ded45/5e049352-02c8-406f-a71f-8f92af8ded454.gif)
![Java課程設計員工管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/5e049352-02c8-406f-a71f-8f92af8ded45/5e049352-02c8-406f-a71f-8f92af8ded455.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設計(論文)任務書學院*學院專 業(yè)*學生姓名班級學號*課程名稱java語言程序設計課程設計(論文)題目員工信息管理系統(tǒng)設計目的:1)復習、鞏固java語言的基礎知識,進一步加深對java語言的理解和掌握;2)課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力;3)培養(yǎng)學生在項目開發(fā)中的團隊合作精神、創(chuàng)新意識及能力。設計要求(技術(shù)參數(shù)):1)對系統(tǒng)進行需求分析及可行性分析系統(tǒng)實現(xiàn)的目的,項目開發(fā)的背景,系統(tǒng)要達到的目標,開發(fā)系統(tǒng)所用的開發(fā)環(huán)境,預期使用的用戶等。2)對系統(tǒng)進行總體設計
2、分析系統(tǒng)的功能結(jié)構(gòu)模塊,并給出系統(tǒng)的功能結(jié)構(gòu)圖,設計要符合課題要求,實現(xiàn)相應功能;可以加以其他功能或修飾,使程序更加完善、合理。3)詳細設計 設計所需的數(shù)據(jù)表,給出所需數(shù)據(jù)表的字段名稱,數(shù)據(jù)類型,字符長度,字段說明,約束條件。編碼實現(xiàn)每個子功能模塊,并進行測試。計劃與進度安排:周一 全天:設計解決問題方法 周四14節(jié):調(diào)試程序周一 全天:調(diào)試程序 周四14節(jié):完成論文,答辯成績:指導教師(簽字): 年月日 專業(yè)負責人(簽字):年月日主管院長(簽字): 年月日摘要java語言是當前最為流行的程序設計語言之一,諸多優(yōu)秀的的特性使其成為被業(yè)界廣泛認可和采用的工具。隨著目前公司規(guī)模的漸漸擴大,員工管理
3、將成為意見不得不總是的問題。有些公司人員流動較大,而且人數(shù)動輒上百人,若采用傳統(tǒng)的方式進行管理,不僅易出錯更是一件令人痛疼的事。隨著計算機的誕生,在此領(lǐng)域產(chǎn)生眾多的信息管理系統(tǒng)來管理信息,不僅信息處理方便,而且簡單強大。本系統(tǒng)正事其中的一項,針對員工信息管理,方便公司對員工的信息進行處理,極大減少了人事管理的工作量。另一方面,本系統(tǒng)中所涉及到圖形用戶界面設計是我們學習程序設計這門課的難點兼重點,通過審計本系統(tǒng)不僅鞏固了我們的基礎,以及程序設計能力,還鍛煉了我們對程序設計的流程及大體上的把握不僅如此,在設計過程中,我們的調(diào)試能力也得到增強。使我們對設計“大程序”有了經(jīng)驗。目前,無論是機關(guān)、事業(yè)單
4、位、還是企業(yè)單位,員工管理對于組織生存與長遠發(fā)展所具備的重要性都已經(jīng)有了明確的認識,而員工管理水平的提升不僅需要高素質(zhì)的管理人員,而且也需要信息化工具進行輔助.在現(xiàn)代化的企業(yè)管理中,員工管理系統(tǒng)有著十分重要的作用!關(guān)鍵詞:文件和流 界面設計gui 異常處理 hashtable類目 錄一、設計目的2二、設計問題32.1課設問題32.2設計思路4三、概要設計63.1程序功能模塊設計的實現(xiàn)63.2系統(tǒng)總體結(jié)構(gòu)73.3員工信息面板功能的實現(xiàn)73.4員工界面功能模塊設計的實現(xiàn)8四、詳細設計84.1定義程序變量84.2程序面板設計94.3錄入員工信息104.4查詢員工信息104.5修改員工信息104.6刪
5、除員工信息104.7顯示員工信息10五、設計總結(jié)10六、參考文獻11七、致 謝11一、設計目的隨著現(xiàn)代社會的快速發(fā)展,我們已進入信息化時代,管理系統(tǒng)在人們的生活中的應用越來越廣泛,它已深入到我們工作、學習、生活的各個方面。為了適應時代的發(fā)展,本次課程設計的主要任務是設計一個學生員工系統(tǒng)并完成一些基本操作。其目的是:(1)提高員工信息管理的運作效率,通過對雇員全面的信息采集和處理;(2)運用已學的java知識編一些簡單使用的程序,使我們初步具備綜合運用所學java語言基礎知識,面向?qū)ο蟪绦蛟O計的基本思想、方法與技術(shù);(3)由計算機來代替人工執(zhí)行一系列諸如增加新員工、刪除、修改、查詢、顯示等操作。
6、這樣就使管理人員輕松快捷的完成員工信息的管理工作。二、設計問題2.1 課設問題:員工管理系統(tǒng)要求完成:(1)完成員工的添加、刪除、查詢、修改功能(2)使用界面操作(3)使用文件完成2.2 設計思路:首先設計面板,然后往面板里添加組件,點擊各個組件來實現(xiàn)要求的對員工信息的添加、刪除、查詢、修改功能。三、概要設計3.1 程序功能模塊設計的實現(xiàn)本段代碼中主要的類有employeemanager和actionevent,設置了監(jiān)聽接口由actionevent類來實現(xiàn),并且用if語句來為變量服務。后面設置了一個異常處理,使用try和catch來捕獲異常。使用gui技術(shù)實現(xiàn)員工的圖形界面。3.2 系統(tǒng)總體
7、結(jié)構(gòu)系統(tǒng)總體結(jié)構(gòu)員工信息管理系統(tǒng)信息添加信息查詢信息修改信息刪除信息顯示3.3 員工信息面板功能的實現(xiàn) 首先構(gòu)造兩個面板(jpanel),分別為界面以及顯示,并將其加入到容器中.主界面顯示界面3.4 員工界面功能模塊設計的實現(xiàn)錄入:提示員工信息是否被錄入,選擇是(y),則員工信息錄入到文件中查詢:在主界面中輸入員工號,點擊查找,若員工信息不存在則顯示如圖若文本文件中存在所要查找的員工信息(例如工號0801),則在主界面中顯示該員工信息(員工號、姓名和性別) 刪除:在主界面中輸入員工號,點擊刪除按鈕,彈出對話框,選擇是(y)程序?qū)h除詞員工的所有信息。四、詳細設計4.1 定義程序變量 自定義em
8、ployee類,其中定義number,name,sex三個變量,分別包含setnumber 、getnumber 、setname 、getname、 setsex 、getsex方法。class employee implements java.io.serializable string number,name,sex; public employee(); public void setnumber(string number) this.number=number; public string getnumber() return number; public void setname
9、(string name) =name; public string getname() return name; public void setsex(string sex) this.sex=sex; public string getsex () return sex; 4.2 程序面板設計定義employeemanager類繼承jframe,使用jlabel、jtextfield、jradiobutton、buttongroup、jbutton等類構(gòu)造各組件,使用。使用hashtable類創(chuàng)建散列表對象“員工表”存放employee對象,每個employee對象用該對
10、象的學號作為關(guān)鍵字。使用exists()方法判斷文本文件是否存在。若存在則進行數(shù)據(jù)的寫入操作。使用addactionlistener()方法對jbutton進行注冊監(jiān)聽。gridlayout布局管理器對面板進行設計如下所示。public class employeemanager extends jframe jlabel lb=new jlabel(錄入請先輸入記錄,查詢、刪除請先輸入工號,修改是對查詢 + 內(nèi)容改后的保存!); jtextfield 工號,姓名; jradiobutton 男,女; buttongroup group=null; jbutton 錄入,查詢,刪除,修改,顯示
11、; jpanel a,b,c,d,f; employee 員工=null; hashtable 員工表=null; file file=null; fileinputstream inone=null; objectinputstream intwo=null; fileoutputstream outone=null; objectoutputstream outtwo=null;public employee 工人; public employeemanager() super(沈陽理工員工基本信息管理系統(tǒng)); 工號=new jtextfield(10); 姓名=new jtextfiel
12、d(10); group=new buttongroup(); 男=new jradiobutton(男,true); 女=new jradiobutton(女,false); group.add(男); group.add(女); 錄入=new jbutton(錄入); 查詢=new jbutton(查詢); 刪除=new jbutton(刪除); 修改=new jbutton(修改); 顯示=new jbutton(顯示); 錄入.addactionlistener(new lract(); 查詢.addactionlistener(new cxact(); 修改.addactionlis
13、tener(new xgact(); 刪除.addactionlistener(new scact(); 顯示.addactionlistener(new xsact(); 修改.setenabled(false); a=new jpanel(); a.add(new jlabel(工號:,jlabel.center); a.add(工號); b=new jpanel(); b.add(new jlabel(姓名:,jlabel.center); b.add(姓名); c=new jpanel(); c.add(new jlabel(性別:,jlabel.center); c.add(男);
14、c.add(女); d=new jpanel(); d.setlayout(new gridlayout(6,1); d.add(a); d.add(b); d.add(c); f=new jpanel(); f.add(錄入); f.add(查詢); f.add(修改); f.add(刪除); f.add(顯示); file=new file(員工信息.txt); hashtable 員工表=new hashtable(); if(!file.exists() try fileoutputstream out=new fileoutputstream(file); objectoutputs
15、tream objectout=new objectoutputstream(out); objectout.writeobject(員工表); objectout.close(); out.close(); catch(ioexception e) container con=getcontentpane(); con.setlayout(new borderlayout(); con.add(lb, borderlayout.north); con.add(d, borderlayout.center); con.add(f, borderlayout.south); setdefault
16、closeoperation(exit_on_close); setbounds(200,200,600,300); setvisible(true); 4.3 錄入員工信息 以員工的員工號作為關(guān)鍵字,調(diào)用objectinputstream(new fileinputstream ()中的readobject()方法讀取文本文件中的數(shù)據(jù)。使用員工表.containskey(number)對關(guān)鍵字進行檢測,如果數(shù)據(jù)中包含該員工號,則彈出對話框提示該員工信息已存在,請到修改頁面進行信息的修改,如果數(shù)據(jù)中不包含該關(guān)鍵字,則彈出確認對話框,點擊確定,程序調(diào)用put()方法寫入信息到散列表中。調(diào)用wri
17、teobject()方法將散列表寫入文本文件中。如果程序在獲取員工號時為空時,提示用戶輸入員工號。用try,catch對異常進行處理。以下為具體代碼: class lract implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false);/功能尚未實現(xiàn) string number=; number=工號.gettext(); if(number.length()0) try intwo=new objectinputstream(new fileinputstream(file
18、); 員工表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee)system.out.println(創(chuàng)建表出現(xiàn)問題!); if(員工表.containskey(number) string warning=該員工信息已存在,請到修改頁面修改!; joptionpane.showmessagedialog(null,warning,警告, joptionpane.warning_message); else string m=確定該員工被錄入?; int ok=joptionpane.
19、showconfirmdialog(null,m,確認, joptionpane.yes_no_option,joptionpane.information_message); if(ok=joptionpane.yes_option) string name=姓名.gettext(); string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); 員工=new employee(); 員工.setnumber(number); 員工.setname(name); 員工.setsex(sex); try outo
20、ne=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 員工表.put(number,員工); outtwo.writeobject(員工表); outtwo.close(); outone.close(); catch(exception ee)system.out.println(輸出出現(xiàn)問題!); 工號.settext(null); 姓名.settext(null); else string warning=必須輸入工號!; joptionpane.showmessagedialog(null,warni
21、ng, 警告,joptionpane.warning_message); 4.4 查詢員工信息構(gòu)造cxact類實現(xiàn)actionlistener接口,對事件監(jiān)聽。在該類中以員工的員工號作為關(guān)鍵字,調(diào)用objectinputstream(new fileinputstream ()中的readobject()方法讀取文本文件中的數(shù)據(jù)。使用員工表.containskey(number)對關(guān)鍵字進行檢測,如果文本框中的員工號和文本文件中的數(shù)據(jù)相同,程序調(diào)用settext()方法把散列表中的員工信息顯示在文本框中,如果文本框中的員工號和文本文件中的數(shù)據(jù)不相同,則程序調(diào)用joptionpane.showm
22、essagedialog()方法提示該員工信息不存在。如果程序獲取到員工號文本框中的內(nèi)容為空,則提示用戶輸入員工號。以下程序?qū)崿F(xiàn)為代碼: class cxact implements actionlistener public void actionperformed(actionevent e) string number=; number=工號.gettext(); if(number.length()0) try inone=new fileinputstream(file); intwo=new objectinputstream(inone); 員工表=(hashtable)intw
23、o.readobject(); inone.close(); intwo.close(); catch(exception ee)system.out.println(員工表有問題!); if(員工表.containskey(number) 修改.setenabled(true); employee stu=(employee)員工表.get(number); 姓名.settext(stu.getname(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(true); else 修改.setenabled(fa
24、lse); string warning=該員工不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else 修改.setenabled(false); string warning=必須輸入工號!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); class xgact implements actionlistener public void actionperformed
25、(actionevent e) string number=工號.gettext(); string name=姓名.gettext(); string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); employee 員工=new employee(); 員工.setnumber(number); 員工.setname(name); 員工.setsex(sex); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outon
26、e); 員工表.put(number,員工); outtwo.writeobject(員工表); outtwo.close(); outone.close(); 工號.settext(null); 姓名.settext(null); catch(exception ee) system.out.println(錄入修改出現(xiàn)異常!); 修改.setenabled(false); class scact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false); string
27、number=工號.gettext(); if(number.length()0) try intwo=new objectinputstream(new fileinputstream(file); 員工表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(員工表.containskey(number) employee stu=(employee)員工表.get(number); 姓名.settext(stu.getname(); if(stu.getsex().equal
28、s(男)男.setselected(true); else女.setselected(true); string m=確定要刪除該員工的記錄嗎?; int ok=joptionpane.showconfirmdialog(null,m,確認, joptionpane.yes_no_option,joptionpane.question_message); if(ok=joptionpane.yes_option) 員工表.remove(number); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(ou
29、tone); outtwo.writeobject(員工表); outtwo.close(); outone.close(); 工號.settext(null); 姓名.settext(null); catch(exception ee)system.out.println(ee); else if(ok=joptionpane.no_option) 工號.settext(null); 姓名.settext(null); else string warning=該號不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.
30、warning_message); else string warning=必須輸入工號!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); 4.5 修改員工信息和添加員工信息方法類似,定義number、name、sex三個局部變量,并使用gettext()方法初始化變量。調(diào)用isselected()方法設置單選按鈕。創(chuàng)建employee類型的“員工”局部變量,調(diào)用hastable類中的put()方法將要修改的員工信息寫入到散列表“員工表” 中。調(diào)用objectinputstream(ne
31、w fileinputstream ()中的writeobject()把散列表中的數(shù)據(jù)信息寫入到文本文件中。使用trycatch來捕獲異常,并進行處理。以下是程序?qū)崿F(xiàn)修改功能的代碼:class xgact implements actionlistener public void actionperformed(actionevent e) string number=工號.gettext(); string name=姓名.gettext(); string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); em
32、ployee 員工=new employee(); 員工.setnumber(number); 員工.setname(name); 員工.setsex(sex); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 員工表.put(number,員工); outtwo.writeobject(員工表); outtwo.close(); outone.close(); 工號.settext(null); 姓名.settext(null); catch(exception ee) system.
33、out.println(錄入修改出現(xiàn)異常!); 修改.setenabled(false); 4.6 刪除員工信息構(gòu)造scact類實現(xiàn)actionlistener接口,在該類中也是以員工信息中的員工號作為關(guān)鍵字,調(diào)用objectinputstream(new fileinputstream ()中的readobject()方法讀取文本文件中的數(shù)據(jù)。使用員工表.containskey(number)對關(guān)鍵字進行檢測,如果文本框中的員工號和文本文件中的數(shù)據(jù)相同,程序調(diào)用remove()方法把散列表中的該項員工的信息刪除,如果文本框中的員工號和文本文件中的數(shù)據(jù)不相同,則程序調(diào)用joptionpane.
34、showmessagedialog()方法提示該員工信息不存在。如果程序獲取到員工號文本框中的內(nèi)容為空,則提示用戶輸入員工號。以下程序?qū)崿F(xiàn)為代碼:class scact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false); string number=工號.gettext(); if(number.length()0) try intwo=new objectinputstream(new fileinputstream(file); 員工表=(hashtable)i
35、ntwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(員工表.containskey(number) employee stu=(employee)員工表.get(number); 姓名.settext(stu.getname(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(true); string m=確定要刪除該員工的記錄嗎?; int ok=joptionpane.showconfirmdialog(null,m
36、,確認, joptionpane.yes_no_option,joptionpane.question_message); if(ok=joptionpane.yes_option) 員工表.remove(number); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); outtwo.writeobject(員工表); outtwo.close(); outone.close(); 工號.settext(null); 姓名.settext(null); catch(exception e
37、e)system.out.println(ee); else if(ok=joptionpane.no_option) 工號.settext(null); 姓名.settext(null); else string warning=該號不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else string warning=必須輸入工號!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_mes
38、sage); 4.7 顯示員工信息實現(xiàn)actionlistener接口對構(gòu)造的xsact類用于接收操作事件的偵聽器接口。而使用該類創(chuàng)建的對象可使用組件的 addactionlistener 方法向該組件注冊。在發(fā)生操作事件時,調(diào)用該對象的 actionperformed 方法。從而調(diào)用sshow()方法實現(xiàn)顯示員工信息的功能。 class xsact implements actionlistener public void actionperformed(actionevent e) new sshow(file); 編寫sshow類繼承jdialog,定義hashtable類的“員工表”、
39、jtextarea類的“顯示”和處理字符流的fileinputstream和objectinputstream類型的inone與intwo,并對他們初始化。在sshow()方法中使用jtextarea類設置顯示面板,調(diào)用jscrollpane方法管理視口、可選的垂直和水平滾動條以及可選的行和列標題視口,最終設置如圖所示的顯示面板。intwo=new objectinputstream(new fileinputstream(file); 員工表=(hashtable)intwo.readobject(); intwo.close();對文本文件的讀取,使用isempty()和append()方
40、法判斷散列表中的內(nèi)容是否為空并把信息顯示在jtextarea文本顯示區(qū)中。實現(xiàn) enumeration 接口的對象,它生成一系列元素,一次生成一個。連續(xù)調(diào)用 nextelement 方法將返回一系列的連續(xù)元素。使用“顯示.append(str)” 方法將這些元素追加到顯示區(qū)域中。以下為程序功能實現(xiàn)的代碼: class sshow extends jdialog hashtable 員工表= null; jtextarea 顯示=null; fileinputstream inone=null; objectinputstream intwo=null; file file=null; public sshow(file file) super(new jframe(),顯示對話框); this.file=file; 顯示=new jtextarea(16,30); try intwo=new objectinputstream(new fileinputstream(file); 員工表=(hashtab
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代家具設計人才的培養(yǎng)與教育模式探討
- 酒店照明設計對顧客用餐心情的影響
- 家庭辦公環(huán)境的衛(wèi)生與健康改善措施
- 臨時勞動合同續(xù)簽協(xié)議
- 臨時工程合作合同范例
- 臨時工雇傭合同協(xié)議
- 中央空調(diào)系統(tǒng)維修保養(yǎng)合同
- 上海商業(yè)地產(chǎn)營銷代理合同
- 交通運輸設備合作協(xié)議
- 上市公司債券發(fā)行專項法律服務合同
- 2025年中國X線診斷設備行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2024版全文:中國2型糖尿病預防及治療指南
- 讀書心得《好老師征服后進生的14堂課》讀后感
- 公路工程施工安全應急預案(4篇)
- 北師大版五年級上冊數(shù)學教學課件第5課時 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請書
- 高考物理二輪專題課件:“配速法”解決擺線問題
- 檢驗科生物安全風險評估報告
- 京頤得移動門診產(chǎn)品輸液
- 如何做一名合格的帶教老師PPT精選文檔
評論
0/150
提交評論