一、功能介紹
1、自定義試題庫管理系統目錄、難易程度,題型,知識庫等。
2、試題錄入。
3、強大的試題編輯功能,並與通常應用編輯工具有共通。
4、靈活的試卷構造功能,用戶可自定義試卷標題、試題分類,試題數量、總分、試題難度系數等。
5、人工生成試卷和自動生成試卷文檔格式標准通用。能夠合理使用,有效再編輯,保存,方便瀏覽和打印輸出。
6、題庫管理,可以隨時分散和集中管理題庫數據。
二、菜單功能
1、基礎數據維護:試題分類設置;題型設置;難易程度;知識點庫設置
2、題庫管理:試題錄入
3、試卷管理:人工生成試卷;自動生成試卷;試卷庫管理
登錄界面:
主界面:
試題科目設置:
題型設置:
.
試題程度設置:
知識點設置:
試題錄入:
人工生成試卷:
自動生成試卷:
自動生成試卷:
試題庫管理:
生成試卷預覽生成試卷預覽代碼:
/// <summary> /// 生成試卷預覽 /// </summary> private void PreviewPapaer() { tabControl1.SelectedTabIndex = 1;//調整到預覽選項卡 richTextBox3.Clear(); richTextBox4.Clear(); try { //1.試卷名稱、標題 string sjtm = txtSjName.Text.Trim(); richTextBox3.AppendText(sjtm + "\r\n\n");//試卷名稱 richTextBox3.Select(0, sjtm.Length);//選中范圍 richTextBox3.SelectionAlignment = HorizontalAlignment.Center;//居中 ChangeFontSize(14, richTextBox3);//設置字體 ChangeFont("宋體", richTextBox3);//設置字體大小 string sjtitle = txtSjTitle.Text.Trim(); richTextBox3.AppendText(sjtitle + "\r\n\n");//試卷標題 richTextBox3.Select(sjtm.Length, sjtitle.Length);//選中范圍 richTextBox3.SelectionAlignment = HorizontalAlignment.Center;//居中 ChangeFontSize(12, richTextBox3);//設置字體 ChangeFont("宋體", richTextBox3);//設置字體大小 string answername = sjtm + "參考答案"; richTextBox4.AppendText(answername + "\r\n");//答案試卷名稱 richTextBox4.Select(0, answername.Length);//選中范圍 richTextBox4.SelectionAlignment = HorizontalAlignment.Center;//居中 ChangeFontSize(14, richTextBox4);//設置字體 ChangeFont("宋體", richTextBox4);//設置字體大小 //2.寫入題型(一、單選題 二、多選題......) int xh = 0; DataTable dt = DataBaseAccess.GetDataTable("select * from base_tx order by sort"); for (int i = 0; i < dt.Rows.Count; i++) { int txid = Convert.ToInt32(dt.Rows[i]["id"]);//題型ID //datatable表中數據按sort排序 DataRow[] rows = dtxz.Select("xztxid=" + txid, "xzsort asc"); DataTable dttemp = dtxz.Clone(); dttemp.Clear(); foreach (DataRow dr2 in rows) { dttemp.Rows.Add(dr2.ItemArray); } if (dttemp.Rows.Count != 0)//判斷該類型是否選擇了題目 { xh = xh + 1; richTextBox3.SelectionStart = richTextBox3.Rtf.Length;//選中richTextBox3的標題換行后新的行開頭 ChangeFontSize(13, richTextBox3);//設置字體 ChangeFont("宋體", richTextBox3);//設置字體大小 string txmc = PublicStaticFun.NumberToChinese((xh).ToString()) + "、" + dt.Rows[i]["name"].ToString(); richTextBox3.AppendText(txmc + dt.Rows[i]["contents"] + "\r\n");//添加題型號(大寫) richTextBox4.AppendText(txmc + "\r\n");//添加答案題型號(大寫) //循環讀出題目內容、答案 for (int k = 0; k < dttemp.Rows.Count; k++) { //3.寫入試題號(1、...) richTextBox3.AppendText((k + 1) + "、");//題目 richTextBox4.AppendText((k + 1) + "、");//答案 string sqlstr = @"select * from base_st where id=" + dttemp.Rows[k]["xzstid"] + ""; DataTable dtst = DataBaseAccess.GetDataTable(sqlstr); //4.獲取每題目、答案內容 //獲取題目內容 if (dtst.Rows[0]["contents"].ToString() != "") { byte[] bWrite = (byte[])dtst.Rows[0]["contents"];//從數據庫中讀出數據 //MemoryStream mstream = new MemoryStream(bWrite, false);//將數組轉換成stream string contents = System.Text.Encoding.UTF8.GetString(bWrite, 0, bWrite.Length); richTextBox3.SelectedRtf = contents;//關鍵 數據庫中題目內容(rtf格式) } //獲取答案內容 if (dtst.Rows[0]["answer"].ToString() != "") { byte[] bWrite2 = (byte[])dtst.Rows[0]["answer"];//從數據庫中讀出數據 string anwer = System.Text.Encoding.UTF8.GetString(bWrite2, 0, bWrite2.Length); richTextBox4.SelectedRtf = anwer; } } } //換一類題型空一行 richTextBox3.AppendText("\r\n"); richTextBox4.AppendText("\r\n"); } } catch (Exception ex) { MessageBoxEx.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } //CreateWordFile(@"F:\1.doc"); }