Java 多维数组小实践 —— 选择题测验评分程序

Author Avatar
Login926 1月 11, 2017

要求:编写一个程序,可以对多名学生的选择题答案与正确答案比对,并统计出正确个数。


分析:

1.程序总体分为三个部分:

1.学生回答录入
2.正确答案录入
3.判断学生答案与正确答案并统计数据

2.代码注意点:

1.选择题录入的都是 ABCD 等字符串,需要使用 String 数组
2.String 类型比较应当使用字符串中的 .equals()函数
3.多维数组中注意循环嵌套不能乱


代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.util.Scanner;
public class LoginTest {
public static void main (String[] args){
String[] rig = getRigAnswer();
String[][] stu = getStuAnswer();
for(int i =0;i<stu.length;i++){
System.out.print(i+1);
System.out.println("号回答正确数:"+getRightCount(stu,rig,i));
}
}
// 学生回答录入
public static String[][] getStuAnswer(){
Scanner input = new Scanner(System.in);
String[][] m = new String[3][4];
for(int i =0;i<m.length;i++){
System.out.print(i+1);
System.out.println("号作答");
for(int j = 0;j<m[i].length;j++){
m[i][j] = input.next();
}
}
return m;
}
// 正确答案录入
public static String[] getRigAnswer(){
String[] m = new String[4];
Scanner input = new Scanner(System.in);
System.out.println("现在输入正确回答:");
for (int i =0;i<m.length;i++){
m[i] = input.next();
}
return m;
}
// 判断并计数
public static int getRightCount(String[][] stu,String[] rig,int i){
// 调用三个参数:学生回答、正确回答、学生编号
int count = 0;
for(int j = 0;j<stu[i].length;j++){
if (stu[i][j].equals(rig[j])){
//使用 equals() 函数,如果使用 == 比较结果会出错
count++;
}
}
return count;
}
}

运行效果:


总结

第一次编写完成,出现了所有学生成绩一样的 bug ,后经调试发现,getRightCount 方法少调用了一个参数。