键盘录入5个学生成绩信息,按照总分降序输出

键盘录入5个学生成绩信息(姓名,语文成绩,数学成绩,英语成绩),按照总分降序输出

package temp;

public class StudentGrade {
	private String name;  //姓名
	private int chinese;  //语文成绩
	private int maths;  //数学成绩
	private int english;  //英语成绩
	private int sum;  //总成绩
	
	public StudentGrade() {  //alt + shift + s  c
		super();
	}

	public StudentGrade(String name, int chinese, int maths, int english) {  //alt + shift + s  o
		super();
		this.name = name;
		this.chinese = chinese;
		this.maths = maths;
		this.english = english;
		this.sum = this.chinese + this.maths + this.english;
	}

	public int getSum() {  //alt + shift + s  r
		return sum;
	}

	@Override
	public String toString() {  //alt + shift + s  s
		return "(" + name + ", " + chinese + ", " + maths + ", " + english + ")" + "总" + sum + "分";
	}
	
}
package temp;

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

public class Test {  
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入5个学生成绩信息,格式要求:姓名,语文成绩,数学成绩,英语成绩");
		
		TreeSet ts = new TreeSet<>(new Comparator() {
			public int compare(StudentGrade s1, StudentGrade s2) {
				int num = s2.getSum() - s1.getSum();
				return num == 0 ? 1 : num;
			}
		});
		
		while(ts.size() < 5) {
			String line = sc.nextLine();
			String[] arr = line.split(",");  //用逗号切割一行字符串
			
			int chinese = Integer.parseInt(arr[1]);  //将语文成绩对应的数字字符串转为整型
			int maths = Integer.parseInt(arr[2]);
			int english = Integer.parseInt(arr[3]);
			
			ts.add(new StudentGrade(arr[0], chinese, maths, english));
		}
		
		System.out.println("学生总成绩排序:");
		for (StudentGrade s : ts) {
			System.out.println(s);
		}
	}
}

运行结果:
键盘录入5个学生成绩信息,按照总分降序输出_第1张图片

你可能感兴趣的:(Java,计算机)