PTA:7-14 教师类-2 (20 分)

题目描述:

修改教师类,使得由多个Teacher对象所形成的数组可以排序(编号由低到高排序),并在main函数中使用Arrays.sort(Object[]a)方法排序,定义一个类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

题解:

java弱弱的我现在只能用笨方法了😂

package jyc.test;

import java.util.Scanner;
import java.util.Arrays;
public class Main {

    public static void main(String [] args){

        Scanner input =new Scanner(System.in);
        int n=input.nextInt();
        Teacher [] obj=new Teacher[n];
        int i=0;
        while (i<n){
            obj[i]=new Teacher();
            obj[i].no=input.nextInt();
            obj[i].name=input.next();
            obj[i].age=input.nextInt();
            obj[i].dept=input.next();
            i++;
        }
        String sname=input.next();
        int sage=input.nextInt();


        int t;//排序
        String ss;
        for(int i0=0;i0<n;i0++){
            for(int j0=i0;j0<n-1;j0++){
                if(obj[j0].no>obj[j0+1].no){
                    t=obj[j0].no;obj[j0].no=obj[j0+1].no;obj[j0+1].no=t;
                    ss=obj[j0].name;obj[j0].name=obj[j0+1].name;obj[j0+1].name=ss;
                    t=obj[j0].age;obj[j0].age=obj[j0+1].age;obj[j0+1].age=t;
                    ss=obj[j0].dept;obj[j0].dept=obj[j0+1].dept;obj[j0+1].dept=ss;
                }
            }
        }

        //Arrays.sort(obj);
        for(int j=0;j<i;j++){
            System.out.println(obj[j].toString());
        }

        int fg=0;
            System.out.println("search by name:");
            for( i=0;i<n;i++){
                if(obj[i].name.equals(sname)){
                    fg=1;
                    System.out.println(obj[i].toString());
            }
        }
        if(fg==0)
            System.out.println("no such teacher");

        fg=0;

        System.out.println("search by age:");
        for( i=0;i<n;i++){
            if(obj[i].age==sage){
                fg=1;
                System.out.println(obj[i].toString());
            }
        }
        if(fg==0)
            System.out.println("no such teacher");

    }
}

class  Teacher {
    int no;
    String name;
    int age;
    String dept;

    public String toString() {
        String s = "no: " + this.no + ", name: " + this.name + "," +
                " age: " + this.age + ", seminary: " + this.dept;
        return s;
    }

}



注:本文原创,转载请注明原处

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Andy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值