java成绩前五名的代码 java成绩等级

java语言做成绩排名表,如何实现同分同名次,最好有代码,谢谢

思路: 排序肯定还是要排的, 按照Java成绩来进行排练. 然后排名的时候,进行比较. 如果这一名的成绩和上一名的相同, 那么名次相同, 如果比上一名分数低,那么排名加一.

成都创新互联公司是专业的孟连网站建设公司,孟连接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行孟连网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

可以使用传统的,集合排序,输出. 也可以使用java8新提供的Stream API进行操作

参考代码如下

import java.util.*;

import java.util.Map.Entry;

import java.util.stream.Collectors;

class Stu {// 学生类

private String name;

private double score;// 成绩

public Stu(String name, double score) {

this.name = name;

this.score = score;

}

public double getScore() {

return score;

}

public void setScore(double score) {

this.score = score;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

//测试类

public class TestDemo {

public static void main(String[] args) {

ListStu stus = Arrays.asList(new Stu("Tom", 79.5), new Stu("Jack", 52), new Stu("Amdy", 79.5),

new Stu("Lucy", 68), new Stu("Cherry", 79.5), new Stu("Jerry", 52), new Stu("Sweet", 91),

new Stu("Solem", 65));

fun1(stus);

System.out.println("---------------分割线---------------------");

fun2(stus);

}

// 方法一:传统的方法

public static void fun1(ListStu stus) {

// 按照成绩排序

stus.sort(new ComparatorStu() {

@Override

public int compare(Stu s1, Stu s2) {

return -Double.compare(s1.getScore(), s2.getScore());

}

});

int index = 0;// 排名

double lastScore = -1;// 最近一次的分

for (int i = 0; i  stus.size(); i++) {

Stu s = stus.get(i);

if (Double.compare(lastScore, s.getScore())!=0) { // 如果成绩和上一名的成绩不相同,那么排名+1

lastScore = s.getScore();

index++;

}

System.out.println("名次:" + index + "\t分数" + s.getScore() + "\t名字" + s.getName());

}

}

// 方法2: Java8开始支持的Lambada表达式配合 Stream API 来进行分组排序

public static void fun2(ListStu stus) {

ListEntryDouble, ListStu list = stus.stream().collect(Collectors.groupingBy(Stu::getScore)).entrySet()

.stream().sorted((s1, s2) - -Double.compare(s1.getKey(), s2.getKey())).collect(Collectors.toList());

int index = 1;

for (EntryDouble, ListStu entry : list) {

System.out.print("名次:" + index + "\t分数:" + entry.getKey() + "\t名字");

entry.getValue().forEach((s) - System.out.print("  " + s.getName()));

System.out.println();

index++;

}

}

}

输出结果

名次:1 分数91.0 名字Sweet

名次:2 分数79.5 名字Tom

名次:2 分数79.5 名字Amdy

名次:2 分数79.5 名字Cherry

名次:3 分数68.0 名字Lucy

名次:4 分数65.0 名字Solem

名次:5 分数52.0 名字Jack

名次:5 分数52.0 名字Jerry

名次:1 分数:91.0 名字  Sweet

名次:2 分数:79.5 名字  Tom  Amdy  Cherry

名次:3 分数:68.0 名字  Lucy

名次:4 分数:65.0 名字  Solem

名次:5 分数:52.0 名字  Jack  Jerry

---------------分割线---------------------

名次:1 分数:91.0 名字  Sweet

名次:2 分数:79.5 名字  Tom  Amdy  Cherry

名次:3 分数:68.0 名字  Lucy

名次:4 分数:65.0 名字  Solem

名次:5 分数:52.0 名字  Jack  Jerry

java输入五个同学的姓名和成绩 输出最高分数和最高分同学的姓名(最高分可能不止一

package image;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

String[][] list;    // 学生数组

int count = 0;        // 学生人数

int field = 2;        // 属性个数

Scanner sc = new Scanner(System.in);

System.out.println("输入学生个数:");

count = sc.nextInt();

list = new String[count][field];

for (int i = 0; i  count; i++) {

System.out.println("输入第"+(i+1)+"个学生姓名和分数:");    

System.out.println("姓名:");

String name = sc.next();

System.out.println("分数:");

String score = sc.next();

list[i][0] = name;

list[i][1] = score;

}

// 获取最高分

double maxScore = 0;

for (int i = 0; i  count; i++) {

double score = Double.parseDouble(list[i][1]);

if (maxScore  score) {

maxScore = score;

}

}

// 获取最高分同学

String maxScoreName = null;

for (int i = 0; i  count; i++) {

String name = list[i][0];

double score = Double.parseDouble(list[i][1]);

if (score == maxScore) {

if (maxScoreName == null) {

maxScoreName = name;

}else{

maxScoreName = maxScoreName + "," + name;                    

}

}

}

System.out.println("最高分:" + maxScore);

System.out.println("成绩最高同学姓名:" + maxScoreName);

sc.close();

}

}

结果:

输入学生个数:

3

输入第1个学生姓名和分数:

姓名:

fanhongwei

分数:

90

输入第2个学生姓名和分数:

姓名:

chen

分数:

89

输入第3个学生姓名和分数:

姓名:

maozedong

分数:

90

最高分:90.0

成绩最高同学姓名:fanhongwei,maozedong

JAVA代码问题!输入5名学生的成绩,并计算总成绩,平均分,最高分,最低分

public static void main(String[] args) {

double scores[] = new double[5];

double total = 0;

double avg = 0;

double max = 0;

double min = 0;

int count=0;

String inputStr=null;

System.out.println("请输入5名学生的成绩:");

Scanner input = new Scanner(System.in);

while(count5){

try{

if(count 5){

System.out.println("请输入第"+(count+1)+"个分数:");

}

inputStr=input.nextLine();

scores[count++]=Double.valueOf(inputStr.trim());

}catch(Exception e){

if(inputStr!=null "exit".equals(inputStr.trim())){

System.out.println("您已成功结束程序");

System.exit(0);

}

System.out.println("若想结束请输入:exit");

System.out.print("您输入的分数不是数值类型,");

count--;

}

}

input.close();

Arrays.sort(scores);

min=scores[0];

max=scores[scores.length-1];

for(double score :scores){

total += score;

}

avg=total/scores.length;

System.out.println("总成绩是" + total);

System.out.println("最高分是" + max);

System.out.println("最低分是" + min);

System.out.println("平均分是" + avg);

}

//-------------------------------------------------------------------------

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

while(true){

Double[] scores = null;

double total = 0;

double avg = 0;

double max = 0;

double min = 0;

int count=1;

ListDouble inputScores=new ArrayListDouble();

String inputStr=null;

System.out.println("请输入要统计学生的成绩(理论上可以输入无限个,前提是你有那么大的内存):");

while(true){

try{

System.out.println("请输入第"+count+++"个分数,或输入ok进行计算,离开请输入exit");

inputStr=input.nextLine();

inputScores.add((double)Double.valueOf(inputStr.trim()));

}catch(Exception e){

if(inputStr!=null "exit".equals(inputStr.trim().toLowerCase())){

System.out.println("您已成功结束程序");

input.close();

System.exit(0);

}

if(inputStr!=null "ok".equals(inputStr.trim().toLowerCase())){

break;

}

System.out.println("您输入的分数不是数值类型,");

System.out.println("若想结束请输入exit ,若想计算结果请输入ok");

count--;

}

}

if(inputScores.size()==0){

System.out.println("您没有输入学生成绩,无数据可统计,程序结束。");

return ;

}

scores=inputScores.toArray(new Double[inputScores.size()]);

Arrays.sort(scores);

min=scores[0];

max=scores[scores.length-1];

for(double score :scores){

total += score;

}

avg=total/scores.length;

System.out.println("总成绩是" + total);

System.out.println("最高分是" + max);

System.out.println("最低分是" + min);

System.out.println("平均分是" + avg);

}

}

