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ı!");
}
}
}
}
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();
}
}
}
}
GP (Güz-2016) Hafta-12/1
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.