# 选秀节目打分

函数接口   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));
}
}



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

posted @ 2012-09-30 21:27  码农小江  阅读(1521)  评论(0编辑  收藏