Java完成——判断题批改系统

public class Test {

public static void main(String[] args) {

forReady();

}

public static void forReady() {

Scanner scan = new Scanner(System.in);

System.out.println(“学生人数”);

int students = scan.nextInt();

System.out.println(“题的数目”);

int questions = scan.nextInt();

System.out.println(“标准答案”);

String rightAnswers = scan.next();

int[] grads = new int[students];

String[] s = new String[students];

System.out.println(“学生答案”);

for (int i = 0; i < students; i++) {

int j = i + 1;

System.out.print(j + "号学生答案为: ");

s[i] = scan.next();

}

System.out.println(“得分统计”);

for (int i = 0; i < students; i++) {

grads[i] = getStudentsGrad(s[i], rightAnswers);

int j = i + 1;

System.out.println(j + "号学生得分为: " + grads[i]);

}

System.out.println(“优秀名单”);

int[] bestGradSub = findBestGrads(grads);

System.out.println("成绩最高的人数为: " + bestGradSub.length);

System.out.println("分别为: ");

for (int i: bestGradSub

) {

int j = i + 1;

System.out.println(j + “号学生” + " 成绩:" + grads[i] + " 答案:" + s[i]);

}

}

public static int getStudentsGrad(String s, String rightAnswers) {

int grad = 0;

for (int i = 0; i < s.length(); i++) {

if(s.charAt(i) == rightAnswers.charAt(i)) {

grad += 1;

}

}

return grad;

}

public static int[] findBestGrads(int[] grad) {

int[] gClone = Arrays.copyOf(grad, grad.length);

Arrays.sort(gClone);

int count = 0;

for (int i = 0; i < grad.length; i++) {

if(grad[i] == gClone[gClone.length - 1]) {

count ++;

}

}

int[] arraysBestGrads = new int[count];

int j = 0;

Arrays.sort(gClone);

for (int i = 0; i < grad.length; i++) {

if(grad[i] == gClone[gClone.length - 1]) {

arraysBestGrads[j] = i;

j++;

}

}

return arraysBestGrads;

}

}

运行结果:

学生人数

1

题的数目

2

标准答案

AB

学生答案

1号学生答案为: AC

得分统计

1号学生得分为: 1

优秀名单

成绩最高的人数为: 1

分别为:

1号学生 成绩:1 答案:AC

学生人数

10

题的数目

12

标准答案

ACBCDBCDCADC

学生答案

1号学生答案为: ADCBCDCADCBD

2号学生答案为: ADCDBCDCADCB

3号学生答案为: ADCCCDBCDADC

4号学生答案为: ADCDCBBBBBBB

5号学生答案为: AAAAAAAAAAAA

6号学生答案为: CCCCCCCCCCCC

7号学生答案为: DDDDDDDDDDDD

8号学生答案为: BBBBBBBBBBBB

9号学生答案为: DDCCBBAADDCB

10号学生答案为: AADDCCDDAAAD

得分统计

1号学生得分为: 2

2号学生得分为: 1

3号学生得分为: 5

4号学生得分为: 2

5号学生得分为: 2

6号学生得分为: 5

7号学生得分为: 3

8号学生得分为: 2

9号学生得分为: 2

10号学生得分为: 3

优秀名单

成绩最高的人数为: 2

分别为:

3号学生 成绩:5 答案:ADCCCDBCDADC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值