Anadolu Üniversitesi Açık Öğretim Fakülte öğrencisini daha çok ilgilendiren bir program ile merhaba. Hali hazırda Aöf Vize-Final not hesaplama programını buradan indirebilirsiniz.
Aöf vize-final not sistemi; 100 üzerinden alınan puanın, vizenin %30’u ile finalin %70′ nin toplamı 50 puanı geçmek koşulu ile dersden geçilebilmekte. Bundan dolayı uygulamamız vize notu olarak girilen değeri %30’unu alarak finalden alman gereken minimum not ve doğru cevaplanması gereken soru miktarını vermekte.
Kullanıcı tarafını atlattıktan sonra yazılımcı tarafından devam edelim. Bu mini not hesaplama uygulamasını C sharp ile yapabilmek için bir adet textbox, 3 adet buton, tasarımı biraz görselleştirmek için ise 2-3 adet timer. Form tasarımını resimdeki veya uygulamayı indirerek benzerini yaptıktan sonra kod kısmına geçebiliriz;
[cc lang=”c#”] private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
dogru.Enabled = false;
puan.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
try
{
double vize;
vize = Convert.ToDouble(textBox1.Text);
double sonuc;
double soru;
if (vize <= 100)
{
sonuc = Math.Floor((50 - vize * 0.3) / 0.7); // sonucu yuvarlamak için math.floor ve math celling fonksiyonunu kullandık
soru = Math.Ceiling(sonuc / 3.3);
label2.Text = sonuc.ToString();
label3.Text = soru.ToString();
dogru.Enabled = true;
puan.Enabled = true;
}
else
{
MessageBox.Show("Hata!!! Lütfen Geçerli Bir Not Giriniz...");
textBox1.Clear();
label2.Text = "--";
label3.Text = "--";
dogru.Enabled = false;
puan.Enabled = false;
}
}
catch
{
MessageBox.Show("Hata!!! \n\nLütfen Notunuzu Rakamsal Değer ile Girin\n\nÖrnek: \" 65 \" gibi... ");
textBox1.Clear();
}
}
private void button2_Click(object sender, EventArgs e)
{
timer2.Enabled = true;
textBox1.Clear();
label2.Text = "--";
label3.Text = "--";
dogru.Enabled = false;
puan.Enabled = false;
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit(); //programdan çık
}
private void timer1_Tick(object sender, EventArgs e)
{
Opacity += 0.10;
this.Opacity = Opacity;
if (Opacity > 1.0)
{
timer1.Enabled = false;
}
}
private void timer2_Tick(object sender, EventArgs e)
{
if (timer2.Interval<101)
{
timer2.Interval+=20;
int c = 0;
Random r = new Random();
Point l = this.Location;
while (c < 50)
{
int sag = r.Next(1, 5);
int sol = r.Next(1, 5);
this.Location = new Point(l.X + sag, l.Y + sol);
c++;
}
this.Location = l;
}
else
{
timer2.Enabled = false; // timer2 durdu
timer2.Interval = 10;
}
}[/cc]
Burada Math.Floor ve fonksiyonları ile alınan notu daha doğru yazdırabilmek için çıkan sonucu yuvarladık. Uygulama sonuç olarak button1_Click içerisinde yapılan kodlamalardan ibaret. Diğerleri opsiyonel olarak yapılmış görsel özellikleri.(formun yavaş yavaş açılması, form titremesi, temizleme vs.)