久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

人員信息管理系統(tǒng) java課程設(shè)計(jì)

時(shí)間:2019-05-14 01:16:56下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《人員信息管理系統(tǒng) java課程設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《人員信息管理系統(tǒng) java課程設(shè)計(jì)》。

第一篇:人員信息管理系統(tǒng) java課程設(shè)計(jì)

大學(xué)人員信息管理系統(tǒng) / 29

目錄

目錄.......................................................................................................................................1 設(shè)計(jì)任務(wù)書...............................................................................................................................2 課程設(shè)計(jì)任務(wù)...........................................................................................................................2 程序功能實(shí)現(xiàn):.......................................................................................................................3 1.程序主體............................................................................................................................3 2.流程圖:............................................................................................................................4 3.模塊說明............................................................................................................................4 3.1、主菜單四個(gè)選項(xiàng)......................................................................................................4 3.2、教師功能菜單..........................................................................................................5 3.3、學(xué)生功能菜單..........................................................................................................5 3.4、查找菜單..................................................................................................................6 4.源代碼及說明.................................................................................................................6 4.1、listStuTea 類............................................................................................................6 4.2、Menu 類................................................................................................................10 4.3、StudnTeach 類.......................................................................................................16 4.4、Student 類.............................................................................................................19 4.5、Teacher 類.............................................................................................................19 4.6、Person 類...............................................................................................................20 4.7、lkExecption類........................................................................................................21 4.8、MainStuTea類........................................................................................................23 5.操作方法和測(cè)試結(jié)果......................................................................................................24 5.1.1、教師信息顯示.....................................................................................................24 5.1.2、教師信息添加.....................................................................................................24 5.1.3、教師信息刪除.....................................................................................................25 5.1.4、教師信息查找.....................................................................................................26 5.2、學(xué)生菜單實(shí)現(xiàn)........................................................................................................28 6.設(shè)計(jì)體會(huì)..........................................................................................................................28

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

設(shè)計(jì)任務(wù)書

問題描述:

編寫程序?qū)Υ髮W(xué)里的人員進(jìn)行管理。大學(xué)里的人員主要由學(xué)生、教師和在職進(jìn)修教師(既是學(xué)生又是教師)組成,各類人員均有姓名、電話和住址等信息,學(xué)生另有所屬專業(yè)信息,教師另有所在系部、授課信息及工資信息,在職進(jìn)修教師具備以上各類人員的信息。

要求:

1、設(shè)計(jì)Person類,保存各類人員均有的姓名、電話和住址等信息。

2、設(shè)計(jì)Student類或接口,繼承Person類,并添加所屬專業(yè)班級(jí)信息。

3、設(shè)計(jì)Teacher類接口,繼承Person類,并添加所在系部信息,授課信息及工資信息。

4、設(shè)計(jì)StudenTeacher類,繼承Student類接口和Teache類接口。其具備以上各類人員信息。

5、把創(chuàng)建的所有StudenTeacher對(duì)象按照其所屬系部依次組織在一個(gè)文件中方便查詢、修改、刪除及添加等操作。

6、對(duì)各類的對(duì)象進(jìn)行信息輸入操作,輸入信息包括該類對(duì)象的所有信息。

7、對(duì)各類的對(duì)象進(jìn)行輸出操作,顯示輸出該類對(duì)象的所有信息

課程設(shè)計(jì)任務(wù)及設(shè)計(jì)人

設(shè)計(jì)任務(wù):

大學(xué)人員信息管理系統(tǒng) 課程目的:

1、復(fù)習(xí)、鞏固Java語言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)Java語言的理解和掌握;

2、課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力;

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

3、培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及能力。

課程要求:

1、對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;

2、系統(tǒng)設(shè)計(jì)要實(shí)用,編程簡(jiǎn)練,可用,功能全面

3、說明書、流程圖要清楚

4、記錄設(shè)計(jì)情況(備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備);

5、要求采用模塊化程序設(shè)計(jì)方法,及鋸齒型書寫格式,要求上機(jī)調(diào)試通過和按設(shè)計(jì)報(bào)告格式。

6、本設(shè)計(jì)需要實(shí)現(xiàn)Java的面向?qū)ο箝_發(fā)運(yùn)用到的有Java的接口,Java的繼承,Java的異常處理,Java類的封裝。能夠在異常輸入的情況下,能正確處理。最后得到正確結(jié)果。

程序功能實(shí)現(xiàn):一、二、三、四、五、六、按照課程的要求實(shí)現(xiàn)學(xué)生和教師的基本信息的錄入。把輸入的教師和學(xué)生信息顯示出來。

有姓名和專業(yè)兩種查找方式去分別把老師和學(xué)生的信息查找并且顯示出來。刪除選項(xiàng)可以刪除相應(yīng)學(xué)生和老師信息。

用switch語句實(shí)現(xiàn)菜單功能,字符界面做到簡(jiǎn)潔清晰

異常處理處理錯(cuò)誤的輸入并且返回錯(cuò)誤的提示,更正后填入正確數(shù)據(jù)。

1.程序主體

1、設(shè)計(jì)分析:

1.1、實(shí)體是實(shí)現(xiàn)程序思想的主要方式,首先應(yīng)該分為學(xué)生和老師2個(gè)入口,分別做查詢和信息添加、顯示、刪除和查找的功能。

1.2、學(xué)生和老師的信息輸入考慮要求多名信息考慮用對(duì)象數(shù)組去實(shí)現(xiàn)。但是對(duì)象數(shù)組的刪除不是本學(xué)期的內(nèi)容。且排序麻煩。考慮用其他方式實(shí)現(xiàn)信息錄入,查閱相關(guān)信息發(fā)現(xiàn)可以使用list對(duì)象實(shí)現(xiàn)信息錄入和刪除。

1.3、菜單使用switch語句實(shí)現(xiàn)菜單功能,菜單的相互調(diào)用實(shí)現(xiàn)功能的循環(huán)。

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

2.流程圖:

3.模塊說明

3.1、主菜單四個(gè)選項(xiàng)

學(xué)生入口:

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

這個(gè)模塊與學(xué)生功能模塊相連。

教師入口:

這個(gè)模塊與教師功能模塊相連

顯示全部信息:

這個(gè)模塊顯示所有的老師和學(xué)生信息

3.2、教師功能菜單

顯示教師信息:

這個(gè)模塊顯示輸入的教師信息,如果不存在提示輸入信息

添加教師信息:

這個(gè)模塊添加教師基本信息

刪除教師信息:

這個(gè)模塊按照序號(hào)刪除教師信息,如果不存在提示信息輸入

查找教師信息:

按照姓名和專業(yè)查找教師信息

返回上一級(jí)菜單: 返回主菜單

3.3、學(xué)生功能菜單

顯示學(xué)生信息:

這個(gè)模塊顯示輸入的教師信息,如果不存在提示輸入信息

添加學(xué)生信息:

這個(gè)模塊添加教師基本信息

刪除學(xué)生信息:

這個(gè)模塊按照序號(hào)刪除教師信息,如果不存在提示信息輸入

查找學(xué)生信息:

按照姓名和專業(yè)查找學(xué)生信息

返回上一級(jí)菜單: 返回主菜單

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

3.4、查找菜單

按照姓名查找:

查找模塊,按照姓名查找,如果不存在則提示輸入信息。按照專業(yè)查找:

查找模塊,按照專業(yè)查找,如果不存在則提示輸入信息。

返回上一級(jí)菜單: 返回主菜單

4.源代碼及說明

4.1、listStuTea 類

用來實(shí)現(xiàn)學(xué)生和教師數(shù)據(jù)添加、刪除、查找的方法

import java.util.*;import lkExecption.LKExecption;public class listStuTea extends StudnTeach{

final int SIZE = 50;//最大學(xué)生和教師人數(shù)

listStuTea[] st = new listStuTea[SIZE];//學(xué)生和老師對(duì)象數(shù)組 Scanner into = new Scanner(System.in);List list1=new ArrayList();List list2=new ArrayList();public int getTeaNumber()//返回教師鏈表長(zhǎng)度 { } public int getStuNumber()//返回學(xué)生鏈表長(zhǎng)度 { } public int getNumber(){ // TODO Auto-generated method stub return list2.size()+list1.size();return list2.size();return list1.size();Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

} public void FindStuName(){

} public void FindTeaName(){

String tpname;boolean zy = true;StudnTeach point;System.out.println(“請(qǐng)輸入教師姓名:”);tpname = into.nextLine();for(int i = 0;i

} point =list1.get(i);if(tpname.equals(point.name)){

} //break;System.out.println(“要查找的姓名存在”);{ showTea(i,point);zy = false;//標(biāo)志位 } String tpname;boolean zy = true;StudnTeach point;System.out.println(“請(qǐng)輸入學(xué)生姓名:”);tpname = into.nextLine();for(int i = 0;i

} if(zy)System.out.println(“沒有該學(xué)生”);if(getStuNumber()==0)System.out.println(“警告!!學(xué)生數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);point =list2.get(i);if(tpname.equals(point.name)){

} System.out.println(“要查找的姓名存在”);showStu(i,point);zy = false;Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

if(zy)System.out.println(“沒有該老師”);if(getTeaNumber()==0)System.out.println(“警告!!老師數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);

} {

public void FindteaSpec()String tpSpec;boolean zy = true;StudnTeach point;System.out.println(“請(qǐng)輸入教師專業(yè):”);tpSpec = into.nextLine();for(int i = 0;i

} if(zy)System.out.println(“沒有該專業(yè)的老師”);if(getTeaNumber()==0)System.out.println(“警告!!老師數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);point =list1.get(i);if(tpSpec.equals(point.getteaSpeciality())){ showTea(i,point);zy = false;//標(biāo)志位 }

} {

public void FindstuSpec()String tpStu;boolean zy = true;StudnTeach point;System.out.println(“請(qǐng)輸入學(xué)生專業(yè):”);tpStu = into.nextLine();for(int i = 0;i

} if(zy)System.out.println(“沒有選修該專業(yè)的學(xué)生”);point =list2.get(i);if(tpStu.equals(point.getstuSpeciality())){ showStu(i,point);zy = false;//標(biāo)志位 } Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng) / 29

if(getStuNumber()==0)System.out.println(“警告!!學(xué)生數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);} public void showStu(int n,StudnTeach point){ point=list2.get(n);System.out.println(“學(xué)生編號(hào):”+n);

System.out.println(“姓名:”+point.name+“ 性別:”+point.sex+“ 年齡:”+point.age);

System.out.println(“電話:”+point.phone);System.out.println(“地址:”+point.address);System.out.println(“專業(yè):”+point.getstuSpeciality());System.out.println(“班級(jí):”+point.getClassname());}

public void showTea(int n,StudnTeach point){ point=list1.get(n);System.out.println(“教師編號(hào):”+n);

System.out.println(“姓名:”+point.name+“ 性別:”+point.sex+“ 年齡:”+point.age);

System.out.println(“電話:”+point.phone);System.out.println(“地址:”+point.address);System.out.println(“專業(yè):”+point.getteaSpeciality());System.out.println(“工資:”+point.getPay());}

public void addstu(int n)throws LKExecption {

st[n] = new listStuTea();st[n].add();st[n].setClassname();st[n].setstuSpeciality();list2.add(st[n]);if(list2.size()!=0)System.out.println(“添加學(xué)生成功”);

}

public void addtea(int n)throws LKExecption {

st[n] = new listStuTea();st[n].add();st[n].setteaSpeciality();Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

}

st[n].setPay();list1.add(st[n]);if(list1.size()!=0)System.out.println(“添加教師成功”);

}

public void delTea(){

}

public void delStu(){

} System.out.println(“請(qǐng)輸入被刪的學(xué)生編號(hào)”);int k =into.nextInt();if(list2.size()<=k||k<0)System.out.println(“刪除失敗!編號(hào)不存在請(qǐng)重新輸入!”);else { list2.remove(k);System.out.println(“刪除成功”);} System.out.println(“請(qǐng)輸入被刪的教師編號(hào)”);int k =into.nextInt();if(list1.size()<=k||k<0)System.out.println(“刪除失敗!編號(hào)不存在請(qǐng)重新輸入!”);else { list1.remove(k);System.out.println(“刪除成功”);} 4.2、Menu 類

字符菜單的實(shí)現(xiàn)

import java.util.*;import lkExecption.LKExecption;public class Menu {

Scanner into = new Scanner(System.in);int num = 0;List list=new ArrayList();Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

StudnTeach point = new listStuTea();//遍歷指針 public Menu()throws LKExecption{ } public int setIn(){

} void MainMenu()throws LKExecption//主菜單 { System.out.println(“================”);System.out.println(“1.教師入口”);System.out.println(“2.學(xué)生入口”);System.out.println(“3.顯示全部信息”);System.out.println(“4.退出管理”);switchMainMenu();} void FindMenu()//查找菜單 {

} void MenuTea1_1()throws LKExecption//老師菜單 {

