public static Hashtable GetPaperSubItemIdMap(int paperid, int level) { Hashtable result = new Hashtable(); DataTable dt = SubItem.GetPaperSubItems(paperid, level).Tables[0]; Hashtable result2; if (dt.Rows.Count <= 0) { result2 = result; } else { for (int i = 0; i < dt.Rows.Count; i++) { //result.set_Item(dt.get_Rows().get_Item(i).get_Item("Fsubitemname"), dt.get_Rows().get_Item(i).get_Item("Fsubitemid")); result.Add(dt.Rows[i]["Fsubitemname"], dt.Rows[i]["Fsubitemid"]); } result2 = result; } return(result2); }
public override bool Diagnose(int paperId, string answers, string userName, int[] scoreArray, float totalScore, float[] subitemScoreArray, ref string resultText) { Hashtable subitemIndexMap = SubItem.GetPaperSubItemIndexMap(paperId, 1); bool result; if (subitemScoreArray.Length <= (int)subitemIndexMap["R"]) { result = false; } else { char[] subItems = new char[] { 'M', 'N', 'O', 'P', 'Q', 'R' }; float subItemSum = 0f; char[] array = subItems; for (int i = 0; i < array.Length; i++) { char subitem = array[i]; subItemSum += subitemScoreArray[(int)subitemIndexMap[subitem.ToString()]]; } if (totalScore >= 40f && subItemSum >= 20f) { resultText = "您的健康有问题"; } else { resultText = "您的健康没有问题"; } result = true; } return(result); }
public static Hashtable GetPaperSubItemIndexMap(int paperid, int level) { Hashtable result = new Hashtable(); //DataTable dt = SubItem.GetPaperSubItems(paperid, level).get_Tables().get_Item(0); DataTable dt = SubItem.GetPaperSubItems(paperid, level).Tables[0]; Hashtable result2; if (dt.Rows.Count <= 0) { result2 = result; } else { for (int i = 0; i < dt.Rows.Count; i++) { //result.Item(dtRows.Item[i]["Fsubitemname"], i); result.Add(dt.Rows[i]["Fsubitemname"], i); } result2 = result; } return(result2); }
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("女l", 4.12); M.Add("女f", 2.73); M.Add("女k", 12.37); M.Add("女hs", 12.95); M.Add("女d", 19.25); M.Add("女hy", 19.01); M.Add("女pd", 18.8); M.Add("女mf_m", 28.66); M.Add("女pa", 8.03); M.Add("女pt", 25.2); M.Add("女sc", 22.39); M.Add("女ma", 16.6); M.Add("女si", 24.62); S.Add("女l", 2.94); S.Add("女f", 4.55); S.Add("女k", 5.26); S.Add("女hs", 4.92); S.Add("女d", 5.15); S.Add("女hy", 5.63); S.Add("女pd", 4.24); S.Add("女mf_m", 4.81); S.Add("女pa", 3.49); S.Add("女pt", 6.08); S.Add("女sc", 6.52); S.Add("女ma", 4); S.Add("女si", 9.62); DataSet ds = SubItem.GetPaperSubItems(paperId, 1); int subitemCount = ds.Tables[0].Rows.Count;// ds.get_Tables().get_Item(0).get_Rows().get_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]; string[] answerArray = answers.Split(new char[] { '|' }); 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]); int select = int.Parse(answerArray[questionId - 1]); int score = this.GetScore(questionId, dr["Fsubitemname"].ToString(), select, scoreArray); float[] array; IntPtr intPtr; (array = X)[(int)(intPtr = (IntPtr)i)] = array[(int)intPtr] + (float)score; } } Hashtable subitemIndexMap = SubItem.GetPaperSubItemIndexMap(paperId, 1); float K = X[(int)subitemIndexMap["k"]]; float[] array2; IntPtr intPtr2; (array2 = X)[(int)(intPtr2 = (IntPtr)((int)subitemIndexMap["hs"]))] = array2[(int)intPtr2] + 0.5f * K; float[] array3; IntPtr intPtr3; (array3 = X)[(int)(intPtr3 = (IntPtr)((int)subitemIndexMap["pd"]))] = array3[(int)intPtr3] + 0.4f * K; float[] array4; IntPtr intPtr4; (array4 = X)[(int)(intPtr4 = (IntPtr)((int)subitemIndexMap["pt"]))] = array4[(int)intPtr4] + 1f * K; float[] array5; IntPtr intPtr5; (array5 = X)[(int)(intPtr5 = (IntPtr)((int)subitemIndexMap["sc"]))] = array5[(int)intPtr5] + 1f * K; float[] array6; IntPtr intPtr6; (array6 = X)[(int)(intPtr6 = (IntPtr)((int)subitemIndexMap["ma"]))] = array6[(int)intPtr6] + 0.2f * K; for (int k = 0; k < subitemCount; k++) { DataRow dr2 = ds.Tables[0].Rows[k]; string subitemName = dr2["Fsubitemname"].ToString(); string key = "女" + subitemName; T[k] = (float)Math.Round((double)(50f + 10f * (X[k] - float.Parse(M[key].ToString())) / float.Parse(S[key].ToString())), 2); resultText = resultText + subitemName + "的得分是:" + T[k].ToString(); if (k != subitemCount - 1) { resultText += "<br/>"; } } subitemScoreArray = T; result = true; } return(result); }
public override bool SeniorScore(int paperId, string answers, int[] scoreArray, string userName, ref string resultText, out int[] subitemIds, out float[] subitemScoreArray) { bool res = base.SeniorScore(paperId, answers, scoreArray, userName, ref resultText, out subitemIds, out subitemScoreArray); if (res) { Hashtable subitemIndexMap = SubItem.GetPaperSubItemIndexMap(paperId, 1); float 行动力 = subitemScoreArray[(int)subitemIndexMap["行动力"]]; float 自我管理能力 = subitemScoreArray[(int)subitemIndexMap["自我管理能力"]]; if (25f <= 行动力 && 行动力 < 41f && 0f <= 自我管理能力 && 自我管理能力 < 25f) { resultText = "你是坐落在右上角第一象限的人。你的行动力弱,自我管理能力差,较感性,性格方面较内敛,不大喜欢变化,但服从性和配合性比较好,具有支持与服务的能力,属于支援型人才,比较适合从事有关例行性的工作,像公务员、文秘一类行政性的创意性不强的工作,不鼓励你往业务方向发展。"; } else { if (25f <= 行动力 && 行动力 < 41f && 25f <= 自我管理能力 && 自我管理能力 < 41f) { resultText = "你是坐落在右下角的第二象限里的人。你的行动力比较弱,但自我管理能力非常强,通常你的分析能力很强,学习能力很好,数字及逻辑观念也很棒,往往能够想到、看到,但因为行动力不够,因此通常自己不会去做,所以你比较适合从事技术型或研究型工作,譬如工程师、学者、电脑程序设计师等,可以坐在那里一整天。因此,也不太鼓励你往业务方面发展。另外,大多数专业人士,如律师、咨询师、会计师等,也都属于这个象限。"; } else { if (0f <= 行动力 && 行动力 < 17f && 0f <= 自我管理能力 && 自我管理能力 < 17f) { resultText = "你是坐落在左上角第三象限的小2格里的人。你的行动力很强,很多时候别人还在犹豫的时候你就已冲出去行动了;你的思维非常活跃,天马行空,不受约束,所以很多演艺界的艺人、艺术家等都出自这个象限;但你的自我管理能力又非常差,十分情绪化,常常跟着感觉走,只要灯光美、气氛佳、心情好时没什么不可以;当心情不好时,你又会经常改变主意,所以你也容易转换工作。你喜欢有挑战性和刺激性的工作,具有很强的个人魅力,往往是天生的业务高手,假如从事业务工作的话,业绩会非常出色。因此,公司经常站在领奖台上,拿奖拿到手软的业务精英多数都落在这个区域。"; } else { if (0f <= 行动力 && 行动力 < 17f && 17f <= 自我管理能力 && 自我管理能力 < 25f) { resultText = "你是坐落在左上角第三象限的小4格里的人。你有潜质成为不错的业务主管,具有很强的行动力,但又不会过分感性或理性,属于比较中性和客观的一类人。你的管理风格偏感性,管理的方式较人性化,在决策的时候多以人为中心,所以你带出来的团队人情味较浓,而且较热闹,凝聚力也很强。因此,公司很多优秀的业务主管大多落在这个区域。"; } else { if (0f <= 行动力 && 行动力 < 17f && 25f <= 自我管理能力 && 自我管理能力 < 34f) { resultText = "你是坐落在左下角第四象限的小6格里的人。你有潜质成为不错的业务主管,具有很强的行动力,但又不会过分感性或理性,属于比较中性和客观的一类人。你的管理风格比较偏理性,你往往以事为中心,注重成本概念,喜欢建立一定的纪律、秩序和系统来管理团队,所以团队越大,越能显示你的管理才能。因此,公司许多高级的主管大多属于这个区域。"; } else { if (0f <= 行动力 && 行动力 < 17f && 34f <= 自我管理能力 && 自我管理能力 < 41f) { resultText = "你是坐落在左下角第四象限的小8格里的人。你非常厉害,也很少见,一方面你有非常强的分析能力和决策力,同时又有非常强的理性,在作决策时不会受感情和环境的困扰;另一方面你的行动力又很快,想到马上就会去做,执行力特别好,所以你作决策往往是三个字形容:快!狠!准!你往往不容易被人管理,适合自己出来创业。因此,很多大老板、大企业家如李嘉诚之类的就出自这个区域。"; } else { if (17f <= 行动力 && 行动力 < 25f && 0f <= 自我管理能力 && 自我管理能力 < 17f) { resultText = "你是坐落在左上角第三象限的小1格里的人,是小2格人的隐形。如果有意识地加以培训与训练,你会往小2格的人显性发展。小2格的人的特点是:他的行动力很强,很多时候别人还在犹豫的时候他们就已冲出去行动了;他的思维非常活跃,天马行空,不受约束,所以很多演艺界的艺人、艺术家等都出自这个象限;但他们的自我管理能力又非常差,十分情绪化,常常跟着感觉走,只要灯光美、气氛佳、心情好时没什么不可以;当心情不好时,他又会经常改变主意,所以也容易转换工作。他们喜欢有挑战性和刺激性的工作,具有很强的个人魅力,往往是天生的业务高手,假如从事业务工作的话,业绩会非常出色。因此,公司经常站在领奖台上,拿奖拿到手软的业务精英多数都落在这个小2格区域。"; } else { if (17f <= 行动力 && 行动力 < 25f && 17f <= 自我管理能力 && 自我管理能力 < 25f) { resultText = "你是坐落在左上角第三象限的小3格里的人,是小4格人的隐形。如果有意识地加以培训与训练,你会往小4格的人显性发展。小4格的人的特点是:他有潜质成为不错的业务主管,具有很强的行动力,但又不会过分感性或理性,属于比较中性和客观的一类人。他们的管理风格偏感性,管理的方式较人性化,在决策的时候多以人为中心,所以他带出来的团队人情味较浓,而且较热闹,凝聚力也很强。因此,公司很多优秀的业务主管大多落在这个小4格区域。"; } else { if (17f <= 行动力 && 行动力 < 25f && 25f <= 自我管理能力 && 自我管理能力 < 34f) { resultText = "你是坐落在左下角第四象限的小5格里的人,是小6格人的隐形。如果有意识地加以培训与训练,你会往小6格的人显性发展。小6格的人的特点是:他有潜质成为不错的业务主管,具有很强的行动力,但又不会过分感性或理性,属于比较中性和客观的一类人。他们的管理风格比较偏理性,往往以事为中心,注重成本概念,喜欢建立一定的纪律、秩序和系统来管理团队,所以团队越大,越能显示他们的管理才能。因此,公司许多高级的主管大多属于这个小6格区域。"; } else { if (17f <= 行动力 && 行动力 < 25f && 34f <= 自我管理能力 && 自我管理能力 < 41f) { resultText = "你是坐落在左下角第四象限的小7格里的人,是小8格人的隐形。如果有意识地加以培训与训练,你会往小8格的人显性发展。小8格的人的特点是:他们非常厉害,也很少见,一方面他有非常强的分析能力和决策力,同时又有非常强的理性,在作决策时不会受感情和环境的困扰;另一方面他们的行动力又很快,想到马上就会去做,执行力特别好,所以他们作决策往往是三个字形容:快!狠!准!他往往不容易被人管理,适合自己出来创业。因此,很多大老板、大企业家如李嘉诚之类的就出自这个小8格区域。"; } } } } } } } } } } } return(res); }
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 SeniorScore(int paperId, string answers, int[] scoreArray, string userName, ref string resultText, out int[] subitemIds, out float[] subitemScoreArray) { bool res = base.SeniorScore(paperId, answers, scoreArray, userName, ref resultText, out subitemIds, out subitemScoreArray); if (res) { SubitemScoreEntry[] sses = new SubitemScoreEntry[subitemScoreArray.Length]; for (int i = 0; i < subitemScoreArray.Length; i++) { sses[i] = new SubitemScoreEntry(subitemIds[i], subitemScoreArray[i]); } Array.Sort(sses); int maxSubitemId = sses[sses.Length - 1].index; string subitemName = SubItem.GetPaperSubItemName(paperId, maxSubitemId); string text; if ((text = subitemName) != null) { text = string.IsInterned(text); if (text != "R") { if (text != "I") { if (text != "A") { if (text != "S") { if (text != "E") { if (text == "C") { resultText = "你的职业倾向为现实型(C型)。C型主要是指各类与文件档案、图书资料、统计报表之类相关的各类科室工作。主要特点:①喜欢按计划办事,习惯接受他人指挥和领导,自己不谋求领导职务;\v②不喜欢冒险和竞争;③工作踏实,忠诚可靠,遵守纪律。主要职业:会计、出纳、统计人员;打字员;办公室人员;秘书和文书;图书管理员;旅游、外贸职员、保管员、邮递员、审计人员、人事职员等。"; } } else { resultText = "你的职业倾向为现实型(E型)。E型主要是指那些组织与影响他人共同完成组织目标的工作。主要特点:①精力充沛、自信、善交际,具有领导才能;②喜欢竞争,敢冒风险;③喜爱权力、地位和物质财富。主要职业:经理企业家、政府官员、商人、行业部门和单位的领导者、管理者等。"; } } else { resultText = "你的职业倾向为现实型(S型)。S型主要是指各种直接为他人服务的工作,如医疗服务、教育服务、生活服务等。主要特点:①喜欢从事为他人服务和教育他人的工作;②喜欢参与解决人们共同关心的社会问题,渴望发挥自己的社会作用;③比较看重社会义务和社会道德。主要职业:教师、保育员、行政人员;医护人员;衣食住行服务行业的经理、管理人员和服务人员;福利人员等。"; } } else { resultText = "你的职业倾向为现实型(A型)。A型主要是指各类艺术创作工作。主要特点:①喜欢以各种艺术形式的创作来表现自己的才能,实现自身的价值;②具有特殊艺术才能和个性;③乐于创造新颖的、与众不同的艺术成果,渴望表现自己的个性。主要职业:音乐、舞蹈、戏剧等方面的演员、艺术家编导、教师;文学、艺术方面的评论员;广播节目的主持人、编辑、作者;绘画、书法、摄影家;艺术、家具、珠宝、房屋装饰等行业的设计师等。"; } } else { resultText = "你的职业倾向为现实型(I型)。I型主要是指科学研究和科学实验工作。主要特点:①抽象思维能力强,求知欲强,肯动脑,善思考,不愿动手;②喜欢独立的和富有创造性的工作;③知识渊博,有学识才能,不善于领导他人。主要职业:自然科学和社会科学方面的研究人员、专家;化学、冶金、电子、无线电、电视、飞机等方面的工程师、技术人员;飞机驾驶员、计算机操作员等。"; } } else { resultText = "你的职业倾向为现实型(R型)。R型主要是指各类工程技术工作、农业工作,通常需要一定体力,需要运用工具或操作机器。主要特点:①愿意使用工具从事操作性工作;②动手能力强,做事手脚灵活,动作协调;③不善言辞,不善交际。主要职业有:工程师、技术员;机械操作、维修、安装工人,矿工、木工、电工、鞋匠等;司机,测绘员、描图员;农民、牧民、渔民等。"; } } } return(res); }
public override bool SeniorScore(int paperId, string answers, int[] scoreArray, string userName, ref string resultText, out int[] subitemIds, out float[] subitemScoreArray) { bool result; if (!base.SeniorScore(paperId, answers, scoreArray, userName, ref resultText, out subitemIds, out subitemScoreArray)) { result = false; } else { if (subitemScoreArray.Length != 16) { result = false; } else { Hashtable standScorers = StandScorer.CreateStandScorerK16(); Hashtable subitemIndexMap = SubItem.GetPaperSubItemIndexMap(paperId, 1); subitemScoreArray[(int)subitemIndexMap["A"]] = ((StandScorer)standScorers["A"]).Translate(subitemScoreArray[(int)subitemIndexMap["A"]]); subitemScoreArray[(int)subitemIndexMap["B"]] = ((StandScorer)standScorers["B"]).Translate(subitemScoreArray[(int)subitemIndexMap["B"]]); subitemScoreArray[(int)subitemIndexMap["C"]] = ((StandScorer)standScorers["C"]).Translate(subitemScoreArray[(int)subitemIndexMap["C"]]); subitemScoreArray[(int)subitemIndexMap["E"]] = ((StandScorer)standScorers["E"]).Translate(subitemScoreArray[(int)subitemIndexMap["E"]]); subitemScoreArray[(int)subitemIndexMap["F"]] = ((StandScorer)standScorers["F"]).Translate(subitemScoreArray[(int)subitemIndexMap["F"]]); subitemScoreArray[(int)subitemIndexMap["G"]] = ((StandScorer)standScorers["G"]).Translate(subitemScoreArray[(int)subitemIndexMap["G"]]); subitemScoreArray[(int)subitemIndexMap["H"]] = ((StandScorer)standScorers["H"]).Translate(subitemScoreArray[(int)subitemIndexMap["H"]]); subitemScoreArray[(int)subitemIndexMap["I"]] = ((StandScorer)standScorers["I"]).Translate(subitemScoreArray[(int)subitemIndexMap["I"]]); subitemScoreArray[(int)subitemIndexMap["L"]] = ((StandScorer)standScorers["L"]).Translate(subitemScoreArray[(int)subitemIndexMap["L"]]); subitemScoreArray[(int)subitemIndexMap["M"]] = ((StandScorer)standScorers["M"]).Translate(subitemScoreArray[(int)subitemIndexMap["M"]]); subitemScoreArray[(int)subitemIndexMap["N"]] = ((StandScorer)standScorers["N"]).Translate(subitemScoreArray[(int)subitemIndexMap["N"]]); subitemScoreArray[(int)subitemIndexMap["O"]] = ((StandScorer)standScorers["O"]).Translate(subitemScoreArray[(int)subitemIndexMap["O"]]); subitemScoreArray[(int)subitemIndexMap["Q1"]] = ((StandScorer)standScorers["Q1"]).Translate(subitemScoreArray[(int)subitemIndexMap["Q1"]]); subitemScoreArray[(int)subitemIndexMap["Q2"]] = ((StandScorer)standScorers["Q2"]).Translate(subitemScoreArray[(int)subitemIndexMap["Q2"]]); subitemScoreArray[(int)subitemIndexMap["Q3"]] = ((StandScorer)standScorers["Q3"]).Translate(subitemScoreArray[(int)subitemIndexMap["Q3"]]); subitemScoreArray[(int)subitemIndexMap["Q4"]] = ((StandScorer)standScorers["Q4"]).Translate(subitemScoreArray[(int)subitemIndexMap["Q4"]]); if (subitemScoreArray.Length != 16) { result = false; } else { float A = subitemScoreArray[(int)subitemIndexMap["A"]]; float B = subitemScoreArray[(int)subitemIndexMap["B"]]; float C = subitemScoreArray[(int)subitemIndexMap["C"]]; float E = subitemScoreArray[(int)subitemIndexMap["E"]]; float F = subitemScoreArray[(int)subitemIndexMap["F"]]; float G = subitemScoreArray[(int)subitemIndexMap["G"]]; float H = subitemScoreArray[(int)subitemIndexMap["H"]]; float I = subitemScoreArray[(int)subitemIndexMap["I"]]; float L = subitemScoreArray[(int)subitemIndexMap["L"]]; float M = subitemScoreArray[(int)subitemIndexMap["M"]]; float N = subitemScoreArray[(int)subitemIndexMap["N"]]; float O = subitemScoreArray[(int)subitemIndexMap["O"]]; float Q = subitemScoreArray[(int)subitemIndexMap["Q1"]]; float Q2 = subitemScoreArray[(int)subitemIndexMap["Q2"]]; float Q3 = subitemScoreArray[(int)subitemIndexMap["Q3"]]; float Q4 = subitemScoreArray[(int)subitemIndexMap["Q4"]]; float X = (38f + 2f * L + 3f * O + 4f * Q4 - (2f * C + 2f * H + 2f * Q2)) / 10f; float X2 = (2f * A + 3f * E + 4f * F + 5f * H - (2f * Q2 + 11f)) / 10f; float X3 = (77f + 2f * C + 2f * E + 2f * F + 2f * N - (4f * A + 6f * I + 2f * M)) / 10f; float X4 = (4f * E + 3f * M + 4f * Q + 4f * Q2 - (3f * A + 2f * G)) / 10f; float Y = C + F + (11f - O) + (11f - Q4); float Y2 = 2f * Q3 + G * 2f + C * 2f + E + N + Q2 + Q; float Y3 = (11f - A) * 2f + B * 2f + E + (11f - F) * 2f + H + I * 2f + M + (11f - N) + Q + Q2 * 2f; float Y4 = B + G + Q3 + (11f - F); int[] newSubitemIds = new int[24]; float[] newSubitemScoreArray = new float[24]; for (int i = 0; i < subitemIds.Length; i++) { newSubitemIds[i] = subitemIds[i]; newSubitemScoreArray[i] = subitemScoreArray[i]; } Hashtable subitemIdMap = SubItem.GetPaperSubItemIdMap(paperId, 2); int Base = subitemIds.Length; newSubitemIds[Base] = (int)subitemIdMap["X1"]; newSubitemIds[Base + 1] = (int)subitemIdMap["X2"]; newSubitemIds[Base + 2] = (int)subitemIdMap["X3"]; newSubitemIds[Base + 3] = (int)subitemIdMap["X4"]; newSubitemIds[Base + 4] = (int)subitemIdMap["Y1"]; newSubitemIds[Base + 5] = (int)subitemIdMap["Y2"]; newSubitemIds[Base + 6] = (int)subitemIdMap["Y3"]; newSubitemIds[Base + 7] = (int)subitemIdMap["Y4"]; newSubitemScoreArray[Base] = X; newSubitemScoreArray[Base + 1] = X2; newSubitemScoreArray[Base + 2] = X3; newSubitemScoreArray[Base + 3] = X4; newSubitemScoreArray[Base + 4] = Y; newSubitemScoreArray[Base + 5] = Y2; newSubitemScoreArray[Base + 6] = Y3; newSubitemScoreArray[Base + 7] = Y4; subitemIds = newSubitemIds; subitemScoreArray = newSubitemScoreArray; resultText = "A:乐群性得分:" + Math.Round((double)A, 2).ToString(); resultText = resultText + "<br/>B:聪慧性得分:" + Math.Round((double)B, 2).ToString(); resultText = resultText + "<br/>C:稳定性得分:" + Math.Round((double)C, 2).ToString(); resultText = resultText + "<br/>E:恃强性得分:" + Math.Round((double)E, 2).ToString(); resultText = resultText + "<br/>F:兴奋性得分:" + Math.Round((double)F, 2).ToString(); resultText = resultText + "<br/>G:有恒性得分:" + Math.Round((double)G, 2).ToString(); resultText = resultText + "<br/>H:敢为性得分:" + Math.Round((double)H, 2).ToString(); resultText = resultText + "<br/>I:敏感性得分:" + Math.Round((double)I, 2).ToString(); resultText = resultText + "<br/>L:怀疑性得分:" + Math.Round((double)L, 2).ToString(); resultText = resultText + "<br/>M:幻想性得分:" + Math.Round((double)M, 2).ToString(); resultText = resultText + "<br/>N:世故性得分:" + Math.Round((double)N, 2).ToString(); resultText = resultText + "<br/>O:忧虑性得分:" + Math.Round((double)O, 2).ToString(); resultText = resultText + "<br/>Q1:实验性得分:" + Math.Round((double)Q, 2).ToString(); resultText = resultText + "<br/>Q2:独立性得分:" + Math.Round((double)Q2, 2).ToString(); resultText = resultText + "<br/>Q3:自律性得分:" + Math.Round((double)Q3, 2).ToString(); resultText = resultText + "<br/>Q4:紧张性得分:" + Math.Round((double)Q4, 2).ToString(); resultText = resultText + "<br/>X1:适应与焦虑型得分:" + Math.Round((double)X, 2).ToString(); resultText = resultText + "<br/>X2:内向与外向型得分:" + Math.Round((double)X2, 2).ToString(); resultText = resultText + "<br/>X3:感情用事与安详机警型得分:" + Math.Round((double)X3, 2).ToString(); resultText = resultText + "<br/>X4:怯懦与果断型得分:" + Math.Round((double)X4, 2).ToString(); resultText = resultText + "<br/>Y1:心理健康因素得分:" + Math.Round((double)Y, 2).ToString(); resultText = resultText + "<br/>Y2:专业有成就者的个性因素得分:" + Math.Round((double)Y2, 2).ToString(); resultText = resultText + "<br/>Y3:创造能力个性因素得分:" + Math.Round((double)Y3, 2).ToString(); resultText = resultText + "<br/>Y4:在新环境中有成长能力的个性因素得分:" + Math.Round((double)Y4, 2).ToString(); result = true; } } } return(result); }
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); }