Java 奖学金 对类的应用问题(含toString 和 compareTo的使用)

题目:

第一行输入 一个 int 为n个学生

接下来n行输入学生的语数英成绩

将成绩前五的前五的学生 打印出 学号和总分

# 若总分相同则按语文排,若语文相同按学号排

样例输入:

6            
90 67 80     
87 66 91       
78 89 91        
88 99 77        
67 89 64       
78 89 98  

输出:

6 265
4 264
3 258
2 244
1 237

	import java.util.*;
	import java.math.*;
	
	public class Main {
		public static class student implements Comparable<student>{//实现Comparable接口,<>里写类的名字
			int zong; //总分
			int yuwen; //语文
			int xuehao; //学号
			public student(int zong, int yuwen, int xuehao) {//初始化
				this.xuehao = xuehao;
				this.yuwen = yuwen;
				this.zong = zong;
			}
			@Override
			public  int compareTo(student s) {//重写compareTo函数:最多三次比较
				if(s.zong != this.zong)
				return Double.compare(s.zong, this.zong);
				else {
					if(s.yuwen != this.yuwen) {
						return Double.compare(s.yuwen, this.yuwen);
					}else {
						return Double.compare(this.xuehao,s.xuehao);
					}
				}
			}
			@Override
			public String toString() {//重写toString函数
				return xuehao + " " + zong; 
			}
		}
		
		public static void main(String[]args) {
			Scanner in = new Scanner(System.in);
			int n = in.nextInt();
			student[] ss = new student[n];
			for(int i = 0 ;  i < n ; ++ i) {
				
				int yu = in.nextInt();
				int shu = in.nextInt(), ying = in.nextInt();
				int zong = yu + shu + ying;
				ss[i] = new student(zong, yu, i + 1);
				
			}
			Arrays.sort(ss);
			for(int i = 0 ;  i < 5  ; ++ i) {
				System.out.println(ss[i]);
			}
			
		}
	}



 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值