using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.VisualBasic;
namespace 学生孝题系统
{
    public partial class Exam_frm : Form
    {
      
        DateTime lastTime;
        sqlstuConnect con = new sqlstuConnect();
        DataSet ds;
        DataTable dt;
        DataRow dr;
        String strSql = "";
        int examNum = 50;
        CurrencyManager mypoint;
        char[] checkinfo = null;//记录用户选择信息
        int[] sum = null;
        string[] info;
        public Exam_frm()
        {
            InitializeComponent();
           
        }
        private void Exam_frm_Load(object sender, EventArgs e)
        {
            sum = new int[examNum];
            checkinfo = new char[examNum];
           // strSql = "select top 20 * from 试题 ";//order  by  rnd( -1*snumber+timer())";  //access 中的随机取数
            strSql = "select top 20 * from 试题 order  by  newid()";  //sqlServer中的随机取数            ds=  con.selectData(strSql, "examQution");
            dt = ds.Tables["examQution"];
            timer1.Enabled = true;
            lastTime = DateTime.Now.AddHours(2);
            //this.dataGridView1.DataSource = dt;
            mypoint = (CurrencyManager)BindingContext[dt];
            showQuession();
            //label
            //info = Longin_frm.stuinfo.Split('|');
            label2.Text = info[0].ToString().Trim();
            label6.Text = info[1].ToString().Trim();
            label4.Text = info[2].ToString().Trim();
            label8.Text = info[3].ToString().Trim();            leave_lb.Text= "剩余题数:20";
            for (int i = 0; i < examNum; i++)
            {
                checkedListBox1.Items.Add("第" + (i+1) + "题");
                leave_cb.Items.Add("第" + (i + 1) + "题");
                checkinfo[i] = 'e';
                sum[i] =0;
            }
            checkedListBox1.SelectedIndex = mypoint.Position;//默认位置为0
            
        }
        public void timer1_Tick(object sender, EventArgs e)
        {
            TimeSpan myts = lastTime - DateTime.Now;
            time_lab.Text = myts.Hours + ":" + myts.Minutes + ":" + myts.Seconds;
            if (myts.Equals(new TimeSpan(0,0,0)))
            {
                int tsum = 0;
                for (int i = 0; i < mypoint.Count; i++)
                {
                    tsum += sum[i];
                }
                timer1.Stop();
                string strSql = "update 学生报名表 set score=" + tsum + " where sno='" + info[0] + "'";
                if (con.updateDate(strSql) == true)
                {
                    MessageBox.Show("您本次考试" + tsum + "分加油哦!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Application.Exit();
                }
               
            }
            
        }        private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
           /* dt = ds.Tables[0];
            dr = dt.Rows[checkedListBox1.SelectedIndex];
            quesstion_tb.Text = dr[1].ToString();*/
            mypoint.Position = checkedListBox1.SelectedIndex;
            showQuession();
        }
        private void showQuession()
        {            dr = dt.Rows[mypoint.Position];//取行
            quesstion_tb.Text = dr[1].ToString();//取字段
            this.a_rab.Text = dr[2].ToString();
            this.b_rab.Text = dr[3].ToString();
            this.c_rab.Text = dr[4].ToString();
            this.d_rab.Text = dr[5].ToString();
            switch(checkinfo[mypoint.Position])
            {
                case 'a':
                         a_rab.Checked=true;
                         break;
                case 'b':
                         b_rab.Checked=true;
                         break;
                case 'c':
                        c_rab.Checked=true;
                         break;
                case 'd':
                        d_rab.Checked=true;
                         break;
                case 'e':
                        a_rab.Checked=false;
                        b_rab.Checked=false;
                        c_rab.Checked=false;
                        d_rab.Checked=false;
                        break;
           }
           this.Text = dr[6].ToString();
                 }
        private void next_btn_Click(object sender, EventArgs e)
        {
            if (mypoint.Position <mypoint.Count-1)
            {
                mypoint.Position++;
            }
            else
            {
                mypoint.Position = 0;
               
            } 
            showQuession();
            this.checkedListBox1.SelectedIndex = mypoint.Position;
        }        private void pre_btn_Click(object sender, EventArgs e)
        {
            if (mypoint.Position > 0)
            {
                mypoint.Position--;
            }
            else
            {
                mypoint.Position = examNum-1;
            }
            showQuession();
            this.checkedListBox1.SelectedIndex = mypoint.Position;
        }
        private void a_rab_CheckedChanged(object sender, EventArgs e)
        {
            this.Text = "";
            if (a_rab.Checked == true)
            {
                checkinfo[mypoint.Position] = 'a';
            }
            if (b_rab.Checked == true)
            {
                checkinfo[mypoint.Position] = 'b';
            }
            if (c_rab.Checked == true)
            {
                checkinfo[mypoint.Position] = 'c';            }
            if (d_rab.Checked == true)
            {
                checkinfo[mypoint.Position] = 'd';
            }
       
            if (dr[6].ToString().Equals(checkinfo[mypoint.Position].ToString().Trim()))
            {
                sum[mypoint.Position] =100/mypoint.Count;
            }
            else
            {
                sum[mypoint.Position] =0;
               
            }
            for (int i = 0; i < 20; i++)
            {
                
                this.Text +=sum[i].ToString();
                
            }
            leave_cb.Items.Clear();
            for (int i = 0; i < mypoint.Count; i++)
            {
                if ((checkinfo[i].ToString().Trim().Equals("e")))
                {
                    leave_cb.Items.Add("第" + (i + 1) + "题");
                    leave_lb.Text = "剩余题数:" + leave_cb.Items.Count;
                }
            }
        } 
        private void leave_cb_SelectedIndexChanged(object sender, EventArgs e)
        {
            checkedListBox1.Focus();
            checkedListBox1.SelectedItem = leave_cb.SelectedItem.ToString();
            mypoint.Position = checkedListBox1.SelectedIndex;
            showQuession();
        }
        private void cofirm_btn_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("您确定要结束答题吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.Yes)
            { 
                int tsum = 0;                 for (int i = 0; i < mypoint.Count; i++)
                 {
                     tsum += sum[i];
                 }
                string strSql = "update 学生报名表 set score=" + tsum + " where sno='" + info[0] + "'";
                if (con.updateDate(strSql) == true)
                { 
                        MessageBox.Show("您本次考试" + tsum + "分加油哦!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Application.Exit();
                }
               
            }
           
          
        }
       
    }
}