Browse Source

计算知识点分值,公共使用

tags/正式3.10.0
王宁 1 year ago
parent
commit
829a09cad3

+ 0
- 9
scommons/src/main/java/com/xhkjedu/utils/N_Utils.java View File

1188
             return new Double[]{avg.doubleValue(), lastScore.doubleValue()};
1188
             return new Double[]{avg.doubleValue(), lastScore.doubleValue()};
1189
         }
1189
         }
1190
     }
1190
     }
1191
-
1192
-    public static void main(String[] args) {
1193
-        Double[] fz = getPointAvgScore(9, 20.0);
1194
-        Double[] jg = getPointAvgScore(9,17.0);
1195
-
1196
-        System.out.println("20÷9:" + fz[0] + ";" + fz[1]);
1197
-        System.out.println("17÷9:" + jg[0] + ";" + jg[1]);
1198
-
1199
-    }
1200
 }
1191
 }

+ 1
- 1
sexam/src/main/java/com/xhkjedu/sexam/service/paper/EPaperQtypeService.java View File

467
 
467
 
468
                 //试题有多个知识点
468
                 //试题有多个知识点
469
                 //计算每个知识点所占分值(平均分配)
469
                 //计算每个知识点所占分值(平均分配)
470
-                Double[] avgps = ExamUtil.getPointAvgScore(qpoints.size(),dq.getScore());
470
+                Double[] avgps = N_Utils.getPointAvgScore(qpoints.size(),dq.getScore());
471
                 List<Map> pointids = new ArrayList<>();
471
                 List<Map> pointids = new ArrayList<>();
472
                 for(int m = 0; m<qpoints.size();m++){
472
                 for(int m = 0; m<qpoints.size();m++){
473
                     Map pointmap = qpoints.get(m);
473
                     Map pointmap = qpoints.get(m);

+ 1
- 1
sexam/src/main/java/com/xhkjedu/sexam/service/report/EReportGenerateService.java View File

2470
             gradestulist.add(pscvo);
2470
             gradestulist.add(pscvo);
2471
         } else {
2471
         } else {
2472
             //计算每个知识点所占分值(平均分配)
2472
             //计算每个知识点所占分值(平均分配)
2473
-            Double[] avgps = ExamUtil.getPointAvgScore(points.size(), sq.getStuscore());
2473
+            Double[] avgps = N_Utils.getPointAvgScore(points.size(), sq.getStuscore());
2474
             for (int j = 0; j < points.size(); j++) {
2474
             for (int j = 0; j < points.size(); j++) {
2475
                 Map pointmap = points.get(j);
2475
                 Map pointmap = points.get(j);
2476
                 ERPointStuScoreVo pscvo = new ERPointStuScoreVo();
2476
                 ERPointStuScoreVo pscvo = new ERPointStuScoreVo();

+ 0
- 24
sexam/src/main/java/com/xhkjedu/sexam/utils/ExamUtil.java View File

220
         }
220
         }
221
     }
221
     }
222
 
222
 
