怎么用面向对象解决?数组在里面怎么用?

正在进行一场唱歌比赛,歌手的得分通过下面的方法进行计算:使用歌手获得的选票除以1000的商,为了鼓励老年选手,如果歌手年龄超过50(不含50),其得分将乘2。输入整数n,然后输入n个歌手的信息,输入信息包括姓名、年龄、得票数,然后按得分显示第1名老年歌手(年龄超过50)和青年歌手(年龄小于等于50)的姓名和成绩。
【样例输入】
    5
    Tom 89 3000
    Cat 12 5000
    Json 53 537
    Strus 62 1300
    AWT 57 6000
【样例输出】
    AWT 12
    Cat 5

    需要补充的代码
    import  java.util.Scanner;

abstract class Singer {
// 需要补充代码 1
abstract int getPoints();

}
class YoungSinger extends Singer{
// 需要补充代码 2
}

class OldSinger extends Singer{
// 需要补充代码 3

}

class Counter {
// 需要补充代码 4

}

public class Test {

public static void main(String[] args) {

Scanner reader = new Scanner(System.in);

int n = reader.nextInt();
OldSinger[]  oldGroup  =  new  OldSinger[n];
YoungSinger[]  youngGroup  =  new  YoungSinger[n]  ;
int lenOld = 0, lenYoung  =  0;;
for (int i = 0; i < n; i++)  {
    String Name  =  reader.next();
    int age  =  reader.nextInt();
    int vote  =  reader.nextInt();
    Singer s;
    if (age  >  50)  {
       s = oldGroup[lenOld++] = new OldSinger(Name,  age);
    }  else  {
       s = youngGroup[lenYoung++] = new YoungSinger(Name,  age);
    }
       s.setVote(vote);        
 }
 Counter c = new Counter(oldGroup,  lenOld,  youngGroup,  lenYoung);
 System.out.println(c.getTopOldSinger().name + " " 
  • c.getTopOldSinger().getPoints() ); System.out.println(c.getTopYoungSinger().name + " "
  • c.getTopYoungSinger().getPoints()); reader.close(); }

}

Counter

package com.tedu;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

class Counter {
    /*
     * 正在进行一场唱歌比赛,歌手的得分通过下面的方法进行计算:使用歌手获得的选票除以1000的商,
     * 为了鼓励老年选手,如果歌手年龄超过50(不含50),其得分将乘2。
     * 输入整数n,然后输入n个歌手的信息,输入信息包括姓名、年龄、得票数,
     * 然后按得分显示第1名老年歌手(年龄超过50)和青年歌手(年龄小于等于50)的姓名和成绩。 
     */
    public static void main(String[] args) {
        int point=0;
        int point1=0;
        YoungSinger youngsinger=new YoungSinger();
        OldSinger oldsinger=new OldSinger();
        ArrayList a=new ArrayList();
        int count=0;
        int count1=0;
        for (int i = 0; i < 5; i++) {
            Scanner scanner=new Scanner(System.in); //每次必须重新实例化,否则inputmatch异常
            System.out.println("请输入歌手姓名:");
            String name=scanner.nextLine();
            System.out.println("请输入歌手年龄:");
            int age=scanner.nextInt();
            System.out.println("请输入歌手票数:");
            int ticketcount=scanner.nextInt();
            if(age>50) {
                if(oldsinger.getPoints(oldsinger.ticketcount)<=(ticketcount/1000)*2) {
                    oldsinger.age=age;
                    oldsinger.name=name;
                    oldsinger.ticketcount=ticketcount;

                    if(count==0) {
                        a.add(oldsinger);
                        count++;
                    }
                }
            }else {
                if(youngsinger.getPoints(ticketcount)<=ticketcount/1000) {
                    youngsinger.age=age;
                    youngsinger.name=name;
                    youngsinger.ticketcount=ticketcount;

                    if(count1==0) {
                        a.add(youngsinger);
                        count1++;
                    }
                }
            }
            System.out.println(a.toString());
        }
    }
}

OldSinger

package com.tedu;

class OldSinger extends Singer{

    @Override
    int getPoints(int ticketcount) {
        int point=(ticketcount/1000)*2;
        return point;
    }

    @Override
    int getPoints() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public String toString() {
        return "OldSinger [name=" + name + ", age=" + age + ", ticketcount=" + ticketcount + "]";
    }
}

YoungSinger

package com.tedu;

class YoungSinger extends Singer{

    @Override
    int getPoints(int ticketcount) {
        int point=ticketcount/1000;
        return point;
    }

    @Override
    int getPoints() {

        return 0;
    }

    @Override
    public String toString() {
        return "YoungSinger [name=" + name + ", age=" + age + ", ticketcount=" + ticketcount + "]";
    }
}

Singer

package com.tedu;

abstract class Singer {
    String name;
    int age;
    int ticketcount;

    abstract int getPoints();

    int getPoints(int ticketcount) {
        // TODO Auto-generated method stub
        return 0;
    }

    }