您的位置:首页 > 编程语言 > Java开发

java排序练习:输入三个学生的姓名和他们的三个评分,去掉最高分和最低分

2013-11-19 17:11 344 查看
/*
* 功能:输入三个学生的姓名和他们的三个评分,去掉最高分和最低分,得到各自的最后分数,再找出得分最高的学生和分数
*/
package com.xiao;
import java.io.*;
class test2{
public static void main(String[] args){
try{
int count=3;
//保存分数
float fenshu[]=new float[count];
//保存学生
person arr_person[]=new person[count];
for(int i=0;i<count;i++){
person ps=new person();
arr_person[i]=ps;
fenshu[i]=ps.getFen();
System.out.println(ps.getName()+"的分数:"+ps.getFen());
}

//获取分数最低的数组key值
int tmp=0;
for(int i=1;i<count;i++){
if(fenshu[i]>fenshu[tmp]){
tmp=i;
}
}
System.out.println(arr_person[tmp].getName()+"得到最高分:"+fenshu[tmp]);

}catch (Exception e){
System.out.println(e);
}
}
}
class person{
String name;
float pingfen[]=new float[3];
String str;
public  person(){
try{
//输入学生名称
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
//
System.out.println("请输入学生名称");
name = reader.readLine();
System.out.println("请输入三个评分");
for(int i=0;i<3;i++){
str=reader.readLine();
pingfen[i]=(Float.parseFloat(str));
}
}catch(Exception e){
System.out.println(e);
}
}
//获取学生姓名
public String getName(){
return this.name;
}
public float  getFen(){
//去掉最高分,去年最低分,得到最终分数即中间的分数
this.sortPingfen();
return pingfen[1];
}
protected void sortPingfen(){
Choise mysort=new Choise();
//通过选择排序法将分数从小到大排列
mysort.sort(this.pingfen);
}
}


测试结果:

请输入学生名称
老三
请输入三个评分
50
10
150
老三的分数:50.0
请输入学生名称
老二
请输入三个评分
100
250
80
老二的分数:100.0
请输入学生名称
老三
请输入三个评分
150
180
190
老三的分数:180.0
老三得到最高分:180.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