浙江大学PAT (Basic Level) Practice (中文)1004JAVA实现代码及分析

1004

成绩排名

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:
每个测试输入包含 1 个测试用例,格式为
第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
… … …
第 n+1 行:第 n 个学生的姓名 学号 成绩

其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:

对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。
浙江大学PAT (Basic Level) Practice (中文)1004JAVA实现代码及分析这道题没什么难度,创建一个学生类用于保存输入的数据,最后输出的时候挑出成绩最高和最低的人就完事了。
话不多说,实现代码如下:

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
 class stu
{
	public String name;
	public String stuNum;
	public int score;
	stu(String n,String sN,int s)
	{
		name=n;
		stuNum=sN;
		score=s;
	}
}

public class Main {
	
    public static void main (String[]args) 
    {
    	String tempName;
    	String tempStuNum;
    	int tempScore;
    	Set <stu>set=new HashSet<stu>();
    	int n;
    	Scanner input=new Scanner(System.in);
    	n=input.nextInt();
    	for(int i=0;i<n;i++)
    	{
    		tempName=input.next();
    		tempStuNum=input.next();
    		tempScore=input.nextInt();
    		set.add(new stu(tempName,tempStuNum,tempScore));
    	}
    	stu minStu=new stu("T","T",99999);
    	stu maxStu=new stu("T","T",-99999);
    	for(stu item: set)
    	{
    		if(minStu.score>item.score)
    		{
    			minStu=item;
    		}
    		if(maxStu.score<item.score)
    		{
    			maxStu=item;
    		}
    	}
    	System.out.println(maxStu.name+" "+maxStu.stuNum);
    	System.out.println(minStu.name+" "+minStu.stuNum);
    }
}