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