Пример #1
0
        private void WriteResultstoDB()
        {
            int QuizID = GetLastExamID();

            if (QuizID > 0)
            {
                QuizID++;
            }
            else
            {
                QuizID = 1;
            }


            DateTime    time           = DateTime.Now;          // Use current time
            string      format         = "yyyy-MM-dd HH:mm:ss"; // modify the format depending upon input required in the column in database
            string      resultAddQuery = "";
            ICollection keys           = g_HtCats.Keys;

            foreach (String k in keys)
            {
                QuestionCats Kategoriler = (QuestionCats)g_HtCats[k];
                decimal      dogru       = Convert.ToDecimal(Kategoriler.m_DogruSayisi);
                decimal      yanlis      = Convert.ToDecimal(Kategoriler.m_YanlisSayisi);

                int    toplamSoru = Kategoriler.m_DogruSayisi + Kategoriler.m_YanlisSayisi;
                string rate       = "";
                try
                {
                    rate = (dogru / yanlis).ToString();
                }
                catch (Exception)
                {
                    rate = "0";//0 bölü 0
                }
                //user id olacak
                //EXECUTALTER PROCEDURE [dbo].[SinavSonucuEkle] (@m_ExamID int,@m_catID int,@m_UserID int,@m_rate float,@m_date date,@m_SoruSayisi int,@m_Yanlis_Sayisi int)

                resultAddQuery += "EXECUTE SinavSonucuEkle " + QuizID.ToString() + "," + k + "," + g_OgrID.ToString() + "," + rate + ",'" + time.ToString(format) + "'," + toplamSoru + "," + Kategoriler.m_YanlisSayisi + " ;";

                //Create Procedure AddtoTotalResults (@m_UserID int ,@m_catID int,@m_SoruSayisi int,@m_Yanlis_Sayisi int)

                resultAddQuery += " EXECUTE AddtoTotalResults " + g_OgrID.ToString() + "," + k + "," + toplamSoru + "," + Kategoriler.m_YanlisSayisi + "; ";
            }

            try
            {
                con.Open();
                cmd.Connection  = con;
                cmd.CommandText = resultAddQuery;
                dr = cmd.ExecuteReader();

                con.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("İstatistik yazma hatası");
            }
        }
Пример #2
0
        private void FinishExam()
        {
            int    soruid      = 1;
            string QuestNumber = "Soru " + soruid++.ToString();

            for (int i = 0; i < 50; i++)
            {
                try
                {
                    QuestNumber = "Soru " + soruid++.ToString();
                    Question Soru = (Question)g_HtSorular[QuestNumber];

                    if (trueAnswers[i] == optionSelected[i])
                    {
                        QuestionCats Kategoriler = (QuestionCats)g_HtCats[Soru.m_catID.ToString()];
                        g_HtCats.Remove(Soru.m_catID.ToString());
                        Kategoriler.m_YanlisSayisi--;
                        Kategoriler.m_DogruSayisi++;

                        g_HtCats.Add(Soru.m_catID.ToString(), Kategoriler);
                    }
                }
                catch (Exception ex)
                { break; }
            }



            WriteResultstoDB();


            this.Hide();

            frmOgrenciTestResult frmNew = new frmOgrenciTestResult(g_HtCats);

            frmNew.ShowDialog();
            this.Close();
        }
Пример #3
0
        private void frmOgrenciTestResult_Load(object sender, EventArgs e)
        {
            chartResults.ChartAreas[0].AxisY.Maximum = 100;
            chartResults.ChartAreas[0].AxisY.Minimum = 0;

            GetKategoriNames();
            int index = 0;

            ICollection keys = g_catResults.Keys;

            decimal[] rates = new decimal[g_catResults.Count];

            foreach (String k in keys)
            {
                QuestionCats Kategoriler = (QuestionCats)g_catResults[k];
                decimal      dogru       = Convert.ToDecimal(Kategoriler.m_DogruSayisi);
                decimal      yanlis      = Convert.ToDecimal(Kategoriler.m_YanlisSayisi);

                int toplamSoru = Kategoriler.m_DogruSayisi + Kategoriler.m_YanlisSayisi;
                try
                {
                    rates[index] = Convert.ToDecimal(dogru / yanlis);
                    rates[index] = rates[index] * 100;
                }
                catch (Exception)
                {
                    rates[index] = 0;//0 bölü 0
                }


                chartResults.Series["Başarı yüzdeniz"].Points.Add(Convert.ToDouble(rates[index++]));
                chartResults.Series["Başarı yüzdeniz"].Points[index - 1].AxisLabel = (string)g_catNames[k];

                chartResults.ChartAreas[0].AxisX.LabelStyle.Angle = -70;
            }
        }
Пример #4
0
        private void LoadQuestions()
        {
            con.Open();
            cmd.Connection  = con;
            cmd.CommandText = "EXECUTE GetQuestsForUser " + g_OgrID.ToString();;
            dr = cmd.ExecuteReader();
            g_HtSorular.Clear();
            int soruid = 1;

            g_HtCats.Clear();
            while (dr.Read())
            {
                Question Quest = new Question();
                Quest.m_Id    = Convert.ToInt16(dr[0]);
                Quest.m_Quest = dr[1].ToString();
                Quest.m_catID = Convert.ToInt16(dr[3]);


                //hash de var mı
                if (g_HtCats.ContainsKey(Quest.m_catID.ToString()))
                {
                    QuestionCats Kategoriler = (QuestionCats)g_HtCats[Quest.m_catID.ToString()];
                    g_HtCats.Remove(Quest.m_catID.ToString());
                    Kategoriler.m_YanlisSayisi++;
                    g_HtCats.Add(Quest.m_catID.ToString(), Kategoriler);
                }
                else
                {
                    g_CatSum++;
                    QuestionCats Kategoriler = new QuestionCats();
                    Kategoriler.m_YanlisSayisi++;
                    g_HtCats.Add(Quest.m_catID.ToString(), Kategoriler);
                }                //hash de yoksa



                int[] randArr = new int[4];
                randArr[0] = 1;
                randArr[1] = 1;
                randArr[2] = 1;
                randArr[3] = 1;

                Random rastgele = new Random();
                int    i        = 0;


                while (i < 4)
                {
                    int sayi = rastgele.Next(4, 8);
                    if (randArr.Contains(sayi))
                    {
                        continue;
                    }
                    randArr[i] = sayi;
                    i++;
                }
                trueAnswers[soruid - 1]       = dr[4].ToString();;
                Quest.m_Answers.m_OptionOne   = dr[randArr[0]].ToString();
                Quest.m_Answers.m_OptionTwo   = dr[randArr[1]].ToString();
                Quest.m_Answers.m_OptionThree = dr[randArr[2]].ToString();
                Quest.m_Answers.m_OptionFour  = dr[randArr[3]].ToString();
                string QuestNumber = "Soru " + soruid++.ToString();
                if (dr[8].ToString() != "-")
                {
                    Quest.m_ImagePath = dr[8].ToString();
                }
                g_HtSorular.Add(QuestNumber, Quest);
            }

            con.Close();
        }