要完成一个学校的管理系统,需要管理学生,老师,工作人员,行政人员,同时包括一个管理员,要求:
1、分析根据自己的理解,分析如何设计这几个类,要用继承;
2、用一个类来管理这五类人员,就是用管理类对这几类人员进行添加,删除,修改
刚学,代码很基础看看就好。
//Person 类
package Iherit;
//个人项包含名字和年纪
public class Person {
private String name;
private int age;
public void setName(String inname)
{
this.name=inname;
}
public String getName()
{
return this.name;
}
public void setAge(int inage)
{
this.age=inage;
}
public int getAge()
{
return this.age;
}
}
package Iherit;
//Student继承了Person类
public class Student extends Person{
//子类的属性
private String Stu_num;//学号
public void setStu_num(String inStu_num)
{
this.Stu_num=inStu_num;
}
public String getStu_num()
{
return this.Stu_num;
}
}
package Iherit;
//Teacher 继承 Person类
public class Teacher extends Person {
//教师岗位(Chinese , Math , English)
private String Position;
//教师工号
private String Tea_num;
//薪水
private int salary;
public void setPosition(String inPosition)
{
this.Position=inPosition;
}
public String getPosition()
{
return this.Position;
}
public void setTea_num(String inTea_num)
{
this.Tea_num=inTea_num;
}
public String getTea_num()
{
return this.Tea_num;
}
public int getSalary() {
return this.salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
package Iherit;
public class Admin extends Person {
//行政人员属性
private String Adm_num;
private int salary;
public String getAdm_num() {
return this.Adm_num;
}
public void setAdm_num(String Adm_num) {
this.Adm_num = Adm_num;
}
public int getSalary() {
return this.salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
package Iherit;
public class Worker extends Person{
private String Wor_num;
private int salary;
public String getWor_num() {
return Wor_num;
}
public void setWor_num(String wor_num) {
Wor_num = wor_num;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
package Iherit;
public class Manager extends Person{
//Manager
private String Man_num;
private int salary;
public String getMan_num() {
return Man_num;
}
public void setMan_num(String man_num) {
Man_num = man_num;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
package Iherit;
import java.util.Scanner;
public class MAG {
//各个工种的人物
static private Student Stu[]=new Student[100];
static private int Snum=1;//学生的数量
static private Teacher Tea[]=new Teacher[100];
static private int Tnum=1;//教师的数量
static private Admin Adm[] = new Admin [100];
static private int Anum=1;//行政人员的数量
static private Worker Wor[]= new Worker[100];
static private int Wnum=1;//工作人员的数量
static private Manager Man[]=new Manager[100];
static private int Mnum=1;//管理人员的数量
Scanner input=new Scanner (System.in);
//对学生的删除函数
private Student [] deleteStu (int dex)
{
for(int i=dex;i<Snum;i++)
{
Stu[i]=Stu[i+1];
}
Snum--;//删了一个,人数减一
return Stu;//返回删好了的数组
}
//学生的修改函数
private Student[] changeStu (int dex)
{
//默认学号不能修改,只能修改姓名和年龄
System.out.println("依次输入姓名和年龄");
String Stu_name; int Stu_age;
Stu_name=input.next(); Stu_age=input.nextInt();
Stu[dex].setName(Stu_name);
Stu[dex].setAge(Stu_age);
return Stu;
}
//对教师进行删除操作
private Teacher [] deleteTea (int dex)
{
for(int i=dex;i<Tnum;i++)
{
Tea[i]=Tea[i+1];
}
Tnum--;//删了一个,人数减一
return Tea;//返回删好了的数组
}
//对教师进行修改操作
private Teacher[] changeTea (int dex)
{
//默认学号不能修改,只能修改姓名和年龄,任职科目,薪水
System.out.println("请依次输入教师的姓名,年纪,任职科目,薪水(工号无法修改)");
String Tea_name;//姓名
int Tea_age;//年纪
String Tea_position;//任职科目
int Tea_salary;//薪水
Tea_name=input.next();
Tea_age=input.nextInt();
Tea_position=input.next();
Tea_salary=input.nextInt();
Tea[dex].setName(Tea_name);
Tea[dex].setAge(Tea_age);
Tea[dex].setPosition(Tea_position);
Tea[dex].setSalary(Tea_salary);
return Tea;
}
//对行政人员进行删除操作
private Admin [] deleteAdm (int dex)
{
for(int i=dex;i<Anum;i++)
{
Adm[i]=Adm[i+1];
}
Anum--;//删了一个,人数减一
return Adm;//返回删好了的数组
}
//对行政人员进行修改操作
private Admin[] changeAdm (int dex)
{
//默认工号不能修改,只能修改姓名和年龄 ,薪水
System.out.println("请依次输入行政人员的姓名,年纪,薪水(工号无法修改)");
String Adm_name;//姓名
int Adm_age;//年纪
int Adm_salary;//薪水
Adm_name=input.next();
Adm_age=input.nextInt();
Adm_salary=input.nextInt();
Adm[dex].setName(Adm_name);
Adm[dex].setAge(Adm_age);
Adm[dex].setSalary(Adm_salary);
return Adm;
}
//对工作人员进行删除操作
private Worker [] deleteWor (int dex)
{
for(int i=dex;i<Wnum;i++)
{
Wor[i]=Wor[i+1];
}
Wnum--;//删了一个,人数减一
return Wor;//返回删好了的数组
}
//对工作人员进行修改操作
private Worker[] changeWor (int dex)
{
//默认工号不能修改,只能修改姓名和年龄 ,薪水
System.out.println("请依次输入行政人员的姓名,年纪,薪水(工号无法修改)");
String Wor_name;//姓名
int Wor_age;//年纪
int Wor_salary;//薪水
Wor_name=input.next();
Wor_age=input.nextInt();
Wor_salary=input.nextInt();
Wor[dex].setName(Wor_name);
Wor[dex].setAge(Wor_age);
Wor[dex].setSalary(Wor_salary);
return Wor;
}
//对管理人员进行删除操作
private Manager [] deleteMan (int dex)
{
for(int i=dex;i<Mnum;i++)
{
Man[i]=Man[i+1];
}
Mnum--;//删了一个,人数减一
return Man;//返回删好了的数组
}
//对管理人员进行修改操作
private Manager[] changeMan (int dex)
{
//默认工号不能修改,只能修改姓名和年龄 ,薪水
System.out.println("请依次输入管理人员的姓名,年纪,薪水(工号无法修改)");
String Man_name;//姓名
int Man_age;//年纪
int Man_salary;//薪水
Man_name=input.next();
Man_age=input.nextInt();
Man_salary=input.nextInt();
Man[dex].setName(Man_name);
Man[dex].setAge(Man_age);
Man[dex].setSalary(Man_salary);
return Man;
}
//处理函数
public void deal(int n)
{
switch(n)
{
case 1://对学生操作
{
System.out.println("对学生进行操作,请输入序号");
System.out.println("增加学生(1) 删除学生(2) 修改学生信息(3)查询学生信息(4)");
int nn;
nn=input.nextInt();
if(nn==1)
{
int nums;
System.out.println("输入要添加的学生人数:");
nums=input.nextInt();
for(int i=Snum;i<(Snum+nums);i++)
{
System.out.println("请依次输入学生的姓名,学号,年纪");
String Stu_num;
String Stu_name;
int Stu_age;
Stu_name=input.next();
Stu_num=input.next();
Stu_age=input.nextInt();
Stu[i]=new Student();
Stu[i].setName(Stu_name);
Stu[i].setStu_num(Stu_num);
Stu[i].setAge(Stu_age);
System.out.println(Stu_name+" " +Stu_num+" "+Stu_age+"该名学生信息添加成功");
}
Snum+=nums;
}
if(nn==2)//删除学生信息
{
int nums;
System.out.println("输入要删除的学生人数:");
nums=input.nextInt();
for(int o=1;o<=nums;o++)
{
System.out.println("请依次输入要删除学生的学号 ");
String Stu_num;
Stu_num=input.next();
for(int i=1;i<Snum;i++)
{
if(Stu_num.equals(Stu[i].getStu_num()))//字符串判断相等要用a.equals(b)
{
System.out.println(Stu[i].getStu_num()+" "+Stu[i].getName()+" "+Stu[i].getAge()+"该名学生信息将被消除");
deleteStu(i);
break;
}
}
}
}
if(nn==3)//修改学生信息
{
System.out.println("请输入需要修改的学生个数");
int nums;
nums=input.nextInt();
for(int i=1;i<=nums;i++)
{
//默认学生学号不能修改
System.out.println("请输入要修改学生的学号");
String Stu_num; Stu_num=input.next();
for(int j=1;j<Snum;j++)
{
if(Stu_num.equals(Stu[j].getStu_num()))
{
changeStu(j);
System.out.println("该名同学信息修改完毕");
break;
}
}
}
}
if(nn==4)
{
System.out.println("现在学生的信息");
for(int i=1;i<Snum;i++)
{
System.out.println(Stu[i].getName()+" " +Stu[i].getStu_num()+" "+Stu[i].getAge());
}
}
break;
}
case 2://对老师操作
{
System.out.println("对教师进行操作,请输入序号");
System.out.println("增加教师(1) 删除教师(2) 修改教师信息(3)查询教师信息(4)");
int nn;
nn=input.nextInt();
if(nn==1)//增加教师人数
{
int nums;
System.out.println("输入要添加的教师人数:");
nums=input.nextInt();
System.out.println("请依次输入 "+nums+" 名教师的姓名,工号,年纪,任职科目,薪水");
for(int i=Tnum;i<(Tnum+nums);i++)
{
String Tea_name;//姓名
String Tea_num;//工号
int Tea_age;//年纪
String Tea_position;//任职科目
int Tea_salary;//薪水
Tea[i]=new Teacher();
Tea_name=input.next();
Tea_num=input.next();
Tea_age=input.nextInt();
Tea_position=input.next();
Tea_salary=input.nextInt();
Tea[i].setName(Tea_name);
Tea[i].setTea_num(Tea_num);
Tea[i].setAge(Tea_age);
Tea[i].setPosition(Tea_position);
Tea[i].setSalary(Tea_salary);
System.out.println("该名教师添加成功");
}
Tnum+=nums;
}
if(nn==2)//对教师进行删除操作
{
int nums;
System.out.println("输入要删除的教师人数:");
nums=input.nextInt();
for(int o=1;o<=nums;o++)
{
System.out.println("输入要修改教师的工号:");
String Tea_num;
Tea_num=input.next();
//遍历数组找到相同的工号
for(int i=1;i<Tnum;i++)
{
if(Tea_num.equals(Tea[i].getTea_num()))
{
System.out.println(Tea[i].getName()+" "+Tea[i].getTea_num()+" "+Tea[i].getAge()+" "+Tea[i].getPosition()+" "+Tea[i].getSalary()+"该名教师将被删除");
deleteTea(i);
break;
}
}
}
}
if(nn==3)//对教师进行修改操作
{
System.out.println("请输入需要修改的教师个数");
int num;
num=input.nextInt();
for(int i=1;i<=num;i++)
{
//默认教师学号不能修改
System.out.println("请输入要修改教师的工号");
String Tea_num; Tea_num=input.next();
for(int j=1;j<Tnum;j++)
{
//遍历教师编号
if(Tea_num.equals(Tea[j].getTea_num()) )
{
changeTea(j);
System.out.println("该名教师信息修改完毕");
break;
}
}
}
}
if(nn==4)
{
System.out.println("现在教师的信息");
for(int i=1;i<Tnum;i++)
{
System.out.println(Tea[i].getName()+" "+Tea[i].getTea_num()+" "+Tea[i].getAge()+" "+Tea[i].getPosition()+" "+Tea[i].getSalary());
}
}
break;
}
case 3://对行政人员操作
{
System.out.println("对行政人员进行操作,请输入序号");
System.out.println("增加行政人员(1) 删除行政人员(2) 修改行政人员信息(3)查询行政人员(4)");
int nn;
nn=input.nextInt();
if(nn==1)//增加行政人数
{
int nums;
System.out.println("输入要添加的行政人员的人数:");
nums=input.nextInt();
System.out.println("请依次输入 "+nums+" 名行政人员的姓名,工号,年纪, 薪水");
for(int i=Anum;i<Anum+nums;i++)
{
String Adm_name;//姓名
String Adm_num;//工号
int Adm_age;//年纪
int Adm_salary;//薪水
Adm[i]=new Admin();
Adm_name=input.next();
Adm_num=input.next();
Adm_age=input.nextInt();
Adm_salary=input.nextInt();
Adm[i].setName(Adm_name);
Adm[i].setAdm_num(Adm_num);
Adm[i].setAge(Adm_age);
Adm[i].setSalary(Adm_salary);
System.out.println("该名行政人员添加成功");
}
Anum+=nums;
}
if(nn==2)//对行政人员进行删除操作
{
int nums;
System.out.println("输入要删除的行政人员人数:");
nums=input.nextInt();
for(int o=1;o<=nums;o++)
{
System.out.println("请依次输入要修改的行政人员的工号 ");
String Adm_num;
Adm_num=input.next();
//遍历数组找到相同的工号
for(int i=1;i<Anum;i++)
{
if(Adm_num.equals(Adm[i].getAdm_num()))
{
System.out.println(Adm[i].getName()+" "+Adm[i].getAdm_num()+" "+Adm[i].getAge()+" "+Adm[i].getSalary()+"该名人员将被删除");
deleteAdm(i);
break;
}
}
}
}
if(nn==3)//对行政人员进行修改操作
{
System.out.println("请输入需要修改的行政人员个数");
int num;
num=input.nextInt();
for(int i=1;i<=num;i++)
{
//默认教师学号不能修改
System.out.println("请输入要修改行政人员的工号");
String Adm_num; Adm_num=input.next();
for(int j=1;j<Anum;j++)
{
//遍历教师编号
if(Adm_num.equals(Adm[j].getAdm_num()) )
{
changeAdm(j);
System.out.println("该名行政人员信息修改完毕");
}
}
}
}
if(nn==4)
{
System.out.println("现在行政人员的信息");
for(int i=1;i<Anum;i++)
{
System.out.println(Adm[i].getName()+" "+Adm[i].getAdm_num()+" "+Adm[i].getAge()+" "+Adm[i].getSalary());
}
}
break;
}
case 4://对工作人员操作
{
System.out.println("对工作人员进行操作,请输入序号");
System.out.println("增加工作人员(1) 删除工作人员(2) 修改工作人员信息(3)查询工作人员信息(4)");
int nn;
nn=input.nextInt();
if(nn==1)//增加工作人员人数
{
int nums;
System.out.println("输入要添加的工作人员的人数:");
nums=input.nextInt();
System.out.println("请依次输入 "+nums+" 名工作人员的姓名,工号,年纪,薪水");
for(int i=Wnum;i<Wnum+nums;i++)
{
String Wor_name;//姓名
String Wor_num;//工号
int Wor_age;//年纪
int Wor_salary;//薪水
Wor[i]=new Worker();
Wor_name=input.next();
Wor_num=input.next();
Wor_age=input.nextInt();
Wor_salary=input.nextInt();
Wor[i].setName(Wor_name);
Wor[i].setWor_num(Wor_num);
Wor[i].setAge(Wor_age);
Wor[i].setSalary(Wor_salary);
System.out.println("该名工作人员添加成功,请输入下一位工作人员的信息");
}
Wnum+=nums;
}
if(nn==2)//对工作人员进行删除操作
{
int nums;
System.out.println("输入要删除的行政人员人数:");
nums=input.nextInt();
System.out.println("请依次输入 "+nums+" 名行政人员的工号 ");
for(int o=1;o<=nums;o++)
{
String Wor_num;
Wor_num=input.next();
//遍历数组找到相同的工号
for(int i=1;i<Wnum;i++)
{
if( Wor_num.equals(Wor[i].getWor_num()) )
{
System.out.println(Wor[i].getName()+" "+Wor[i].getWor_num()+" "+Wor[i].getAge()+" "+Wor[i].getSalary()+"该名人员将被删除");
deleteWor(i);
break;
}
}
}
}
if(nn==3)//对行政人员进行修改操作
{
System.out.println("请输入需要修改的工作人员个数");
int num;
num=input.nextInt();
for(int i=1;i<=num;i++)
{
//默认工作人员工号不能修改
System.out.println("请输入要修改工作人员的工号");
String Wor_num; Wor_num=input.next();
for(int j=1;j<Wnum;j++)
{
//遍历教师编号
if(Wor_num.equals(Wor[j].getWor_num()) )
{
changeWor(j);
System.out.println("该名工作人员信息修改完毕");
}
}
}
}
if(nn==4)
{
System.out.println("现在工作人员的信息");
for(int i=1;i<Wnum;i++)
{
System.out.println(Wor[i].getName()+" "+Wor[i].getWor_num()+" "+Wor[i].getAge()+" "+Wor[i].getSalary());
}
}
break;
}
case 5://对管理人员操作
{
System.out.println("对管理人员进行操作,请输入序号");
System.out.println("增加管理人员(1) 删除管理人员(2) 修改管理人员信息(3)查询管理人员信息(4)");
int nn;
nn=input.nextInt();
if(nn==1)//增加管理人员人数
{
int nums;
System.out.println("输入要添加的管理人员的人数:");
nums=input.nextInt();
System.out.println("请依次输入 "+nums+" 名管理人员的姓名,工号,年纪,薪水");
for(int i=Mnum;i<Mnum+nums;i++)
{
String Man_name;//姓名
String Man_num;//工号
int Man_age;//年纪
int Man_salary;//薪水
Man[i]=new Manager();
Man_name=input.next();
Man_num=input.next();
Man_age=input.nextInt();
Man_salary=input.nextInt();
Man[i].setName(Man_name);
Man[i].setMan_num(Man_num);
Man[i].setAge(Man_age);
Man[i].setSalary(Man_salary);
System.out.println("该名工作人员添加成功");
}
Mnum+=nums;
}
if(nn==2)//对管理人员进行删除操作
{
int nums;
System.out.println("输入要删除的管理人员人数:");
nums=input.nextInt();
for(int o=1;o<=nums;o++)
{
System.out.println("请依次输入要删除名管理人员的工号 ");
String Man_num;
Man_num=input.next();
//遍历数组找到相同的工号
for(int i=1;i<Mnum;i++)
{
if( Man_num.equals(Man[i].getMan_num()) )
{
System.out.println(Man[i].getName()+" "+Man[i].getMan_num()+" "+Man[i].getAge()+" "+Man[i].getSalary()+"该名管理员信息将被删除");
deleteMan(i);
break;
}
}
}
}
if(nn==3)//对管理人员进行修改操作
{
System.out.println("请输入需要修改的行政人员个数");
int num;
num=input.nextInt();
for(int i=1;i<=num;i++)
{
//默认管理人员工号不能修改
System.out.println("请输入要修改管理人员的工号");
String Man_num; Man_num=input.next();
for(int j=1;j<Mnum;j++)
{
//遍历管理人员编号
if( Man_num.equals(Man[j].getMan_num()) )
{
changeMan(j);
System.out.println("该名管理人员信息修改完毕");
break;
}
}
}
}
if(nn==4)
{
System.out.println("现在管理人员的信息");
for(int i=1;i<Mnum;i++)
{
System.out.println(Man[i].getName()+" "+Man[i].getMan_num()+" "+Man[i].getAge()+" "+Man[i].getSalary());
}
}
break;
}
}
}
public void deal2(int x)
{
System.out.println("请选择对查询对象的编号");
System.out.println("学生(1) 教师(2) 行政人员(3) 工作人员(4) 管理者(5)");
switch(x)
{
case 1:
{
System.out.println("现在学生人数为: "+(Snum-1));
System.out.println("具体信息\n姓名 学号 年纪");
for(int i=1;i<Snum;i++)
{
System.out.println(Stu[i].getName()+" " +Stu[i].getStu_num()+" "+Stu[i].getAge());
}
break;
}
case 2:
{
System.out.println("现在教师人数为: "+(Tnum-1));
System.out.println("具体信息\n姓名 工号 年龄 所教科目 薪水");
for(int i=1;i<Tnum;i++)
{
System.out.println(Tea[i].getName()+" "+Tea[i].getTea_num()+" "+Tea[i].getAge()+" "+Tea[i].getPosition()+" "+Tea[i].getSalary());
}
break;
}
case 3:
{
System.out.println("现在行政人员人数为: "+(Anum-1));
System.out.println("具体信息\n姓名 工号 年龄 薪水");
for(int i=1;i<Anum;i++)
{
System.out.println(Adm[i].getName()+" "+Adm[i].getAdm_num()+" "+Adm[i].getAge()+" "+Adm[i].getSalary());
}
break;
}
case 4:
{
System.out.println("现在工作人员人数为: "+(Wnum-1));
System.out.println("具体信息\n姓名 工号 年龄 薪水");
for(int i=1;i<Wnum;i++)
{
System.out.println(Wor[i].getName()+" "+Wor[i].getWor_num()+" "+Wor[i].getAge()+" "+Wor[i].getSalary());
}
break;
}
case 5:
{
System.out.println("现在管理员人数为: "+(Mnum-1));
System.out.println("具体信息\n姓名 工号 年龄 薪水");
for(int i=1;i<Mnum;i++)
{
System.out.println(Man[i].getName()+" "+Man[i].getMan_num()+" "+Man[i].getAge()+" "+Man[i].getSalary());
}
break;
}
}
}
}
package Iherit;
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
MAG tex= new MAG();
while(true)
{
System.out.println("选择\n修改(1) 查询(2)退出(0): ");
int flag=1;//判断操作是否继续
int n=input.nextInt();
switch(n)
{
case 1:
{
System.out.println("选择修改对象");
System.out.println("学生(1) 教师(2) 行政人员(3) 工作人员(4) 管理者(5)退出(0)");
//对哪一类进行操作
int tex1=input.nextInt();
if(tex1==0) break;//退出
tex.deal(tex1);
System.out.println("本次操作完毕");
break;
}
case 2:
{
System.out.println("选择查询对象");
System.out.println("学生(1) 教师(2) 行政人员(3) 工作人员(4) 管理者(5)退出(0)");
int tex2=input.nextInt();
if(tex2==0) break;
tex.deal2(tex2);
System.out.println("本次操作完毕");
break;
}
case 0:
{
flag=0;
break;
}
}
if(flag==0)
{
System.out.println("测试完毕,退出");
break;
}
}
}
}