Example #1
0
        public static string GetSubItemResultExplain(int paperId, string subitemName, float subitemScore)
        {
            DataTable dt = SubItem.GetSubItemResultExplain(paperId, subitemName);
            int       i  = 0;
            string    result;

            while (i < dt.Rows.Count)
            {
                string[] scoreSpans = dt.Rows[i]["FscoreSpan"].ToString().Split(new char[]
                {
                    '|'
                });
                if (scoreSpans.Length != 2)
                {
                    result = "";
                }
                else
                {
                    float lowerScore = float.Parse(scoreSpans[0]);
                    float upperScore = float.Parse(scoreSpans[1]);
                    if (subitemScore < lowerScore || subitemScore >= upperScore)
                    {
                        i++;
                        continue;
                    }
                    result = dt.Rows[i]["FresultText"].ToString();
                }
                return(result);
            }
            result = "";
            return(result);
        }
Example #2
0
        public static string GetSubItemResultExplain(int paperId, float[] subitemScores, int[] excludeIdxs, int count)
        {
            SubitemScoreEntry[] sses = new SubitemScoreEntry[subitemScores.Length];
            for (int i = 0; i < subitemScores.Length; i++)
            {
                sses[i] = new SubitemScoreEntry(i + 1, subitemScores[i]);
            }
            Array.Sort(sses);
            int[] subitemIdxs = new int[count];
            int   j           = sses.Length - 1;
            int   idx         = 0;

            while (j >= 0 && idx < count)
            {
                bool exclude = false;
                if (excludeIdxs != null)
                {
                    for (int k = 0; k < excludeIdxs.Length; k++)
                    {
                        if (sses[j].index == excludeIdxs[k])
                        {
                            exclude = true;
                            break;
                        }
                    }
                }
                if (!exclude)
                {
                    subitemIdxs[idx++] = sses[j].index;
                }
                j--;
            }
            string maxSubitemIds = "";

            for (int l = 0; l < subitemIdxs.Length; l++)
            {
                maxSubitemIds += subitemIdxs[l];
                if (l != subitemIdxs.Length - 1)
                {
                    maxSubitemIds += "|";
                }
            }
            DataTable dt = SubItem.GetSubItemResultExplain(paperId, "多点编码");
            string    result;

            for (int m = 0; m < dt.Rows.Count; m++)
            {
                if (maxSubitemIds == dt.Rows[m]["FscoreSpan"].ToString())
                {
                    result = dt.Rows[m]["FresultText"].ToString();
                    return(result);
                }
            }
            result = "";
            return(result);
        }