C# programlama dili ve SQL Server veritabanı kullanılarak kolay,orta ve zor kategorilerinde bulunan soru havuzundan 5 soruluk bilgi yarışması örneği için tıklayınız.
Örnek veritabanında sorular Kolay -Orta ve Zor olacak şekilde 3 kategoriye ayrılmıştır. Her kategoriye bir kaç soru yazılmıştır.
Veritabanı şeması aşağıdaki gibidir.
Program çalışmaya başladığında Yarışmayı başlat butonu ile yarışma başlamaktadır. Kullanıcıya toplam 5 soru rastgele kategorilerden sorulmaktadır. Kullanıcı soruya doğru cevap verirse 10 puan kazanmaktadır. Eğer cevap doğru ise buton yeşil, yanlış ise buton kırmızı renk olmaktadır.
Uygulama ile ilgili ekran görüntüleri aşağıdadır.
- Uygulama BaşlamaEkranı
Uyuglama 2 farklı sınıftan oluşmaktadır…
Uygulamanın Kodları:
Veritabaniislemleri.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
namespace bilgi_yarismasi
{
class veritabaniislemleri
{
SqlConnection conn = new SqlConnection(“Data Source=.\\SQLEXPRESS; Initial Catalog=bilgi_yarismasi; Integrated Security=true;”);
public void baglantiAc()
{
conn.Open();
}
public void baglantiKapat()
{
conn.Close();
}
public SqlDataReader bilgi(string sorgu)
{
SqlCommand cmd = new SqlCommand(sorgu, conn);
SqlDataReader rdr = cmd.ExecuteReader();
return rdr;
}
}
}
Form1.Cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Media;
namespace bilgi_yarismasi
{
public partial class Form1 : Form
{
int sayac = 0, puan = 0;
veritabaniislemleri dbase = new veritabaniislemleri();
public Form1()
{
InitializeComponent();
}
private void butonlarAktif()
{
foreach (Control nesne in this.Controls)
{
if (nesne is Button)
{
Button buton= (Button)nesne;
buton.Enabled = true;
buton.BackColor = SystemColors.Control;
}
}
}
private void butonlarPasif()
{
foreach (Control nesne in this.Controls)
{
if (nesne is Button)
{
Button buton = (Button)nesne;
buton.Enabled = false;
}
}
button5.Enabled = true;
}
public void sorugetir()
{
string[] sorutipi={“Kolay”,”Orta”,”Zor”};
Random rnd = new Random();
int sorutipisec = rnd.Next(0,2);
string secilensorutipi = sorutipi[sorutipisec].ToString();
dbase.baglantiAc();
sayac++;
string sorgu = “select * from “+secilensorutipi+” order by NEWID()”;
lblsoruno.Text = sayac.ToString();
SqlDataReader rdr = dbase.bilgi(sorgu);
while (rdr.Read())
{
textBox1.Text = rdr[“soru”].ToString();
button1.Text = rdr[“a”].ToString();
button2.Text = rdr[“b”].ToString();
button3.Text = rdr[“c”].ToString();
button4.Text = rdr[“d”].ToString();
lblcevap.Text = rdr[“dogruCevap”].ToString();
}
dbase.baglantiKapat();
}
private void button5_Click(object sender, EventArgs e)
{
butonlarAktif();
if (sayac >= 1) button5.Text = “Sonraki Soru”;
if (sayac >= 4) button5.Enabled = false;
sorugetir();
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == lblcevap.Text)
{
button1.BackColor = Color.Green;
puan += 10;
label2.Text =”PUAN :” + puan.ToString();
}
else
{ button1.BackColor = Color.Red; }
butonlarPasif();
if (sayac >= 5) button5.Enabled = false;
}
private void button2_Click(object sender, EventArgs e)
{
if (button2.Text == lblcevap.Text)
{
button2.BackColor = Color.Green;
puan += 10;
label2.Text = “PUAN :”+puan.ToString();
}
else
{ button2.BackColor = Color.Red; }
butonlarPasif();
if (sayac >= 5) button5.Enabled = false;
}
private void button6_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
if (button3.Text == lblcevap.Text)
{
button3.BackColor = Color.Green;
puan += 10;
label2.Text = “PUAN :” + puan.ToString();
}
else
{ button3.BackColor = Color.Red; }
butonlarPasif();
if (sayac >= 5) button5.Enabled = false;
}
private void button4_Click(object sender, EventArgs e)
{
if (button4.Text == lblcevap.Text)
{
button4.BackColor = Color.Green;
puan += 10;
label2.Text = “PUAN :” + puan.ToString();
}
else
{ button4.BackColor = Color.Red; }
butonlarPasif();
if (sayac >= 5) button5.Enabled = false;
}
}
}