简单题库管理系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单题库管理系统设计一

1. 数据库dxjsj.mdb 结构(由9张表组成

)

2. 表结构(这里列出选择题、填充题、知识点3张表

)

3. 数据存放目录结构

4.管理程序菜单功能

标准答案文件夹

存放数据库的文件夹

设计操作题素材文件夹

OS 操作题素材文件夹

操作结果样例文件夹

试题维护包括不同题型的处理界面

知识点、OS操作类型、设计操作类型处理界面

(1)设计涉及到多个窗体,需要通过下图所示操作加入新窗体,结果如右图所示。

添加新窗体结果(需要修改窗体文件名)

其中,testm为主窗体(设计时第一个建立的窗体),应用程序的主入口,提供菜单功能,菜单建立使用menuStrip控件。

(2) 窗体的打开(以单选题为例)

Form fdxt = new fdxt();

fdxt.MdiParent = this; //作为主窗体testm的子窗体

fdxt.Show();

窗体的关闭使用命令:this.Close();

注意:应用程序的关闭退出使用命令:Application.Exit();

(3) 窗体之间共用的变量

先定义一个private/public的类,然后在类中声明一个static public属性的变量,可以在类中初始化或第一次使用之前初始化。使用“类名.变量名”形式引用。

根据本例的数据存放目录结构,需要获得程序的运行路径,可在主窗体testm的外面定义一个类,本例的类名为mv,如下所示。

namespace jsjtest

{

public partial class testm : Form

{

主窗体testm中的代码

}

定义一个窗体之间共用的变量mpath

public class mv

{

public static string mpath = Application.StartupPath; //获得程序的运行路径

}

}

在其他窗体内使用变量mpath的方法:

string connStr = "Provider = Microsoft.Jet.OleDB.4.0;Data Source=" + mv.mpath + "\\db\\dxjsj.mdb";

5. 具体设计:

(1)新建一个解决方案jsjtest.sln,将Form1窗体命名为testm,使用menuStrip控件建立菜单。需要引用using System.Data.OleDb;

(2)添加新窗体,命名为zsd,用于知识点的数据管理。设置窗体标题为“知识点设置”。

按图所示,在知识点窗体添加网格控件,文本框,命令按钮、标签等,其中

用于导航,label4显示记录号。设置网格的AutoSizeColumnMode属性为Fill,可调整列宽。

在知识点窗体也需要引用using System.Data.OleDb;

声明全局变量:

string connStr = "Provider = Microsoft.Jet.OleDB.4.0;Data Source=" + mv.mpath +

"\\db\\dxjsj.mdb";

OleDbConnection conn; // 连接对象

OleDbDataAdapter da ; // 适配器对象

DataSet ds = new DataSet(); // 数据集对象

BindingManagerBase bind; // 绑定管理对象

string strSql = "Select 题号,章号,章,标志From 知识点";

int sp;

编写一个显示当前页面的子过程:

private void getPage() // 获取当前页码

{

label4.Text = (bind.Position + 1) + "/" + bind.Count;

dataGridView1.Rows[bind.Position].Selected = true;

dataGridView1.CurrentCell = dataGridView1.Rows[bind.Position].Cells[0];//行头的小三角 dataGridView1.FirstDisplayedScrollingRowIndex = bind.Position;

}

在private void zsd_Load(object sender, EventArgs e)中完成数据连接和绑定:

conn = new OleDbConnection(connStr); // 创建一个数据连接

conn.Open();

da = new OleDbDataAdapter(strSql, conn); // 配置适配器

da.Fill(ds, "知识点"); // 填充ds对象

conn.Close();

bind = this.BindingContext[ds, "知识点"]; //导航绑定

dataGridView1.DataSource = ds.Tables["知识点"];; //网格绑定

dataGridView1.Columns[0].FillWeight = 10; //第1列的相对宽度为%

dataGridView1.Columns[1].FillWeight =15; //第2列的相对宽度为%

dataGridView1.Columns[2].FillWeight = 60; //第3列的相对宽度为%

dataGridView1.Columns[3].FillWeight = 15; //第4列的相对宽度为%

dataGridView1.Columns[0].HeaderText = "序号"; //给每列设置标头

dataGridView1.Columns[1].HeaderText = "章节编号";

dataGridView1.Columns[2].HeaderText = "章节标题";

dataGridView1.Columns[3].HeaderText = "章节标志";

dataGridView1.Rows[0].Selected=true ;

textBox1.DataBindings.Add(new Binding("Text", ds, "知识点.章号")); //文本框绑定

textBox2.DataBindings.Add(new Binding("Text", ds, "知识点.章"));

textBox3.DataBindings.Add(new Binding("Text", ds, "知识点.标志"));

if (ds.Tables["知识点"].Rows.Count == 0)

button5_Click(sender, e);

else

button1_Click(sender, e);

为导航添加代码:

private void button1_Click(object sender, EventArgs e)

{

bind.Position = 0; getPage();

}

private void button2_Click(object sender, EventArgs e)

相关文档
最新文档