experiment 4

“借鉴”来的答案

package experiment4;
import java.util.*;
 
public class A {
	/*class MyComparator implements Comparator<Student>{
		public int compare(Student o1, Student o2) {
			if(o1.getGrade() < o2.getGrade())
				return 1;
			else if(o1.getGrade() > o2.getGrade())
				return -1;
			else 
				return 0;
		}
	}
	public static void main(String[] args) {   
		ArrayList list = new ArrayList();
		Scanner sc = new Scanner(System.in);	
		System.out.println("是否继续录入学生信息?(Y/N)");
		while(true){
			
			String yn = sc.nextLine();
            if(yn.equals("y")||yn.equals("Y")){
            	System.out.println("请输入姓名和成绩:");
            	String name = sc.next();
            	double grade = sc.nextDouble();
            	list.add(new Student(name,grade));
            	System.out.println("是否继续录入学生信息?(Y/N)");
            }
            else if(yn.equals("N")||yn.equals("n")){
            	break;
            }
		}
		A s = new A();
		MyComparator myCom = s.new MyComparator();
		Collections.sort(list, myCom);
		System.out.println(list.toString() + " ");
		sc.close();
	}*/
	
	
	class Mycomparator implements Comparator <Student>{
		public int compare(Student a,Student b) {
			if (a.getGrade()<b.getGrade()) {
				return 1;
			}
			else if (a.getGrade()>b.getGrade())
				return -1;
			else
				return 0;
		}
	}
	
	public static void main(String [] args) {
		ArrayList arr = new ArrayList();
		Scanner sca =  new Scanner (System.in);
		System.out.println("是否继续录入学生信息?(Y/N)");
		
		while (true) {
			String yn = sca.nextLine();
			if(yn.equals("y")||yn.equals("Y")){
				System.out.println("请输入姓名和成绩:");
				String name = sca.next();
				double score = sca.nextDouble();
				arr.add(new Student (name,score));
				System.out.println("是否继续录入学生信息?(Y/N)");
			}
			else if(yn.equals("N")||yn.equals("n")){
            	break;
			
		}
		
	}
		
		A x= new A();
		Mycomparator mycom = x.new Mycomparator();
		Collections.sort(arr , mycom);
		System.out.println(arr.toString()+"");
		sca.close();
		
}
}
class Student{
	private String name;
	private double grade;
	Student(String n, double g){
		this.name = n;
		this.grade = g;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getGrade() {
		return grade;
	}
	public void setGrade(double grade) {
		this.grade = grade;
	}
	public String toString(){
		String result = getName() + " "+ getGrade();
		return result;
	}
}


/*编写一个程序,用户可以从键盘录入若干个学生的姓名和分数
 * (程序每次提示用户输入“Y”或“N”决定是否继续录入学生信息,如果用户输入“N”则用户输入完毕。输入的“Y”、“N”不区分大小写)。
 * 用户录入完毕后,程序按成绩由高到低的顺序输出学生的姓名和分数(姓名和分数之间用一个空格分割)。
 * 【说明:键盘输入可以使用Scanner类】
 */

猜你喜欢

转载自blog.csdn.net/Vtanghulu/article/details/84711144