⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proctparinfo.cs

📁 程序设计语言上机考试系统
💻 CS
📖 第 1 页 / 共 4 页
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Net;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using Word;
using Font=System.Drawing.Font;

namespace WindowsApplication1
{
    public partial class ProctParInfo : Form
    {
        SqlConnection cn = new SqlConnection("SERVER=(local);UID=sa;PWD=sa;Trusted_Connection=True;DATABASE=test1");
        baseclass.BaseOperate boperate = new baseclass.BaseOperate();
        baseclass.OperateAndValidate opAndvalidate = new baseclass.OperateAndValidate();
        //操作选择题的sql语句
        protected string M_str_sql = "select id as 编号,types as 试题类型,title as 试题,"
            + "selecta as 选项A,selectb as 选项B,selectc as 选项C,selectd as 选项D,"
            + "answer as 试题答案,quotiety as 难度系数 from choose order by id";
        //操作判断题的sql语句
        protected string M_str_sql1 = "select id as 编号,types as 试题类型,title as 试题,"
            + "answer as 试题答案,quotiety as 难度系数 from panduan order by id";
        //操作程序题的sql语句
        protected string M_str_sql2 = "select id as 编号,types as 试题类型,title as 试题,answer as 参考答案,quotiety as 难度系数 from program order by id";
        protected string M_str_table = "choose";
        protected string M_str_table1 = "panduan";
        protected string M_str_table2 = "program";
        //dataGridView表中的数据是不是外部导入的
        bool ifnew = false;
        
        bool edit = false;  //dataGridView是否可以编辑
        string radiop = ""; //记录radiobutton选中的答案是“对”还是“错”
        
        //表明选中的选项卡
        bool choose = false;
        bool panduan = false;
        bool program  = false;
        bool[] ifadd = new bool[10]; //标记该题是否已经被添加到数据库中


        public ProctParInfo()
        {
            InitializeComponent();
        }