System.out.println(“----------------”);System.out.println(“1.顯示教師信息”);System.out.println(“2.添加教師信息”);System.out.println(“3.刪除教師信息”);System.out.println(“4.查找教師信息”);System.out.println(“5.返回上一級(jí)菜單”);System.out.println(“----------------”);System.out.println(“1.按照姓名查找”);System.out.println(“2.按照專業(yè)查找”);System.out.println(“3.返回上一級(jí)菜單”);//switchMainMenu();int t;String tpNum = null;try{

} catch(NumberFormatException e){ } return t;t = new LKExecption().Num1Execption(tpNum);System.out.println(“請(qǐng)輸入選項(xiàng)”);tpNum = into.nextLine();t = Integer.parseInt(tpNum);MainMenu();Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

} switchMenuTea1_1();void MenuStu1_1()throws LKExecption//學(xué)生菜單 {

} void switchFindStuMenu()throws LKExecption//查找學(xué)生菜單 {

} void switchFindTeaMenu()throws LKExecption//查找教師菜單 {

int t;t = setIn();switch(t){ case 1: int t;t = setIn();switch(t){ case 1:

} point.FindStuName();FindMenu();switchFindStuMenu();break;point.FindstuSpec();FindMenu();switchFindStuMenu();break;MenuStu1_1();switchMenuStu1_1();break;System.out.println(“輸入錯(cuò)誤請(qǐng)重新輸入”);switchFindStuMenu();System.out.println(“----------------”);System.out.println(“1.顯示學(xué)生信息”);System.out.println(“2.添加學(xué)生信息”);System.out.println(“3.刪除學(xué)生信息”);System.out.println(“4.查找學(xué)生信息”);System.out.println(“5.返回上一級(jí)菜單”);switchMenuStu1_1();case 2: case 3: default: Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

} void switchMainMenu()throws LKExecption//主菜單 {

int t;t = setIn();switch(t){ case 1:

MenuTea1_1();//老師顯示菜單

break;MenuStu1_1();//學(xué)生顯示菜單

break;if(point.getNumber()==0)System.out.println(“警告!!數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);else{

} for(int i = 0;i

point.showTea(i,point);point.showStu(i,point);for(int i = 0;i

} point.FindteaSpec();FindMenu();switchFindTeaMenu();break;MenuTea1_1();switchMenuTea1_1();break;System.out.println(“輸入錯(cuò)誤請(qǐng)重新輸入”);switchFindTeaMenu();

point.FindTeaName();FindMenu();switchFindTeaMenu();break;case 2: case 3: default: case 2: case 3: Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

}

} MainMenu();break;System.out.println(“歡迎再次光臨!大學(xué)人員信息管理系統(tǒng)!”);break;System.out.println(“輸入錯(cuò)誤請(qǐng)重新輸入”);switchMainMenu();case 4: default: void switchMenuTea1_1()throws LKExecption {

System.out.println(“----------------”);int t;t = setIn();switch(t){ case 1:

if(point.getTeaNumber()==0)System.out.println(“警告!!教師數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);for(int i = 0;i

FindMenu();switchFindTeaMenu();break;MainMenu();break;case 2: case 3: case 4: case 5: Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

}

} default:

} System.out.println(“輸入錯(cuò)誤請(qǐng)重新輸入”);switchMenuTea1_1();void switchMenuStu1_1()throws LKExecption {

} System.out.println(“----------------”);int t;t = setIn();switch(t){ case 1:

} if(point.getStuNumber()==0)System.out.println(“警告!!學(xué)生數(shù)據(jù)為空請(qǐng)?zhí)砑訑?shù)據(jù)”);for(int i = 0;i

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

4.3、StudnTeach 類

繼承于教師和學(xué)生接口實(shí)現(xiàn)它們抽象方法,且繼承人類屬性。

import java.util.*;

import lkExecption.LKExecption;class StudnTeach extends Person implements Student,Teacher{

Scanner into = new Scanner(System.in);float pay = 0;//工資

String classname = null;//班級(jí) String stuSpec = null;//老師專業(yè) String teaSpec = null;//學(xué)生專業(yè)

void add()throws LKExecption {

}

public void addstu(int n)throws LKExecption{

}

public void addtea(int n)throws LKExecption{

}

public void setPay(){

String tpNum = null;try{ //add();

//setteaSpeciality();//setPay();//add();

//setClassname();//setstuSpeciality();setName();setSex();setAge();setPhone();System.out.println(“請(qǐng)輸入地址”);address = into.nextLine();

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

}

} System.out.println(“請(qǐng)輸入工資:”);tpNum = into.nextLine();pay = Integer.parseInt(tpNum);catch(NumberFormatException e){ } pay = new LKExecption().Num1Execption(tpNum);public float getPay(){

}

public void setClassname(){

}

public String getClassname(){

}

public void setstuSpeciality(){

}

public String getstuSpeciality(){

}

return stuSpec;

System.out.println(“請(qǐng)輸入專業(yè):”);stuSpec = into.nextLine();

return classname;

System.out.println(“請(qǐng)輸入班級(jí):”);classname = into.nextLine();

return pay;Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

public void setteaSpeciality(){

System.out.println(“請(qǐng)輸入專業(yè):”);

teaSpec = into.nextLine();

}

public String getteaSpeciality(){

return teaSpec;}

public void show(boolean b, int num, StudnTeach point){

}

public void showStu(int num, StudnTeach point){

}

public void showTea(int num, StudnTeach point){

}

public int getStuNumber(){

return 0;}

public int getTeaNumber(){

return 0;}

public int getNumber(){

return 0;}

public void delStu(){

} Java程序設(shè)計(jì)

/ 29 大學(xué)人員信息管理系統(tǒng)

/ 29

} public void FindteaSpec(){ } public void FindTeaName(){ } public void FindstuSpec(){ } public void FindStuName(){ } public void delTea(){ }

4.4、Student 類

接口、學(xué)生的抽象方法

public interface Student {

} abstract void setstuSpeciality();abstract String getstuSpeciality();abstract void setClassname();abstract String getClassname();

4.5、Teacher 類

接口、教師的抽象方法

public interface Teacher { Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

} abstract void setteaSpeciality();abstract String getteaSpeciality();abstract void setPay();abstract float getPay();

4.6、Person 類

定義人類的基本屬性

import java.util.*;import lkExecption.LKExecption;public class Person {

Scanner into = new Scanner(System.in);String name;int phone;String address;String sex;int age;public void setName(){

} public void setSex()throws LKExecption {

} public void setAge(){ String tpAge = null;try{ System.out.println(“請(qǐng)輸入性別:”);sex = into.nextLine();if(sex.equals(“man”)||sex.equals(“woman”)){} else

} catch(LKExecption lk){ } sex = new LKExecption().sexExecption(sex);throw new LKExecption();System.out.println(“請(qǐng)輸入姓名:”);name = into.nextLine();Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

}

} try{

} catch(NumberFormatException e){ } age = new LKExecption().NumExecption(tpAge);System.out.println(“請(qǐng)輸入年齡:”);tpAge = into.nextLine();age = Integer.parseInt(tpAge);public void setPhone(){

} String tpNum = null;try{

} catch(NumberFormatException e){ } phone = new LKExecption().Num1Execption(tpNum);System.out.println(“請(qǐng)輸入電話號(hào)碼:”);tpNum = into.nextLine();phone = Integer.parseInt(tpNum);

4.7、lkExecption類

自定義異常類

package lkExecption;import java.util.Scanner;public class LKExecption extends Exception {

Scanner into = new Scanner(System.in);public String sexExecption(String mg){

String str;boolean pd = true;do{

System.out.println(mg+“ 不是正確的性別,正確的性別為 man 或者 woman”);str = into.next();Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

} //System.out.println(mg+“ 驗(yàn)證”);

if(str.equals(“man”)||str.equals(“woman”)){ } }while(pd);return str;pd = false;public int NumExecption(String mg){

String num = null;int tpNum = 0;boolean pd = true;System.out.println(mg+“ 請(qǐng)正確的數(shù)字或者不在范圍內(nèi)!請(qǐng)重新輸入!”);do{

try{

} catch(NumberFormatException e){ System.out.println(num+“ 請(qǐng)正確的數(shù)字或者不在范圍內(nèi)!請(qǐng)重新輸num = into.nextLine();tpNum = Integer.parseInt(num);if(tpNum>120||tpNum<0)//范圍判斷 throw new NumberFormatException();else pd = false;入!”);

}

} public String charExecption(String mg){

final String[] str={“null”};//這里指定 規(guī)定字段 boolean pd = true;do{ System.out.println(mg+“ 不是正確字段,請(qǐng)輸入指定的字段”);mg = into.next();for(int i =0;i

/ 29

}

} } }while(pd);return mg;public int Num1Execption(String mg){

} String num;int tpNum = 0;System.out.println(mg+“ 不是數(shù)字!請(qǐng)輸入數(shù)字!”);do{

try{

} catch(NumberFormatException e){ System.out.println(mg+“ 不是數(shù)字!請(qǐng)輸入數(shù)字!”);} num = into.nextLine();tpNum = Integer.parseInt(num);break;}while(true);return tpNum;4.8、MainStuTea類

主函數(shù)調(diào)用

import lkExecption.LKExecption;public class MainStuTea {

} public static void main(String[] args)throws LKExecption { Menu lk = new Menu();}

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

5.操作方法和測(cè)試結(jié)果 5.1.1、教師信息顯示

選擇一進(jìn)入教師信息入口

選擇一進(jìn)入教師信息查看

因?yàn)槲覀儧]有添加教師信息,所以他要求我們添加教師信息

5.1.2、教師信息添加

選擇二進(jìn)入教師信息添加

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

教師信息添加成功,如果不是指定字段輸入,出現(xiàn)異常則重新輸入 如下為添加的信息輸入顯示

5.1.3、教師信息刪除

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

5.1.4、教師信息查找

專業(yè)查找

現(xiàn)在添加三個(gè)教師信息,如下顯示

首先使用專業(yè)查找,我們查找computer專業(yè)的

Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

查找其他math專業(yè)

查找不存在的專業(yè)

姓名查找

再添加一個(gè)同名的教師

查找lisi Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

5.2、學(xué)生菜單實(shí)現(xiàn)

學(xué)生信息采取同樣測(cè)試

6.設(shè)計(jì)體會(huì)

這個(gè)課程設(shè)計(jì)可以的設(shè)計(jì)心得,可謂十分波折。全部的源代碼都出自自己,其中的list排列我們還沒有學(xué)習(xí)。在這里要感謝google感謝baidu。沒有他們就沒有今天的代碼。當(dāng)然網(wǎng)上只有相似的課題沒有相同的代碼,list排列經(jīng)過自己一小時(shí)的摸索可以了解了部分的運(yùn)用,首先寫了一個(gè)test類來測(cè)試這個(gè)用法

import java.util.ArrayList;import java.util.LinkedList;import java.util.Iterator;import java.util.List;import java.util.Scanner;

