//数据加载(修改进入) private void DataLoadForEdit(int itemID) { //加载主题数据 ItemBLL itemBLL = new ItemBLL(); RailExam.Model.Item mainItem = itemBLL.GetItem(itemID); if (mainItem != null) { DataLoadForEditOnMain(mainItem); //主题加载完之后加载第一小题 txtTestCount_TextChanged(null, null); this.dropTestNo.SelectedValue = "1"; //保存当前变化前的题号 this.hfTestNoBefore.Value = "1"; IList <RailExam.Model.Item> subItemList = itemBLL.GetItemsByParentItemID(itemID); foreach (RailExam.Model.Item item in subItemList) { if (item.ItemIndex.ToString() == "1") { //加载第一题 DataLoadForEditOnSubsidiary(item); break; } } } }
//子题数据加载 private void DataLoadForEditOnSubsidiary(RailExam.Model.Item subItem) { this.dropTestNo.SelectedValue = subItem.ItemIndex.ToString(); this.dropItemCount.Text = subItem.AnswerCount.ToString(); this.txtSubContent.Text = subItem.Content; this.txtKeyWord.Text = subItem.KeyWord; this.txtMemo.Text = subItem.Memo; TextBox[] txts = { this.txtA, this.txtB, this.txtC, this.txtD, this.txtE, this.txtF, this.txtG, this.txtH, this.txtJ, this.txtK, this.txtL }; string[] selectAnswers = subItem.SelectAnswer.Split('|'); for (int i = 0; i < selectAnswers.Length; i++) { if (!String.IsNullOrEmpty(selectAnswers[i])) { txts[i].Text = selectAnswers[i]; } else { break; } } RadioButton[] radioes = { this.radioA, this.radioB, this.radioC, this.radioD, this.radioE, this.radioF, this.radioG, this.radioH, this.radioJ, this.radioK, this.radioL }; for (int i = 0; i < radioes.Length; radioes[i++].Checked = false) { ; } radioes[Int32.Parse(subItem.StandardAnswer)].Checked = true; this.hfTestNoBefore.Value = subItem.ItemIndex.ToString(); }
//主题数据加载 private void DataLoadForEditOnMain(RailExam.Model.Item mainItem) { this.lblchapter.Text = mainItem.BookName + " " + mainItem.ChapterName; this.dropStatus.SelectedValue = mainItem.StatusId.ToString(); this.dropPurpose.SelectedValue = mainItem.UsageId.ToString(); this.dateCreate.DateValue = mainItem.CreateTime.Date.ToShortDateString(); this.dateOut.DateValue = mainItem.OutDateDate.Date.ToShortDateString(); this.txtCreater.Text = mainItem.CreatePerson; this.txtTestCount.Text = mainItem.AnswerCount.ToString(); this.txtContent.Text = mainItem.Content; this.txtKeyWord.Text = mainItem.KeyWord; this.txtMemo.Text = mainItem.Memo; }
//新增数据 private void DataInsert(int testNo) { this.hfTestNoBefore.Value = testNo.ToString(); ItemBLL bllItem = new ItemBLL(); //如果这个hfMainItemID为空,则Cloze的题干尚未保存 if (String.IsNullOrEmpty(this.hfMainItemID.Value)) { RailExam.Model.Item mainItem = new RailExam.Model.Item(); mainItem.BookId = Int32.Parse(this.hfBookID.Value); mainItem.ChapterId = Int32.Parse(this.hfChapterID.Value); mainItem.OrganizationId = PrjPub.CurrentLoginUser.OrgID; mainItem.TypeId = 4; mainItem.CompleteTime = 60; mainItem.DifficultyId = 3; mainItem.Score = 4m; mainItem.Content = this.txtContent.Text; mainItem.AnswerCount = Int32.Parse(this.txtTestCount.Text); mainItem.OutDateDate = Convert.ToDateTime(this.dateOut.DateValue); mainItem.UsageId = Int32.Parse(this.dropPurpose.SelectedValue); mainItem.StatusId = Int32.Parse(this.dropStatus.SelectedValue); mainItem.CreatePerson = this.txtCreater.Text; mainItem.CreateTime = Convert.ToDateTime(this.dateCreate.DateValue); mainItem.UsedCount = 0; mainItem.Memo = this.txtMemo.Text; mainItem.HasPicture = 0; mainItem.KeyWord = this.txtKeyWord.Text; mainItem.ParentItemId = 0; try { int newID = bllItem.AddItem(mainItem); this.hfMainItemID.Value = newID.ToString(); } catch (Exception) { this.ClientScript.RegisterStartupScript(this.GetType(), "OK", "alert('错误:题干保存失败');", true); return; } } //保存选项 //如果该小题已经保存了,不执行 if (!this.hfSavedTestNo.Value.Contains(testNo.ToString())) { RailExam.Model.Item subItem = new RailExam.Model.Item(); subItem.BookId = Int32.Parse(this.hfBookID.Value); subItem.ChapterId = Int32.Parse(this.hfChapterID.Value); subItem.OrganizationId = PrjPub.CurrentLoginUser.OrgID; subItem.TypeId = 5; subItem.CompleteTime = 60; subItem.DifficultyId = 3; subItem.Score = 4m; subItem.Content = String.IsNullOrEmpty(this.txtSubContent.Text) ? this.txtContent.Text : this.txtSubContent.Text; subItem.AnswerCount = Int32.Parse(this.dropItemCount.Text); string selectAnswer = String.Empty; //存储选项 TextBox[] txts = { this.txtA, this.txtB, this.txtC, this.txtD, this.txtE, this.txtF, this.txtG, this.txtH, this.txtI, this.txtJ, this.txtK, this.txtL }; for (int i = 0; i < 12; i++) { if (!String.IsNullOrEmpty(txts[i].Text)) { selectAnswer += String.IsNullOrEmpty(selectAnswer) ? txts[i].Text : "|" + txts[i].Text; } else { break; } } subItem.SelectAnswer = selectAnswer; //存储答案 RadioButton[] radioes = { this.radioA, this.radioB, this.radioC, this.radioD, this.radioE, this.radioF, this.radioG, this.radioH, this.radioI, this.radioJ, this.radioK, this.radioL }; for (int i = 0; i < 12; i++) { if (radioes[i].Checked) { subItem.StandardAnswer = Convert.ToString(i); break; } } subItem.OutDateDate = Convert.ToDateTime(this.dateOut.DateValue); subItem.UsageId = Int32.Parse(this.dropPurpose.SelectedValue); subItem.StatusId = Int32.Parse(this.dropStatus.SelectedValue); subItem.CreatePerson = this.txtCreater.Text; subItem.CreateTime = Convert.ToDateTime(this.dateCreate.DateValue); subItem.UsedCount = 0; subItem.Memo = this.txtMemo.Text; subItem.HasPicture = 0; subItem.KeyWord = this.txtKeyWord.Text; subItem.ParentItemId = Int32.Parse(this.hfMainItemID.Value); subItem.ItemIndex = testNo; try { bllItem.AddItem(subItem); this.hfSavedTestNo.Value = String.IsNullOrEmpty(this.hfSavedTestNo.Value) ? subItem.ItemIndex.ToString() : this.hfSavedTestNo.Value + "," + subItem.ItemIndex.ToString(); this.ClientScript.RegisterStartupScript(this.GetType(), "OK", "alert('第" + testNo + "小题已保存');", true); ItemsClear(); } catch (Exception ex) { this.ClientScript.RegisterStartupScript(this.GetType(), "OK", "alert('错误:选项保存失败. " + ex.Message + "');", true); } } }
//修改数据 private void DataUpdate(int testNo) { this.hfTestNoBefore.Value = testNo.ToString(); ItemBLL itemBLL = new ItemBLL(); string itemID = Request["id"].ToString(); RailExam.Model.Item mainItem = itemBLL.GetItem(Int32.Parse(itemID)); //修改主题 mainItem.Content = this.txtContent.Text; mainItem.OutDateDate = Convert.ToDateTime(this.dateOut.DateValue); mainItem.UsageId = Int32.Parse(this.dropPurpose.SelectedValue); mainItem.StatusId = Int32.Parse(this.dropStatus.SelectedValue); mainItem.CreatePerson = this.txtCreater.Text; mainItem.CreateTime = Convert.ToDateTime(this.dateCreate.DateValue); mainItem.Memo = this.txtMemo.Text; mainItem.KeyWord = this.txtKeyWord.Text; try { itemBLL.UpdateItem(mainItem); } catch (Exception) { this.ClientScript.RegisterStartupScript(this.GetType(), "OK", "alert('主题修改不成功');", true); return; } //修改小题 IList <RailExam.Model.Item> subItemList = itemBLL.GetItemsByParentItemID(Int32.Parse(itemID)); foreach (RailExam.Model.Item item in subItemList) { if (item.ItemIndex.ToString() == testNo.ToString()) { string selectAnswer = String.Empty; //存储选项 TextBox[] txts = { this.txtA, this.txtB, this.txtC, this.txtD, this.txtE, this.txtF, this.txtG, this.txtH, this.txtI, this.txtJ, this.txtK, this.txtL }; for (int i = 0; i < 12; i++) { if (!String.IsNullOrEmpty(txts[i].Text)) { selectAnswer += String.IsNullOrEmpty(selectAnswer) ? txts[i].Text : "|" + txts[i].Text; } else { break; } } item.SelectAnswer = selectAnswer; //存储答案 RadioButton[] radioes = { this.radioA, this.radioB, this.radioC, this.radioD, this.radioE, this.radioF, this.radioG, this.radioH, this.radioI, this.radioJ, this.radioK, this.radioL }; for (int i = 0; i < 12; i++) { if (radioes[i].Checked) { item.StandardAnswer = Convert.ToString(i); break; } } item.Content = String.IsNullOrEmpty(this.txtSubContent.Text) ? this.txtContent.Text : this.txtSubContent.Text; item.Memo = this.txtMemo.Text; item.KeyWord = this.txtKeyWord.Text; item.ParentItemId = Int32.Parse(itemID); try { itemBLL.UpdateItem(item); this.ClientScript.RegisterStartupScript(this.GetType(), "OK", "alert('第" + testNo + "小题已修改');", true); } catch (Exception ex) { this.ClientScript.RegisterStartupScript(this.GetType(), "OK", "alert('第" + testNo + "小题修改不成功');", true); } //找到并修改了需要修改的小题后,就可跳出循环了 break; } } string strSql = "update Item set Status_ID=" + mainItem.StatusId + " where Item_ID=" + mainItem.ItemId + " or Parent_Item_ID=" + mainItem.ItemId; OracleAccess db = new OracleAccess(); db.ExecuteNonQuery(strSql); }
private void FillPaperNoAnswer() { if (ViewState["SelectItem"].ToString() == "") { SessionSet.PageMessage = "您输入的条件没有找到试题!"; return; } ItemBLL itemBLL = new ItemBLL(); IList <RailExam.Model.Item> Items = new List <RailExam.Model.Item>(); string[] strSelectItem = ViewState["SelectItem"].ToString().Split(new char[] { '|' }); for (int n = 0; n < strSelectItem.Length; n++) { RailExam.Model.Item item = itemBLL.GetItem(int.Parse(strSelectItem[n])); Items.Add(item); } decimal decTotalScore1 = 0; decimal decTotalScore2 = 0; int n1 = 0; int n2 = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; if (item.TypeId == 1) { decTotalScore1 += item.Score; n1 += 1; } else { decTotalScore2 += item.Score; n2 += 1; } } if (Items != null) { string strHtml1 = "<table class='ExamContent'><tr><td class='ExamBigTitle' > 一、单选(共" + n1 + "题)</td></tr> "; string strHtml2 = "<table class='ExamContent'><tr><td class='ExamBigTitle' > 二、多选(共" + n2 + "题)</td></tr> "; int k1 = 0; int k2 = 0; for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; if (item.TypeId == PrjPub.ITEMTYPE_SINGLECHOOSE) { k1 += 1; strHtml1 += "<tr><td id='Item" + j + "' class='ExamItem' > " + k1 + ". " + item.Content + " </td></tr>"; string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-1-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "1" + j.ToString(); strHtml1 += "<tr><td class='ExamItemAnswer'> <input type='Radio' onclick='CheckStyle(this)' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"; } } else if (item.TypeId == PrjPub.ITEMTYPE_MULTICHOOSE) { k2 += 1; strHtml2 += "<tr><td class='ExamItem'> " + k2 + ". " + item.Content + " </td></tr>"; string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-2-" + +item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "2" + j.ToString(); strHtml2 += "<tr><td class='ExamItemAnswer'> <input type='checkbox' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"; } } } strHtml1 += " </table> "; strHtml2 += " </table> "; if (k1 > 0) { Response.Write(strHtml1); } if (k2 > 0) { Response.Write(strHtml2); } Response.Write("<div class='ExamButton'><input class='button' type='button' onclick='SaveRecord()' value='提 交'/></div>"); } }
private void FillPaperWithAnswer() { if (ViewState["IsShow"].ToString() == "True") { return; } decimal decTotalResultScore = 0; int rightNum = 0; int sumNum = 0; string strAllAnswer = ViewState["Answers"].ToString(); string[] strAllAnswers = strAllAnswer.Split(new char[] { '$' }); Hashtable hashTable = new Hashtable(); for (int i = 0; i < strAllAnswers.Length; i++) { string str2 = strAllAnswers[i]; string[] str3 = str2.Split(new char[] { '|' }); string strItemId = str3[0]; string strTrueAnswer = str2.Substring(strItemId.Length + 1); hashTable[int.Parse(strItemId)] = strTrueAnswer; } ItemBLL itemBLL = new ItemBLL(); IList <RailExam.Model.Item> Items = new List <RailExam.Model.Item>(); string[] strSelectItem = ViewState["SelectItem"].ToString().Split(new char[] { '|' }); for (int n = 0; n < strSelectItem.Length; n++) { RailExam.Model.Item item = itemBLL.GetItem(int.Parse(strSelectItem[n])); Items.Add(item); } ViewState["SelectItem"] = ""; decimal decTotalScore1 = 0; decimal decTotalScore2 = 0; int nCount1 = 0; int nCount2 = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; if (item.TypeId == 1) { decTotalScore1 += item.Score; nCount1 += 1; } else { decTotalScore2 += item.Score; nCount2 += 1; } } if (Items != null) { string strHtml1 = "<table class='ExamContent'><tr><td class='ExamBigTitle'> 一、单选(共" + nCount1 + "题)</td></tr> "; string strHtml2 = "<table class='ExamContent'><tr><td class='ExamBigTitle'> 二、多选(共" + nCount2 + "题)</td></tr> "; sumNum = nCount1 + nCount2; int k1 = 0; int k2 = 0; for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; if (item.TypeId == 1) { k1 += 1; strHtml1 += "<tr><td class='ExamItem'> " + k1 + ". " + item.Content + " </td></tr>"; string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-1-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "1" + j.ToString(); strHtml1 += "<tr><td class='ExamItemAnswer'> <input type='Radio' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"; } string[] strRightAnswers = item.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n1 = 0; n1 < strRightAnswers.Length; n1++) { string strN1 = intToString(int.Parse(strRightAnswers[n1]) + 1); if (n1 == 0) { strRightAnswer += strN1; } else { strRightAnswer += "," + strN1; } } string strhashValue = hashTable[item.ItemId].ToString(); string strUserAnswer = ""; if (strhashValue != "") { string[] strUserAnswers = strhashValue.ToString().Split(new char[] { '|' }); for (int n2 = 0; n2 < strUserAnswers.Length; n2++) { string strN2 = intToString(int.Parse(strUserAnswers[n2]) + 1); if (n2 == 0) { strUserAnswer += strN2; } else { strUserAnswer += "," + strN2; } } } if (strUserAnswer == strRightAnswer) { decTotalResultScore += item.Score; rightNum = rightNum + 1; } if (strUserAnswer == strRightAnswer) { strHtml1 += "<tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"; } else { strHtml1 += "<tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"; } } else { k2 += 1; strHtml2 += "<tr><td class='ExamItem'> " + k2 + ". " + item.Content + " </td></tr>"; string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-2-" + +item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "2" + j.ToString(); strHtml2 += "<tr><td class='ExamItemAnswer'> <input type='checkbox' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"; } string[] strRightAnswers = item.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n1 = 0; n1 < strRightAnswers.Length; n1++) { string strN1 = intToString(int.Parse(strRightAnswers[n1]) + 1); if (n1 == 0) { strRightAnswer += strN1; } else { strRightAnswer += "," + strN1; } } string strhashValue = hashTable[item.ItemId].ToString(); string strUserAnswer = ""; if (strhashValue != "") { string[] strUserAnswers = strhashValue.ToString().Split(new char[] { '|' }); for (int n2 = 0; n2 < strUserAnswers.Length; n2++) { string strN2 = intToString(int.Parse(strUserAnswers[n2]) + 1); if (n2 == 0) { strUserAnswer += strN2; } else { strUserAnswer += "," + strN2; } } } if (strUserAnswer == strRightAnswer) { decTotalResultScore += item.Score; rightNum = rightNum + 1; } if (strUserAnswer == strRightAnswer) { strHtml2 += "<tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"; } else { strHtml2 += "<tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"; } } } strHtml1 += " </table> "; strHtml2 += " </table> "; if (k1 > 0) { Response.Write(strHtml1); } if (k2 > 0) { Response.Write(strHtml2); } double decn = 0; if (sumNum > 0) { decn = rightNum * 0.01 * 10000 / sumNum; } Response.Write("<table class='ExamContent'><tr><td class='ExamJudge'>★正确题数:" + rightNum + " 正确率:" + decn.ToString("0.00") + "%</td></tr></table>"); string strA = "总题数:" + sumNum + ",正确题数:" + rightNum + ",正确率:" + decn.ToString("0.00") + "%"; SessionSet.PageMessage = strA; } ViewState["IsShow"] = "True"; }
private void SavePaperItem(IList <RailExam.Model.Item> itemList, int nDifficulty, int nPaperId, int nPaperSubjectId, decimal nUnitScore) { if (itemList.Count > 0) { PaperItemBLL paperItemBLL = new PaperItemBLL(); IList <PaperItem> paperItems = new List <PaperItem>(); if (itemList.Count > nDifficulty) { Random ObjRandom = new Random(); Hashtable hashTable = new Hashtable(); while (hashTable.Count < nDifficulty) { int i = ObjRandom.Next(itemList.Count); hashTable[itemList[i].ItemId] = itemList[i].ItemId; } ItemBLL itemBLL = new ItemBLL(); //把hashtable里的试题加到考试表 foreach (int key in hashTable.Keys) { string strItemId = hashTable[key].ToString(); RailExam.Model.Item item = itemBLL.GetItem(int.Parse(strItemId)); PaperItem paperItem = new PaperItem(); paperItem.PaperId = nPaperId; paperItem.PaperSubjectId = nPaperSubjectId; paperItem.AnswerCount = item.AnswerCount; paperItem.BookId = item.BookId; paperItem.CategoryId = item.CategoryId; paperItem.ChapterId = item.ChapterId; paperItem.CompleteTime = item.CompleteTime; paperItem.Content = item.Content; paperItem.CreatePerson = item.CreatePerson; paperItem.CreateTime = item.CreateTime; paperItem.Description = item.Description; paperItem.DifficultyId = item.DifficultyId; paperItem.ItemId = item.ItemId; paperItem.Memo = item.Memo; paperItem.OrderIndex = 0; paperItem.OrganizationId = item.OrganizationId; paperItem.OutDateDate = item.OutDateDate; paperItem.Score = nUnitScore; paperItem.SelectAnswer = item.SelectAnswer; paperItem.Source = item.Source; paperItem.StandardAnswer = item.StandardAnswer; paperItem.StatusId = item.StatusId; paperItem.TypeId = item.TypeId; paperItem.UsedCount = item.UsedCount; paperItem.Version = item.Version; paperItems.Add(paperItem); } } else //直接把这些试题加到考试表 { foreach (RailExam.Model.Item item in itemList) { PaperItem paperItem = new PaperItem(); paperItem.PaperId = nPaperId; paperItem.PaperSubjectId = nPaperSubjectId; paperItem.AnswerCount = item.AnswerCount; paperItem.BookId = item.BookId; paperItem.CategoryId = item.CategoryId; paperItem.ChapterId = item.ChapterId; paperItem.CompleteTime = item.CompleteTime; paperItem.Content = item.Content; paperItem.CreatePerson = item.CreatePerson; paperItem.CreateTime = item.CreateTime; paperItem.Description = item.Description; paperItem.DifficultyId = item.DifficultyId; paperItem.ItemId = item.ItemId; paperItem.Memo = item.Memo; paperItem.OrderIndex = 0; paperItem.OrganizationId = item.OrganizationId; paperItem.OutDateDate = item.OutDateDate; paperItem.Score = nUnitScore; paperItem.SelectAnswer = item.SelectAnswer; paperItem.Source = item.Source; paperItem.StandardAnswer = item.StandardAnswer; paperItem.StatusId = item.StatusId; paperItem.TypeId = item.TypeId; paperItem.UsedCount = item.UsedCount; paperItem.Version = item.Version; paperItems.Add(paperItem); } } if (paperItems.Count > 0) { paperItemBLL.AddPaperItem(paperItems); } } }
private void FillPaperNoAnswer() { ItemBLL itemBLL = new ItemBLL(); string strBookId = Request.QueryString.Get("bookid"); string strChapterId = Request.QueryString.Get("ChapterId"); if (strChapterId == "0") { IList <RailExam.Model.Item> Items1 = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 1); IList <RailExam.Model.Item> Items2 = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 2); IList <RailExam.Model.Item> Items3 = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 3); IList <RailExam.Model.Item> Items4 = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 4); Response.Write("<div class='ExamBigTitle' style='text-align:center;' >"); Response.Write(" 本教材共有" + Items1.Count + "道单选题、" + Items2.Count + "道多选题、<br>" + Items3.Count + "道判断题、" + Items4.Count + "道综合选择题,请点击章节查看练习题!"); Response.Write("</div>"); } else { BookChapterBLL objBll = new BookChapterBLL(); BookChapter obj = objBll.GetBookChapter(Convert.ToInt32(strChapterId)); hfCannotSeeAnswer.Value = obj.IsCannotSeeAnswer.ToString(); if (Convert.ToBoolean(hfCannotSeeAnswer.Value)) { Response.Write("<div class='ExamBigTitle' style='text-align:center;' >"); Response.Write(" 本章节练习题已被屏蔽!"); Response.Write("</div>"); return; } int nCount = 0; //单选 IList <RailExam.Model.Item> Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 1); decimal decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } nCount += Items.Count; if (Items != null) { Response.Write("<table class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle' >"); Response.Write(" 一、单选(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td id='Item-1-" + j + "' class='ExamItem'> " + k + ". " + item.Content + "</td></tr>"); string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-1-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "1" + j.ToString(); Response.Write( "<tr><td class='ExamItemAnswer'> <input type='Radio' onclick='CheckStyle(this)' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"); } } Response.Write(" </table> "); } //多选 Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 2); decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } nCount += Items.Count; hfPaperItemsCount.Value = nCount.ToString(); if (Items != null) { Response.Write("<table class='ExamContent'>"); Response.Write("<tr> <td class='ExamBigTitle' >"); Response.Write(" 二、多选(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td id='Item-2-" + j + "' class='ExamItem'> " + k + ". " + item.Content + "</td></tr>"); string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-2-" + +item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "2" + j.ToString(); Response.Write( "<tr><td class='ExamItemAnswer'> <input type='checkbox' onclick='CheckStyle(this)' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"); } } Response.Write("</table> "); } //判断 Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 3); decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } nCount += Items.Count; hfPaperItemsCount.Value = nCount.ToString(); if (Items != null) { Response.Write("<table class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle' >"); Response.Write("三、判断(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td id='Item-3-" + j + "' class='ExamItem'> " + k + ". " + item.Content + "</td></tr>"); string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-3-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "3" + j.ToString(); Response.Write( "<tr><td class='ExamItemAnswer'> <input type='Radio' onclick='CheckStyle(this)' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"); } } Response.Write(" </table> "); } //综合选择题 Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 4); decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } nCount += Items.Count; hfPaperItemsCount.Value = nCount.ToString(); if (Items != null) { Response.Write("<table class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle' colspan='3'>"); Response.Write("四、综合选择题(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td id='Item" + j + "' class='ExamItem' colspan='3'> " + k + ". " + item.Content + "</td></tr>"); IList <RailExam.Model.Item> objChildList = itemBLL.GetItemsByParentItemID(item.ItemId); foreach (RailExam.Model.Item item1 in objChildList) { string[] strAnswer = item1.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-4-" + item1.ItemId + "-" + item1.ItemId + "-" + n.ToString(); string strName = "4" + item1.ItemId; if (n == 0) { int row = strAnswer.Length % 2 == 0 ? strAnswer.Length / 2 : strAnswer.Length / 2 + 1; Response.Write("<tr><td id='Item-4-" + item1.ItemId + "' class='ExamItemOther' style='width:10%;' RowSpan='" + row + "'> (" + item1.ItemIndex + "). </td>"); } if (n % 2 == 0 && n != 0) { Response.Write("<tr>"); } Response.Write( "<td class='ExamItemAnswer'> <input type='Radio' onclick='CheckStyle(this)' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td>"); if (n % 2 == 1) { Response.Write("</tr>"); } } } } Response.Write(" </table> "); } if (!Convert.ToBoolean(hfCannotSeeAnswer.Value)) { Response.Write("<div class='ExamButton'><input class='button' type='button' onclick='SaveRecord()' value='提交练习'/></div>"); } Response.Write("<br><br>"); } }
private void FillPaperWithAnswer() { string strAllAnswer = ViewState["Answers"].ToString(); string[] strAllAnswers = strAllAnswer.Split(new char[] { '$' }); Hashtable hashTable = new Hashtable(); for (int i = 0; i < strAllAnswers.Length; i++) { string str2 = strAllAnswers[i]; string[] str3 = str2.Split(new char[] { '|' }); string strItemId = str3[0]; string strTrueAnswer = str2.Substring(strItemId.Length + 1); hashTable[int.Parse(strItemId)] = strTrueAnswer; } decimal decTotalResultScore = 0; ItemBLL itemBLL = new ItemBLL(); string strBookId = Request.QueryString.Get("bookid"); string strChapterId = Request.QueryString.Get("ChapterId"); //单选 decimal rightNum = 0; decimal sumNum = 0; IList <RailExam.Model.Item> Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 1); decimal decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } if (Items != null) { sumNum = sumNum + Items.Count; Response.Write("<table width='95%' class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle'>"); Response.Write(" 一、单选(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td class='ExamItem'> " + k + ". " + item.Content + "</td></tr>"); string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "1" + j.ToString(); Response.Write( "<tr><td class='ExamItemAnswer'> <input type='Radio' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"); } string[] strRightAnswers = item.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n1 = 0; n1 < strRightAnswers.Length; n1++) { string strN1 = intToString(int.Parse(strRightAnswers[n1]) + 1); if (n1 == 0) { strRightAnswer += strN1; } else { strRightAnswer += "," + strN1; } } string strhashValue = hashTable[item.ItemId].ToString(); string strUserAnswer = ""; if (strhashValue != "") { string[] strUserAnswers = strhashValue.ToString().Split(new char[] { '|' }); for (int n2 = 0; n2 < strUserAnswers.Length; n2++) { string strN2 = intToString(int.Parse(strUserAnswers[n2]) + 1); if (n2 == 0) { strUserAnswer += strN2; } else { strUserAnswer += "," + strN2; } } } if (strUserAnswer == strRightAnswer) { decTotalResultScore += item.Score; rightNum = rightNum + 1; } if (strUserAnswer == strRightAnswer) { Response.Write("<tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } else { Response.Write("<tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } } Response.Write("</table>"); } //多选 Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 2); decimal decTotalScore1 = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore1 += item.Score; } if (Items != null) { sumNum = sumNum + Items.Count; Response.Write("<table class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle'>"); Response.Write(" 二、多选(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td class='ExamItem'> " + k + ". " + item.Content + "</td></tr>"); string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "2" + j.ToString(); Response.Write( "<tr><td class='ExamItemAnswer'> <input type='checkbox' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"); } string[] strRightAnswers = item.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n1 = 0; n1 < strRightAnswers.Length; n1++) { string strN1 = intToString(int.Parse(strRightAnswers[n1]) + 1); if (n1 == 0) { strRightAnswer += strN1; } else { strRightAnswer += "," + strN1; } } string strhashValue = hashTable[item.ItemId].ToString(); string strUserAnswer = ""; if (strhashValue != "") { string[] strUserAnswers = strhashValue.ToString().Split(new char[] { '|' }); for (int n2 = 0; n2 < strUserAnswers.Length; n2++) { string strN2 = intToString(int.Parse(strUserAnswers[n2]) + 1); if (n2 == 0) { strUserAnswer += strN2; } else { strUserAnswer += "," + strN2; } } } if (strUserAnswer == strRightAnswer) { decTotalResultScore += item.Score; rightNum = rightNum + 1; } if (strUserAnswer == strRightAnswer) { Response.Write("<tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } else { Response.Write("<tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } } Response.Write(" </table> "); } //判断 Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 3); decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } if (Items != null) { sumNum = sumNum + Items.Count; Response.Write("<table width='95%' class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle'>"); Response.Write(" 三、判断(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td class='ExamItem'> " + k + ". " + item.Content + "</td></tr>"); string[] strAnswer = item.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + item.ItemId + "-" + j.ToString() + "-" + n.ToString(); string strName = "3" + j.ToString(); Response.Write( "<tr><td class='ExamItemAnswer'> <input type='Radio' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td></tr>"); } string[] strRightAnswers = item.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n1 = 0; n1 < strRightAnswers.Length; n1++) { string strN1 = intToString(int.Parse(strRightAnswers[n1]) + 1); if (n1 == 0) { strRightAnswer += strN1; } else { strRightAnswer += "," + strN1; } } string strhashValue = hashTable[item.ItemId].ToString(); string strUserAnswer = ""; if (strhashValue != "") { string[] strUserAnswers = strhashValue.ToString().Split(new char[] { '|' }); for (int n2 = 0; n2 < strUserAnswers.Length; n2++) { string strN2 = intToString(int.Parse(strUserAnswers[n2]) + 1); if (n2 == 0) { strUserAnswer += strN2; } else { strUserAnswer += "," + strN2; } } } if (strUserAnswer == strRightAnswer) { decTotalResultScore += item.Score; rightNum = rightNum + 1; } if (strUserAnswer == strRightAnswer) { Response.Write("<tr><td class='ExamAnswer'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } else { Response.Write("<tr><td class='ExamAnswerZero'> ★标准答案:" + "<span id='span-" + item.ItemId + "-0' name='span-" + item.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item.ItemId + "-1' name='span-" + item.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } } Response.Write("</table>"); } //综合选择题 Items = itemBLL.GetExerciseItems(int.Parse(strBookId), int.Parse(strChapterId), 4); decTotalScore = 0; for (int i = 0; i < Items.Count; i++) { RailExam.Model.Item item = Items[i]; decTotalScore += item.Score; } if (Items != null) { sumNum = sumNum + Items.Count; Response.Write("<table width='95%' class='ExamContent'>"); Response.Write("<tr><td class='ExamBigTitle' colspan='3'>"); Response.Write(" 四、综合选择题(共" + Items.Count + "题)</td></tr>"); for (int j = 0; j < Items.Count; j++) { RailExam.Model.Item item = Items[j]; int k = j + 1; Response.Write("<tr><td class='ExamItem' colspan='3'> " + k + ". " + item.Content + "</td></tr>"); IList <RailExam.Model.Item> objChildList = itemBLL.GetItemsByParentItemID(item.ItemId); foreach (RailExam.Model.Item item1 in objChildList) { string[] strAnswer = item1.SelectAnswer.Split(new char[] { '|' }); for (int n = 0; n < strAnswer.Length; n++) { string strN = intToString(n + 1); string strij = "-" + item1.ItemId + "-" + item1.ItemId + "-" + n.ToString(); string strName = "4" + item1.ItemId; if (n == 0) { int row = strAnswer.Length % 2 == 0 ? strAnswer.Length / 2 : strAnswer.Length / 2 + 1; Response.Write("<tr><td class='ExamItemOther' style='width:10%' RowSpan='" + row + "'> (" + item1.ItemIndex + "). </td>"); } if (n % 2 == 0 && n != 0) { Response.Write("<tr>"); } Response.Write( "<td class='ExamItemAnswer'> <input type='Radio' id='RAnswer" + strij + "' name='RAnswer" + strName + "'> " + strN + "." + strAnswer[n] + "</td>"); if (n % 2 == 1) { Response.Write("</tr>"); } } string[] strRightAnswers = item1.StandardAnswer.Split(new char[] { '|' }); string strRightAnswer = ""; for (int n1 = 0; n1 < strRightAnswers.Length; n1++) { string strN1 = intToString(int.Parse(strRightAnswers[n1]) + 1); if (n1 == 0) { strRightAnswer += strN1; } else { strRightAnswer += "," + strN1; } } string strhashValue = hashTable[item1.ItemId].ToString(); string strUserAnswer = ""; if (strhashValue != "") { string[] strUserAnswers = strhashValue.ToString().Split(new char[] { '|' }); for (int n2 = 0; n2 < strUserAnswers.Length; n2++) { string strN2 = intToString(int.Parse(strUserAnswers[n2]) + 1); if (n2 == 0) { strUserAnswer += strN2; } else { strUserAnswer += "," + strN2; } } } if (strUserAnswer == strRightAnswer) { decTotalResultScore += item1.Score; rightNum = rightNum + (decimal)1 / (decimal)objChildList.Count; } if (strUserAnswer == strRightAnswer) { Response.Write("<tr><td class='ExamAnswer' colspan='3'> ★标准答案:" + "<span id='span-" + item1.ItemId + "-0' name='span-" + item1.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item1.ItemId + "-1' name='span-" + item1.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } else { Response.Write("<tr><td class='ExamAnswerZero' colspan='3'> ★标准答案:" + "<span id='span-" + item1.ItemId + "-0' name='span-" + item1.ItemId + "'>" + strRightAnswer + "</span> ★考生答案:" + "<span id='span-" + item1.ItemId + "-1' name='span-" + item1.ItemId + "'>" + strUserAnswer + "</span></td></tr>"); } } } Response.Write("</table>"); } decimal decn = 0; if (sumNum > 0) { decn = rightNum * (decimal)0.01 * (decimal)10000 / sumNum; } Response.Write("<table class='ExamContent'><tr><td class='ExamJudge'>★正确题数:" + rightNum + " 正确率:" + decn.ToString("0.00") + "%</td></tr></table>"); string strA = "总题数:" + sumNum + ",正确题数:" + rightNum + ",正确率:" + decn.ToString("0.00") + "%"; SessionSet.PageMessage = strA; }