山科java實驗4-1 編寫一個程式,使用者可以從鍵盤錄入若干個學生的姓名和分數(程式每次提示使用者輸入“Y”或“N”決定是否繼續錄入學生資訊,如果使用者輸入“N”則使用者輸入完畢。輸入的“Y”、“N”不區分
阿新 • • 發佈:2018-11-12
編寫一個程式,使用者可以從鍵盤錄入若干個學生的姓名和分數(程式每次提示使用者輸入“Y”或“N”決定是否繼續錄入學生資訊,如果使用者輸入“N”則使用者輸入完畢。輸入的“Y”、“N”不區分大小寫)。使用者錄入完畢後,程式按成績由高到低的順序輸出學生的姓名和分數(姓名和分數之間用一個空格分割)。【說明:鍵盤輸入可以使用Scanner類
package 作業1; import java.util.*; public class Student { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<students> list = new ArrayList<students>(); Scanner scanner = new Scanner(System.in); System.out.println("是否繼續輸入學生資訊?(Y/N)"); while(true) { String ss = scanner.nextLine(); if(ss.equals("y")||ss.equals("Y")) { System.out.println("請輸入學生的姓名和成績:"); String n = scanner.nextLine(); double a = scanner.nextDouble(); list.add(new students(n,a)); System.out.println("是否繼續輸入學生資訊?(Y/N)"); } else if(ss.equals("n")||ss.equals("N")) { break; } } Student s = new Student(); MyComparator myCom = s.new MyComparator(); Collections.sort(list,myCom); System.out.println(list.toString() + " "); scanner.close(); } class MyComparator implements Comparator<students> { public int compare(students t1,students t2) { if(t1.getScore() < t2.getScore()) return 1; else if(t1.getScore() > t2.getScore()) return -1; else return 0; } } }
package 作業1; //import java.util.*; public class students { private String name; private double score; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public String toString() { return getName() + " " + getScore(); } public students(String name, double score) { this.name = name; this.score = score; } }