人員信息管理系統(tǒng) java課程設計
《人員信息管理系統(tǒng) java課程設計》由會員分享,可在線閱讀,更多相關(guān)《人員信息管理系統(tǒng) java課程設計(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、大學人員信息管理系統(tǒng) 29 / 29 目錄 目錄 1 設計任務書 2 課程設計任務 2 程序功能實現(xiàn): 3 1.程序主體 3 2.流程圖: 4 3.模塊說明 4 3.1、主菜單四個選項 4 3.2、教師功能菜單 5 3.3、學生功能菜單 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、Main
2、StuTea類 23 5.操作方法和測試結(jié)果 24 5.1.1、教師信息顯示 24 5.1.2、教師信息添加 24 5.1.3、教師信息刪除 25 5.1.4、教師信息查找 26 5.2、學生菜單實現(xiàn) 28 6.設計體會 28 設計任務書 問題描述: 編寫程序?qū)Υ髮W里的人員進行管理。大學里的人員主要由學生、教師和在職進修教師(既是學生又是教師)組成,各類人員均有姓名、電話和住址等信息,學生另有所屬專業(yè)信息,教師另有所在系部、授課信息及工資信息,在職進修教師具備以上各類人員的信息。 要求: 1、設計Person類,保存各類人員均有的姓名、電話和住址等信息。
3、 2、設計Student類或接口,繼承Person類,并添加所屬專業(yè)班級信息。 3、設計Teacher類接口,繼承Person類,并添加所在系部信息,授課信息及工資信息。 4、設計StudenTeacher類,繼承Student類接口和Teache類接口。其具備以上各類人員信息。 5、把創(chuàng)建的所有StudenTeacher對象按照其所屬系部依次組織在一個文件中方便查詢、修改、刪除及添加等操作。 6、對各類的對象進行信息輸入操作,輸入信息包括該類對象的所有信息。 7、對各類的對象進行輸出操作,顯示輸出該類對象的所有信息 課程設計任務及設計人 設計任務: 大學
4、人員信息管理系統(tǒng) 課程目的: 1、復習、鞏固Java語言的基礎知識,進一步加深對Java語言的理解和掌握; 2、課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力; 3、培養(yǎng)學生在項目開發(fā)中團隊合作精神、創(chuàng)新意識及能力。 課程要求: 1、對系統(tǒng)進行功能模塊分析、控制模塊分析正確,符合課題要求,實現(xiàn)相應功能;可以加以其他功能或修飾,使程序更加完善、合理; 2、系統(tǒng)設計要實用,編程簡練,可用,功能全面 3、說明書、流程圖要清楚 4、記錄設計情況(備查,也為編寫設計
5、說明書作好準備); 5、要求采用模塊化程序設計方法,及鋸齒型書寫格式,要求上機調(diào)試通過和按設計報告格式。 6、本設計需要實現(xiàn)Java的面向?qū)ο箝_發(fā)運用到的有Java的接口,Java的繼承,Java的異常處理,Java類的封裝。能夠在異常輸入的情況下,能正確處理。最后得到正確結(jié)果。 程序功能實現(xiàn): 一、 按照課程的要求實現(xiàn)學生和教師的基本信息的錄入。 二、 把輸入的教師和學生信息顯示出來。 三、 有姓名和專業(yè)兩種查找方式去分別把老師和學生的信息查找并且顯示出來。 四、 刪除選項可以刪除相應學生和老師信息。 五、 用switch語句實現(xiàn)菜單功能,字符界面做到簡潔清晰 六、 異
6、常處理處理錯誤的輸入并且返回錯誤的提示,更正后填入正確數(shù)據(jù)。 1.程序主體 1、 設計分析: 1.1、 實體是實現(xiàn)程序思想的主要方式,首先應該分為學生和老師2個入口,分別做查詢和信息添加、顯示、刪除和查找的功能。 1.2、 學生和老師的信息輸入考慮要求多名信息考慮用對象數(shù)組去實現(xiàn)。但是對象數(shù)組的刪除不是本學期的內(nèi)容。且排序麻煩。考慮用其他方式實現(xiàn)信息錄入,查閱相關(guān)信息發(fā)現(xiàn)可以使用list對象實現(xiàn)信息錄入和刪除。 1.3、 菜單使用switch語句實現(xiàn)菜單功能,菜單的相互調(diào)用實現(xiàn)功能的循環(huán)。 2.流程圖: 3.模塊說明 3.1、主菜單四
7、個選項 學生入口: 這個模塊與學生功能模塊相連。 教師入口: 這個模塊與教師功能模塊相連 顯示全部信息: 這個模塊顯示所有的老師和學生信息 3.2、教師功能菜單 顯示教師信息: 這個模塊顯示輸入的教師信息,如果不存在提示輸入信息 添加教師信息: 這個模塊添加教師基本信息 刪除教師信息: 這個模塊按照序號刪除教師信息,如果不存在提示信息輸入 查找教師信息: 按照姓名和專業(yè)查找教師信息 返回上一級菜單: 返回主菜單 3.3、學生功能菜單 顯示學生信息: 這個模塊顯示輸入的教師信息,如果不存在提示輸入信息 添加學生信
8、息: 這個模塊添加教師基本信息 刪除學生信息: 這個模塊按照序號刪除教師信息,如果不存在提示信息輸入 查找學生信息: 按照姓名和專業(yè)查找學生信息 返回上一級菜單: 返回主菜單 3.4、查找菜單 按照姓名查找: 查找模塊,按照姓名查找,如果不存在則提示輸入信息。 按照專業(yè)查找: 查找模塊,按照專業(yè)查找,如果不存在則提示輸入信息。 返回上一級菜單: 返回主菜單 4.源代碼及說明 4.1、listStuTea 類 用來實現(xiàn)學生和教師數(shù)據(jù)添加、刪除、查找的方法 import java.util.*; import lkExe
9、cption.LKExecption;
public class listStuTea extends StudnTeach{
final int SIZE = 50;//最大學生和教師人數(shù)
listStuTea[] st = new listStuTea[SIZE];//學生和老師對象數(shù)組
Scanner into = new Scanner(System.in);
List
10、); public int getTeaNumber() //返回教師鏈表長度 { return list1.size(); } public int getStuNumber() //返回學生鏈表長度 { return list2.size(); } public int getNumber() { // TODO Auto-generated method stub return list2.size()+list1.size(); } public void FindStuName() { String tpname;
11、
boolean zy = true;
StudnTeach point;
System.out.println("請輸入學生姓名:");
tpname = into.nextLine();
for(int i = 0;i 12、
}
if(zy)
System.out.println("沒有該學生");
if(getStuNumber()==0)
System.out.println("警告?。。W生數(shù)據(jù)為空請?zhí)砑訑?shù)據(jù)");
}
public void FindTeaName()
{
String tpname;
boolean zy = true;
StudnTeach point;
System.out.println("請輸入教師姓名:");
tpname = into.nextLine();
for(int i = 0; 13、i 14、println("警告?。。±蠋煍?shù)據(jù)為空請?zhí)砑訑?shù)據(jù)");
}
public void FindteaSpec()
{
String tpSpec;
boolean zy = true;
StudnTeach point;
System.out.println("請輸入教師專業(yè):");
tpSpec = into.nextLine();
for(int i = 0;i 15、ty()))
{
showTea(i,point);
zy = false;//標志位
}
}
if(zy)
System.out.println("沒有該專業(yè)的老師");
if(getTeaNumber()==0)
System.out.println("警告?。?!老師數(shù)據(jù)為空請?zhí)砑訑?shù)據(jù)");
}
public void FindstuSpec()
{
String tpStu;
boolean zy = true;
StudnTeach point;
System.out.print 16、ln("請輸入學生專業(yè):");
tpStu = into.nextLine();
for(int i = 0;i 17、stem.out.println("警告?。?!學生數(shù)據(jù)為空請?zhí)砑訑?shù)據(jù)");
}
public void showStu(int n,StudnTeach point)
{
point=list2.get(n);
System.out.println("學生編號:"+n);
System.out.println("姓名:"+point.name+" 性別:"+point.sex+" 年齡:"+point.age);
System.out.println("電話:"+point.phone);
System.out.println("地址:"+point. 18、address);
System.out.println("專業(yè):"+point.getstuSpeciality());
System.out.println("班級:"+point.getClassname());
}
public void showTea(int n,StudnTeach point)
{
point=list1.get(n);
System.out.println("教師編號:"+n);
System.out.println("姓名:"+point.name+" 性別:"+point.sex+" 年齡:"+point.a 19、ge);
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();
20、st[n].setClassname();
st[n].setstuSpeciality();
list2.add(st[n]);
if(list2.size()!=0)
System.out.println("添加學生成功");
}
public void addtea(int n) throws LKExecption
{
st[n] = new listStuTea();
st[n].add();
st[n].setteaSpeciality();
st[n].setPay();
list1.add(st[n]); 21、
if(list1.size()!=0)
System.out.println("添加教師成功");
}
public void delTea()
{
System.out.println("請輸入被刪的教師編號");
int k =into.nextInt();
if(list1.size()<=k||k<0)
System.out.println("刪除失敗!編號不存在請重新輸入!");
else
{
list1.remove(k);
System.out.println("刪除成功");
}
22、}
public void delStu()
{
System.out.println("請輸入被刪的學生編號");
int k =into.nextInt();
if(list2.size()<=k||k<0)
System.out.println("刪除失??!編號不存在請重新輸入!");
else
{
list2.remove(k);
System.out.println("刪除成功");
}
}
}
4.2、Menu 類
字符菜單的實現(xiàn)
import java.util.*;
import 23、lkExecption.LKExecption;
public class Menu {
Scanner into = new Scanner(System.in);
int num = 0;
List list=new ArrayList 24、;
try{
System.out.println("請輸入選項");
tpNum = into.nextLine();
t = Integer.parseInt(tpNum);
}
catch(NumberFormatException e)
{
t = new LKExecption().Num1Execption(tpNum);
}
return t;
}
void MainMenu() throws LKExecption//主菜單
{
System.out.println("============= 25、===");
System.out.println("1.教師入口");
System.out.println("2.學生入口");
System.out.println("3.顯示全部信息");
System.out.println("4.退出管理");
switchMainMenu();
}
void FindMenu()//查找菜單
{
System.out.println("----------------");
System.out.println("1.按照姓名查找");
System.out.println("2.按照專業(yè)查找") 26、;
System.out.println("3.返回上一級菜單");
//switchMainMenu();
}
void MenuTea1_1() throws LKExecption//老師菜單
{
System.out.println("----------------");
System.out.println("1.顯示教師信息");
System.out.println("2.添加教師信息");
System.out.println("3.刪除教師信息");
System.out.println("4.查找教師信息");
27、System.out.println("5.返回上一級菜單");
switchMenuTea1_1();
}
void MenuStu1_1() throws LKExecption//學生菜單
{
System.out.println("----------------");
System.out.println("1.顯示學生信息");
System.out.println("2.添加學生信息");
System.out.println("3.刪除學生信息");
System.out.println("4.查找學生信息");
Syste 28、m.out.println("5.返回上一級菜單");
switchMenuStu1_1();
}
void switchFindStuMenu() throws LKExecption//查找學生菜單
{
int t;
t = setIn();
switch(t)
{
case 1:
point.FindStuName();
FindMenu();
switchFindStuMenu();
break;
case 2:
point.FindstuSpec();
FindMenu();
29、 switchFindStuMenu();
break;
case 3:
MenuStu1_1();
switchMenuStu1_1();
break;
default:
System.out.println("輸入錯誤請重新輸入");
switchFindStuMenu();
}
}
void switchFindTeaMenu() throws LKExecption//查找教師菜單
{
int t;
t = setIn();
switch(t)
{
case 1:
30、 point.FindTeaName();
FindMenu();
switchFindTeaMenu();
break;
case 2:
point.FindteaSpec();
FindMenu();
switchFindTeaMenu();
break;
case 3:
MenuTea1_1();
switchMenuTea1_1();
break;
default:
System.out.println("輸入錯誤請重新輸入");
switchFindTeaMenu() 31、;
}
}
void switchMainMenu() throws LKExecption//主菜單
{
int t;
t = setIn();
switch(t)
{
case 1:
MenuTea1_1();//老師顯示菜單
break;
case 2:
MenuStu1_1();//學生顯示菜單
break;
case 3:
if(point.getNumber()==0)
System.out.println("警告?。?!數(shù)據(jù)為空請?zhí)砑訑?shù)據(jù)");
32、 else{
for(int i = 0;i 33、.println("輸入錯誤請重新輸入");
switchMainMenu();
}
}
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ù)為空請?zhí)砑訑?shù)據(jù)");
for(int i = 0 34、;i 35、 case 5:
MainMenu();
break;
default:
System.out.println("輸入錯誤請重新輸入");
switchMenuTea1_1();
}
}
void switchMenuStu1_1() throws LKExecption
{
System.out.println("----------------");
int t;
t = setIn();
switch(t)
{
case 1:
if(point.getStuNumber()==0)
36、 System.out.println("警告?。?!學生數(shù)據(jù)為空請?zhí)砑訑?shù)據(jù)");
for(int i = 0;i 37、Menu();
switchFindStuMenu();
break;
case 5:
MainMenu();
break;
default:
System.out.println("輸入錯誤請重新輸入");
MenuStu1_1();
}
}
}
4.3、StudnTeach 類
繼承于教師和學生接口實現(xiàn)它們抽象方法,且繼承人類屬性。
import java.util.*;
import lkExecption.LKExecption;
class StudnTeach extends P 38、erson implements Student,Teacher{
Scanner into = new Scanner(System.in);
float pay = 0;//工資
String classname = null;//班級
String stuSpec = null;//老師專業(yè)
String teaSpec = null;//學生專業(yè)
void add() throws LKExecption
{
setName();
setSex();
setAge();
setPhone ();
System.out.pr 39、intln("請輸入地址");
address = into.nextLine();
}
public void addstu(int n) throws LKExecption{
//add();
//setClassname();
//setstuSpeciality();
}
public void addtea(int n) throws LKExecption{
//add();
//setteaSpeciality();
//setPay() ;
}
public void setPa 40、y() {
String tpNum = null;
try{
System.out.println("請輸入工資:");
tpNum = into.nextLine();
pay = Integer.parseInt(tpNum);
}
catch(NumberFormatException e)
{
pay = new LKExecption().Num1Execption(tpNum);
}
}
public float getPay() {
return pa 41、y;
}
public void setClassname() {
System.out.println("請輸入班級:");
classname = into.nextLine();
}
public String getClassname() {
return classname;
}
public void setstuSpeciality() {
System.out.println("請輸入專業(yè):");
stuSpec = into.nextLine();
}
42、
public String getstuSpeciality() {
return stuSpec;
}
public void setteaSpeciality() {
System.out.println("請輸入專業(yè):");
teaSpec = into.nextLine();
}
public String getteaSpeciality() {
return teaSpec;
}
public void show(boolean b, int num, StudnTeach p 43、oint) {
}
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;
44、
}
public void delStu() {
}
public void delTea() {
}
public void FindStuName() {
}
public void FindstuSpec() {
}
public void FindTeaName() {
}
public void FindteaSpec() {
}
}
4.4、Student 類
接口、學生的抽象方法
public interfac 45、e Student {
abstract void setstuSpeciality();
abstract String getstuSpeciality();
abstract void setClassname();
abstract String getClassname();
}
4.5、Teacher 類
接口、教師的抽象方法
public interface Teacher {
abstract void setteaSpeciality();
abstract String getteaSpeciality();
abstrac 46、t 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()
{
Sy 47、stem.out.println("請輸入姓名:");
name = into.nextLine();
}
public void setSex() throws LKExecption
{
try{
System.out.println("請輸入性別:");
sex = into.nextLine();
if(sex.equals("man")||sex.equals("woman"))
{}
else
throw new LKExecption();
}
catch(LKExecption lk)
{
48、sex = new LKExecption().sexExecption(sex);
}
}
public void setAge()
{
String tpAge = null;
try{
System.out.println("請輸入年齡:");
tpAge = into.nextLine();
age = Integer.parseInt(tpAge);
}
catch(NumberFormatException e)
{
age = new LKExecption().NumExecption(tpAge) 49、;
}
}
public void setPhone ()
{
String tpNum = null;
try{
System.out.println("請輸入電話號碼:");
tpNum = into.nextLine();
phone = Integer.parseInt(tpNum);
}
catch(NumberFormatException e)
{
phone = new LKExecption().Num1Execption(tpNum);
}
}
}
4.7、lkExecpt 50、ion類
自定義異常類
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");
51、 str = into.next();
//System.out.println(mg+" 驗證");
if(str.equals("man")||str.equals("woman"))
{
pd = false;
}
}while(pd);
return str;
}
public int NumExecption(String mg)
{
String num = null;
int tpNum = 0;
boolean pd = true;
System.out.println(mg+" 請正確的數(shù)字 52、或者不在范圍內(nèi)!請重新輸入!!");
do{
try{
num = into.nextLine();
tpNum = Integer.parseInt(num);
if(tpNum>120||tpNum<0) //范圍判斷
throw new NumberFormatException();
else
pd = false;
}
catch(NumberFormatException e)
{
System.out.println(num+" 請正確的數(shù)字或者不在范圍內(nèi)!請 53、重新輸入?。?);
}
}while(pd);
return tpNum;
}
public String charExecption(String mg)
{
final String[] str={"null"};//這里指定 規(guī)定字段
boolean pd = true;
do{
System.out.println(mg+" 不是正確字段,請輸入指定的字段");
mg = into.next();
for(int i =0;i 54、{
pd = false;
}
}while(pd);
return mg;
}
public int Num1Execption(String mg)
{
String num;
int tpNum = 0;
System.out.println(mg+" 不是數(shù)字!請輸入數(shù)字??!");
do{
try{
num = into.nextLine();
tpNum = Integer.parseInt(num);
break;
}
catch(NumberFormatE 55、xception e)
{
System.out.println(mg+" 不是數(shù)字!請輸入數(shù)字!!");
}
}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();
}
}
5 56、.操作方法和測試結(jié)果
5.1.1、教師信息顯示
選擇一進入教師信息入口
選擇一進入教師信息查看
因為我們沒有添加教師信息,所以他要求我們添加教師信息
5.1.2、教師信息添加
選擇二進入教師信息添加
教師信息添加成功,如果不是指定字段輸入,出現(xiàn)異常則重新輸入
如下為添加的信息輸入顯示
5.1.3、教師信息刪除
5.1.4、教師信息查找
專業(yè)查找
現(xiàn)在添加三個教師信息,如下顯示
首先使用專業(yè)查找,我們查找computer專業(yè)的
查找其他math專業(yè)
查找不存在的專業(yè)
姓名查找
再添加一個同名的教師
查找l 57、isi
5.2、學生菜單實現(xiàn)
學生信息采取同樣測試
6.設計體會
這個課程設計可以的設計心得,可謂十分波折。全部的源代碼都出自自己,其中的list排列我們還沒有學習。在這里要感謝google感謝baidu。沒有他們就沒有今天的代碼。當然網(wǎng)上只有相似的課題沒有相同的代碼,list排列經(jīng)過自己一小時的摸索可以了解了部分的運用,首先寫了一個test類來測試這個用法
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Iterator;
import java.util.L 58、ist;
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 59、的對象e修改為對象b
list.add(2, c);// 將對象c添加到索引位置為2的位置
list.add(e);
list.remove(1);
Iterator
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 指向核心素養(yǎng)發(fā)展的高中生物學1輪復習備考建議
- 新課程新評價新高考導向下高三化學備考的新思考
- 新時代背景下化學高考備考策略及新課程標準的高中化學教學思考
- 2025屆江西省高考政治二輪復習備考建議
- 新教材新高考背景下的化學科學備考策略
- 新高考背景下的2024年高考化學二輪復習備考策略
- 2025屆高三數(shù)學二輪復習備考交流會課件
- 2025年高考化學復習研究與展望
- 2024年高考化學復習備考講座
- 2025屆高考數(shù)學二輪復習備考策略和方向
- 2024年感動中國十大人物事跡及頒獎詞
- XX教育系統(tǒng)單位述職報告教育工作概述教育成果展示面臨的挑戰(zhàn)未來規(guī)劃
- 2025《增值稅法》全文解讀學習高質(zhì)量發(fā)展的增值稅制度規(guī)范增值稅的征收和繳納
- 初中資料:400個語文優(yōu)秀作文標題
- 初中語文考試專項練習題(含答案)