正在进行一场唱歌比赛,歌手的得分通过下面的方法进行计算:使用歌手获得的选票除以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 + " "
}
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());
}
}
}
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 + "]";
}
}
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 + "]";
}
}
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;
}
}