public class test { public static void main(String[] args){

System.out.println(“開始:”);String a = “A”, b = “B”, c = “C”, d = “D”, e = “E”;List list = new LinkedList();list.add(a);list.add(e);list.add(d);Java程序設(shè)計(jì) 大學(xué)人員信息管理系統(tǒng)

/ 29

list.set(1, b);// 將索引位置為1的對(duì)象e修改為對(duì)象b list.add(2, c);// 將對(duì)象c添加到索引位置為2的位置 list.add(e);list.remove(1);Iterator it = list.iterator();while(it.hasNext()){ System.out.println(it.next());} }

System.out.println(“結(jié)束!”);} } 再想了一下把它添加進(jìn)了listStuTea對(duì)象,全都的代碼完成用了一天的時(shí)間,在原來想起寫500多行的代碼幾乎是不可能的,但是在這個(gè)課程設(shè)計(jì)中實(shí)現(xiàn)了。這個(gè)課程設(shè)計(jì)真的使自己學(xué)到了很多的東西。在接口的使用還不是很好的和實(shí)際模型很多的結(jié)合起來,這是鍛煉較少的原因,前期的分析也幼稚的表現(xiàn)了自己在這方面的不足,在層次結(jié)構(gòu)上浪費(fèi)了較多的時(shí)間。總之在這方面的鍛煉還是比較少,我想不管是在以后布置下來的課程設(shè)計(jì)才去編寫代碼,這是不可行的,得在平時(shí)多多鍛煉。

Java程序設(shè)計(jì)

第二篇:JAVA課程設(shè)計(jì)員工信息管理系統(tǒng)

JAVA員工管理系統(tǒng)

實(shí)驗(yàn)報(bào)告

姓名:張旭冉

學(xué)號(hào):10105010117

班級(jí):信10-1

北方工業(yè)大學(xué)理學(xué)院信息與計(jì)算科學(xué)系

2013年 12月 17日

員工管理系統(tǒng)一、實(shí)驗(yàn)?zāi)康?/p>

通過該課程設(shè)計(jì),使同學(xué)們進(jìn)一步理解概JAVA的基本概念、理論和方法,初步掌握J(rèn)DK、Eclipse的調(diào)試和應(yīng)用,以及程序中錯(cuò)誤的解決方法,明確JAVA在實(shí)際程序設(shè)計(jì)中的應(yīng)用。使課堂中學(xué)習(xí)到理論得到應(yīng)用,練習(xí)文件形式在JAVA程序設(shè)計(jì)中的應(yīng)用。

二、實(shí)驗(yàn)內(nèi)容

A.設(shè)計(jì)題目:?jiǎn)T工管理系統(tǒng)

設(shè)計(jì)要求:(1)完成員工信息的添加、刪除、查詢、修改功能

(2)使用用戶界面操作

(3)使用文件形式完成

設(shè)計(jì)思路:首先設(shè)計(jì)界面進(jìn)入面板,在面板中添加菜單選項(xiàng),并將要實(shí)現(xiàn)的功能選項(xiàng)添加其中,然后對(duì)這些選項(xiàng)實(shí)施監(jiān)聽,實(shí)現(xiàn)其功能。通過文件類型知識(shí)的應(yīng)用,實(shí)現(xiàn)對(duì)員工信息的管理。B.概要設(shè)計(jì)

面板設(shè)計(jì):首先設(shè)計(jì)一個(gè)容器,然后再容器中添加菜單,在菜單中添加選項(xiàng),并在容器中加入面板,面板布局設(shè)置為CardLayout,最后將面板添加進(jìn)容器。

功能實(shí)現(xiàn):在錄入、查詢、修改和刪除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice為界面中加入相應(yīng)的組件,并對(duì)其進(jìn)行監(jiān)聽,同時(shí)附加了文件流的處理。C.詳細(xì)設(shè)計(jì)

1、定義員工類:

public class Employee implements java.io.Serializable { String number,name,discipling,grade,borth,sex;public Employee(){ } public void setNumber(String number){ this.number=number;} public String getNumber(){ return number;

} public void setName(String name){ this.name=name;} public String getName(){ return name;} public void setDiscipling(String discipling){ this.discipling=discipling;} public String getDisciping(){ return discipling;} public void setGrade(String grade){ this.grade=grade;} public String getGrade(){ return grade;} public void setBorth(String borth){ this.borth=borth;} public String getBorth(){ return borth;} public void setSex(String sex){ this.sex=sex;} public String getSex(){ return sex;}}

2、主程序:

import java.awt.*;

import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class EmployeeManager extends JFrame implements ActionListener { EmployeeSituation 基本信息錄入=null;ModifySituation 基本信息修改=null;Inquest 基本信息查詢=null;Delete 基本信息刪除=null;JMenuBar bar;JMenu fileMenu;JMenuItem 錄入,修改,查詢,刪除;Container con=null;Hashtable 基本信息=null;File file=null;CardLayout card=null;JLabel label=null;JPanel pCenter;public EmployeeManager(){ 錄入=new JMenuItem(“錄入員工基本信息”);修改=new JMenuItem(“修改員工基本信息”);查詢=new JMenuItem(“查詢員工基本信息”);刪除=new JMenuItem(“刪除員工基本信息”);bar=new JMenuBar();fileMenu=new JMenu(“菜單選項(xiàng)”);fileMenu.add(錄入);fileMenu.add(修改);fileMenu.add(查詢);fileMenu.add(刪除);bar.add(fileMenu);setJMenuBar(bar);label=new JLabel(“歡迎進(jìn)入員工信息管理系統(tǒng)”,JLabel.CENTER);label.setFont(new Font(“SansSerif”,Font.BOLD+Font.ITALIC,25));label.setForeground(Color.red);基本信息=new Hashtable();錄入.addActionListener(this);修改.addActionListener(this);查詢.addActionListener(this);刪除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();

pCenter.setLayout(card);pCenter.setBackground(Color.yellow);file=new File(“基本信息.txt”);if(!file.exists()){

try

{

FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(基本信息);

objectOut.close();

out.close();

}

catch(IOException e)

{

} } 基本信息錄入=new EmployeeSituation(file);基本信息修改=new ModifySituation(file);基本信息查詢=new Inquest(this,file);基本信息刪除=new Delete(file);pCenter.add(“歡迎語界面”,label);pCenter.add(“錄入界面”,基本信息錄入);pCenter.add(“修改界面”,基本信息修改);pCenter.add(“刪除界面”,基本信息刪除);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0);}});setVisible(true);setBounds(100,50,420,380);validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==錄入){ card.show(pCenter,“錄入界面”);} else if(e.getSource()==修改)

{ card.show(pCenter,“修改界面”);} else if(e.getSource()==查詢){ 基本信息查詢.setVisible(true);} else if(e.getSource()==刪除){ card.show(pCenter,“刪除界面”);} } public static void main(String args[]){ new EmployeeManager();}}

3、實(shí)現(xiàn)員工信息的錄入: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class EmployeeSituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 員工號(hào),姓名,工資;Choice 部門;JRadioButton 男,女;Employee 員工=null;ButtonGroup group=null;JButton 錄入,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public EmployeeSituation(File file){

this.file=file;

員工號(hào)=new JTextField(10);

姓名=new JTextField(10);

部門=new Choice();部門.add(“請(qǐng)選擇”);部門.add(“研發(fā)部”);部門.add(“銷售部”);部門.add(“人事部”);部門.add(“安全部”);工資=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(“男”,true);女=new JRadioButton(“女”,false);group.add(男);group.add(女);錄入=new JButton(“錄入”);重置=new JButton(“重置”);錄入.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(“員工號(hào):”,JLabel.CENTER));box1.add(員工號(hào));Box box2=Box.createHorizontalBox();box2.add(new JLabel(“姓名:”,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(“性別:”,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(“部門:”,JLabel.CENTER));box4.add(部門);Box box6=Box.createHorizontalBox();box6.add(new JLabel(“ ”,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(“工資:”,JLabel.CENTER));box5.add(工資);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

JPanel pSouth=new JPanel();

pSouth.add(錄入);

pSouth.add(重置);

pSouth.setBackground(Color.yellow);

add(pSouth,BorderLayout.SOUTH);

validate();

} public void actionPerformed(ActionEvent e){ if(e.getSource()==錄入){ String number=“";number=員工號(hào).getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String warning=”該員工基本信息已存在,請(qǐng)到修改頁面修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);} else { String m=”基本信息將被錄入!“;int ok=JOptionPane.showConfirmDialog(this,m,”確認(rèn)“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();

String discipling=部門.getSelectedItem();String grade=工資.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} 員工=new Employee();員工.setNumber(number);員工.setName(name);員工.setDiscipling(discipling);員工.setGrade(grade);員工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);

基本信息表.put(number,員工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();

員工號(hào).setText(null);

姓名.setText(null);

工資.setText(null);} catch(Exception ee){ System.out.println(ee);}}}} else { String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}

if(e.getSource()==重置)

{

員工號(hào).setText(null);

姓名.setText(null);

部門.remove(部門.getSelectedIndex());

工資.setText(null);}}}

4、實(shí)現(xiàn)員工信息的修改: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 員工號(hào),姓名,工資;Choice 部門;JRadioButton 男,女;ButtonGroup group=null;JButton 開始修改,錄入修改,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file)

{ this.file=file;員工號(hào)=new JTextField(10);姓名=new JTextField(10);部門=new Choice();部門.add(”請(qǐng)選擇“);部門.add(”研發(fā)部“);部門.add(”銷售部“);部門.add(”人事部“);部門.add(”安全部“);工資=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(”男“,true);女=new JRadioButton(”女“,false);group.add(男);group.add(女);開始修改=new JButton(”開始修改“);錄入修改=new JButton(”錄入修改“);錄入修改.setEnabled(false);重置=new JButton(”重置“);員工號(hào).addActionListener(this);開始修改.addActionListener(this);錄入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”輸入要修改信息的員工號(hào):“,JLabel.CENTER));box1.add(員工號(hào));box1.add(開始修改);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性別:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部門:“,JLabel.CENTER));box4.add(部門);Box box6=Box.createHorizontalBox();box6.add(new JLabel(” “,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工資:“,JLabel.CENTER));box5.add(工資);Box boxH=Box.createVerticalBox();

boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.yellow);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(錄入修改);pSouth.add(重置);pSouth.setBackground(Color.yellow);add(pSouth,BorderLayout.SOUTH);validate();

} public void actionPerformed(ActionEvent e){

if(e.getSource()==開始修改||e.getSource()==員工號(hào))

{

String number=”“;

number=員工號(hào).getText();

if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ 錄入修改.setEnabled(true);Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部門.getSelectedItem();工資.setText(stu.getGrade());

if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} }

else

{

錄入修改.setEnabled(false);String warning=”該員工號(hào)不存在!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);員工號(hào).setText(null);姓名.setText(null);部門.remove(部門.getSelectedItem());工資.setText(null);

} }

else { 錄入修改.setEnabled(false);String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);員工號(hào).setText(null);姓名.setText(null);部門.remove(部門.getSelectedItem());工資.setText(null);}

}

else if(e.getSource()==錄入修改)

{

String number=”“;

number=員工號(hào).getText();

if(number.length()>0)

{

try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();

inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String question=”該員工基本信息已存在,您想修改他(她)的基本信息嗎?“;JOptionPane.showMessageDialog(this,question,”警告“,JOptionPane.QUESTION_MESSAGE);String m=”基本信息將被修改!“;int ok=JOptionPane.showConfirmDialog(this,m,”確認(rèn)“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();String discipling=部門.getSelectedItem();String grade=工資.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} Employee 員工=new Employee();

員工.setNumber(number);

員工.setName(name);

員工.setDiscipling(discipling);

員工.setGrade(grade);

員工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,員工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();

員工號(hào).setText(null);姓名.setText(null);部門.remove(部門.getSelectedItem());工資.setText(null);} catch(Exception ee){ System.out.println(ee);} 錄入修改.setEnabled(false);} else if(ok==JOptionPane.NO_OPTION){ 錄入修改.setEnabled(true);} }

