Görsel Programlama (Güz-2016) Hafta-12-1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
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.IO; namespace ornek1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); dosyaoku(); // isim listesi okunacak lagecen.Text = "Geçen: 0"; lakalan.Text = "Kalan: 0"; } ListBox logrno1 = new ListBox(); private void dosyaoku() { try { string[] satirlar = File.ReadAllLines("ogrenciler.txt"); string[] ayrac = { ";" }; for (int i = 0; i < satirlar.Length; i++) { string[] satir = satirlar[i].Split(ayrac,StringSplitOptions.None); if (satir.Length == 2 && satir[0].Length > 7 && satir[1].Length > 0) { cadsoyad.Items.Add(satir[1]); logrno1.Items.Add(satir[0]); } } } catch { MessageBox.Show("Dosya Okunamadı!"); } cadsoyad.Text = "Seçiniz"; } ListBox lsharf = new ListBox(); ListBox lsaltsinir = new ListBox(); private void bnotlandirma_Click(object sender, EventArgs e) { fnotlandirma frm = new fnotlandirma(lsharf,lsaltsinir); frm.ShowDialog(); harfhesapla(); } private void bekle_Click(object sender, EventArgs e) { int vize, final; bool k1 = Int32.TryParse(tvize.Text, out vize); bool k2 = Int32.TryParse(tfinal.Text, out final); int secilen = cadsoyad.SelectedIndex; if (k1 && k2 && secilen > -1) { logrno.Items.Add(logrno1.Items[secilen]); ladsoyad.Items.Add(cadsoyad.Items[secilen]); //cadsoyad.Text; lvize.Items.Add(vize); lfinal.Items.Add(final); int ort = (int) Math.Round(vize * 0.4 + final * 0.6); lortalama.Items.Add(ort); lharf.Items.Add("-"); cadsoyad.Text = ""; tvize.Clear(); tfinal.Clear(); harfhesapla(); } } private void bsil_Click(object sender, EventArgs e) { int secilen = logrno.SelectedIndex; if (secilen > -1) { logrno.Items.RemoveAt(secilen); ladsoyad.Items.RemoveAt(secilen); lvize.Items.RemoveAt(secilen); lfinal.Items.RemoveAt(secilen); lortalama.Items.RemoveAt(secilen); lharf.Items.RemoveAt(secilen); } } private void harfhesapla() { int gecen = 0; int kalan = 0; for (int i = 0; i < lortalama.Items.Count; i++) { int ort = (int) lortalama.Items[i]; if (ort >=(int) lsaltsinir.Items[4]) // CC dosyada 4. indis gecen++; else kalan++; string harf = "FF"; for (int j = 0; j < lsaltsinir.Items.Count; j++) { if (ort >= (int)lsaltsinir.Items[j]) { harf = lsharf.Items[j].ToString(); break; } } lharf.Items[i] = harf; // guncelleme } lagecen.Text = "Geçen: " + gecen; lakalan.Text = "Kalan: " + kalan; } private void bdyaz_Click(object sender, EventArgs e) { string yazilacak = ""; for (int i = 0; i < logrno.Items.Count; i++) yazilacak += logrno.Items[i] + ";" + ladsoyad.Items[i] + ";" + lvize.Items[i] + ";" + lfinal.Items[i] + ";" + lortalama.Items[i] + ";" + lharf.Items[i] + "\n"; try { File.WriteAllText("ozet.txt",yazilacak); MessageBox.Show("Dosya Yazıldı!"); } catch { MessageBox.Show("Dosya Yazılamadı!"); } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
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.IO; namespace ornek1 { public partial class fnotlandirma : Form { ListBox lh, la; public fnotlandirma(ListBox _lh, ListBox _la) { InitializeComponent(); lh = _lh; la = _la; for (int i = 0; i < lh.Items.Count; i++) { lharf.Items.Add(lh.Items[i]); laltsinir.Items.Add(la.Items[i]); } } private void bdyaz_Click(object sender, EventArgs e) { string yazilacak = ""; for (int i = 0; i < lharf.Items.Count; i++) { yazilacak += lharf.Items[i] + ";" + laltsinir.Items[i] + "\n"; } try { File.WriteAllText("notlar.txt", yazilacak); MessageBox.Show("Dosyaya Yazıldı!"); } catch { MessageBox.Show("Dosyaya Yazılamadı!"); } } private void bdoku_Click(object sender, EventArgs e) { try { lharf.Items.Clear(); laltsinir.Items.Clear(); lh.Items.Clear(); la.Items.Clear(); string[] satirlar = File.ReadAllLines("notlar.txt"); string[] ayrac = { ";" }; for (int i = 0; i < satirlar.Length; i++) { string[] satir = satirlar[i].Split(ayrac, StringSplitOptions.None); if (satir.Length == 2) { int sinir; bool k = Int32.TryParse(satir[1], out sinir); if (k && satir[0].Length > 0) { lharf.Items.Add(satir[0]); laltsinir.Items.Add(sinir); lh.Items.Add(satir[0]); la.Items.Add(sinir); } } } } catch { MessageBox.Show("Dosya Okunamadı!"); } } private void bduzenle_Click(object sender, EventArgs e) { int secilen = lharf.SelectedIndex; int sinir; bool k = Int32.TryParse(taltsinir.Text, out sinir); if (k && secilen > -1) { laltsinir.Items[secilen] = sinir; la.Items[secilen] = sinir; taltsinir.Clear(); } } } } |
bu program eksik. resimdeki gibi çalışmıyor.
Program eksik değil. Geçen kalanlar için CC bilgisi harfhesapla() isimli fonksiyonun 118. satırında şu şekilde verilmiştir.
if (ort >=(int) lsaltsinir.Items[4]) // CC dosyada 4. indis
Eğer lsaltsinir içeriği 5 elemanlı değil ise yani 4. indise sahip değil ise hata ile karşılaşırsınız. Programı çalıştırdıktan sonra ikinci forma gidip not skalasını yüklerseniz ve ilk forma dönüp veri girişi yaparsanız sorun kalmayacaktır.
Bu koşulu
if(lsaltsinir.Items.Count>4){ .... }
bloğu içerisine yazarsanız sorun çözülecektir.