예제 #1
0
        protected override bool SubItemTScore(int paperId, int[] scoreArray, string userName, ref string resultText, out int[] subitemIds, out float[] subitemScoreArray)
        {
            Hashtable M = new Hashtable();
            Hashtable S = new Hashtable();

            S.Add("男P", 2.86);
            M.Add("男P", 5.29);
            S.Add("男E", 4.33);
            M.Add("男E", 10.17);
            S.Add("男N", 4.18);
            M.Add("男N", 11.45);
            S.Add("男L", 3.64);
            M.Add("男L", 11.91);
            S.Add("女P", 2.88);
            M.Add("女P", 4.43);
            S.Add("女E", 4.44);
            M.Add("女E", 7.67);
            S.Add("女N", 4.6);
            M.Add("女N", 12.5);
            S.Add("女L", 3.67);
            M.Add("女L", 12.83);
            DataSet ds           = SubItem.GetPaperSubItems(paperId, 1);
            int     subitemCount = ds.Tables[0].Rows.Count;

            bool result;

            if (subitemCount <= 0)
            {
                subitemIds        = null;
                subitemScoreArray = null;
                result            = false;
            }
            else
            {
                resultText = "";
                subitemIds = new int[subitemCount];
                float[] T = new float[subitemCount];
                float[] X = new float[subitemCount];
                for (int i = 0; i < subitemCount; i++)
                {
                    DataRow dr = ds.Tables[0].Rows[i];
                    subitemIds[i] = (int)dr["Fsubitemid"];
                    X[i]          = 0f;
                    string[] questionIds = dr["Fquestions"].ToString().Split(new char[]
                    {
                        '|'
                    });
                    for (int j = 0; j < questionIds.Length; j++)
                    {
                        int     questionId = int.Parse(questionIds[j]);
                        float[] array;
                        IntPtr  intPtr;
                        (array = X)[(int)(intPtr = (IntPtr)i)] = array[(int)intPtr] + (float)scoreArray[questionId - 1];
                    }
                    string subitemName = dr["Fsubitemname"].ToString();
                    // DataRow drStu = SchoolDB.GetStudent(userName);
                    string key = SchoolDB.GetStudent(userName);
                    key       += subitemName;
                    T[i]       = (float)Math.Round((double)(50f + 10f * (X[i] - float.Parse(M[key].ToString())) / float.Parse(S[key].ToString())), 2);
                    resultText = resultText + subitemName + "的得分是:" + T[i].ToString();
                    if (i != subitemCount - 1)
                    {
                        resultText += "<br/>";
                    }
                }
                subitemScoreArray = T;
                result            = true;
            }
            return(result);
        }
