用java写一个学生类,对总成绩降序排列输出并打印名次

z980693651 z980693651 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
要求:编写一个学生类,输入姓名,学号,三门课成绩,然后按总分降序排列输出,并打印名次,如果总分相同,输出同样的名次,如1 2 2 3 4
刚开始学java,只能写到下面那样了,输出名次完全没有思路,排序也感觉怪怪的,有没有大佬能够指点一下QAQ

import java.util.Arrays;
public class Student {
public String name;
public int xuehao,mingci;
public double a1,a2,a3;
Student(int xuehao,String name,double a1,double a2,double a3){
this.xuehao=xuehao;
this.name=name;
this.a1=a1;
this.a2=a2;
this.a3=a3;
}
double sum(){
return(this.a1+this.a2+this.a3);
}
}
public class Test {
public static void main(String[] args){
Student student[]=new Student[5];
double s[]=new double[5];
student[0]=new Student(20160001,"学生一",85,72,95);
student[1]=new Student(20160002,"学生二",87,88,92);
student[2]=new Student(20160003,"学生三",20,60,56);
student[3]=new Student(20160004,"学生四",99,94,56);
student[4]=new Student(20160005,"学生五",100,100,100);
for(int j=0;j<5;j++){
s[j]=student[j].sum();
}
Arrays.sort(s);
for(int j=4;j>=0;j--){
for(int i=0;i<5;i++){
if(student[i].sum()==s[j])
System.out.println(student[i].xuehao+" "+student[i].name+" "+student[i].a1+" "+
student[i].a2+" "+student[i].a3+" 总分:"+student[i].sum());
}
}
}
}
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
z980693651
Eclipse 58,439 成员 49,457 内容