import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
/*
* 4、假设一个球队有队员1000名,在一次选拔赛中,各个队员都参加了5个项目(跳远、跳高、跳绳、100米跑、仰卧起坐)的测验(100分制),
* 现在要从这1000个队员中选出平均成绩最好的50位去参加集训。请按照平均成绩降序输出这50个队员的信息,输出信息包括:队员名字、年龄、各项目成绩、平均成绩,请实现相应的程序。25分
额外要求:
1)必须包含2个类:队员类TeamMember,球队类Team,球队类有一个属性teamMems,包含其所有队员的信息;
2)队员信息必须包含名字、年龄;球队信息必须包含名字、所有队员信息;通过TeamMember的构造方法创建队员信息,通过Team的构造方法创建球队信息。
3)1000名队员随机产生:每个队员各项成绩随机产生(0-100分之间),不能相同;年龄随机产生(25-35岁之间),不能相同;名字随机产生,不能相同。
4)以上内容是规定属性,其它属性根据编程需要自行添加;各属性是何种类型根据实际情况自定。
*/
class TeamMember implements Comparable<TeamMember>
{
String name;
int age;
int[] score=new int[5];
double avg;
@Override
public int compareTo(TeamMember o) {
if((avg-o.avg)<0)
return 1;
else
return -1;
}
public String toString()
{
return name+" "+age+" "+score[0]+" "+score[2]+" "+score[3]+" "+score[4]+" "+avg;
}
}
class Team
{
Random r=new Random();
TeamMember[] teamMems=new TeamMember[1000];
public void re_r()
{
Set<String> set=new HashSet<>();
while((set.size())!=1000)
{
String s="";
for(int i=0;i<2;i++)
{
s+=(char)(r.nextInt(32)+97);
}
set.add(s);
}
List<String> list=new ArrayList<>();
List<TeamMember> list1=new ArrayList<>();
for(String x:set)
list.add(x);
for(int i=0;i<1000;i++)
{
int sum=0;
teamMems[i]=new TeamMember();
teamMems[i].age=r.nextInt(26)+10;
teamMems[i].name=list.get(i);
for(int j=0;j<5;j++)
{
teamMems[i].score[j]=r.nextInt(100)+1;
sum+=teamMems[i].score[j];
}
teamMems[i].avg=(sum/5.0);
}
for(TeamMember y:teamMems)
list1.add(y);
Collections.sort(list1);
for(int i=0;i<50;i++)
System.out.println(list1.get(i).toString());
}
}
public class Test6 {
public static void main(String[] args)
{
Team aTeam=new Team();
aTeam.re_r();
}
}
2020-12-22
最新推荐文章于 2022-06-11 15:29:45 发布