- 利用Vector代替数组处理,从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级
- 提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的长度,而向量类java.util.Vector可以根据需要动态伸缩
- 创建Vector对象:Vector v=new Vector();
- 给向量添加元素:v.addElement(obj);obj必须是对象
- 取出向量中元素:Object.obj=v.elementAt(O)
- 计算向量的长度:v.size()
- 若与最高分相差10分内:A等;20分内:B等;30分内:C等;其他:D等
*/
package test9;
import java.util.Scanner;
import java.util.Vector;
public class testScore {
public static void main(String[] args) {
//1、创建Scanner的对象,提示键盘输入学生成绩(以负数代表输入结束)
Scanner s=new Scanner(System.in);
System.out.println("请输入学生成绩:(以负数代表输入结束)");
//2、for(,,),从键盘依次获取学生的成绩,并填入由Vector v=new Vector()创建的对象v中
Vector v = new Vector();
int maxScore=0;
for(;;) {
int score = s.nextInt();
if(score<0) {
break;
}
//3、求出所有输出的正的成绩中的最高分
if(maxScore<score) {
maxScore=score;
}
Integer score1=new Integer(score);
v.addElement(score1);
}
//4、通过v.elementAt(i)依次获取填入v中的元素,同时判断一下各个分数的等级并输出
for(int i=0;i<v.size();i++) {
Integer score=(Integer)v.elementAt(i);
char level;
if(maxScore-score<=10) {
level='A';
}else if(maxScore-score<=20) {
level='B';
}else if(maxScore-score<=30) {
level='C';
}else {
level='D';
}
System.out.println("学生成绩为:"+score+" ,等级为:"+level);
}
}
}
运行结果: