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ı"); } }
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(); }
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; } }
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(); }