149 - 教师类-2

149 - 教师类-2

Time Limit: 1000   Memory Limit: 65535
Submit: 754  Solved: 275

Description

修改题目143
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

HINT


 

Pre Append Code

Post Append Code

 

import java.lang.reflect.Array;
import java.util.Arrays;

import java.util.Scanner;

public class Main {

public static void main(String [] args)

{

Scanner scan = new Scanner(System.in);//读入教师个数

int i;

int num = scan.nextInt();

TeacherManagement  teac=new TeacherManagement(num);//申请

Teacher []t = new Teacher[num];

for(i=0;i<num;i++) {//读入教师信息

int no = scan.nextInt();

String name = scan.next();

int age = scan.nextInt();

String seminary = scan.next();

t[i] = new Teacher();//set

t[i].setno(no);

t[i].setname(name);

t[i].setage(age);

t[i].setseminary(seminary);

}

teac.add(t);

Arrays.sort(t);

for(i=0;i<t.length;i++) {

System.out.println(t[i].toString());

}

String s1 = scan.next();

teac.search(s1);

int s2 = scan.nextInt();

teac.search(s2);

}

}

class Teacher implements Comparable<Teacher>{//接口

    

int no;

String name;

int age;

String seminary;

public Teacher(int no,String name,int age,String seminary)

{

    this.no=no;

    this.name=name;

    this.age=age;

    this.seminary=seminary;

}

Teacher(){}//无参构造函数

public void setname(String a)//Set

{

    name = a;

}

public void setno(int a)//Set

{

    no = a;

}

public void setage(int a)//Set

{

    age = a;

}

public void setseminary(String a)//Set

{

    seminary=a;

}

public String getname()//Get

{

    return name;

}

public int getno()//Get

{

    return no;

}

public int getage()//Get

{

    return age;

}

public String getseminary()//Get

{

    return seminary;

}

public boolean equals(Teacher t) {

if(this.no==t.no)

return true;

return false;

}

@Override

public String toString() {

return "no: " + this.no + ", name: " + this.name + ", age: " + this.age + ", seminary: " + this.seminary;

}

@Override

//采用实现Comparable接口重写compareTo方法的方式,让元素自身具备比较性 

public int compareTo(Teacher t)

{

if(this.no==t.no)

return 0;

else if(this.no>t.no)

return 1;

else return -1;

}

}

class TeacherManagement{

    

Teacher []t;//教师数组

int num;

TeacherManagement(int num){  //构造函数

this.num = num;

this.t = new Teacher[num];

}

public void add(Teacher []t){//添加教师

this.t = t;

}

//重载方法

public void search(int age){

    

int flag = 0;

System.out.println("search by age:");

for(int i=0;i<t.length;i++) {

if(t[i].age==age)

{

flag= 1;

System.out.println(t[i].toString());

}

}

if(flag==0)

System.out.println("no such teacher");

}

public void search(String name){

int flag = 0;

System.out.println("search by name:");

for(int i=0;i<t.length;i++) {

if(t[i].name.equals(name)) { 

flag= 1;

System.out.println(t[i].toString());

}

}

if(flag==0)

System.out.println("no such teacher");

}}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值