 NotMatiKS, Kırgızistan Türkiye
Manas Üniversitesi hazırlık sınıflarında yabancılara Kırgızca, Türkçe, Rusça,
İngilizce vb. dillerin öğretiminde kullanılan sistem üzerine hazırlanmış bir
programcık…
Burada sadece programı değil
programın çok basit fakat programlama - C# (Si Sharp) -öğrenenler için faydalı
olacağını düşündüğüm kodlarını da yayınlayacağım için sınav sistemi hakkında
kısaca bilgi vereyim…
Manas Üniversitesi hazırlık
sınıflarında okuyan öğrencilerin 1. sınıfa geçebilmeleri için 1 eğitim öğretim
yılı (iki dönem) içerisinde 4 vize ve 1 final sınavına girmeleri gerekmektedir.
Ayrıca bu sınavların her biri Okuma Anlama (17/25), Dinleme Anlama (17/25), Yazılı anlatım (17/25), Sözlü Anlatım (6/10), Karşılıklı Konuşma (10/15) gibi bölümlerden oluşmaktadır ve
toplam not 100 puandır.
Yukarıdaki 5 bölüm her vize ve
finalde uygulanmaktadır, fakat bu bölümlerden kalma geçme olayı sadece final
sınavı için geçerlidir. Yukarıda parantez içlerinde belirtilen notlar en az
alınması gereken notları ve alınabilecek en fazla notları göstermektedir.
Vizelerde öğrencilerin bu asgari notları alıp almadıkları önemli değildir ancak
bir öğrenci final sınavında kesinlikle yukarıda belirtilen bölümlerin
tamamından gerekli olan asgari notu almak zorundadır ve aynı zamanda yıl sonu
ortalaması da 67’nin üzerinde olmalıdır.
Öğrenci finalde alması gereken
asgari notları alamadıysa veya asgari notları aldı fakat yılsonu ortalaması 67
veya üzeri değilse bütünleme sınavına girer. Bu sınavlar sonunda vize notları
ortalamalarının %’de 40’ı ile final veya bütünleme notlarının %’de 60’ı
toplanarak yılsonu ortalaması hesaplanır…

