1. 修改教师类,使得由多个Teacher对象所形成的数组可以排序(编号由低到高排序),并在main函数中使用Arrays.sort(Object[] a)方法排序 2. 定义一个类TeacherManagement,包含教师数组,提供方法add(Teacher[]),使其可以添加教师,提供重载方法search,方法可以在一组给定的教师中,根据姓名或年龄返回等于指定姓名或年龄的教师的字符串信息,信息格式为:“no: **, name:**, age: **, seminary: **”。如果没有满足条件的教师,则返回“no such teacher”。
Input
教师个数 教师信息 待查找教师的姓名 待查找教师的年龄
Output
排序后的信息 按姓名查找的老师信息 按年龄查找的老师信息
import java.util.Arrays;
import java.util.Scanner;
class Teacher implements Comparable {
public int no;
public String name;
public int age;
public String seminary;
Teacher() {
}
Teacher(int n, String na, int a, String se) {
this.no = n;
this.name = na;
this.age = a;
this.seminary = se;
}
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setNo(int no) {
this.no = no;
}
public void setSeminary(String seminary) {
this.seminary = seminary;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getNo() {
return no;
}
public String getSeminary() {
return seminary;
}
@Override
public boolean equals(Object obj) {
if(obj == null) {
return false;
}
if(obj instanceof Teacher) {
Teacher temp = (Teacher)obj;
if(this.no == temp.no) {
return true;
}
}
return false;
}
@Override
public int compareTo(Object o) {
Teacher obj = (Teacher) o;
if (this.no < obj.no)
return -1;
else if (this.no == obj.no)
return 0;
else
return 1;
//return this.no < obj.no;
}
@Override
public String toString() {
String str = "no: " + no + ", name: " + name + ", age: " + age + ", seminary: " + seminary;
return str;
}
}
class TeacherManagement {
int num;
Teacher[] teachers;
TeacherManagement(int Num) {
num = Num;
teachers = new Teacher[num];
}
public void add(Teacher teacher,int i) {
teachers[i] = new Teacher(teacher.getNo(),teacher.getName(),teacher.getAge(),teacher.getSeminary());
}
public void print() {
for (Teacher teacher : teachers) {
System.out.println(teacher.toString());
}
}
public void sort() {
Arrays.sort(teachers);
}
public void search(String name) {
int flag = 0;
System.out.println("search by name:");
for (int i = 0; i < num; i++) {
if (teachers[i].getName().equals(name)) {
flag = 1;
System.out.println(teachers[i].toString());
}
}
if (flag == 0) {
System.out.println("no such teacher");
}
}
public void search(int age) {
int flag = 0;
System.out.println("search by age:");
for (int i = 0; i < num; i++) {
if (teachers[i].getAge() == age) {
flag = 1;
System.out.println(teachers[i].toString());
}
}
if (flag == 0) {
System.out.println("no such teacher");
}
}
}
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
TeacherManagement ts = new TeacherManagement(n);
for(int i = 0;i < n;i++)
{
int no = in.nextInt();
String name = in.next();
int age = in.nextInt();
String seminary = in.next();
Teacher t = new Teacher(no,name,age,seminary);
ts.add(t,i);
}
ts.sort();
ts.print();
String tmp = in.next();
int s = in.nextInt();
ts.search(tmp);
ts.search(s);
}
}