protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string action = Request["action"]; if (action != null && action.ToString().Equals("zfen")) { ZDfen = int.Parse(Request["score"].ToString()); } } //Tbt = new TbObjectiveTopic(); //声明答案类 //stu = new string[] { }; //保存主观题答案 //num = 0; //题号 //StrLive = new List<string>(); //保存标题所有内容 if (Request["KgtID"] != null) { Tbt = new TbObjectiveTopic(); //声明答案类 stu = new string[] { }; //保存主观题答案 num = 0; //题号 StrLive = new List <string>(); //保存标题所有内容 Tbt.KgtID = int.Parse(Request["KgtID"].ToString()); HttpCookie cookie = new HttpCookie("kgtid"); cookie.Value = Tbt.KgtID.ToString(); Request.Cookies.Add(cookie); } else { string kgtid = Request.Cookies["kgtid"].Value; Tbt.KgtID = int.Parse(kgtid); } Tbt.Zt = 2; DataTable dt = tbAnswerCardManager.getAnswerCardZgt(Tbt); if (dt.Rows.Count > 0) { stu = dt.Rows[0]["ZgtAnswer"].ToString().Split('︵'); //获得所有主观题答案 DataRow dtKgt = tbAnswerCardManager.getAnswerCard2(Tbt.KgtID).Rows[0]; //获得答题卡 string Sj = dtKgt["SjID"].ToString(); DataTable dtTx = TbQuestionTypesManager.GetAllQuestionTypesBySjid(int.Parse(Sj)); DataRow drTx = dtTx.Rows[dtTx.Rows.Count - 1]; if (drTx["TxName"].ToString() == "简答题") { int Zfen = int.Parse(dtTx.Rows[dtTx.Rows.Count - 1]["Txzf"].ToString()); //本试卷简答题总分 int TCount = int.Parse(dtTx.Rows[dtTx.Rows.Count - 1]["TxCount"].ToString()); //本试卷简答题个数 DataRow dtPaper = TbTestPaperManager.getOnePaperInfo(Sj).Rows[0]; Sj = dtPaper["SjName"].ToString(); StrLive.Add(Sj); //1 试卷名称 Sj = dtPaper["LsName"].ToString(); StrLive.Add(Sj); //2 老师名字 Sj = dtKgt["YhID"].ToString(); Sj = TbUserManager.GetAllUser(int.Parse(Sj)).Xh; //获得用户学号 StrLive.Add(Sj); //3 学生学号 StrLive.Add(Zfen.ToString()); //4简答题总分 } } }
/// <summary> ///根据试卷ID 用户ID 答题卡状态 获得主观题答题卡答案 /// </summary> /// <param name="toc"></param> /// <returns></returns> public DataTable getAnswerCardZgt(TbObjectiveTopic toc) { string sql = "select * from tbResult where Zt=@Zt and KgtID=@KgtID "; SqlParameter[] sqle = new SqlParameter[] { new SqlParameter("@Zt", toc.Zt), new SqlParameter("@KgtID", toc.KgtID) }; return(DBHelper.GetDataTable(sql, sqle)); }
/// <summary> /// 根据试卷ID 和答题卡状态 获得答题卡答案 /// </summary> /// <param name="toc"></param> /// <returns></returns> public DataTable getAnswerCard2(TbObjectiveTopic toc) { string sql = "select * from tbObjTopic where SjID=@SjID and Zt=@Zt"; SqlParameter[] sqle = new SqlParameter[] { new SqlParameter("@SjID", toc.SjID), new SqlParameter("@Zt", toc.Zt) }; return(DBHelper.GetDataTable(sql, sqle)); }
/// <summary> /// 更新主观题答案 /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public int UpdatResultAnswer(TbObjectiveTopic Tobj) { StringBuilder sbsql = new StringBuilder(); sbsql.Append("update tbResult set ZgtNo=@ZgtNo,ZgtAnswer=@ZgtAnswer,Zt=@Zt"); sbsql.Append(" where KgtID=@KgtID"); SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@ZgtNo", Tobj.ZgtNo), new SqlParameter("@ZgtAnswer", Tobj.ZgtAnswer), new SqlParameter("@KgtID", Tobj.KgtID), new SqlParameter("@Zt", Tobj.Zt) }; return(DBHelper.ExecuteCommand(sbsql.ToString(), paras)); }
/// <summary> ///更新答案 /// </summary> /// <param name="Tobj"></param> /// <param name="Zt">成绩表状态1,未交卷,2,已交卷</param> /// <returns></returns> public static int UpdateAnswer(TbObjectiveTopic Tobj, int Zt) { if (Tobj.Zt == 1) { return(Tcs.UpdateObjTiveAnswer(Tobj)); } else { Ts.KgtID = int.Parse(getAnswerCard2(Tobj, Tobj.YhID).Rows[0]["KgtID"].ToString()); Ts = NowScore(Tobj); // 重新获得当前分数 Ts.Zt = Zt; //更新成绩表状态 int upt = TbScoreManager.UpdScore(Ts); //更新分数 return(Tcs.UpdatResultAnswer(Tobj) + Tcs.UpdateObjTiveAnswer(Tobj)); //更新答案 } }
/// <summary> /// 保存主观题答案 /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public int AddResultAnswer(TbObjectiveTopic Tobj) { StringBuilder sbsql = new StringBuilder(); sbsql.Append("insert into tbResult(KgtID,ZgtNo,ZgtAnswer,Zt,Remark) "); sbsql.Append("values(@KgtID,@ZgtNo,@ZgtAnswer,@Zt,@Remark) ;select @@IDENTITY"); SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@KgtID", Tobj.KgtID), new SqlParameter("@ZgtNo", Tobj.ZgtNo), new SqlParameter("@ZgtAnswer", Tobj.ZgtAnswer), new SqlParameter("@Zt", 2), new SqlParameter("@Remark", Tobj.Remark) }; return(DBHelper.GetScalar(sbsql.ToString(), paras)); }
/// <summary> /// 保存答案到数据库 /// </summary> /// <param name="Tobj">答题卡对象</param> /// <param name="CjZt">答题卡对象</param> /// <returns></returns> public static int inserAnswer(TbObjectiveTopic Tobj, int CjZt) { if (Tobj.Zt == 1) { return(Tcs.AddObjAnswer(Tobj)); //教师新增答案到数据库 } else { Ts = NowScore(Tobj); //获得当前分数 Ts.KgtID = Tcs.AddObjAnswer(Tobj); Tobj.KgtID = Ts.KgtID; Ts.Zt = CjZt; Ts.CjID = TbScoreManager.AddScore(Ts); //添加当前成绩 int i = Tcs.AddResultAnswer(Tobj); //添加当前答案 客观题/主观题 return(Ts.KgtID); } }
/// <summary> /// 更新客观题答案 /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public int UpdateObjTiveAnswer(TbObjectiveTopic Tobj) { StringBuilder sbsql = new StringBuilder(); sbsql.Append("update tbObjTopic set DxtNo=@DxtNo,DxtAnswer=@DxtAnswer,DuoxtNo=@DuoxtNo,DuoxtAnswer=@DuoxtAnswer,PdtNo=@PdtNo,PdtAnswer=@PdtAnswer"); sbsql.Append(" where SjID=@SjID and Zt=@Zt"); SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@SjID", Tobj.SjID), new SqlParameter("@Zt", Tobj.Zt), new SqlParameter("@DxtNo", Tobj.DxtNo), new SqlParameter("@DxtAnswer", Tobj.DxtAnwser), new SqlParameter("@DuoxtNo", Tobj.DuoxtNo), new SqlParameter("@DuoxtAnswer", Tobj.DuoxtAnwser), new SqlParameter("@PdtNo", Tobj.PdtNo), new SqlParameter("@PdtAnswer", Tobj.PdtAnswer) }; return(DBHelper.ExecuteCommand(sbsql.ToString(), paras)); }
/// <summary> /// 保存客观题答案 /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public int AddObjAnswer(TbObjectiveTopic Tobj) { StringBuilder sbsql = new StringBuilder(); sbsql.Append("insert into tbObjTopic(SjID,YhID,DxtNo,DxtAnswer,DuoxtNo,DuoxtAnswer,PdtNo,PdtAnswer,Zt,Remark) "); sbsql.Append("values(@SjID,@YhID,@DxtNo,@DxtAnswer,@DuoxtNo,@DuoxtAnswer,@PdtNo,@PdtAnswer,@Zt,@Remark);select @@IDENTITY"); SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@SjID", Tobj.SjID), new SqlParameter("@YhID", Tobj.YhID), new SqlParameter("@DxtNo", Tobj.DxtNo), new SqlParameter("@DxtAnswer", Tobj.DxtAnwser), new SqlParameter("@DuoxtNo", Tobj.DuoxtNo), new SqlParameter("@DuoxtAnswer", Tobj.DuoxtAnwser), new SqlParameter("@PdtNo", Tobj.PdtNo), new SqlParameter("@PdtAnswer", Tobj.PdtAnswer), new SqlParameter("@Zt", Tobj.Zt), new SqlParameter("@Remark", Tobj.Remark) }; return(DBHelper.GetScalar(sbsql.ToString(), paras)); }
/// <summary> /// 返回学生考试分数 /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public static TbScore NowScore(TbObjectiveTopic Tobj) { TbScore nowScore = new TbScore(); DataTable dbTeacher = getAnswerTeacher(Tobj); DataRow drTeacher = dbTeacher.Rows[0]; //教师标准答案 DataTable dbTx = DtAnswerMg(Tobj.SjID); //题型表 string[] DxtAnswer = Tobj.DxtAnwser.Split(','); string[] DuoxtAnswer = Tobj.DuoxtAnwser.Split(','); string[] PdtAnswer = Tobj.PdtAnswer.Split(','); foreach (DataRow item in dbTx.Rows) { string type = DataType(item["TxName"].ToString()); if (type != "0") { string[] AnswerTeacher = drTeacher[type].ToString().Split(','); //获得当前题型答案 int Zsore = int.Parse(item["Txzf"].ToString()); //获得当前题型总分 int Tcount = int.Parse(item["TxCount"].ToString()); //获得当前题型个数 float sore = Zsore / Tcount; //获得当前题型平均分 int UI = 0; for (int num = 0; num < AnswerTeacher.Length - 1; num++) //length-1去掉最后一个空答案 { string Ater = AnswerTeacher[num]; if (type == "DxtAnswer") { UI++; if (UI == 1) { nowScore.DxtScore++; } if (Ater == DxtAnswer[num]) { nowScore.DxtScore += sore; } } else if (type == "DuoxtAnswer") { UI++; if (UI == 1) { nowScore.DuoxtScore++; } if (Ater == DuoxtAnswer[num]) { nowScore.DuoxtScore += sore; } } else { UI++; if (UI == 1) { nowScore.PdtScore++; } if (Ater == PdtAnswer[num]) { nowScore.PdtScore += sore; } } } Ts.DxtScore = nowScore.DxtScore; Ts.DuoxtScore = nowScore.DuoxtScore; Ts.PdtScore = nowScore.PdtScore; } } return(Ts); }
/// <summary> /// 返回教师标准答案 根据试卷ID /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public static DataTable getAnswerTeacher(TbObjectiveTopic Tobj) { return(Tcs.getAnswerTeacher(Tobj)); }
/// <summary> ///根据试卷ID 用户ID 答题卡状态 获得主观题答题卡答案 /// </summary> /// <param name="toc"></param> /// <returns></returns> public static DataTable getAnswerCardZgt(TbObjectiveTopic toc) { return(Tcs.getAnswerCardZgt(toc)); }
/// <summary> ///根据试卷ID 用户ID 答题卡状态 获得答题卡答案 /// </summary> /// <param name="toc"></param> /// <param name="YhID">用户ID</param> /// <returns></returns> public static DataTable getAnswerCard2(TbObjectiveTopic toc, int YhID) { return(Tcs.getAnswerCard2(toc, YhID)); }
/// <summary> /// 根据 试卷ID 获得老师标准答案 /// </summary> /// <param name="Tobj"></param> /// <returns></returns> public DataTable getAnswerTeacher(TbObjectiveTopic Tobj) { string sql = "select * from tbObjTopic where Zt=1 and SjID=" + Tobj.SjID.ToString(); return(DBHelper.GetDataTable(sql)); }