Gelelim program üzerinde
uygulanan kısma;
Program iki bölümden oluşuyor:
1. Bölümde vize notları girilerek
yılsonunda geçebilmek için “final
sınavından en az kaç almak gerektiği” gösteriliyor.
2. Bölümde ise vize ve final
notları girilerek “yılsonu ortalaması ve
geçip kalma durumu” belirtiliyor…
*** Finalden alınması gereken not
hesaplaması; vizelerden alınan notlar
hesaplanarak finalde kaç aldığı takdirde yılsonu ortalaması 67 olur fonksiyonu üzerinden yapılıyor.
*** Yılsonu ortalaması ise vize notları ortalamalarının %’de 40’ı, final
veya bütünleme notunun %’de 60’ı alınarak
yapılıyor.
Ayrıca küsuratlı durumlar en
yakın olduğu sayıya yuvarlanmaktadır. Örnek olarak öğrencinin ortalaması 70,20
ise 70 olarak, 70,60 ise 71 olarak hesaplanıyor.
Kısaca üniversitemizde hazırlık
sınıflarında uygulanan sistem ve öğrencilerin notlarını hesaplayabilmeleri için
hazırladığım bu programcık hakkında yazabileceklerim bunlar…
Faydalı olması dileğiyle…
Aşağıdaki bağlantıları kullanarak
programı indirebilir, kodlarını inceleyebilirsiniz…
NotMatiKS – Programın kodları - C Sharp…
Gerekli yerlerde kod içerisinde açıklamalar yaptım...
using System;
using System.Windows.Forms;
using System.Drawing;
namespace FinalNotHesapla
{
public partial
class NotMatiKS : Form
{
public
NotMatiKS()
{
InitializeComponent();
}
private void button1_Click(object sender,
EventArgs e)
{
try
{
if
(tb1vize.Text.Trim() == string.Empty ||
tb2vize.Text.Trim() == string.Empty ||
tb3vize.Text.Trim() == string.Empty ||
tb4vize.Text.Trim() == string.Empty)
{
MessageBox.Show("Vize not alanlarını eksiksiz doldurunuz! \n Boş
alan bırakmadığınızdan emin olun!");
return; //işlemi sona erdir.
} //Vize alanlarından biri boşsa uyarı
veriyor...
Double
vize1, vize2, vize3, vize4;
Double
vizetoplam;
Double
finalalinmasigerekennot;
string sonuc;
vize1
= Convert.ToInt32(tb1vize.Text);
vize2
= Convert.ToInt32(tb2vize.Text);
vize3
= Convert.ToInt32(tb3vize.Text);
vize4
= Convert.ToInt32(tb4vize.Text);
//Textboxlardan girilen sayılar int
formatına dönüştürülüyor...
//Çünkü matematiksel işlem yapabilmek için gereklidir...
//ayrıca girilen sayı eğer virgüllü olursa Int'e dönüştürülemeyeceği
için uyarı veriyor...
if (vize1 > 100 || vize1 < 0
||
vize2 > 100 || vize2 < 0 ||
vize3 > 100 || vize3 < 0 ||
vize4 > 100 || vize4 < 0)
{
MessageBox.Show("Vize notları 100'den büyük 0'dan küçük
olamaz");
return; //işlemi sona erdir.
} //Vize notları 100'den büyük 0'dan küçük ise
uyarı veriyor...
if
(vize1 + vize2 + vize3 + vize4 < 70)
{
aciklamaalani.Text = "Daha çok çalışmanız gerekiyordu!!! \n Finale
girebilmek için vizelerinizin toplamı en az 70 olmalıdır...\n Final
notlarınızın toplamı 70'ten az olduğu için final sınavına girip 100 bile
alsanız geçme şansınız olmayacaktır...";
return; //işlemi sona erdir.
}
vizetoplam = (vize1 + vize2 + vize3 + vize4);
//vize
notları toplanıyor
finalalinmasigerekennot = ((670 - vizetoplam) / 6);
//670'ten vize notları toplamı
çıkarılıyor ve kalan sayı 6'ya bölünüyor..
//Bu
şekilde finalden alınması gereken not ortaya çıkıyor...
sonuc
= finalalinmasigerekennot.ToString("N0");
//N0,
N1, N2, F0, F1, F2 virgüllü sonuçlarda yuvarlama işlemi için kullanılıyor..
if
(finalalinmasigerekennot > 66)
{
tbfinal.Text = (sonuc);
}
if
(finalalinmasigerekennot <= 66)
{
tbfinal.Text = "67";
aciklamaalani.Text = "Tebrikler... \nVize notlarınız yüksek olduğu
için; Finalde Okuma Anlama, Dinleme Anlama, Yazılı Anlatım, Sözlü Anlatım ve
Karşılıklı Konuşma kriterlerinden asgari notları almanız yeterli
olacaktır...";
}
}
catch
(Exception)
{
MessageBox.Show ("Vize alanlarına sadece tam sayı
girmelisiniz...");
}
}
private void
button2_Click(object sender, EventArgs e)
{
tb1vize.Clear();
tb2vize.Clear();
tb3vize.Clear();
tb4vize.Clear();
tbfinal.Clear();
aciklamaalani.Clear();
//Temizle
butonu tıklandığında yukarıda belirtilen textboxlar temizlenir...
}
//Vize ve
Final notları girilerek yılsonu ortalaması alma işlemi buradan başlıyor...
private void
btyilsonuhesapla_Click(object sender, EventArgs e)
{
try
{
if
(tbvize1.Text.Trim() == string.Empty ||
tbvize2.Text.Trim() == string.Empty ||
tbvize3.Text.Trim() == string.Empty ||
tbvize4.Text.Trim() == string.Empty ||
tbfinalnotu.Text.Trim() == string.Empty)
{
MessageBox.Show("Vize ve Final not alanlarını eksiksiz doldurunuz!
\n Boş alan bırakmadığınızdan emin olun!");
return; //işlemi sona erdir.
} //Vize veya final alanlarından biri boşsa
uyarı veriyor...
Double
vize1, vize2, vize3, vize4, finalnotu;
Double
vizetoplam;
Double
ortalama;
string
sonuc;
int
sonuctamsayi;
vize1
= Convert.ToInt32(tbvize1.Text);
vize2
= Convert.ToInt32(tbvize2.Text);
vize3
= Convert.ToInt32(tbvize3.Text);
vize4 =
Convert.ToInt32(tbvize4.Text);
finalnotu = Convert.ToInt32(tbfinalnotu.Text);
//Yukarıda
vize1 = Convert.ToDouble(tbvize1.Text); yapsaydım textboxlara virgüllü sayı
girilebilirdi...
//Çünkü
virgüllü sayılar Double'a dönüştürülebilirdi...
if
(vize1 > 100 || vize1 < 0 ||
vize2 > 100 || vize2 < 0 ||
vize3 > 100 || vize3 < 0 ||
vize4 > 100 || vize4 < 0 ||
finalnotu > 100 || finalnotu < 0)
{
MessageBox.Show("Vize ve Final notları 100'den büyük 0'dan küçük
olamaz");
return; //işlemi sona erdir.
} //Notlar 100'den büyük 0'dan küçük olursa
uyarı veriyor...
vizetoplam = (vize1 + vize2 + vize3 + vize4);
ortalama = (vizetoplam / 10) + (finalnotu * 3 / 5);
//sonuc = Convert.ToString(ortalama);
sonuc
= ortalama.ToString("N0");
//F0,
F1, F2, N0, N1, N2 virgüllü sonuçlarda yuvarlama işlemi için kullanılıyor..
//aynı
zamanda sonuç stringe dönüştürüldü...
tbyilsonu.Text = (sonuc);
sonuctamsayi =
Convert.ToInt32(sonuc);
if
(sonuctamsayi >= 67 && finalnotu >= 67)
{
tbdurumunuz.Text = "Geçtiniz";
tbdurumunuz.ForeColor = Color.Blue;
}
else
{
tbdurumunuz.ForeColor = Color.Red;
tbdurumunuz.Text = "Kaldınız";
}
}
catch
(Exception)
{
MessageBox.Show("Vize
alanlarına sadece tam sayı girmelisiniz...");
}
}
private void
btyilsonutemizle_Click(object sender, EventArgs e)
{
tbvize1.Clear();
tbvize2.Clear();
tbvize3.Clear();
tbvize4.Clear();
tbfinalnotu.Clear();
tbyilsonu.Clear();
tbdurumunuz.Clear();
}
private void
linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
linkLabel1.LinkVisited = true;
System.Diagnostics.Process.Start("http://www.kerimsarigul.com");
}
}
}
***Bu yazı 1834 defa okunmustur.*** |
Yorumlar
RSS beslemesi, bu iletideki yorumlar için.