已知奖学金评选规则如下:
全学年各科成绩平均分在85分以上(含85分),单科考试或考查成绩均不低于80分者,可参评一等奖学金;
全学年各科成绩平均分在80分以上(含80分),单科考试或考查成绩均不低于70分者,可参评二等奖学金;
全学年各科成绩平均分在80分以上(含80分),单科考试或考查成绩仅有一科低于70分但不低于60分、或仅有两科低于70分但不低于65分者,可参评三等奖学金。
根据上述规则描述,编写奖学金评选计算器Scholarship,输入分数能自动计算出获得奖学金的等级
分析设计步骤:
1.识别类:
(1)奖学金计算器:属性{各科成绩};行为:计算平均分,计算最高分,计算最低分,评选方法,输出结果。
(2)使用Java语言定义该类。
class Max{
double max = 0;
double maxScore(double scores[]) {
for(int i=0;i<scores.length;i++) {
if(scores[i]>max)
max = scores[i];
}
return max;
}
}
class Min{
double min;
double minScore(double scores[]) {
for(int i=0;i<scores.length;i++) {
if(i==0)
min = scores[i];
if(scores[i]<min)
min = scores[i];
}
return min;
}
}
class Avg{
double avg = 0,sum = 0;
double avgScore(double scores[]) {
for(int i=0;i<scores.length;i++) {
sum = sum + scores[i];
}
avg = sum/scores.length;
return avg;
}
}
class Rule{ //评选方法
Max ma = new Max();
Min mi = new Min();
Avg av = new Avg();
String rules(double scores[]) {
double mx = ma.maxScore(scores);
double mn = mi.minScore(scores);
double ag = av.avgScore(scores);
//全学年各科成绩平均分在85分以上(含85分),单科考试或考查成绩均不低于80分者,可参评一等奖学金;
if(ag>=85 && mn>=80)
return "所获奖项为:一等奖";
//全学年各科成绩平均分在80分以上(含80分),单科考试或考查成绩均不低于70分者,可参评二等奖学金;
if(ag>=80 && mn>=70)
return "所获奖项为:二等奖";
//全学年各科成绩平均分在80分以上(含80分),单科考试或考查成绩仅有一科低于70分但不低于60分、或仅有两科低于70分但不低于65分者,可参评三等奖学金。
if(ag>=80) {
int a1 = 0,a2 = 0;
for(int i=0;i<scores.length;i++) {
if(scores[i]<70 && scores[i]>=60)
a1 = a1 + 1;
if(scores[i]<70 && scores[i]>=65)
a2 = a2 + 1;
}
if(a1==1 || a2==2)
return "所获奖项为:三等奖";
}
return "不满足奖学金条件";
}
}
public class Sholarship {
public static void main(String[] args) {
double scores[]= {89,88,88,90};
Rule r = new Rule();
System.out.println(r.rules(scores));
}
}