|
@@ -88,6 +88,8 @@ public class AdminController {
|
|
sb.append(q.getSubjectCode() + "|" + q.getMainNumber() + "|" + q.getSubNumber()+ "| 题目满分:" + q.getFullScore()
|
|
sb.append(q.getSubjectCode() + "|" + q.getMainNumber() + "|" + q.getSubNumber()+ "| 题目满分:" + q.getFullScore()
|
|
+ "| 相关系数:" + ret+ "| 人评均分:" + avg2 + "| 机评均分:" + avg1 + "| 题数:" + scores.size() + " \r\n");
|
|
+ "| 相关系数:" + ret+ "| 人评均分:" + avg2 + "| 机评均分:" + avg1 + "| 题数:" + scores.size() + " \r\n");
|
|
fill(scores, sb,q.getFullScore(),score);
|
|
fill(scores, sb,q.getFullScore(),score);
|
|
|
|
+ fillMarkingCount(scores, sb);
|
|
|
|
+ fillAiCount(scores, sb);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
sb.append(
|
|
sb.append(
|
|
q.getSubjectCode() + "|" + q.getMainNumber() + "|" + q.getSubNumber() + "| 相关系数出错:- \r\n");
|
|
q.getSubjectCode() + "|" + q.getMainNumber() + "|" + q.getSubNumber() + "| 相关系数出错:- \r\n");
|
|
@@ -137,6 +139,72 @@ public class AdminController {
|
|
}
|
|
}
|
|
sb.append(" "+roundedValue+"分差值:" + st + " " + Calculator.percentage(st, total, 2) + " \r\n");
|
|
sb.append(" "+roundedValue+"分差值:" + st + " " + Calculator.percentage(st, total, 2) + " \r\n");
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private void fillMarkingCount(List<StudentScoreEntity> scores, StringBuilder sb) {
|
|
|
|
+ int total = scores.size();
|
|
|
|
+ Map<DataKey, Integer> ret = new HashMap<>();
|
|
|
|
+ for (StudentScoreEntity s : scores) {
|
|
|
|
+ DataKey k = getKey(s.getMarkingScore());
|
|
|
|
+ Integer tem = ret.get(k);
|
|
|
|
+ if (tem == null) {
|
|
|
|
+ tem = 0;
|
|
|
|
+ }
|
|
|
|
+ ret.put(k, tem + 1);
|
|
|
|
+ }
|
|
|
|
+ List<DataKey> ks = new ArrayList<>(ret.keySet());
|
|
|
|
+ ks.sort(new Comparator<DataKey>() {
|
|
|
|
+ @Override
|
|
|
|
+ public int compare(DataKey o1, DataKey o2) {
|
|
|
|
+ int c1 = o1.getIndex();
|
|
|
|
+ int c2 = o2.getIndex();
|
|
|
|
+ if (c1 < c2) {
|
|
|
|
+ return -1;
|
|
|
|
+ } else if (c1 > c2) {
|
|
|
|
+ return 1;
|
|
|
|
+ } else {
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ sb.append(" 人评分档: \r\n");
|
|
|
|
+ for (DataKey k : ks) {
|
|
|
|
+ Integer c = ret.get(k);
|
|
|
|
+ sb.append(" " + k.getKey() + " " + c + " " + Calculator.percentage(c, total, 2) + " \r\n");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void fillAiCount(List<StudentScoreEntity> scores, StringBuilder sb) {
|
|
|
|
+ int total = scores.size();
|
|
|
|
+ Map<DataKey, Integer> ret = new HashMap<>();
|
|
|
|
+ for (StudentScoreEntity s : scores) {
|
|
|
|
+ DataKey k = getKey(s.getAiScore());
|
|
|
|
+ Integer tem = ret.get(k);
|
|
|
|
+ if (tem == null) {
|
|
|
|
+ tem = 0;
|
|
|
|
+ }
|
|
|
|
+ ret.put(k, tem + 1);
|
|
|
|
+ }
|
|
|
|
+ List<DataKey> ks = new ArrayList<>(ret.keySet());
|
|
|
|
+ ks.sort(new Comparator<DataKey>() {
|
|
|
|
+ @Override
|
|
|
|
+ public int compare(DataKey o1, DataKey o2) {
|
|
|
|
+ int c1 = o1.getIndex();
|
|
|
|
+ int c2 = o2.getIndex();
|
|
|
|
+ if (c1 < c2) {
|
|
|
|
+ return -1;
|
|
|
|
+ } else if (c1 > c2) {
|
|
|
|
+ return 1;
|
|
|
|
+ } else {
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ sb.append(" 机评分档: \r\n");
|
|
|
|
+ for (DataKey k : ks) {
|
|
|
|
+ Integer c = ret.get(k);
|
|
|
|
+ sb.append(" " + k.getKey() + " " + c + " " + Calculator.percentage(c, total, 2) + " \r\n");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
private static DataKey getKey(double s) {
|
|
private static DataKey getKey(double s) {
|
|
if (s < 0) {
|
|
if (s < 0) {
|