else

{ String warning=”該員工號(hào)沒有基本信息,不能修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);錄入修改.setEnabled(false);

}

}

else

{

String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);

錄入修改.setEnabled(false);

}

}

if(e.getSource()==重置)

{

員工號(hào).setText(null);

姓名.setText(null);

部門.remove(部門.getSelectedItem());

工資.setText(null);}}}

5、實(shí)現(xiàn)員工信息的查詢: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener { Hashtable 基本信息表=null;JTextField 員工號(hào),姓名,部門,工資;JRadioButton 男,女;JButton 查詢;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public Inquest(JFrame f,File file){

super(f,”查詢對(duì)話框“,false);

this.file=file;

員工號(hào)=new JTextField(10);

查詢=new JButton(”查詢“);

員工號(hào).addActionListener(this);

查詢.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);部門=new JTextField(10);部門.setEditable(false);工資=new JTextField(10);工資.setEditable(false);男=new JRadioButton(”男“,false);女=new JRadioButton(”女“,false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”輸入要查詢的員工號(hào):“,JLabel.CENTER));box1.add(員工號(hào));box1.add(查詢);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性別:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部門:“,JLabel.CENTER));box4.add(部門);Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工資:“,JLabel.CENTER));box5.add(工資);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.green);Container con=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,360,270);

addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false);} });} public void actionPerformed(ActionEvent e){ 姓名.setText(null);部門.setText(null);工資.setText(null);if(e.getSource()==查詢||e.getSource()==員工號(hào)){ String number=”“;number=員工號(hào).getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部門.setText(stu.getDisciping());工資.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} } else {

String warning=”該員工號(hào)不存在!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}} else { String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}}}

6、實(shí)現(xiàn)員工信息的刪除: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener {

Hashtable 基本信息表=null;

JTextField 員工號(hào),姓名,部門,工資;

JRadioButton 男,女;

JButton 刪除;

ButtonGroup group=null;

FileInputStream inOne=null;

ObjectInputStream inTwo=null;

FileOutputStream outOne=null;

ObjectOutputStream outTwo=null;

File file=null;

public Delete(File file)

{

this.file=file;

員工號(hào)=new JTextField(10);

刪除=new JButton(”刪除“);

員工號(hào).addActionListener(this);

刪除.addActionListener(this);

姓名=new JTextField(10);

姓名.setEditable(false);

部門=new JTextField(10);

部門.setEditable(false);

工資=new JTextField(10);

工資.setEditable(false);

男=new JRadioButton(”男“,false);

女=new JRadioButton(”女“,false);

group=new ButtonGroup();

group.add(男);

group.add(女);

Box box1=Box.createHorizontalBox();

box1.add(new JLabel(”輸入要?jiǎng)h除的學(xué)號(hào):“,JLabel.CENTER));

box1.add(員工號(hào));

box1.add(刪除);

Box box2=Box.createHorizontalBox();

box2.add(new JLabel(”姓名:“,JLabel.CENTER));

box2.add(姓名);

Box box3=Box.createHorizontalBox();

box3.add(new JLabel(”性別:“,JLabel.CENTER));

box3.add(男);

box3.add(女);

Box box4=Box.createHorizontalBox();

box4.add(new JLabel(”部門:“,JLabel.CENTER));

box4.add(部門);

Box box6=Box.createHorizontalBox();

box6.add(new JLabel(” “,JLabel.CENTER));

Box box5=Box.createHorizontalBox();

box5.add(new JLabel(”工資:“,JLabel.CENTER));

box5.add(工資);

Box boxH=Box.createVerticalBox();

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box5);

boxH.add(box6);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanel pCenter=new JPanel();

pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

validate();

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==刪除||e.getSource()==員工號(hào))

{

String number=”“;

number=員工號(hào).getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){

} if(基本信息表.containsKey(number)){

Employee stu=(Employee)基本信息表.get(number);

姓名.setText(stu.getName());

部門.setText(stu.getDisciping());

工資.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} String m=”確定要?jiǎng)h除該員工號(hào)及全部信息嗎?“;int ok=JOptionPane.showConfirmDialog(this,m,”確認(rèn)

“,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();員工號(hào).setText(null);姓名.setText(null);部門.setText(null);工資.setText(null);} catch(Exception ee){ System.out.println(ee);} } else if(ok==JOptionPane.NO_OPTION){ 員工號(hào).setText(null);姓名.setText(null);部門.setText(null);

工資.setText(null);} } else {

String warning=”該員工號(hào)不存在!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);} } else {

String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告",JOptionPane.WARNING_MESSAGE);}}}}

三、實(shí)驗(yàn)結(jié)果體會(huì)

本次JAVA課程設(shè)計(jì)我所編寫的程序是員工信息管理系統(tǒng),程序中實(shí)現(xiàn)了對(duì)員工信息的添加、查詢、修改、刪除的功能,我是應(yīng)用文件的形式完成的,其中還應(yīng)用到了圖形用戶界面。我設(shè)計(jì)的程序簡(jiǎn)單易懂,操作簡(jiǎn)單,且 適用于不同的單位使用,只需按照自己的需要將所要錄入的信息名稱做添加或修改就可以實(shí)現(xiàn)。通過這次JAVA的程序設(shè)計(jì),使我對(duì)JAVA有了更加深入的了解,鞏固了我對(duì)JAVA基礎(chǔ)知識(shí)的掌握。

第三篇:大學(xué)JAVA課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)

沈陽理工大學(xué)課程設(shè)計(jì)

沈陽理工大學(xué)課程設(shè)計(jì)

摘要

Java語言是當(dāng)前最為流行的程序設(shè)計(jì)語言之一,諸多優(yōu)秀的的特性使其成為被業(yè)界廣泛認(rèn)可和采用的工具。本設(shè)計(jì)可以幫助同學(xué)掌握和應(yīng)運(yùn)所學(xué)的面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)生學(xué)籍信息管理系統(tǒng)的編程內(nèi)容,培養(yǎng)同學(xué)們建立對(duì)象模型,處理對(duì)象和對(duì)象集關(guān)系和對(duì)圖形用回界面設(shè)計(jì)編程以及文件和流的編程問題的能力,訓(xùn)練同學(xué)為解決實(shí)際問題而創(chuàng)建較完整的簡(jiǎn)單面向?qū)ο蠛凸芾硐到y(tǒng)編程應(yīng)運(yùn)程序的獨(dú)立編程能力.本設(shè)計(jì)是一個(gè)常見的學(xué)生學(xué)籍管理系統(tǒng)應(yīng)運(yùn)程序.系統(tǒng)實(shí)現(xiàn)的功能: 界面操作實(shí)現(xiàn)學(xué)生學(xué)籍信息的添加、刪除、查詢、修改功能,在文本文件中的的信息的動(dòng)態(tài)處理。

關(guān)鍵詞:

學(xué)生學(xué)籍管理系統(tǒng);圖形用戶界面設(shè)計(jì);文件和流;java

I

沈陽理工大學(xué)課程設(shè)計(jì)

目 錄

一、課程設(shè)計(jì)的目的與意義..........................................................................................1

1.目的..........................................................1 2.意義..........................................................1

二、需求分析..........................................................................................................................1

1.學(xué)生學(xué)籍管理系統(tǒng)主界面模塊................................1 2.錄入學(xué)生基本信息模塊......................................1 3.修改學(xué)生基本信息模板......................................1 3.查詢學(xué)生基本信息模板......................................1 4.刪除學(xué)生基本信息模板......................................1

三、分案設(shè)計(jì)..........................................................................................................................3

1.定義四個(gè)Panel面板......................................3

四、方案的實(shí)施......................................................................................................3

五、心得體會(huì).........................................................................................................15

六、參考文獻(xiàn).........................................................................................................16

II

沈陽理工大學(xué)課程設(shè)計(jì)

一、課程設(shè)計(jì)的目的與意義

目的:深入理解java語言的語法規(guī)則及其優(yōu)勢(shì),掌握類與方法的構(gòu)造方法,掌 握基于java的各種操作的實(shí)現(xiàn)方法,訓(xùn)練對(duì)基礎(chǔ)知識(shí)和基本方法的綜合運(yùn)用能力,增強(qiáng)對(duì)算法的理解能力,提高軟件設(shè)計(jì)能力。在實(shí)踐中培養(yǎng)獨(dú)立分析問題和解決問題的作風(fēng)和能力。

意義:熟練運(yùn)用java語言、基本構(gòu)造方法和算法的基礎(chǔ)知識(shí),獨(dú)立編制一個(gè)具有中等難度的、解決實(shí)際應(yīng)用問題的應(yīng)用程序。通過題意分析、選擇類結(jié)構(gòu)、算法設(shè)計(jì)、編制程序、調(diào)試程序、軟件測(cè)試、結(jié)果分析、撰寫課程設(shè)計(jì)報(bào)告等環(huán)節(jié)完成軟件設(shè)計(jì)的全過程,不斷地完善程序以提高程序的性能。

二、需求分析

該學(xué)生學(xué)籍管理系統(tǒng)的所有功能均在一個(gè)Frame窗體中實(shí)現(xiàn)。1.學(xué)生學(xué)籍管理系統(tǒng)主界面模塊:

采用Frame窗體來設(shè)置歡迎界面包括背景圖片及字幕(可以設(shè)計(jì)成滾動(dòng)字幕效果),左上方的菜單條設(shè)計(jì)成下拉式。包括“錄入學(xué)生基本信息”、“修改學(xué)生基本信息”、“刪除學(xué)生基本信息”、“查詢學(xué)生基本信息”和“退出系統(tǒng)”五項(xiàng)菜單項(xiàng)。2.錄入學(xué)生基本信息模塊:

采用Panel面板來設(shè)置該部分內(nèi)容信息并采用方位布局(邊緣布局)和Box輕量級(jí)組件來設(shè)置“學(xué)號(hào)”、“姓名”、“性別”、“專業(yè)”、“年級(jí)”、“出生”,并在該面板中添加了“錄入”和“重置”兩個(gè)按鈕進(jìn)行監(jiān)聽,最后將該面板加入到Frame窗體中去。3.修改學(xué)生基本信息模板:

采用Panel面板來設(shè)置該部分內(nèi)容信息,同樣是采用方位布局及Box組件來設(shè)置相關(guān)信息,并在學(xué)號(hào)旁設(shè)置了“開始修改”按鈕。在面板南部方位添加了“確定修改”和“重置”兩按鈕進(jìn)行監(jiān)聽。4.查詢學(xué)生基本信息模板:

采用Panel面板來設(shè)置該部分內(nèi)容信息,并將該面板加入到主窗體中去,采用邊緣布局進(jìn)行方位設(shè)置,在上方加入“查詢”按鈕進(jìn)行監(jiān)聽。

5.刪除學(xué)生基本信息模板:

也是采用Panel面板進(jìn)行設(shè)置相關(guān)內(nèi)容,并用邊緣布局進(jìn)行布局,并在上方添加“確定”按鈕,在下方添加“確定刪除”按鈕實(shí)現(xiàn)監(jiān)聽。

三、模塊設(shè)計(jì)

定義四個(gè)Panel面板

1.定義Reg(錄入學(xué)生基本信息)面板

采用BorderLayout(構(gòu)造一個(gè)組件之間沒有間距的新邊界布)和Box輕量級(jí)組件進(jìn)行布局,在面板的Nother方位添加一個(gè)“錄入學(xué)生基本信息”的標(biāo)簽,并更改字體,顏色等。接著用JTextField輕量級(jí)組件來設(shè)置單行文本編輯,并將其加入到用

沈陽理工大學(xué)課程設(shè)計(jì)