223
-    /**
224
-     * @Description 分值平均后得到的值,如果整除返回数组元素1,未整除返回元素数量2
225
-     * @Param [num, score] 数量,分值
226
-     * @Return java.lang.Double[] 第一个未平均分值,第二个值为最后一个数的分值
227
-     * @Author wn
228
-     * @Date 2022/8/18 11:07
229
-     **/
230
-    public static Double[] getPointAvgScore(int num, Double score) {
231
-        BigDecimal bScore = new BigDecimal(Double.toString(score));
232
-        BigDecimal bNum = new BigDecimal(Integer.toString(num));
233
-
234
-        BigDecimal avg = bScore.divide(bNum, 1, BigDecimal.ROUND_DOWN);
235
-        BigDecimal avgAllScore = avg.multiply(bNum);//平均分乘以数量得到的分值
236
-        if (bScore.equals(avgAllScore)) {
237
-            //说明整除
238
-            return new Double[]{avg.doubleValue()};
239
-        } else {
240
-            //未整除,计算最后剩余分值,subtract总分减去平均分和数量的积
241
-            // 平均分加上剩余得分得到最后一个分值
242
-            BigDecimal lastScore = avg.add(bScore.subtract(avgAllScore));
243
-            return new Double[]{avg.doubleValue(), lastScore.doubleValue()};
244
-        }
245
-    }
246
-
247
     /**
223
     /**
248
      * double转String去掉结尾的.0
224
      * double转String去掉结尾的.0
249
      *
225
      *

+ 1
- 1
sstudy/src/main/java/com/xhkjedu/sstudy/service/paper/PaperService.java View File

747
 
747
 
748
                 //试题有多个知识点
748
                 //试题有多个知识点
749
                 //计算每个知识点所占分值(平均分配)
749
                 //计算每个知识点所占分值(平均分配)
750
-                Double[] avgps = StudyUtil.getPointAvgScore(qpoints.size(), dq.getPtqscore());
750
+                Double[] avgps = N_Utils.getPointAvgScore(qpoints.size(), dq.getPtqscore());
751
                 List<Map> pointids = new ArrayList<>();
751
                 List<Map> pointids = new ArrayList<>();
752
                 for(int m = 0; m<qpoints.size();m++){
752
                 for(int m = 0; m<qpoints.size();m++){
753
                     Map pointmap = qpoints.get(m);
753
                     Map pointmap = qpoints.get(m);

+ 0
- 25
sstudy/src/main/java/com/xhkjedu/sstudy/utils/StudyUtil.java View File

16
 import org.springframework.web.client.RestClientException;
16
 import org.springframework.web.client.RestClientException;
17
 import org.springframework.web.client.RestTemplate;
17
 import org.springframework.web.client.RestTemplate;
18
 
18
 
19
-import java.math.BigDecimal;
20
 import java.util.ArrayList;
19
 import java.util.ArrayList;
21
 import java.util.LinkedHashMap;
20
 import java.util.LinkedHashMap;
22
 import java.util.List;
21
 import java.util.List;
160
         return types;
159
         return types;
161
     }
160
     }
162
 
161
 
163
-    /**
164
-     * @Description 分值平均后得到的值,如果整除返回数组元素1,未整除返回元素数量2
165
-     * @Param [num, score] 数量,分值
166
-     * @Return java.lang.Double[] 第一个未平均分值,第二个值为最后一个数的分值
167
-     * @Author wn
168
-     * @Date 2022/8/18 11:07
169
-     **/
170
-    public static Double[] getPointAvgScore(int num, Double score) {
171
-        BigDecimal bScore = new BigDecimal(Double.toString(score));
172
-        BigDecimal bNum = new BigDecimal(Integer.toString(num));
173
-
174
-        BigDecimal avg = bScore.divide(bNum, 1, BigDecimal.ROUND_DOWN);
175
-        BigDecimal avgAllScore = avg.multiply(bNum);//平均分乘以数量得到的分值
176
-        if (bScore.equals(avgAllScore)) {
177
-            //说明整除
178
-            return new Double[]{avg.doubleValue()};
179
-        } else {
180
-            //未整除,计算最后剩余分值,subtract总分减去平均分和数量的积
181
-            // 平均分加上剩余得分得到最后一个分值
182
-            BigDecimal lastScore = avg.add(bScore.subtract(avgAllScore));
183
-            return new Double[]{avg.doubleValue(), lastScore.doubleValue()};
184
-        }
185
-    }
186
-
187
     /**
162
     /**
188
      * @Description 得分率分组:1优秀率≥85% 2良好率≥70% 3合格率≥60% 4其他40%~60% 5低分率≤40%
163
      * @Description 得分率分组:1优秀率≥85% 2良好率≥70% 3合格率≥60% 4其他40%~60% 5低分率≤40%
189
      * @Param [scorerate]
164
      * @Param [scorerate]

Loading…
Cancel
Save