选秀节目打分

来源:互联网 发布:软件著作权设计说明书 编辑:程序博客网 时间:2024/06/10 05:34

选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,judge_type[]里存储与 score[]数组对应的评委类别,judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分  * 0.6 +大众评委 * 0.4,总分取整。如果没有大众评委,则总分 =专家评委平均分,总分取整。函数最终返回选手得分。

            函数接口   int cal_score(int score[], int judge_type[], int n) 

 

package com.campu;
/**
 * @author 码农小江
 * H20120906.java
 * 2012-9-30下午3:40:18
 */
public class H20120906 {
 /**
  * 函数接口功能
  * @param score[] 数组里存储每个评委的打分
  * @param judge_tye[] 存储与score[]数组对应的评委类型 i=1 专家评委 i=2大众评委
  * @param n 评委总数
  * @return  返回选手得分
  * 总分:专家评委平均分*0.6+大众评委*0.4 总分取整
  */
 public static int cal_score(int score[],int judge_type[],int n){
  int exportNumber = 0;
  int exportAverageScore = 0;
  int audioAverageScore = 0;
  int endResult;
  double exportValue = 0;
  double audioValue = 0;
  
  for(int i=0; i<judge_type.length;i++){
   if(judge_type[i] == 1){
    exportValue = exportValue + score[i];
    exportNumber = exportNumber + 1;
   }else{
    audioValue = audioValue +score[i];
   }
  }

  audioAverageScore = averageValue(audioValue, judge_type.length - exportNumber);
  exportAverageScore = averageValue(exportValue, exportNumber);
  endResult = (int) Math.rint(0.6* exportAverageScore + 0.4 * audioAverageScore);
  return endResult;
 }
   
 /**
  * 把专家评分和观众评分的平均分功能抽象出来封装成一个方法
  * @param sum :评分总和
  * @param n:评委数量
  * @return:平均分 :采用四舍五入取整方法
  */
 public static int averageValue(double sum, int n){
  double temp = (sum/n);
  int result = (int) Math.rint(temp);//四舍五入取整
  return (int)result;
 }

 
 public static void main(String args[]){
  int score[] = {90,100,23,78};
  int judge_tye[]={1,2,2,1};
  int n;
  n = score.length;
  if(score.length != judge_tye.length){
   System.out.println("数据不匹配:分数个数必须等于评委个数,请重新输入");
   return;
  }
  
  for(int i=0; i<score.length; i++){
   if(score[i]<0 || score[i]>100){
    System.out.println("错误:分数必须是0-100之间,请重新输入");
    return;
   }
   
   if((judge_tye[i]<1)  || (judge_tye[i] >2) ){
    System.out.println("错误:评委类型只能是1或者2,请重新输入");
    return;
   }
   
  }
  System.out.print(cal_score(score, judge_tye, n));
 }
}