createHorizontalBox()方法創(chuàng)建具有一個(gè)從左到右顯示其組件的Box和用createHorizontalStrut()創(chuàng)建一個(gè)不可見的、固定寬度的組件,使其在一個(gè)橫向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量。然后Box與Box之間用createVerticalBox()創(chuàng)建一個(gè)從上到下顯示其組件的 Box,并用createVerticalStrut()方法創(chuàng)建一個(gè)不可見的、固定高度的組件,使其在一個(gè)縱向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量。然后在面板的South方位設(shè)置“錄入”與“重置”兩按鈕。最后實(shí)現(xiàn)與數(shù)據(jù)庫的橋接,能夠?qū)奈谋究颢@得的信息存儲(chǔ)到數(shù)據(jù)庫中去。

2.定義Search(查詢學(xué)生基本信息)面板

該部分同樣采用BorderLayout(構(gòu)造一個(gè)組件之間沒有間距的新邊界布)和Box輕量級(jí)組件進(jìn)行布局,在面板的Nother方位添加一個(gè)“查詢學(xué)生基本信息”的標(biāo)簽,并更改字體,顏色等。接著用JTextField輕量級(jí)組件來設(shè)置單行文本編輯,在學(xué)號(hào)這一文本框后再添加一個(gè)“查詢”按鈕。并將其加入到用createHorizontalBox()方法創(chuàng)建具有一個(gè)從左到右顯示其組件的Box和用createHorizontalStrut()創(chuàng)建一個(gè)不可見的、固定寬度的組件,使其在一個(gè)橫向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量。然后Box與Box之間用createVerticalBox()創(chuàng)建一個(gè)從上到下顯示其組件的 Box,并用createVerticalStrut()方法創(chuàng)建一個(gè)不可見的、固定高度的組件,使其在一個(gè)縱向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量。最后實(shí)現(xiàn)與數(shù)據(jù)庫的橋接,能夠?qū)臄?shù)據(jù)庫中獲取信息并顯示到文本框中去。

3.定義Modify(修改學(xué)生基本信息)面板

該部分同樣也是采用BorderLayout(構(gòu)造一個(gè)組件之間沒有間距的新邊界布)和Box輕量級(jí)組件進(jìn)行布局,在面板的Nother方位添加一個(gè)“修改學(xué)生基本信息”的標(biāo)簽,并更改字體,顏色等。接著用JTextField輕量級(jí)組件來設(shè)置單行文本編輯,并將其加入到用createHorizontalBox()方法創(chuàng)建具有一個(gè)從左到右顯示其組件的Box和用createHorizontalStrut()創(chuàng)建一個(gè)不可見的、固定寬度的組件,使其在一個(gè)橫向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量。并在 “學(xué)號(hào)”該文本框后添加一個(gè)“開始修改”按鈕用來監(jiān)聽。然后Box與Box之間用createVerticalBox()創(chuàng)建一個(gè)從上到下顯示其組件的 Box,并用createVerticalStrut()方法創(chuàng)建一個(gè)不可見的、固定高度的組件,使其在一個(gè)縱向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量。最后實(shí)現(xiàn)與數(shù)據(jù)庫的橋接,能夠?qū)臄?shù)據(jù)庫中獲取信息并顯示到文本框中去,并將修改后的信息存儲(chǔ)到數(shù)據(jù)庫中去。

4.定義Delete(刪除學(xué)生基本信息)面板

該部分還是采用BorderLayout(構(gòu)造一個(gè)組件之間沒有間距的新邊界布)和Box輕量級(jí)組件進(jìn)行布局,在面板的Nother方位添加一個(gè)“修改學(xué)生基本信息”的標(biāo)簽,并更改字體,顏色等。接著用JTextField輕量級(jí)組件來設(shè)置單行文本編輯,在學(xué)號(hào)這一文本框后再添加一“確定”按鈕實(shí)現(xiàn)監(jiān)聽。并將其所有文本框和標(biāo)簽加入到用createHorizontalBox()方法創(chuàng)建具有一個(gè)從左到右顯示其組件的Box和用createHorizontalStrut()創(chuàng)建一個(gè)不可見的、固定寬度的組件,使其在一個(gè)橫向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間

沈陽理工大學(xué)課程設(shè)計(jì)

具有某一空間量。并在 “學(xué)號(hào)”該文本框后添加一個(gè)“開始修改”按鈕用來監(jiān)聽。然后Box與Box之間用createVerticalBox()創(chuàng)建一個(gè)從上到下顯示其組件的 Box,并用createVerticalStrut()方法創(chuàng)建一個(gè)不可見的、固定高度的組件,使其在一個(gè)縱向 box 中,通常使用此方法強(qiáng)行使兩個(gè)組件之間具有某一空間量,還在本面板的South方位添加“確定刪除”按鈕。最后實(shí)現(xiàn)與數(shù)據(jù)庫的橋接,能夠?qū)臄?shù)據(jù)庫中獲取信息并顯示到文本框中去,刪除后同時(shí)在數(shù)據(jù)庫中也刪除該信息并保存該操作。

四、方案的實(shí)施

1、學(xué)生信息管理系統(tǒng)的登錄

學(xué)生信息管理系統(tǒng)可由管理員和學(xué)生兩種身份的人使用。管理員和學(xué)生身份登錄所能操作的功能有很大的區(qū)別。系統(tǒng)初始化一個(gè)系統(tǒng)管理員,登錄名:admin 密碼:admin 學(xué)生登錄系統(tǒng)的登錄名為學(xué)號(hào),密碼也為學(xué)號(hào)(如:10001),登錄后可以修改密碼。

登錄界面

登錄系統(tǒng)后的界面

沈陽理工大學(xué)課程設(shè)計(jì)

注冊(cè)學(xué)生信息界面

沈陽理工大學(xué)課程設(shè)計(jì)

修改學(xué)生信息界面

查詢學(xué)生信息界面

沈陽理工大學(xué)課程設(shè)計(jì)

刪除學(xué)生信息界面

沈陽理工大學(xué)課程設(shè)計(jì) 程序類的設(shè)計(jì)

DeleteListener.java:刪除監(jiān)聽 JTMouseListener.java:樹狀視圖 LoginListener.java:登陸監(jiān)聽 ResetListener.java:重置監(jiān)聽 SaveListener.java:保存監(jiān)聽

SearchAllListener.java:搜索所有學(xué)生信息 SearchDListener.java:搜索一個(gè)學(xué)生信息 SearchListener.java:搜索一個(gè)學(xué)生信息 SearchRListener.java:搜索一個(gè)學(xué)生信息 SubmitListener.java:提交信息監(jiān)聽 系統(tǒng)的使用說明及環(huán)境配置

學(xué)生信息管理系統(tǒng)提供了管理員和學(xué)生這兩個(gè)角色登錄系統(tǒng),管理員通過用戶名:admin 密碼:admin 登錄系統(tǒng)后可以進(jìn)行相應(yīng)的操作。學(xué)生通過以自己的學(xué)號(hào)(如10001)作為用戶名和密碼登錄系統(tǒng)后進(jìn)行相應(yīng)的學(xué)生權(quán)限范圍內(nèi)的操作。數(shù)據(jù)庫:Mysql 連接數(shù)據(jù)庫的登錄名:root 密碼:zfz 代碼:

DeleteListener.java:刪除監(jiān)聽 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;import javax.swing.JOptionPane;

import manager.dao.JdbcIcpCURD;import manager.ui.conponent.DeletePanel;

public class DeleteListener implements ActionListener {

public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

DeletePanel dp=(DeletePanel)jb.getParent();

String xuehao=dp.xuehaoFd.getText();

String msg= “你確定要?jiǎng)h除學(xué)號(hào)為”+xuehao+“的學(xué)生信息么?”;

int i=JOptionPane.showConfirmDialog(dp,msg,“提”,JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);

if(i==0){

JdbcIcpCURD curd=new JdbcIcpCURD();

boolean b=curd.deleteByXuehao(Integer.parseInt(xuehao));

if(b){

dp.errorLb.setText(“刪除成功”);

}

else{

dp.errorLb.setText(“刪除失敗”);

}

}

return;}

示信息

沈陽理工大學(xué)課程設(shè)計(jì)

} JTMouseListener.java:樹狀視圖 package manager.ui.listener;

import java.awt.CardLayout;import java.awt.Component;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;

import javax.swing.JTree;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath;

import manager.ui.conponent.MainFrame;import manager.ui.conponent.PLeft;

public class JTMouseListener implements MouseListener {

@Override public void mouseClicked(MouseEvent e){

// TODO Auto-generated method stub JTree jt=(JTree)e.getSource();PLeft p=(PLeft)jt.getParent();MainFrame f=(MainFrame)p.getParent().getParent().getParent().getParent();TreePath path = jt.getPathForLocation(e.getX(), e.getY());if(path==null){ return;} DefaultMutableTreeNode node =(DefaultMutableTreeNode)path.getLastPathComponent();String s=node.toString();CardLayout cl=f.getPright().getLayout();if(s.equals(“注冊(cè)學(xué)生”)){ cl.show(f.getPright(), “register”);} if(s.equals(“修改學(xué)生信息”)){ cl.show(f.getPright(), “modify”);} if(s.equals(“查詢學(xué)生信息”)){ cl.show(f.getPright(), “search”);} if(s.equals(“刪除學(xué)生信息”)){ cl.show(f.getPright(), “delete”);} if(s.equals(“學(xué)生信息管理”)){ cl.show(f.getPright(), “welcom”);} }

@Override public void mouseEntered(MouseEvent e){

沈陽理工大學(xué)課程設(shè)計(jì)

} } @Override public void mouseExited(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e){ // TODO Auto-generated method stub } // TODO Auto-generated method stub LoginListener.java:登陸監(jiān)聽

package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;import javax.swing.JOptionPane;

import manager.ui.conponent.Login;import manager.ui.conponent.MainFrame;

public class LoginListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton bt=(JButton)e.getSource();

Login frame=(Login)bt.getParent().getParent().getParent().getParent();

String username=frame.usernameTa.getText().trim();

String password=frame.passwordTa.getText().trim();

if(username!=null||password!=null){

if(“admin”.equals(username)&&“123”.equals(password)){

new MainFrame().setVisible(true);

frame.dispose();

}

else{

frame.messageLb.setText(“用戶名或密碼錯(cuò)誤”);

}

}

沈陽理工大學(xué)課程設(shè)計(jì)

else{

frame.messageLb.setText(“用戶名或密碼錯(cuò)誤”);

} } } ResetListener.java:重置監(jiān)聽 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.ui.conponent.RegPanel;

public class ResetListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource();RegPanel jp=(RegPanel)jb.getParent();jp.xuehaoFd.setText(“");jp.nameFd.setText(”“);jp.addressFd.setText(”“);} } SaveListener.java:保存監(jiān)聽 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;

public class SaveListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

ModifyPanel mp=(ModifyPanel)jb.getParent();

String xuehao=mp.xuehaoTf.getText().trim();

String name=mp.nameTf.getText().trim();

String gender=mp.genderTf.getText().trim();

String address=mp.addressTf.getText().trim();

String oldXuehao=mp.xuehaoFd.getText().trim();

if(oldXuehao==null||xuehao.equals(”“)){

沈陽理工大學(xué)課程設(shè)計(jì)

}

} oldXuehao=xuehao;} if(xuehao==null||xuehao.equals(”“)){ mp.errorLb.setText(”請(qǐng)輸入修改后的學(xué)號(hào)...“);return;} if(name==null||name.equals(”“)){ mp.errorLb.setText(”請(qǐng)輸入修改后的姓名...“);return;} if(gender==null||gender.equals(”“)){ mp.errorLb.setText(”請(qǐng)輸入修改后的性別...“);return;} if(address==null||address.equals(”“)){ mp.errorLb.setText(”請(qǐng)輸入修改后的地址...“);return;} Student stu=new Student();stu.setXuehao(Integer.parseInt(xuehao));stu.setName(name);stu.setGender(gender);stu.setAddress(address);int old=Integer.parseInt(oldXuehao);JdbcIcpCURD curd=new JdbcIcpCURD();if(curd.modify(stu, old)){ mp.errorLb.setText(”修改成功...“);}

