完成动物的年龄排序。(40分)题目内容: 通常来说动物的物理年龄与其生理年龄是不匹配的,如果要严格的根据动物的生理年龄排序需要有一个具体的参照(例如人)。下面列出了狗和人以及猫和人的年龄对照表。

1完成动物的年龄排序。(40分)

题目内容:

通常来说动物的物理年龄与其生理年龄是不匹配的,如果要严格的根据动物的生理年龄排序需要有一个具体的参照(例如人)。下面列出了狗和人以及猫和人的年龄对照表。

1

2

3

4

5

6

7

8

9

10

18

23

28

32

36

40

45

50

55

60

1

2

3

4

5

6

7

8

9

10

15

24

28

32

36

40

44

48

52

56

例如,1岁的狗与1岁的猫相比,1岁的狗生理年龄较大。请利用继承机制与Comparable接口实现不同狗与猎豹对象的排序。下面给出了程序的基本框架,请给出相关的函数实现。

class Animal {   

    int age;//动物年龄

    int mage; //映射到人的年龄

    String name; //名字

    static int[] dog = {0,18,23,28,32,36,40,45,50,55,60};

    static int[] cat= {0,15,24,28,32,36,40,44,48,52,56};

}

class Dog extends Animal implements Comparable{

    //实现你的构造函数与Comparable中的接口

}

class Cat extends Animal implements Comparable{

    //实现你的构造函数与Comparable中的接口

}

import java.util.Arrays;

import java.util.Scanner;

public class CompareAnimal {

public static void main(String[] args) {

Animal[] as = new Animal[4];

// 初始化

Scanner sc = new Scanner(System.in);

// 利用hasNextXXX()判断是否还有下一输入项

if (sc.hasNext()) {

as[0] = new Dog("dog1", sc.nextInt());

}

if (sc.hasNext()) {

as[1] = new Cat("cat1", sc.nextInt());

}

if (sc.hasNext()) {

as[2] = new Dog("dog2", sc.nextInt());

}

if (sc.hasNext()) {

as[3] = new Cat("cat2", sc.nextInt());

}

// 请补充排序

// 请补充升序输出结果

}

}
输入格式:

输入4个数字(1-10之间)

输出格式:

动物生理年龄升序排序

输入样例:

4

2

8

7

输出样例:

cat1,2

dog1,4

cat2,7

dog2,8

时间限制:500ms内存限制:32000kb

答案:

import java.util.Scanner;
import java.util.Arrays;
class Animal {    

    int age;
    int mage; 
    String name; 

    static int[] dog = {0,18,23,28,32,36,40,45,50,55,60};

    static int[] cat= {0,15,24,28,32,36,40,44,48,52,56};

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getMage() {
		return mage;
	}

	public void setMage(int mage) {
		this.mage = mage;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static int[] getDog() {
		return dog;
	}

	public static void setDog(int[] dog) {
		Animal.dog = dog;
	}

	public static int[] getCat() {
		return cat;
	}

	public static void setCat(int[] cat) {
		Animal.cat = cat;
	}
    
} 
class Dog extends Animal implements Comparable<Animal>{

	public Dog(String string, int nextInt) {
		this.setName(string);
		mage = dog[nextInt];
		this.setMage(mage);
		this.setAge(nextInt);
	}

	@Override
	public int compareTo(Animal another) {
		return mage-another.mage;
	}


}
class Cat extends Animal implements Comparable<Animal>{

	public Cat(String string, int nextInt) {
		this.setName(string);
		mage = cat[nextInt];
		this.setMage(mage);
		this.setAge(nextInt);
	}

	@Override
	public int compareTo(Animal another) {
		return mage-another.mage;
	}

}



public class Main {
	public static void main(String[] args) {
		Animal[] as = new Animal[4];
		Scanner sc = new Scanner(System.in);
		if (sc.hasNext()) {
			as[0] = new Dog("dog1", sc.nextInt());
		}
		if (sc.hasNext()) {
			as[1] = new Cat("cat1", sc.nextInt());
		}
		if (sc.hasNext()) {
			as[2] = new Dog("dog2", sc.nextInt());
		}
		if (sc.hasNext()) {
			as[3] = new Cat("cat2", sc.nextInt());
		}

		Arrays.sort(as);
		for (Animal animal : as) {
			System.out.println(animal.name+","+animal.age);
		}

	}
}

题目来源于网络,如有侵权,请联系本人删除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值