priya dharshini

priya dharshini

  • NA
  • 11
  • 4.7k

error in coding by calculating the results of online exam

Feb 26 2015 12:33 AM
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Collections;
using System.Timers;
using System.Web.SessionState;
using System.IO;


namespace student_management.studpro
{
    public partial class WebForm3 : System.Web.UI.Page
    {
        int TotQus=0, ResultId = 100;
        static int count = 0;
        static int viewradio = 0;
        float sepmarks = 0.0f;
        static float marks = 0.0f, correct = 0.0f;
        int totalSeconds = 0, seconds = 60, minutes = 60, selectedcount = 0, originalcount = 0, crt = 0, wr = 0;

        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["aloproConnectionString"].ConnectionString);
        string selected=null,choose;
        string subject_name, Result = null, UserName = null;
        static String CrtAns = null, ChoiceType = null;
        //string constr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Administrator\\Documents\\alopro.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        DataTable dt;
        DataSet ds;
        SqlDataAdapter ad;
        static int rowindex = -1;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            subject_name = Request.QueryString["Subject_name"];
            String oldSelectedSubject = subject_name;
            UserName =(string)Session["UserName"];
            Session["Subject_name"] = oldSelectedSubject;

            string noofqns = "SELECT [Questions] FROM [testsettings]";
            SqlCommand cmd = new SqlCommand(noofqns, con);
            con.Open();
            TotQus = Convert.ToInt16(cmd.ExecuteScalar().ToString());
            ds = new DataSet();

            ad = new SqlDataAdapter("SELECT * FROM addsubject", con);
            ad.Fill(ds,"addsubject");
            dt = ds.Tables["addsubject"];
            con.Close();
            if (viewradio == 0)
            {
                RadioInvisible();
            }
            else
            {
                RadioVisible();
            }
            viewradio += 1;