SearchAllListener.java:搜索所有學(xué)生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;

import javax.swing.JButton;import javax.swing.JTextArea;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.SearchPanel;

public class SearchAllListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

SearchPanel sp=(SearchPanel)jb.getParent();

沈陽理工大學(xué)課程設(shè)計(jì)

}

} JTextArea jt=sp.resultTa;JdbcIcpCURD curd=new JdbcIcpCURD();Vector students=curd.getAllStudent();StringBuilder sb=new StringBuilder();for(Student s:students){ sb.append(” “);sb.append(s.getXuehao());sb.append(”t“);sb.append(s.getName());sb.append(”t“);sb.append(s.getGender());sb.append(”t“);sb.append(s.getAddress());sb.append(”t“);sb.append(s.getRegTime().toString());sb.append(”n“);} jt.setText(sb.toString());SearchDListener.java:搜索一個(gè)學(xué)生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.DeletePanel;import manager.ui.conponent.ModifyPanel;import manager.ui.conponent.SearchPanel;

public class SearchDListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

DeletePanel dp=(DeletePanel)jb.getParent();

JdbcIcpCURD curd=new JdbcIcpCURD();

String s=dp.xuehaoFd.getText().trim();

Student stu=curd.searchByXuehao(Integer.parseInt(s));

if(stu==null){

dp.errorLb.setText(”沒有查詢到此學(xué)生“);

return;

}

dp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());

dp.nameTf.setText(stu.getName());

dp.genderTf.setText(stu.getGender());

dp.addressTf.setText(stu.getAddress());

沈陽理工大學(xué)課程設(shè)計(jì)

} } SearchListener.java:搜索一個(gè)學(xué)生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;

public class SearchListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();

ModifyPanel mp=(ModifyPanel)jb.getParent();

String s=mp.xuehaoFd.getText().trim();

if(s==null||s.equals(”“)){

mp.errorLb.setText(”請(qǐng)輸入學(xué)號(hào)..“);

return;

}

JdbcIcpCURD curd=new JdbcIcpCURD();

Student stu=curd.searchByXuehao(Integer.parseInt(s));

mp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());

mp.nameTf.setText(stu.getName());

mp.genderTf.setText(stu.getGender());

mp.addressTf.setText(stu.getAddress());} } SearchRListener.java:搜索一個(gè)學(xué)生信息 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.ModifyPanel;import manager.ui.conponent.SearchPanel;

public class SearchRListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){

沈陽理工大學(xué)課程設(shè)計(jì)

}

} JButton jb=(JButton)e.getSource();SearchPanel sp=(SearchPanel)jb.getParent();JdbcIcpCURD curd=new JdbcIcpCURD();String s=sp.xuehaoTf.getText().trim();Student stu=curd.searchByXuehao(Integer.parseInt(s));if(stu==null){ return;} StringBuilder sb=new StringBuilder();sb.append(” “);sb.append(stu.getXuehao());sb.append(”t“);sb.append(stu.getName());sb.append(”t“);sb.append(stu.getGender());sb.append(”t“);sb.append(stu.getAddress());sb.append(”t“);sb.append(stu.getRegTime().toString());sb.append(”n“);sp.resultTa.setText(sb.toString());

SubmitListener.java:提交信息監(jiān)聽 package manager.ui.listener;

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;

import javax.swing.JButton;import javax.swing.JLabel;

import manager.dao.JdbcIcpCURD;import manager.domain.Student;import manager.ui.conponent.RegPanel;

public class SubmitListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e){ JButton jb=(JButton)e.getSource();RegPanel jp=(RegPanel)jb.getParent();String xuehao=jp.xuehaoFd.getText();String name=jp.nameFd.getText();String address=jp.addressFd.getText();String gender=”“;boolean b1=jp.maleRB.isSelected();boolean b2=jp.femaleRB.isSelected();

沈陽理工大學(xué)課程設(shè)計(jì)

if(b1){ } JLabel errorLabel=jp.errorLabel;if(xuehao==null||xuehao.trim().equals(”“)){ errorLabel.setText(”沒有填寫學(xué)號(hào)..“);return;} if(name==null||name.trim().equals(”“)){ errorLabel.setText(”沒有填寫姓名..“);return;} if(address==null|address.trim().equals(”“)){ errorLabel.setText(”沒有填寫地址..“);return;} if(!(b1||b2)){ errorLabel.setText(”請(qǐng)選擇性別...“);return;} if(b1){ gender=”男“;} if(b2){ gender=”女“;} Student stu=new Student(Integer.parseInt(xuehao),name,gender,new Date(System.currentTimeMillis()),address);JdbcIcpCURD curd=new JdbcIcpCURD();boolean b=curd.insert(stu);if(b){ errorLabel.setText(”注冊(cè)成功!“);jp.xuehaoFd.setText(”“);jp.nameFd.setText(”“);jp.addressFd.setText(”");} } }

五、心得體會(huì)

我們剛學(xué)習(xí)java這門課程,對(duì)專業(yè)的java編程知識(shí)并未有深入的學(xué)習(xí)和探索。但是當(dāng)我們查找過一些書籍資料后,在不斷努力下我們還是把課程設(shè)計(jì)題目順利的完成了。通過此次學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計(jì),使我們對(duì)java編程語言有了更深層次的了解。不過在編寫的過程中也存在一些問題,例如在選擇適宜的方法實(shí)現(xiàn)修改和刪除功能的時(shí)候,由于對(duì)

沈陽理工大學(xué)課程設(shè)計(jì)

數(shù)組的理解還不能滿足當(dāng)前的編程需要,并未選擇更加簡(jiǎn)單的數(shù)組來處理數(shù)據(jù),以至于當(dāng)刪除指定內(nèi)容后在文本文件中留有空行,從而導(dǎo)致了在接下來的查詢異常和再次修改和刪除功能無法正常實(shí)現(xiàn),還需人工刪除掉文本文件中的空行以保證程序的正常運(yùn)行。我們也可以選用其他的更加方便的處理方法使得程序更加優(yōu)化和簡(jiǎn)潔。

“書山有路勤為徑,學(xué)海無涯苦作舟”,我們現(xiàn)今所學(xué)的知識(shí)還遠(yuǎn)遠(yuǎn)不夠,在今后的學(xué)習(xí)過程中我們要進(jìn)一步學(xué)習(xí)java的更多的知識(shí),此次課程設(shè)計(jì)不僅鍛煉了我們獨(dú)立思考和團(tuán)隊(duì)合作的能力,而且提高了我們動(dòng)手的能力,我會(huì)繼續(xù)努力學(xué)習(xí)此課程的。

六、參考文獻(xiàn) 鄭阿奇 編著《Java實(shí)用教程(第二版)》電子工業(yè)出版社 2 良葛格 編著《Java學(xué)習(xí)筆記》清華大學(xué)出版

第四篇:JAVA課程設(shè)計(jì)--員工信息管理系統(tǒng)(徐如飛)

摘要

眾所周知,當(dāng)今社會(huì)是信息社會(huì),因此,要想加強(qiáng)人事管理,單純依靠以前的手工管理,不僅會(huì)浪費(fèi)大量的人力,物力,財(cái)力,而且效率不高,而且很難達(dá)到預(yù)期的目的。所以人事管理信息系統(tǒng)能夠提供準(zhǔn)確的人員信息,以便領(lǐng)導(dǎo)者了解企業(yè)各個(gè)部門的人員構(gòu)成,安排好工作計(jì)劃,使企業(yè)變的更高效。

該系統(tǒng)能夠?qū)δ硢挝坏穆毠みM(jìn)行管理,主要功能如下是:

一、人事資料輸入:輸入員工信息,如姓名、身份證號(hào)、地址、電話、部門、工資、參加工作時(shí)間、專業(yè)、職務(wù)、備注等。

二、信息查詢:可根據(jù)職工編號(hào)、職工名稱、出生年月范圍、工資范圍、參加工作時(shí)間范圍等條件查詢。

三、登陸檢測(cè)、用戶管理、密碼修改、權(quán)限設(shè)置。

四、系統(tǒng)初始化:包括操作員信息初始化和職工信息初始化。

五、用戶信息修改:擁有權(quán)限的操作員可以修改、凍結(jié)、刪除普通用戶。

關(guān)鍵詞:人事信息、java、用戶界面

目 錄

一、設(shè)計(jì)目的................................................................................................................1

二、設(shè)計(jì)問題................................................................................................................1

三、概要設(shè)計(jì)................................................................................................................1

四、詳細(xì)設(shè)計(jì)................................................................................................................2

1、定義員工類:.....................................................................................................................3

2、主程序:.............................................................................................................................4

3、實(shí)現(xiàn)員工信息的錄入:.....................................................................................................7

4、實(shí)現(xiàn)員工信息的修改:...................................................................................................12

5、實(shí)現(xiàn)員工信息的查詢:...................................................................................................19

6、實(shí)現(xiàn)員工信息的刪除:...................................................................................................23

五、設(shè)計(jì)總結(jié)..............................................................................................................27 參考文獻(xiàn)......................................................................................................................28

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

人事管理系統(tǒng)一、設(shè)計(jì)目的

通過該課程設(shè)計(jì),使同學(xué)們進(jìn)一步理解概JAVA的基本概念、理論和方法,初步掌握J(rèn)DK、Eclipse的調(diào)試和應(yīng)用,以及程序中錯(cuò)誤的解決方法,明確JAVA在實(shí)際程序設(shè)計(jì)中的應(yīng)用。使課堂中學(xué)習(xí)到理論得到應(yīng)用,練習(xí)文件形式在JAVA程序設(shè)計(jì)中的應(yīng)用。

二、設(shè)計(jì)問題

設(shè)計(jì)題目:?jiǎn)T工管理系統(tǒng)

設(shè)計(jì)要求:(1)完成員工信息的添加、刪除、查詢、修改功能

(2)使用用戶界面操作(3)使用文件形式完成

設(shè)計(jì)思路:首先設(shè)計(jì)界面進(jìn)入面板,在面板中添加菜單選項(xiàng),并將要實(shí)現(xiàn)的功能選項(xiàng)添加其中,然后對(duì)這些選項(xiàng)實(shí)施監(jiān)聽,實(shí)現(xiàn)其功能。通過文件類型知識(shí)的應(yīng)用,實(shí)現(xiàn)對(duì)員工信息的管理。

三、概要設(shè)計(jì)

1、從管理員角度講,實(shí)現(xiàn)的功能是:(1)對(duì)員工有關(guān)數(shù)據(jù)的輸入功能 a)實(shí)現(xiàn)對(duì)員工基本信息的輸入 b)實(shí)現(xiàn)對(duì)員工獎(jiǎng)懲信息的輸入(2)對(duì)員工有關(guān)數(shù)據(jù)的更新功能

由管理員進(jìn)行檔案收集,經(jīng)過對(duì)檔案資料的處理,更新員工檔案管理系統(tǒng)中的獎(jiǎng)懲相關(guān)信息(包括員工基本信息和員工業(yè)績(jī)信息)。(3)對(duì)員工檔案信息的查詢功能

管理員可以通過自己的用戶名和密碼在因特網(wǎng)上對(duì)所有員工的信息(包括員工的檔案信息、員工的業(yè)績(jī)信息)進(jìn)行查詢。

(4)對(duì)員工、部門和部門領(lǐng)導(dǎo)信息的簡(jiǎn)單管理(5)對(duì)用戶密碼的管理

2、從普通用戶(員工)的角度講,實(shí)現(xiàn)的功能是:

人事管理系統(tǒng)

(1)在單位員工可以通過自己的編號(hào)和密碼在因特網(wǎng)上對(duì)自己的個(gè)人信息(包括個(gè)人的檔案信息、業(yè)績(jī)信息)進(jìn)行查詢。(2)對(duì)用戶密碼的管理