예제 #2
0
        public override bool Diagnose(int paperId, string answers, string userName, int[] scoreArray, float totalScore, float[] subitemScoreArray, ref string resultText)
        {
            //userName=20180101
            //DataRow drStu = SchoolDB.GetStudent(userName);

            string sex = SchoolDB.GetStudent(userName);

            resultText += "<br/>从总分来看:";
            if (sex == "男")
            {
                if (totalScore >= 0f && totalScore <= 10f)
                {
                    resultText += "您非常内向";
                }
                else
                {
                    if (totalScore >= 11f && totalScore <= 25f)
                    {
                        resultText += "您比较内向";
                    }
                    else
                    {
                        if (totalScore >= 26f && totalScore <= 35f)
                        {
                            resultText += "您介于内外向之间";
                        }
                        else
                        {
                            if (totalScore >= 36f && totalScore <= 50f)
                            {
                                resultText += "您比较外向";
                            }
                            else
                            {
                                if (totalScore >= 51f && totalScore <= 60f)
                                {
                                    resultText += "您非常外向";
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (sex == "女")
                {
                    if (totalScore >= 0f && totalScore <= 10f)
                    {
                        resultText += "您非常内向";
                    }
                    else
                    {
                        if (totalScore >= 11f && totalScore <= 21f)
                        {
                            resultText += "您比较内向";
                        }
                        else
                        {
                            if (totalScore >= 22f && totalScore <= 31f)
                            {
                                resultText += "您介于内外向之间";
                            }
                            else
                            {
                                if (totalScore >= 32f && totalScore <= 45f)
                                {
                                    resultText += "您比较外向";
                                }
                                else
                                {
                                    if (totalScore >= 46f && totalScore <= 60f)
                                    {
                                        resultText += "您非常外向";
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(true);
        }
예제 #3
0
        public override bool SeniorScore(int paperId, string answers, int[] scoreArray, string userName, ref string resultText, out int[] subitemIds, out float[] subitemScoreArray)
        {
            Hashtable M = new Hashtable();
            Hashtable S = new Hashtable();

            M.Add("男Do", 9.15);
            S.Add("男Do", 3.44);
            M.Add("男Cs", 6.11);
            S.Add("男Cs", 2.27);
            M.Add("男Sy", 9.2);
            S.Add("男Sy", 3.23);
            M.Add("男Sp", 8.64);
            S.Add("男Sp", 2.88);
            M.Add("男Sa", 4.75);
            S.Add("男Sa", 2.5);
            M.Add("男Wb", 14.64);
            S.Add("男Wb", 3.16);
            M.Add("男Re", 10.16);
            S.Add("男Re", 2.41);
            M.Add("男So", 13.44);
            S.Add("男So", 3.11);
            M.Add("男Sc", 15.8);
            S.Add("男Sc", 4.6);
            M.Add("男To", 9.7);
            S.Add("男To", 3);
            M.Add("男Gi", 10.5);
            S.Add("男Gi", 3.8);
            M.Add("男Cm", 9.88);
            S.Add("男Cm", 1.85);
            M.Add("男Ac", 8.91);
            S.Add("男Ac", 2.55);
            M.Add("男Ai", 6.9);
            S.Add("男Ai", 2.36);
            M.Add("男Ie", 10);
            S.Add("男Ie", 2.37);
            M.Add("男Py", 5.8);
            S.Add("男Py", 2);
            M.Add("男Fx", 5);
            S.Add("男Fx", 2.5);
            M.Add("男Fe", 7.23);
            S.Add("男Fe", 2.29);
            M.Add("女Do", 8.78);
            S.Add("女Do", 3.11);
            M.Add("女Cs", 5.61);
            S.Add("女Cs", 2.56);
            M.Add("女Sy", 9.24);
            S.Add("女Sy", 3.17);
            M.Add("女Sp", 8.53);
            S.Add("女Sp", 2.69);
            M.Add("女Sa", 4.52);
            S.Add("女Sa", 2.2);
            M.Add("女Wb", 14.52);
            S.Add("女Wb", 3.22);
            M.Add("女Re", 11.06);
            S.Add("女Re", 2.34);
            M.Add("女So", 13.77);
            S.Add("女So", 2.97);
            M.Add("女Sc", 16.19);
            S.Add("女Sc", 4.9);
            M.Add("女To", 10);
            S.Add("女To", 3.12);
            M.Add("女Gi", 10);
            S.Add("女Gi", 3.85);
            M.Add("女Cm", 10);
            S.Add("女Cm", 1.79);
            M.Add("女Ac", 9);
            S.Add("女Ac", 2.35);
            M.Add("女Ai", 6.8);
            S.Add("女Ai", 2.32);
            M.Add("女Ie", 9.76);
            S.Add("女Ie", 2.41);
            M.Add("女Py", 6);
            S.Add("女Py", 2);
            M.Add("女Fx", 5);
            S.Add("女Fx", 2.63);
            M.Add("女Fe", 9.16);
            S.Add("女Fe", 2.41);
            DataSet ds           = SubItem.GetPaperSubItems(paperId, 1);
            int     subitemCount = ds.Tables[0].Rows.Count;
            bool    result;

            if (subitemCount <= 0)
            {
                subitemIds        = null;
                subitemScoreArray = null;
                result            = false;
            }
            else
            {
                resultText = "";
                subitemIds = new int[subitemCount];
                float[] T = new float[subitemCount];
                float[] X = new float[subitemCount];
                for (int i = 0; i < subitemCount; i++)
                {
                    DataRow dr = ds.Tables[0].Rows[i];
                    subitemIds[i] = (int)dr["Fsubitemid"];
                    X[i]          = 0f;
                    string[] questionIds = dr["Fquestions"].ToString().Split(new char[]
                    {
                        '|'
                    });
                    for (int j = 0; j < questionIds.Length; j++)
                    {
                        int     questionId = int.Parse(questionIds[j]);
                        float[] array;
                        IntPtr  intPtr;
                        (array = X)[(int)(intPtr = (IntPtr)i)] = array[(int)intPtr] + (float)scoreArray[questionId - 1];
                    }
                    string subitemName = dr["Fsubitemname"].ToString();
                    // DataRow drStu = SchoolDB.GetStudent(userName);
                    string key = SchoolDB.GetStudent(userName);
                    key       += subitemName;
                    T[i]       = (float)Math.Round((double)(50f + 10f * (X[i] - float.Parse(M[key].ToString())) / float.Parse(S[key].ToString())), 2);
                    resultText = resultText + subitemName + "的得分是:" + T[i].ToString();
                    if (i != subitemCount - 1)
                    {
                        resultText += "<br/>";
                    }
                }
                subitemScoreArray = T;
                result            = true;
            }
            return(result);
        }