            CheckBoxInvisible();
        }

        protected void Timer1_tick(object sender, EventArgs e)
        {

            Session["time"] = Convert.ToInt16(Session["time"]) - 1;
            if (Convert.ToInt16(Session["time"]) <= 0)
            {
                
                ButtonNext.Visible = false;
                RadioInvisible();
                ScriptManager.RegisterStartupScript(Page,typeof(Page),"OpenWindow","window.open('/studpro/uresults.aspx'?Marks="+marks+"');",true);
                string strscript="<script language=javascript>window.opener='';window.top.close();</script>";
                Page.RegisterStartupScript("clientScript",strscript);
               
           }
            else
            {
              
                totalSeconds = Convert.ToInt16(Session["time"]);
                seconds = totalSeconds % 60;
                minutes = totalSeconds / 60;
                clock.Text = minutes + ":" + seconds;

            }
        }
        public string SelectedAnswer()
        {
            if (RadioButton1.Checked)
            {
                return "A";
            }
            else if (RadioButton2.Checked)
            {
                return "B";
            }
            else if (RadioButton3.Checked)
            {
                return "C";
            }

            else if (RadioButton4.Checked)
            {
                return "D";
            }
            else
            {
                return "nothing";
            }
        }
        protected string ChooseAnswer()
        {
            if (CheckBox1.Checked)
            {
                choose = "A,";
            }
            if (CheckBox2.Checked)
            {
                choose += "B,";
            }
            if (CheckBox3.Checked)
            {
                choose += "C,";
            }
            if (CheckBox4.Checked)
            {
                choose += "D,";
            }
            return choose;
        }
        protected void RadioUncheck()
        {
            RadioButton1.Checked = false;
            RadioButton2.Checked = false;
            RadioButton3.Checked = false;
            RadioButton4.Checked = false;

        }
        protected void CheckBoxUncheck()
        {
            CheckBox1.Checked = false;
            CheckBox2.Checked = false;
            CheckBox3.Checked = false;
            CheckBox4.Checked = false;

        }

        protected void RadioInvisible()
        {
            RadioButton1.Visible = false;
            RadioButton2.Visible = false;
            RadioButton3.Visible = false;
            RadioButton4.Visible = false;

        }
        protected void RadioVisible()
        {
            RadioButton1.Visible = true;
            RadioButton2.Visible = true;
            RadioButton3.Visible = true;
            RadioButton4.Visible = true;

        }
        protected void CheckBoxVisible()
        {
            CheckBox1.Visible = true;
            CheckBox2.Visible = true;
            CheckBox3.Visible = true;
            CheckBox4.Visible = true;
        }

        protected void CheckBoxInvisible()
        {
            CheckBox1.Visible = false;
            CheckBox2.Visible = false;
            CheckBox3.Visible = false;
            CheckBox4.Visible = false;

        }

        protected void ButtonStart_Click(object sender, EventArgs e)
        {
            Response.Write("<script language='javascript'>alert('TimeStarts now');</script>");
            string query = "SELECT [Time] FROM [testsettings]";
            SqlCommand cmd = new SqlCommand(query, con);
            con.Open();
            int timeget = Convert.ToInt16(cmd.ExecuteScalar().ToString());
            totalSeconds = timeget * 60;
            Timer1.Enabled = true;
            Session["time"] = totalSeconds;
            rowindex = rowindex + 1;
            count = count + 1;
            try
            {
                if (rowindex < TotQus)
                {

                    ChoiceType = dt.Rows[rowindex]["ChooseAnswer"].ToString();
                    lblnoofquestions.Text = count.ToString() + "  of  " + TotQus;
                    lblQuestion.Text = dt.Rows[rowindex]["Questions"].ToString();
                    Option1.Text = dt.Rows[rowindex]["Answera"].ToString();
                    Option2.Text = dt.Rows[rowindex]["Answerb"].ToString();
                    Option3.Text = dt.Rows[rowindex]["Answerc"].ToString();
                    Option4.Text = dt.Rows[rowindex]["Answerd"].ToString();
                    CrtAns = dt.Rows[rowindex]["Correctans"].ToString();  
                    if(ChoiceType =="Single")
                    {

                        RadioVisible();
                        CheckBoxInvisible();
                }
                    
                    else
                    {
                        RadioInvisible();
                        CheckBoxVisible();
                        Report();
                    }
                }
                   else
                    {

                        ButtonNext.Visible = false;
                        RadioInvisible();
                        CheckBoxInvisible();
                        marks = (float)(((float)(correct) / (float)(TotQus)) * 100);
                        if (marks >= 50)
                        {
                            Result = "pass";
                        }
                        else
                        {
                            Result = "fail";
                        }
                        Report();
                        ScriptManager.RegisterStartupScript(Page, typeof(Page), "Openwindow", "window.open('studpro/uresults.aspx'?Marks=" + marks + "');", true);
                        string strscript = "<script language=javascript>window.opener='';window.top.close();</script>";
                        Page.RegisterStartupScript("clientScript", strscript);
                }
            }

            catch (IndexOutOfRangeException)
            {
                Response.Write("Questions Over");
            }
            finally
            {
                ButtonStart.Visible = false;
                ButtonNext.Visible = true;
                con.Close();
            }
        }

      protected void Report()
        {
            try
            {
                string InsQuery = "INSERT into results VALUES('" + ResultId.ToString() + "','" + UserName + "','" + subject_name + "','" + DateTime.Today + "','" + TotQus + "','" + marks + "','" + Result + "')";
                //con.Open();
                SqlCommand cmd2 = new SqlCommand(InsQuery, con);
                cmd2.ExecuteNonQuery();
            }

            catch (Exception ex)
            {
              
                Response.Write(ex);
                Response.Write("tryagain");
            }

            finally
            {
                //con.Close();
            }
        }

      protected void ButtonNext_Click(object sender, EventArgs e)
      {
          con.Open();
          count += 1;
          try
          {

              if (rowindex < TotQus)
              {
                  rowindex = rowindex + 1;
                  ChoiceType = dt.Rows[rowindex]["ChooseAnswer"].ToString();
                  lblnoofquestions.Text = count.ToString() + "  of  " + TotQus;
                  lblQuestion.Text = dt.Rows[rowindex]["Questions"].ToString();
                  Option1.Text = dt.Rows[rowindex]["Answera"].ToString();
                  Option2.Text = dt.Rows[rowindex]["Answerb"].ToString();
                  Option3.Text = dt.Rows[rowindex]["Answerc"].ToString();
                  Option4.Text = dt.Rows[rowindex]["Answerd"].ToString();
                  CrtAns = dt.Rows[rowindex]["Correctans"].ToString();

              }
          }
          catch (Exception)
          {
              Response.Write("<script language='javascript'>alert('Wait utill time over');</script>");

          }
          finally
          {

              if (ChoiceType == "Single")
              {
                  selected = SelectedAnswer();
                  if (CrtAns == selected)
                  {

                      correct = correct + 1;
                  }
              }
              else
              {
                  selected = ChooseAnswer();
                  string selectedn = selected.Remove(selected.Length - 1, 1);
                  ArrayList userSelected = new ArrayList();
                  ArrayList originalvalues = new ArrayList();
                  string[] originalAns = CrtAns.Split(',');
                  string[] myStr=selectedn.Split(',');

                  foreach (string original in originalAns)
                  {
                      originalvalues.Add(original);
                  }
                  foreach(string original in myStr )
                  {
                      userSelected.Add(original);
                  }
                  originalcount = originalvalues.Count;
                  float orgnct = (float)originalcount;
                  sepmarks = (1.0f) / orgnct;
                  correct = correct - 1;
                  if (selectedcount > originalcount)
                    {
                        crt = 0;
                        Response.Write(" Crt :" + crt);
                    }
                    else
                    {
                        Response.Write("empty");
                        for (int i = 0; i < selectedcount; i++)
                        {
                            if (originalvalues.Contains(userSelected[i]))
                            {
                                crt += 1;
                            }

                            else
                            {
                                wr += 1;
                            }

                        }
                    }
                    correct += (sepmarks * crt);
                    Response.Write(correct);
                }
              }
              RadioUncheck();
              CheckBoxUncheck();
              con.Close();
          }
      }

Answers (1)