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));
        }
Example #5
0
 /// <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));
        }
Example #7
0
 /// <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));
        }
Example #10
0
        /// <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);
        }
Example #11
0
 /// <summary>
 /// 返回教师标准答案 根据试卷ID
 /// </summary>
 /// <param name="Tobj"></param>
 /// <returns></returns>
 public static DataTable getAnswerTeacher(TbObjectiveTopic Tobj)
 {
     return(Tcs.getAnswerTeacher(Tobj));
 }
Example #12
0
 /// <summary>
 ///根据试卷ID 用户ID 答题卡状态 获得主观题答题卡答案
 /// </summary>
 /// <param name="toc"></param>
 /// <returns></returns>
 public static DataTable getAnswerCardZgt(TbObjectiveTopic toc)
 {
     return(Tcs.getAnswerCardZgt(toc));
 }
Example #13
0
 /// <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));
        }