C# 模拟多项选择题测试实例

多选按钮的应用----模拟多项选择题测试

设计思路        
为了简化问题,这里假设有3道选择题,使用一个一维数组ti_mu来存放每道题的题目,一个二维数组Item存放每道题的四个选项,使用一个通用方法chu_ti()修改标签上的文字和单选按钮旁的文字,完成出题功能。此外还需要使用一个数组成员变量s存放题号,当用户单击下一题时,令s=s+1。

设计步骤
(1)创建Windows应用程序项目,在窗体上添加一个分组框GroupBox(为了美观,Text属性为空)和一个标签label1,2个按钮button1,button2以及4个复选按钮CheckBox~4,如下所示:
                     C# 模拟多项选择题测试实例_第1张图片  
(2)编写程序代码,首先在Form1类成员代码区中,加入定义字段成员变量:
 private string[] ti_mu = new string[4]; //存放题目
        private string[,] Item = new string[4,5]; //存放ABCD
        private string[] Answer = new string[4]; //存放题目的答案如AC
        private int s;
出题部分由通用方法chu_ti()完成:
 private void chu_ti()
        {
            label1.Text = ti_mu[s];
            checkBox1.Text = Item[s, 1];
            checkBox2.Text = Item[s, 2];
            checkBox3.Text = Item[s, 3];
            checkBox4.Text = Item[s, 4];
        }
出题部分由通用方法chu_ti()完成:

 private void Form1_Load(object sender, EventArgs e)
        {
            ti_mu[1] = "下列关于构造函数的描述正确的是()";
            ti_mu[2] = "C#的合法注释是()";
            ti_mu[3] = "窗体Form1的Text属性为frm,则其load事件名为()";
            Item[1, 1] = "A.构造函数可以设置为默认参数";
            Item[1, 2] = "B.构造函数可以有多个参数";
            Item[1, 3] = "C.构造函数可以显示调用";
            Item[1, 4] = "D.构造函数不可以重载";
            Item[2, 1] = "A./*this is a C program/*";
            Item[2, 2] = "B.//this is a C program";
            Item[2, 3] = "C./this is a C program/";
            Item[2, 4] = "D./*this is a C program*/";
            Item[3, 1] = "A.From_Load";
            Item[3, 2] = "B.From1_Load";
            Item[3, 3] = "C.Frm_Load";
            Item[3, 4] = "D.Me_Load";
            Answer[1] = "AB";     //C正确
            Answer[2] ="BD";     //A正确
            Answer[3] = "B";    //B正确
            s = 1;
            chu_ti();
        }
编写“判断对错”按钮的Click事件代码:
 private void button1_Click(object sender, EventArgs e)
        {
            string d = "";
            if (checkBox1.Checked) d = d + "A";
            if (checkBox2.Checked) d = d + "B";
            if (checkBox3.Checked) d = d + "C";
            if (checkBox4.Checked) d = d + "D";
            if (d== Answer[s])
                MessageBox.Show("恭喜,你选对了");
            else
                MessageBox.Show("选择错误!");
        }
 编写“下一题”按钮的Click事件代码

 private void button2_Click(object sender, EventArgs e)
        {
            s = s + 1;
            //取消选中状态
            if (checkBox1.Checked) checkBox1.Checked = false;
            if (checkBox2.Checked) checkBox2.Checked = false;
            if (checkBox3.Checked) checkBox3.Checked = false;
            if (checkBox4.Checked) checkBox4.Checked = false;
            if (s > 3)
                MessageBox.Show("恭喜您,题目已经做完");
            else
                chu_ti();
        }
结果展示:
   C# 模拟多项选择题测试实例_第2张图片


你可能感兴趣的:(Others)