1. 程式人生 > >鍵盤錄入5個學生的信息根據總分從高到低輸出在控制臺

鍵盤錄入5個學生的信息根據總分從高到低輸出在控制臺

main math .get getc over parseint .com clas 數據

第一部分:

public class Student {
private String name;
private Integer chinese;
private Integer math;
private Integer english;

public Student(){
super();
}
public Student(String name,Integer chinese,Integer math,Integer english){
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Integer getChinese() {
return chinese;
}

public void setChinese(Integer chinese) {
this.chinese = chinese;
}

public Integer getMath() {
return math;
}

public void setMath(Integer math) {
this.math = math;
}

public Integer getEnglish() {
return english;
}

public void setEnglish(Integer english) {
this.english = english;
}
public int getSum(){
return this.chinese+this.math+this.english;
}

@Override
public String toString() {
return "Student{" +
"name=‘" + name + ‘\‘‘ +
", chinese=" + chinese +
", math=" + math +
", english=" + english +
‘}‘;
}
}

第二部分:
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;


public class TreeSetDemo {
public static void main(String[] args){
TreeSet<Student> st = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2){
//總分從高到低
int num = s2.getSum()-s1.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;
}
});
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 chinese = sc.nextLine();
System.out.println("請輸入第"+x+"個學生的數學成績:");
String math = sc.nextLine();
System.out.println("請輸入第"+x+"個學生的英語成績:");
String english = sc.nextLine();

//把數據封裝到學生對象中
Student student = new Student();
student.setName(name);
student.setChinese(Integer.parseInt(chinese));
student.setMath(Integer.parseInt(math));
student.setEnglish(Integer.parseInt(english));

//把學生對象添加到集合
st.add(student);
}
System.out.println("學生信息錄入完畢");
System.out.println("學生信息從高到低排序如下:");
System.out.println("姓名\t語文成績\t數學成績\t英語成績" );
//遍歷集合
for (Student s: st){
System.out.println(s.getName() + "\t\t" + s.getChinese() + "\t\t" + s.getMath() + "\t\t" + s.getEnglish());
}
}
}

輸出結果:

學生信息錄入開始
請輸入第1個學生的姓名:
唐僧
請輸入第1個學生的語文成績:
100
請輸入第1個學生的數學成績:
90
請輸入第1個學生的英語成績:
80
請輸入第2個學生的姓名:
孫悟空
請輸入第2個學生的語文成績:
99
請輸入第2個學生的數學成績:
98
請輸入第2個學生的英語成績:
97
請輸入第3個學生的姓名:
豬八戒
請輸入第3個學生的語文成績:
88
請輸入第3個學生的數學成績:
66
請輸入第3個學生的英語成績:
55
請輸入第4個學生的姓名:
沙僧
請輸入第4個學生的語文成績:
60
請輸入第4個學生的數學成績:
50
請輸入第4個學生的英語成績:
40
請輸入第5個學生的姓名:
龍馬
請輸入第5個學生的語文成績:
85
請輸入第5個學生的數學成績:
80
請輸入第5個學生的英語成績:
70
學生信息錄入完畢
學生信息從高到低排序如下:
姓名 語文成績 數學成績 英語成績
孫悟空 99 98 97
唐僧 100 90 80
龍馬 85 80 70
豬八戒 88 66 55
沙僧 60 50 40

Process finished with exit code 0

鍵盤錄入5個學生的信息根據總分從高到低輸出在控制臺