java编程实现随机生成20个百分制成绩并输出,统计出平均分并输出前五名同学的成绩?

1、可以使用lambda来实现

int[] ints = new Random().ints(1, 100).distinct().limit(20).sorted().toArray();

//--统计信息

LongSummaryStatistics stats = Arrays.stream(ints)

.mapToLong((x) - x)

.summaryStatistics();

System.out.println(stats);

//--输出

IntStream.range(0, 5)

.forEach(i - System.out.println(ints[i]));//前五

IntStream.range(0, ints.length)

.forEach(i - System.out.println(ints[i]));//所有

急急急java成绩总成绩和平均分的代码?

//

import java.util.Scanner;

//

public class Test2014 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("输入学生人数:");

int n = sc.nextInt();

int sum = 0;

for(int i = 1;i = n;++i){

System.out.println("输入第"+i+"个学生成绩:");

sum += sc.nextInt();

}

System.out.println("总成绩是:"+sum+" "+"平均成绩是:"+(double)sum/n);

}

}

java键盘输入五人成绩,然后输出5人成绩中最大的代码(用数组)

import java.util.Scanner;

public class Maxgreat 

{

public static void main(String args[])

{

Scanner sc=new Scanner(System.in);

int great[]=new int[5];

int max;

System.out.println("请输入五人成绩:");

for(int i=0;i5;i++)

{

great[i]=sc.nextInt();

}

max=great[0];

for(int j=1;j5;j++)

{

if(maxgreat[j])

{

max=great[j];

}

}

System.out.println("成绩最高为:"+max);

}

}


当前标题:java成绩前五名的代码 java成绩等级
当前网址:http://scyanting.com/article/dodjjpe.html