面板設(shè)計(jì):首先設(shè)計(jì)一個(gè)容器,然后再容器中添加菜單,在菜單中添加選項(xiàng),并在容器中加入面板,面板布局設(shè)置為CardLayout,最后將面板添加進(jìn)容器。

功能實(shí)現(xiàn):在錄入、查詢、修改和刪除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice為界面中加入相應(yīng)的組件,并對(duì)其進(jìn)行監(jiān)聽,同時(shí)附加了文件流的處理。

員工信息管理系統(tǒng)的系統(tǒng)運(yùn)行流程圖

四、詳細(xì)設(shè)計(jì)

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

1、定義員工類:

public class Employee implements java.io.Serializable { String number,name,discipling,grade,borth,sex;public Employee(){ } public void setNumber(String number){ this.number=number;} public String getNumber(){ return number;} public void setName(String name){ this.name=name;} public String getName(){ return name;} public void setDiscipling(String discipling){ this.discipling=discipling;} public String getDisciping(){ return discipling;} public void setGrade(String grade){ this.grade=grade;} public String getGrade(){ return grade;} public void setBorth(String borth){ this.borth=borth;} public String getBorth()3

人事管理系統(tǒng)

{ return borth;} public void setSex(String sex){ this.sex=sex;} public String getSex(){ return sex;}}

2、主程序:

import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class EmployeeManager extends JFrame implements ActionListener { EmployeeSituation 基本信息錄入=null;ModifySituation 基本信息修改=null;Inquest 基本信息查詢=null;Delete 基本信息刪除=null;JMenuBar bar;JMenu fileMenu;JMenuItem 錄入,修改,查詢,刪除;Container con=null;Hashtable 基本信息=null;File file=null;CardLayout card=null;JLabel label=null;JPanel pCenter;public EmployeeManager(){ 錄入=new JMenuItem(“錄入員工基本信息”);修改=new JMenuItem(“修改員工基本信息”);查詢=new JMenuItem(“查詢員工基本信息”);刪除=new JMenuItem(“刪除員工基本信息”);bar=new JMenuBar();fileMenu=new JMenu(“菜單選項(xiàng)”);fileMenu.add(錄入);fileMenu.add(修改);fileMenu.add(查詢);4

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

fileMenu.add(刪除);bar.add(fileMenu);setJMenuBar(bar);label=new JLabel(“歡迎進(jìn)入員工信息管理系統(tǒng)”,JLabel.CENTER);label.setFont(new Font(“SansSerif”,Font.BOLD+Font.ITALIC,25));label.setForeground(Color.red);基本信息=new Hashtable();錄入.addActionListener(this);修改.addActionListener(this);查詢.addActionListener(this);刪除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();pCenter.setLayout(card);pCenter.setBackground(Color.yellow);file=new File(“基本信息.txt”);if(!file.exists()){

try

{

FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(基本信息);

objectOut.close();

out.close();

}

catch(IOException e)

{

} } 基本信息錄入=new EmployeeSituation(file);基本信息修改=new ModifySituation(file);基本信息查詢=new Inquest(this,file);基本信息刪除=new Delete(file);pCenter.add(“歡迎語界面”,label);pCenter.add(“錄入界面”,基本信息錄入);pCenter.add(“修改界面”,基本信息修改);pCenter.add(“刪除界面”,基本信息刪除);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e)5

人事管理系統(tǒng)

{ System.exit(0);}});setVisible(true);setBounds(100,50,420,380);validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==錄入){ card.show(pCenter,“錄入界面”);} else if(e.getSource()==修改){ card.show(pCenter,“修改界面”);} else if(e.getSource()==查詢){ 基本信息查詢.setVisible(true);} else if(e.getSource()==刪除){ card.show(pCenter,“刪除界面”);} } public static void main(String args[]){ new EmployeeManager();}}

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

3、實(shí)現(xiàn)員工信息的錄入: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class EmployeeSituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 員工號(hào),姓名,工資;Choice 部門;JRadioButton 男,女;Employee 員工=null;ButtonGroup group=null;JButton 錄入,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public EmployeeSituation(File file){

this.file=file;

員工號(hào)=new JTextField(10);

姓名=new JTextField(10);

部門=new Choice();

部門.add(“請(qǐng)選擇”);

部門.add(“研發(fā)部”);

部門.add(“銷售部”);

部門.add(“人事部”);7

人事管理系統(tǒng)

部門.add(“安全部”);工資=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(“男”,true);女=new JRadioButton(“女”,false);group.add(男);group.add(女);錄入=new JButton(“錄入”);重置=new JButton(“重置”);錄入.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(“員工號(hào):”,JLabel.CENTER));box1.add(員工號(hào));Box box2=Box.createHorizontalBox();box2.add(new JLabel(“姓名:”,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(“性別:”,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(“部門:”,JLabel.CENTER));box4.add(部門);Box box6=Box.createHorizontalBox();box6.add(new JLabel(“ ”,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(“工資:”,JLabel.CENTER));box5.add(工資);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.yellow);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(錄入);8

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

pSouth.add(重置);

pSouth.setBackground(Color.yellow);

add(pSouth,BorderLayout.SOUTH);

validate();

} public void actionPerformed(ActionEvent e){ if(e.getSource()==錄入){ String number=“";number=員工號(hào).getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String warning=”該員工基本信息已存在,請(qǐng)到修改頁面修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);} else { String m=”基本信息將被錄入!“;int ok=JOptionPane.showConfirmDialog(this,m,”確認(rèn)“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();String discipling=部門.getSelectedItem();String grade=工資.getText();String sex=null;if(男.isSelected()){ 9

人事管理系統(tǒng)

sex=男.getText();} else { sex=女.getText();} 員工=new Employee();員工.setNumber(number);員工.setName(name);員工.setDiscipling(discipling);員工.setGrade(grade);員工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);

基本信息表.put(number,員工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();

員工號(hào).setText(null);

姓名.setText(null);

工資.setText(null);} catch(Exception ee){ System.out.println(ee);}}}} else { String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}

if(e.getSource()==重置)

{

員工號(hào).setText(null);

姓名.setText(null);

部門.remove(部門.getSelectedIndex());

工資.setText(null);

}}} 10

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

人事管理系統(tǒng)

4、實(shí)現(xiàn)員工信息的修改: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 員工號(hào),姓名,工資;Choice 部門;JRadioButton 男,女;ButtonGroup group=null;JButton 開始修改,錄入修改,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file){

this.file=file;12

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

員工號(hào)=new JTextField(10);姓名=new JTextField(10);部門=new Choice();部門.add(”請(qǐng)選擇“);部門.add(”研發(fā)部“);部門.add(”銷售部“);部門.add(”人事部“);部門.add(”安全部“);工資=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(”男“,true);女=new JRadioButton(”女“,false);group.add(男);group.add(女);開始修改=new JButton(”開始修改“);錄入修改=new JButton(”錄入修改“);錄入修改.setEnabled(false);重置=new JButton(”重置“);員工號(hào).addActionListener(this);開始修改.addActionListener(this);錄入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”輸入要修改信息的員工號(hào):“,JLabel.CENTER));box1.add(員工號(hào));box1.add(開始修改);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性別:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部門:“,JLabel.CENTER));box4.add(部門);Box box6=Box.createHorizontalBox();box6.add(new JLabel(” “,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工資:“,JLabel.CENTER));box5.add(工資);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);13

人事管理系統(tǒng)

boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.yellow);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(錄入修改);pSouth.add(重置);pSouth.setBackground(Color.yellow);add(pSouth,BorderLayout.SOUTH);validate();

} public void actionPerformed(ActionEvent e){

if(e.getSource()==開始修改||e.getSource()==員工號(hào))

{

String number=”“;

number=員工號(hào).getText();

if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ 錄入修改.setEnabled(true);Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部門.getSelectedItem();工資.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 14

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

男.setSelected(true);} else { 女.setSelected(true);} }

else

{

錄入修改.setEnabled(false);String warning=”該員工號(hào)不存在!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);員工號(hào).setText(null);姓名.setText(null);部門.remove(部門.getSelectedItem());工資.setText(null);

} }

else { 錄入修改.setEnabled(false);String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);員工號(hào).setText(null);姓名.setText(null);部門.remove(部門.getSelectedItem());工資.setText(null);}

}

else if(e.getSource()==錄入修改)

{

String number=”“;

number=員工號(hào).getText();

if(number.length()>0)

{

try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} 15

人事管理系統(tǒng)

catch(Exception ee){ } if(基本信息表.containsKey(number)){ String question=”該員工基本信息已存在,您想修改他(她)的基本信息嗎?“;JOptionPane.showMessageDialog(this,question,”警告“,JOptionPane.QUESTION_MESSAGE);String m=”基本信息將被修改!“;int ok=JOptionPane.showConfirmDialog(this,m,”確認(rèn)“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();String discipling=部門.getSelectedItem();String grade=工資.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} Employee 員工=new Employee();

員工.setNumber(number);

員工.setName(name);

員工.setDiscipling(discipling);

員工.setGrade(grade);

員工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,員工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();

員工號(hào).setText(null);姓名.setText(null);16

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

部門.remove(部門.getSelectedItem());工資.setText(null);} catch(Exception ee){ System.out.println(ee);} 錄入修改.setEnabled(false);} else if(ok==JOptionPane.NO_OPTION){ 錄入修改.setEnabled(true);} }

else

{ String warning=”該員工號(hào)沒有基本信息,不能修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);錄入修改.setEnabled(false);

}

}

else

{

String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);

錄入修改.setEnabled(false);

}

}

if(e.getSource()==重置)

{

員工號(hào).setText(null);

姓名.setText(null);

部門.remove(部門.getSelectedItem());

工資.setText(null);}}} 17

人事管理系統(tǒng)

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

5、實(shí)現(xiàn)員工信息的查詢: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener { Hashtable 基本信息表=null;JTextField 員工號(hào),姓名,部門,工資;JRadioButton 男,女;JButton 查詢;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public Inquest(JFrame f,File file){

super(f,”查詢對(duì)話框“,false);

this.file=file;

員工號(hào)=new JTextField(10);

查詢=new JButton(”查詢“);

員工號(hào).addActionListener(this);19

人事管理系統(tǒng)

查詢.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);部門=new JTextField(10);部門.setEditable(false);工資=new JTextField(10);工資.setEditable(false);男=new JRadioButton(”男“,false);女=new JRadioButton(”女“,false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”輸入要查詢的員工號(hào):“,JLabel.CENTER));box1.add(員工號(hào));box1.add(查詢);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性別:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部門:“,JLabel.CENTER));box4.add(部門);Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工資:“,JLabel.CENTER));box5.add(工資);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.green);Container con=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,360,270);20

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ setVisible(false);} });} public void actionPerformed(ActionEvent e){ 姓名.setText(null);部門.setText(null);工資.setText(null);if(e.getSource()==查詢||e.getSource()==員工號(hào)){ String number=”“;number=員工號(hào).getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部門.setText(stu.getDisciping());工資.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} } else { 21

人事管理系統(tǒng)

String warning=”該員工號(hào)不存在!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}} else { String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}}}

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

