package cn.itcast_06;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
/*
* 键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
*
* 分析
* A:定义学生类
* B:创建一个集合
* 总分怎么从高到底排序?
* C:键盘录入五个学生信息
* D:遍历
*/
public class 键盘录入学生信息 {
public static void main(String[] args) {
//创建集合
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
public int compare (Student s1,Student s2) {
//总分从高到底
int num = s1.getSum()-s2.getSum();
//总分相同不一定语文相同
int num2 = num == 0 ?s1.getYun() - s2.getYun() :num;
//总分相同不一定数学相同
int num3 = num2 == 0 ?s1.getMath() - s2.getMath() :num2;
//总分相同不一定英语相同
int num4 = num3 == 0 ?s1.getEnglish() - s2.getEnglish() :num3;
//姓名不一定相同
int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName()):num4;
return num4;
}
});
//键盘录入信息
for(int x =1;x<=5;x++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第"+x+"学生姓名");
String name = sc.nextLine();
System.out.println("请输入第"+x+"学生语文成绩");
int yun = sc.nextInt();
System.out.println("请输入第"+x+"学生数学成绩");
int math = sc.nextInt();
System.out.println("请输入第"+x+"学生英语成绩");
int Englith = sc.nextInt();
//把数据封装到学生类中
Student s = new Student();
s.setName(name);
s.setEnglish(Englith);
s.setMath(math);
s.setYun(yun);
//把学生添加到集合
ts.add(s);
}
System.out.println("学生信息录入完毕");
System.out.println("学习成绩从高到低排序");
System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩");
for(Student s1 :ts) {
System.out.println(s1.getName()+"\t"+s1.getYun()+"\t"+s1.getMath()+"\t"+s1.getEnglish()+"\t");
}
}
}
键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
最新推荐文章于 2023-05-23 22:31:09 发布
本文介绍了一个使用Java实现的学生信息管理系统,通过键盘录入五个学生的基本信息(包括姓名、语文、数学、英语成绩),并利用TreeSet集合和自定义比较器实现了对学生总分从高到低的排序输出。
2307

被折叠的 条评论
为什么被折叠?



