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); }
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); }
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); }