一、功能介绍
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");
}