Exemple #1
0
 /***
 * 计算高分人数,低分人数,平均分
 *
 * */
 public static StatRecord coreCalc(List<Student> studentList, float highScore, float lowScore, string defaultName)
 {
     float meanScore = CoreService.calcMeanScore(studentList);
     List<Student> highStudentList = CoreService.calcScoreRange(studentList, highScore, 101);
     List<Student> lowStudentList = CoreService.calcScoreRange(studentList, 0, lowScore);
     string name = studentList[0].getClazz();
     if (!StringUtils.isBlank(defaultName))
     {
         name = defaultName;
     }
     StatRecord record = new StatRecord(name, studentList.Count, meanScore, highStudentList, lowStudentList,highScore,lowScore);
     return record;
 }
Exemple #2
0
        private static DataTable renderStatTable(StatRecord statRecord1, StatRecord statRecord2)
        {
            DataTable dt = DataTableManager.newDataTable(new string[] { "名称", "总人数", "平均分", "高分线","高分人数","高分率", "低分线","低分人数","低分率" });
            float highRate = statRecord1.getHighScoreCount()*1000*0.1f/statRecord1.getTotalCount();
            float lowRate = statRecord1.getLowScoreCount()*1000*0.1f/statRecord1.getTotalCount();
            DataRow dr = dt.NewRow();
            dr[0] = "上次统计结果";
            dr[1] = statRecord1.getTotalCount();
            dr[2] = Convert.ToDecimal(statRecord1.getMeanScore()).ToString("0.00");
            dr[3] = Convert.ToDecimal(statRecord1.highScoreLine + 0.0001f).ToString("0.00") ;
            dr[4] = statRecord1.getHighScoreCount();
            dr[5] = Convert.ToDecimal(highRate).ToString("0.00")+"%";
            dr[6] = Convert.ToDecimal(statRecord1.lowScoreLine + 0.0001f).ToString("0.00");
            dr[7] = statRecord1.getLowScoreCount();
            dr[8] = Convert.ToDecimal(lowRate).ToString("0.00") + "%";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            float highRate2 = statRecord2.getHighScoreCount()*100/statRecord2.getTotalCount();
            float lowRate2 = statRecord2.getLowScoreCount()*100/statRecord2.getTotalCount();
            dr[0] = "本次统计结果";
            dr[1] = statRecord2.getTotalCount();
            dr[2] = Convert.ToDecimal(statRecord2.getMeanScore()).ToString("0.00");
            dr[3] = Convert.ToDecimal(statRecord2.highScoreLine+0.0001f).ToString("0.00");
            dr[4] = statRecord2.getHighScoreCount();
            dr[5] = Convert.ToDecimal(highRate2).ToString("0.00") + "%";
            dr[6] = Convert.ToDecimal(statRecord2.lowScoreLine+0.0001f).ToString("0.00");
            dr[7] = statRecord2.getLowScoreCount();
            dr[8] = Convert.ToDecimal(lowRate2).ToString("0.00") + "%";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = "比较结果";
            dr[1] = statRecord2.getTotalCount();
            dr[2] = Convert.ToDecimal(statRecord2.getMeanScore()-statRecord1.getMeanScore()).ToString("0.00"); //平均分提升率
            dr[3] = statRecord2.highScoreLine - statRecord1.highScoreLine;
            dr[4] = statRecord2.getHighScoreCount() - statRecord1.getHighScoreCount();
            dr[5] = Convert.ToDecimal((highRate2 - highRate)).ToString("0.00") + "%"; //高分提高率
            dr[6] = statRecord2.lowScoreLine - statRecord1.lowScoreLine;
            dr[7] = statRecord2.getLowScoreCount() - statRecord1.getLowScoreCount();
            dr[8] = Convert.ToDecimal(lowRate2 - lowRate).ToString("0.00") + "%";
            dt.Rows.Add(dr);

            return dt;
        }