6、實(shí)現(xiàn)員工信息的刪除: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener {

Hashtable 基本信息表=null;

JTextField 員工號(hào),姓名,部門,工資;

JRadioButton 男,女;

JButton 刪除;

ButtonGroup group=null;

FileInputStream inOne=null;

ObjectInputStream inTwo=null;

FileOutputStream outOne=null;

ObjectOutputStream outTwo=null;

File file=null;

public Delete(File file)

{

this.file=file;

員工號(hào)=new JTextField(10);

刪除=new JButton(”刪除“);

員工號(hào).addActionListener(this);

刪除.addActionListener(this);

姓名=new JTextField(10);

姓名.setEditable(false);

部門=new JTextField(10);

部門.setEditable(false);

工資=new JTextField(10);

工資.setEditable(false);

男=new JRadioButton(”男“,false);

女=new JRadioButton(”女“,false);

group=new ButtonGroup();

group.add(男);

group.add(女);

Box box1=Box.createHorizontalBox();

box1.add(new JLabel(”輸入要?jiǎng)h除的學(xué)號(hào):“,JLabel.CENTER));

box1.add(員工號(hào));

box1.add(刪除);

Box box2=Box.createHorizontalBox();

box2.add(new JLabel(”姓名:“,JLabel.CENTER));

box2.add(姓名);

Box box3=Box.createHorizontalBox();23

人事管理系統(tǒng)

box3.add(new JLabel(”性別:“,JLabel.CENTER));

box3.add(男);

box3.add(女);

Box box4=Box.createHorizontalBox();

box4.add(new JLabel(”部門:“,JLabel.CENTER));

box4.add(部門);

Box box6=Box.createHorizontalBox();

box6.add(new JLabel(” “,JLabel.CENTER));

Box box5=Box.createHorizontalBox();

box5.add(new JLabel(”工資:“,JLabel.CENTER));

box5.add(工資);

Box boxH=Box.createVerticalBox();

boxH.add(box1);

boxH.add(box2);

boxH.add(box3);

boxH.add(box5);

boxH.add(box6);

boxH.add(box4);

boxH.add(Box.createVerticalGlue());

JPanel pCenter=new JPanel();

pCenter.add(boxH);

pCenter.setBackground(Color.yellow);

setLayout(new BorderLayout());

add(pCenter,BorderLayout.CENTER);

validate();

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==刪除||e.getSource()==員工號(hào))

{

String number=”“;

number=員工號(hào).getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ 24

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

} if(基本信息表.containsKey(number)){

Employee stu=(Employee)基本信息表.get(number);

姓名.setText(stu.getName());

部門.setText(stu.getDisciping());

工資.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} String m=”確定要?jiǎng)h除該員工號(hào)及全部信息嗎?“;int ok=JOptionPane.showConfirmDialog(this,m,”確認(rèn)

“,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();員工號(hào).setText(null);姓名.setText(null);部門.setText(null);工資.setText(null);} catch(Exception ee){ System.out.println(ee);} } else if(ok==JOptionPane.NO_OPTION){ 員工號(hào).setText(null);姓名.setText(null);部門.setText(null);25

人事管理系統(tǒng)

工資.setText(null);} } else {

String warning=”該員工號(hào)不存在!“;JOptionPane.showMessageDialog(this,warning,”警告

“,JOptionPane.WARNING_MESSAGE);} } else {

String warning=”必須要輸入員工號(hào)!“;JOptionPane.showMessageDialog(this,warning,”警告",JOptionPane.WARNING_MESSAGE);}}}} 26

信息專業(yè)java語言程序設(shè)計(jì)課程設(shè)計(jì)

五、設(shè)計(jì)總結(jié)

通過本次課程設(shè)計(jì),我對(duì)軟件開發(fā)設(shè)計(jì)分析過程有了深刻了解,不僅提高了編程思路,而且充分認(rèn)識(shí)到分工合作在軟件開發(fā)部署過程中的重要性。通過查詢資料,參考叢書,受益匪淺。然后對(duì)這些遇到的問題進(jìn)行處理,在解決問題的能力思路上活躍起來,對(duì)于以后開發(fā)高質(zhì)量的軟件有很大的提高。

本次JAVA課程設(shè)計(jì)我所選擇的程題目是人事信息管理系統(tǒng),程序中實(shí)現(xiàn)了對(duì)員工信息的添加、查詢、修改、刪除等一系列功能,在設(shè)計(jì)的過程中,我查閱了大量的資料,請(qǐng)教了一些老師,也獲得了同學(xué)們的幫助,我設(shè)計(jì)的程序簡(jiǎn)單易懂,操作簡(jiǎn)單,適用于不同的單位使用,只需按照自己的需要將所要錄入的信息名稱做添加或修改就可以實(shí)現(xiàn)。通過這次JAVA的程序設(shè)計(jì),使我對(duì)JAVA有了更加深入的了解,鞏固了我對(duì)JAVA基礎(chǔ)知識(shí)的掌握,并且能夠更加熟練的應(yīng)用JDK與Eclipse進(jìn)行JAVA程序的編寫。可以說理論聯(lián)系實(shí)際,這使我的知識(shí)和能力都更上一層樓。

人事管理系統(tǒng)

參考文獻(xiàn)

[1] 張桂元,賈燕楓.Eclipse開發(fā)入門與項(xiàng)目實(shí)踐[M].北京:人民郵電出版社,2006 [2] 趙強(qiáng).基于開源軟件的J2EE企業(yè)級(jí)應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2005 [3](美)John Hunt,Chris Loftus著.精通J2EE——Java企業(yè)級(jí)應(yīng)用[M].周立斌,楊飛等譯.北京:清華大學(xué)出版社.2004 [4] 曹廣鑫,王謝華,王建鳳等.Struts數(shù)據(jù)庫項(xiàng)目開發(fā)寶典[M].北京:電子工業(yè)出版社,2006 [5] 施伯樂、丁寶康.數(shù)據(jù)庫系統(tǒng)教程,高等教育出版社,2008年7月; [6] 邵麗萍.軟件開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2005 [7] 謝星星,沈懿卓.UML基礎(chǔ)與ROSE建模實(shí)用教程.北京:清華大學(xué)出版社,2009 [8] 邵麗萍.軟件開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2005 [9] 郭興成.PowerBuilder9.0實(shí)用教程[M].北京:清華大學(xué)出版社,2003

第五篇:【課程設(shè)計(jì)】職工信息管理系統(tǒng)

題目:職工信息系統(tǒng)

功能包括:

? 建立職工信息數(shù)據(jù)(職工編號(hào),姓名,性別,年齡,電話,職務(wù),工資和家庭成員信息)和信息簡(jiǎn)表(編號(hào),姓名,電話)? 根據(jù)職工編號(hào)查詢職工信息(查詢時(shí)需要身份確認(rèn)。單位領(lǐng)導(dǎo)和人事秘書可以看到職工所有信息;財(cái)務(wù)處人員可以看到職工編號(hào),姓名,性別,年齡,電話,工資;一般職工僅能查到信息簡(jiǎn)表)? 增加新職工信息(由人事秘書完成,需要身份確認(rèn))? 刪除職工信息(由人事秘書完成,需要身份確認(rèn))? 修改職工工資(由財(cái)務(wù)處人員完成,需要身份確認(rèn))? 要求所有信息能夠存儲(chǔ)在文件中,并具有良好的用戶界面

#include #include #include #include using namespace std;const char * file = “staff.dat”;const int LIM =8;int ct=0;int Admin;int na;

//ct用來儲(chǔ)存文件中數(shù)據(jù)組數(shù),Admin用來儲(chǔ)存登陸后該用戶的權(quán)限,//na用來儲(chǔ)存登錄所輸?shù)木幪?hào),方便主菜單內(nèi)使用其顯示當(dāng)前用戶

void hline(int);inline void eatline(){while(cin.get()!='n')continue;} class staff {/*職工編號(hào),姓名,性別,年齡,職務(wù),電話,工資和家庭成員信息*/ public:

};void staff::printf()

//輸出的選擇,判斷其職務(wù),選擇調(diào)用哪個(gè)輸出 { if(Admin==1||Admin==2)printf1();else int num;char name[LIM],sex[3];int age;char job[10],phone[15];double wages;char home[20];int admin;void printf();void printf1();void printf2();void printf3();

}

if(Admin==3)printf2();else printf3();void staff::printf1()

//領(lǐng)導(dǎo)及人事秘書能見的輸出 {

} void staff::printf2()

//財(cái)務(wù)人員能見的輸出 {

} void staff::printf3()

//普通員工能見的輸出 { cout<} hline(3);cout<//輸出信息的頭部 {

switch(n){ case 1:{cout<

<

};break;case 2:{cout<

};break;case 3:{cout<

}

} <

};break;void menu()

//主菜單 { cout<<“t╔╤╤╤╤╤╤職工編號(hào): ”<

//二級(jí)菜單 { cout<<“t╔╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤┐”<

//登陸的實(shí)現(xiàn)部分 { cout<<“t┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓”<

int w=0;while(!(cin>>na)){ cin.clear();while(cin.get()!='n')continue;cout<<“輸入有誤,編號(hào)為一串?dāng)?shù)字,請(qǐng)重新輸入:n”;

for(int i=1;i<=ct;i++)} fstream find;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatline();staff stu;

{

streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){

cerr << “■查找出錯(cuò)!程序?qū)⑼顺觯 鰊”;system(“pause”);

exit(EXIT_FAILURE);

} find.read((char *)&stu, sizeof stu);if(stu.num==na){ } w=1;Admin=stu.admin;}

if(w==0){cout<<“t┣╋**登錄失敗!未找到相應(yīng)的信息!程序?qū)⑼顺?*╋┫”<

}

int stu_num()

//計(jì)算數(shù)據(jù)組數(shù) {

} staff stu;ifstream stunum;stunum.open(file,ios_base::in|ios_base::binary);if(stunum.is_open()){

} stunum.close();return ct;stunum.seekg(0);while(stunum.read((char *)&stu,sizeof stu))ct++;system(“pause”);system(“cls”);void setadmin(staff &stu,char jobs[10])

//增加職工時(shí)根據(jù)職務(wù)設(shè)置權(quán)限 { char job1[10]=“總經(jīng)理”;char job2[10]=“副總經(jīng)理”;char job3[10]=“人事秘書”;char job4[10]=“財(cái)務(wù)人員”;

}

void add()

// 輸入數(shù)據(jù)的函數(shù),增加職工 {

if(Admin==2){ staff stu;if((!strcmp(stu.job,job1))||(!strcmp(stu.job,job2)))stu.admin=1;else

if(!strcmp(stu.job,job3))stu.admin=2;else if(!strcmp(stu.job,job4))stu.admin=3;

ofstream fout(file, ios_base::out | ios_base::app | ios_base::binary);

if(!fout.is_open())

{

cerr << “不能打開 ” << file << “ 文件:n”;

exit(EXIT_FAILURE);

}

cout << “★增加職員信息★請(qǐng)輸入職工姓名:(按Enter鍵退出輸入!):n”;eatline();

cin.get(stu.name, LIM);

while(stu.name[0]!= '

主站蜘蛛池模板: 久久久久99精品成人片三人毛片| 国产精品人妻熟女男人的天堂| 国产日韩av在线播放| 日韩精品无码人妻一区二区三区| 国产成人无码av片在线观看不卡| 天干天干啦夜天干天天爽| 国产精品刮毛| 成人精品视频在线观看不卡| 日本不卡一区| 高清不卡一区二区三区| 精品黑人一区二区三区久久| 国产乱码二卡3卡四卡| 特级黄www欧美水蜜桃视频| 久久不见久久见中文字幕免费| 中文无码日韩欧| 亚洲日韩乱码中文无码蜜桃臀| 青青爽无码视频在线观看| 少妇激情一区二区三区视频小说| 成片免费观看视频大全| 国产黄大片在线观看| 日产无码中文字幕av| 开心五月激情综合婷婷色| 亚洲国产精品人人做人人爱| 秋霞午夜无码鲁丝片午夜精品| 最新亚洲中文av在线不卡| 国产精品久久久久久亚洲影视| 亚洲综合憿情五月丁香五月网| 无码av一区二区大桥久未| 国产精品日韩欧美一区二区三区| 国产精品99久久精品爆乳| 亚洲韩欧美第25集完整版| 亚洲综合图色40p| 少妇高潮流白浆在线观看| 日韩久久无码精品不卡一区二区电影| 亚洲a成人片在线观看| 中文字幕av无码人妻| 一本色道久久88—综合亚洲精品| 国产福利姬喷水福利在线观看| 国产精品视频全国免费观看| 精品福利视频一区二区三区| 欧美性色黄大片www喷水|