javase学习记录之------键盘录入学生信息并按总分排序后输出
程序员文章站
2022-07-13 13:29:27
...
键盘录入5个学生的信息,按总分从高到低输出
1:定义学生类
2:创建一盒TreeSet集合
3:总分从高到底如何实现
4:键盘录入5个学生信息
5:遍历
public class Student {
private String name;
private int Chinese;
private int math;
private int english;
Student(){};
Student(String name,int Chinese,int math,int english){
super();
this.name=name;
this.english=english;
this.Chinese=Chinese;
this.math=math;
}
public String getName() {
return name;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public void setName(String name) {
this.name = name;
}
public int getChinese() {
return Chinese;
}
public void setChinese(int chinese) {
Chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
int getSum(){
return Chinese+math+english;
}
}
import java.util.Comparator;
class Demo$1 implements Comparator<Student> {
Demo$1() {
}
public int compare(Student s1, Student s2) {
int num = s1.getSum() - s2.getSum();
int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : 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 num5;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Demo {
public static void main(String[] args) {
//创建TreeSet集合
//一般用自然排序,但是因为我只用一次,所以用比较器排序,且用匿名内部类实现
TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
//总分从高到底
int num=s1.getSum()-s2.getSum();
//总分相同的不一定语文相同
int num2=num==0? s1.getChinese()-s2.getChinese():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 num5;
}
});
//键盘录入5个信息
System.out.println("学生信息录入开始");
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+"个学生的语文成绩");
String chineseString =sc.nextLine();
System.out.println("请输入第"+x+"个学生的数学成绩");
String mathString =sc.nextLine();
System.out.println("请输入第"+x+"个学生的英语成绩");
String englishString =sc.nextLine();
//把数据封装到学生对象中
Student s=new Student();
s.setName(name);
s.setChinese(Integer.parseInt(chineseString));
s.setMath(Integer.parseInt(mathString));
s.setEnglish(Integer.parseInt(englishString));
//把学生对象添加到集合
ts.add(s);
}
System.out.println("学生信息录入完毕");
System.out.println("学生信息从高到低排序如下");
System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩");
//\t一个tab键的位置
//遍历集合
for(Student s:ts){
System.out.println(s.getName()+"\t"+s.getChinese()+"\t"+s.getMath()+"\t"+s.getEnglish());
}
}
}
程序运行结果为;
上一篇: CentOs更改yum源为阿里云yum源
下一篇: mac os 配置安装maven