        private void ProctParInfo_Load(object sender, EventArgs e)
        {
            //Form初始化choose标签为选中状态
            choose = true;
            program = false;
            panduan = false;
            //加载选择题试题表
            DataSet myds = boperate.getds(M_str_sql, M_str_table);
            dataGridView1.DataSource = myds.Tables[0];
            labCnum.Text = dataGridView1.Rows.Count.ToString();
            //如果表为空,删除按钮不可用
            if (myds.Tables[0].Rows.Count > 0)
                btnCDelete.Enabled = true;
            else
                btnCDelete.Enabled = false;

        }
        #region 显示选中的选择题信息
        /// <显示>
        /// 显示选中的选择题信息
        /// </显示>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCDisplay_Click(object sender, EventArgs e)
        {
            //如果为7列,则GV表中的数据是从excel导入的
            if (dataGridView1.ColumnCount == 7)
            {
                edit = true;
                richChoose.Text = Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseA.Text = Convert.ToString(dataGridView1[1, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseB.Text = Convert.ToString(dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseC.Text = Convert.ToString(dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseD.Text = Convert.ToString(dataGridView1[4, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                comboBoxAnswer.Text = Convert.ToString(dataGridView1[5, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                txtnandu.Text = Convert.ToString(dataGridView1[6, dataGridView1.CurrentCell.RowIndex].Value).Trim();
            }
            else
            {
                edit = true;
                richChoose.Text = Convert.ToString(dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseA.Text = Convert.ToString(dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseB.Text = Convert.ToString(dataGridView1[4, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseC.Text = Convert.ToString(dataGridView1[5, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                richChooseD.Text = Convert.ToString(dataGridView1[6, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                comboBoxAnswer.Text = Convert.ToString(dataGridView1[7, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                txtnandu.Text = Convert.ToString(dataGridView1[8, dataGridView1.CurrentCell.RowIndex].Value).Trim();
                txtnum.Text = Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim();
            }
        }
        #endregion

        #region 添加选择题
        /// <添加>
        /// 添加
        /// </添加>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCAdd_Click(object sender, EventArgs e)
        {
            //判断是否填写所有信息
            if (richChoose.Text.Trim() == "" || richChooseA.Text.Trim() == "" || richChooseB.Text.Trim() == "" || richChooseC.Text.Trim() == "" || richChooseD.Text.Trim() == "" || comboBoxAnswer.Text.Trim() == "" || txtnandu.Text.Trim() == "")
                MessageBox.Show("请填写完整的试题", "提示");
            else
            {
                //将试题中的"'"转义为"''"
                string[] richchoose = new string[5];
                richchoose = changeC(richChoose, richChooseA, richChooseB, richChooseC, richChooseD);
                //自动生成编号,存放在txtnum中
                opAndvalidate.autoNum("select id from choose", "choose", "id", "A", "1000001", txtnum);
                //添加选择题信息
                boperate.getcom("insert into choose(id,types,title,selecta,selectb,selectc,selectd,"
                                + "answer,quotiety) values('" + txtnum.Text.ToString().Trim() + "','" + "A" + "','"
                                + richchoose[0] + "','" + richchoose[1] + "','" + richchoose[2] + "','"
                                + richchoose[3] + "','" + richchoose[4] + "','"
                                + comboBoxAnswer.Text.Trim() + "','" + txtnandu.Text.Trim() + "')");
                //加载选择题表
                ProctParInfo_Load(sender, e);
                MessageBox.Show("试题信息添加成功", "提示");
                //添加完成后清空文本框
                clear();
            }
        }
        #endregion 
        
        #region 将选择题字符串中的 ' 转义
        public string[] changeC(RichTextBox r1,RichTextBox r2,RichTextBox r3,RichTextBox r4,RichTextBox r5)
        {
            string[] chooseC = new  string[5];
            chooseC[0] = r1.Text.Trim().Replace("'", "''");
            chooseC[1] = r2.Text.Trim().Replace("'", "''");
            chooseC[2] = r3.Text.Trim().Replace("'", "''");
            chooseC[3] = r4.Text.Trim().Replace("'", "''");
            chooseC[4] = r5.Text.Trim().Replace("'", "''");
            return chooseC;
        }
        #endregion

        #region 清空选择题标签中的输入项
        private void clear()
        {
            richChoose.Clear();
            richChooseA.Clear();
            richChooseB.Clear();
            richChooseC.Clear();
            richChooseD.Clear();
        }
        #endregion

        #region 删除选择题信息
        /// <summary>
        /// 删除试题信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("确定要删除吗?", "删除确定", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    //删除选择题
                    boperate.getcom("delete from choose where id='" + Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim() + "'");
                    ProctParInfo_Load(sender, e);
                    MessageBox.Show("删除数据成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
            }
        }
        #endregion 
        
        #region 双击gv表格,显示相应试题
        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            btnCDisplay_Click(sender, e);
        }
        #endregion
        
        #region 更新选择题
        private void btnCUpdata_Click(object sender, EventArgs e)
        {
            //如果edit为true,gV中的信息是从excel中导入的,允许修改
            if (edit)
            {
                try
                {
                    if (MessageBox.Show("确定要修改吗?", "确定", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        //将"'"转义为"''"
                        string[] richchoose = new string[5];
                        richchoose = changeC(richChoose, richChooseA, richChooseB, richChooseC, richChooseD);
                
                        boperate.getcom("update choose set title='" + richchoose[0] + "',selecta='" + richchoose[1] + "',selectb='" + richchoose[2] + "',selectc='" +richchoose[3] + "',selectd='" + richchoose[4] + "',answer='" + comboBoxAnswer.Text.Trim() + "',quotiety='" + txtnandu.Text.Trim() + "' where id='" + txtnum.Text.Trim() + "'");
                        ProctParInfo_Load(sender, e);
                        MessageBox.Show("数据更新成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        clear();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                }
            }
        }
        #endregion

        #region 点击判断题标签
        private void tabPanduan_Click(object sender, EventArgs e)
        {
            choose = false;
            program = false;
            panduan = true;
            if (!ifnew)
            {
                DataSet myds = boperate.getds(M_str_sql1, M_str_table1);
                dataGridView2.DataSource = myds.Tables[0];
                //如果表为空,自动增加一行内容
                if (myds.Tables[0].Rows.Count <= 0)
                {
                    dataGridView2.AllowUserToAddRows = true;
                }
                labPannum.Text = dataGridView2.Rows.Count.ToString();
                if (myds.Tables[0].Rows.Count > 0)
                    btnPDelete.Enabled = true;
                else
                    btnPDelete.Enabled = false;
            }
        }
        #endregion

        #region 显示判断题
        private void btnPDisplay_Click(object sender, EventArgs e)
        {
            //ColumnCount == 3,试题是从excel导入的

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -