欢迎光临散文网 会员登陆 & 注册

7-1 教师类-2

2023-03-25 20:18 作者:计算机章鱼哥  | 我要投稿

修改题目143

  1. 修改教师类,使得由多个Teacher对象所形成的数组可以排序(编号由低到高排序),并在main函数中使用Arrays.sort(Object[] a)方法排序

  2. 定义一个类TeacherManagement,包含教师数组,提供方法add(Teacher[]),使其可以添加教师,提供重载方法search,方法可以在一组给定的教师中,根据姓名或年龄返回等于指定姓名或年龄的教师的字符串信息,信息格式为:“no: , name:, age: **, seminary: **”。如果没有满足条件的教师,则返回“no such teacher”。

输入格式:

教师个数
教师信息
待查找教师的姓名
待查找教师的年龄

输出格式:

排序后的信息
按姓名查找的老师信息
按年龄查找的老师信息

输入样例:

在这里给出一组输入。例如:

4

3 Linda 38 SoftwareEngineering

1 Mindy 27 ComputerScience

4 Cindy 28 SoftwareEngineering

2 Melody 27 ComputerScience

Cindy

27


输出样例:

在这里给出相应的输出。例如:

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

示例代码

题目分析

看题目就知道,这道题实际上是另一道题的延申,所以就不得不看看教师类1的题目了。

下面是教师类1的题目:

设计一个教师类Teacher,要求: 属性有编号(int no)、姓名(String name)、年龄(int age)、所属学院(String seminary),为这些属性设置相应的get和set方法。 为Teacher类重写equals方法,要求:当两个教师对象的no相同时返回true。 重写Teacher类的toString方法,通过该方法可以返回“no: , name:, age: **, seminary: **”形式的字符串。

输入格式:

两个教师对象的编号,姓名,年龄,学院

输出格式:

教师的信息 两个教师是否相等

输入样例:

在这里给出一组输入。例如:

1 Linda 38 SoftwareEngineering

2 Mindy 27 ComputerScience

输出样例:

在这里给出相应的输出。例如:

no: 1, name:Linda, age: 38, seminary: SoftwareEngineering

no: 2, name:Mindy, age: 27, seminary: ComputerScience

false

教师类1 这道题比较简单,重要的点是重写 equals 方法和 toString 方法,所以需要知道什么是重写方法,怎么重写方法,以及了解 equals 方法和 toString 方法的作用是什么。

还有一个点是类的私有属性和公有属性,需要知道这两者的区别,以及每个属性对应的 get 和 set 方法应该怎么写。

教师类2要求我们在教师类1的基础上作出修改。

主要是两点。

一点是需要多个 Teacher 对象所形成的数组可以使用 Arrays.sort(Object[] a) 方法排序。为了做到这点,我们需要在定义 Teacher 类的时候实现 Comparable 接口,用于 Teacher 对象的比较。所以我们需要了解什么是接口,以及 Comparable 接口怎么写,作用是什么。

另一点是多了一个 TeacherManagement 类,这个类里面要有教师数组,add(Teacher[]) 方法,使其可以添加教师,search 方法,使其可以在一组给定的教师中,根据姓名或年龄返回等于指定姓名或年龄的教师的字符串信息。

首先说 add(Teacher[]) 方法,在示例代码中,用到了 Arrays.copyOf 方法和 arraycopy 方法来实现往教师数组中添加新的教师,用到了 Arrays.sort 方法来给教师数组排序。所以我们得了解这些方法的用法和作用。

再来说 search 方法,因为既要求根据名字搜索,也要求根据年龄搜索,为了实现这一要求需要用到重载方法,所以必须了解重载方法的含义和作用。另外,在 search 方法中还用到了for循环来遍历教师数组,用到了String类的equals方法来判断字符串内容是否匹配,用到了StringBuilder类来生成字符串。(其实这里没必要,判断字符串内容是否匹配后分别输出不同的信息即可,不过多学点总是好的)


7-1 教师类-2的评论 (共 条)

分享到微博请遵守国家法律