比赛评分规则,5个专家,5个观众,专家(观众)去除最低分和最高分,选手的总分为专家组分数和*0.6+观众分数和*0.4

package model;
/**
 * 专家(群众)对象
 */
public class Judge {
 private double score;
 private int type;//0为专家,1为观众
 private long id;
 private String name;
 public double getScore() {
  return score;
 }
 public void setScore(double score) {
  this.score = score;
 }
 public int getType() {
  return type;
 }
 public void setType(int type) {
  this.type = type;
 }
 public long getId() {
  return id;
 }
 public void setId(long id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}

*****************************************************************************************

package model;
/**
 * 选手对象
 */
public class Player {
 private double score;
 private long id;
 private String name;
 public double getScore() {
  return score;
 }
 public void setScore(double score) {
  this.score = score;
 }
 public long getId() {
  return id;
 }
 public void setId(long id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}
******************************************************************************

package model;
/**
 * 选手得分结果对象
 */
import java.util.List;

public class Score {
 private List<Judge> scores;
 private long id;//选手id
 
 public List<Judge> getScores() {
  return scores;
 }
 public void setScores(List<Judge> scores) {
  this.scores = scores;
 }
 public long getId() {
  return id;
 }
 public void setId(long id) {
  this.id = id;
 }
}
********************************************************************************

package service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import model.Judge;
import model.Player;
import model.Score;

public class ProcessService {
 public static Player process(Score scores){
  Player p =new Player();
  List<Judge> list = scores.getScores();
  double[] d = new double[5];
  double[] dd = new double[5];
  int i=0;
  int x=0;
  for(Judge j:list){
   if(j.getType()==0){
    d[i]=j.getScore();
    i++;
   }
   if(j.getType()==1){    
    dd[x]=j.getScore();
    x++;
   } 
  } 
  Arrays.sort(d);
  Arrays.sort(dd);
  double[] d1 = Arrays.copyOfRange(d, 1, 4);
  double[] dd1 = Arrays.copyOfRange(dd, 1, 4);


  double num1=0;
  double num2=0;
  for(double m:d1){
   num1+=m;
  }
  
  for(double n:dd1){
   num2+=n;
  }
  
  double score = num1*0.6+num2*0.4;
  p.setScore(score);
  
  return p;
 }
 public static void main(String args[]){
  Judge j1=new Judge();
  List<Judge> list =new ArrayList<Judge>();
  
  j1.setScore(10);
  j1.setType(0);
  
  Judge j2=new Judge();
  j2.setScore(10);
  j2.setType(0);
  
  Judge j3=new Judge();
  j3.setScore(10);
  j3.setType(0);
  
  Judge j4=new Judge();
  j4.setScore(10);
  j4.setType(0);
  
  Judge j5=new Judge();
  j5.setScore(5);
  j5.setType(0);
  
  
  
  Judge j6=new Judge();
  j6.setScore(10);
  j6.setType(1);
  
  Judge j7=new Judge();
  j7.setScore(5);
  j7.setType(1);
  
  Judge j8=new Judge();
  j8.setScore(5);
  j8.setType(1);
  
  Judge j9=new Judge();
  j9.setScore(10);
  j9.setType(1);
  
  Judge j10=new Judge();
  j10.setScore(10);
  j10.setType(1);
  
  list.add(j1);
  list.add(j2);
  list.add(j3);
  list.add(j4);
  list.add(j5);
  
  
  list.add(j6);
  list.add(j7);
  list.add(j8);
  list.add(j9);
  list.add(j10);
  Score scores = new Score();
  scores.setScores(list);
  
  Player p = process(scores);
  System.out.println(p.getScore());
 }
}

猜你喜欢

转载自47585351.iteye.com/blog/2318077