Şimdi Ara

vb.net yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
14
Cevap
0
Favori
1.103
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar merhaba.
    vb.net'te hocanın dönem ödevi olarak verdiği öğrenci işleri programını yapıyorum ama 1-2 yerde tıkandım kaldım.
    [simage]]http://img88.imageshack.us/img88/8987/adszvqj.jpg[/simage]

    resimde görmüş olduğunuz gibi datagrid'e s1,s2,s3,soz1,soz2,ort,not,sonuc sütunlarını ekledim.burda yapmak istediğim;
    s1,s2,s3,soz1,soz2 değerlerini girerek toplamı 5'e bölen ve ortalamayı bulup ort bölümüne yazdırmak istiyorum.
    yardımcı olursanız sevinirim.



    < Bu mesaj bu kişi tarafından değiştirildi okanyuksel -- 26 Nisan 2010; 18:45:31 >



  • hocam affınıza sığınarak yazıyorum. ama yazdığınız kodu bir türlü çalıştıramadım.
  • Programcılıkta bir takım paradigmalar, kurallar filan vardır. Bunlar bir yığın tecrübeden sonra ortaya çıkmış kurallardır. Hiç bir kod bu kurallara uymadan yazılmış diye derleyici tarafından reddedilmez. Ama bu kurallara uymazsanız, kodunuz berbat olur.

    Bunlardan biriside, Three-Tier modelidir. Uzatmayalım, bu kodu 3 katmana ayırmak demektir. En altta veritabanı bulunur. Veritabanı denince, hemen herkesin aklına SQL server filan gelir, ama alakası yoktur. Bu, verilerin saklandığı bölümdür, MySQL'de olabilir, bildiğiniz bir değişkende. Bunun üzerinde uygulama lojiği yer alır. Yani işlemler. En üstte ise, UI yeralır; yani User Interface, Kullanıcı arabirimi.

    Her ne kadar bu daha ziyade client-server modeli için revaçta olsada, bunun stand-alone, yani kendi başına bir uygulama içinde çok faydalı bir mantalite olduğu kesindir.

    Bu soru bağlamında öncelikle işaret edilmesi gereken şey şu: GUI, yani şu sizin form, o grid vs. verileri okumak ve göstermek içindir; onları saklamak için değil. Yani, o gridden verileri okuyacak, programdaki bir veritabanında tutacak, hesaplayıp oraya yazacaksınız. Veritabanı denince, ADO filan değil. Bildiğiniz bir değişken, array vs.

    Peki neden?

    Bir bakın bakalım. soz1 sütununa, 10 yazacağıma, elim aradaki 9'a gider ve 190 yazarsam, durum ne olur?

    Kullanıcı, kendi hata yaptığını görmek istemez. Sözlüden 10, zayfı almış öğrencinin diğer notları da 10'dan farklı olmayacaktır. 5 x 10 = 50 / 5 = ortalama 10 olacakken, 4 x 10 + 190 = 230 / 5 = 46 dan, zayıf alacak öğrenci orta almış olacaktır ki, farkına bile varılamaz, arada kaynar gider. Ve öğrenci not ortalamasından geçer, skandal olur.

    İşte en azından bunu önlemek için, ekranda değerleri tutmayın. Ekran göstermek ve okumak içindir.

    Peki ne yapmanız gerekiyor?

     
    Private Sub dataGridView_CellValidating(ByVal sender As Object, _
    ByVal e As DataGridViewCellValidatingEventArgs) _
    Handles dataGridView.CellValidating
    select case e.ColumnIndex
    case 0 ' İlk sütun
    exit sub ' Bir şey yapmak gerekmiyor, diyelim..
    case 1 to 5 ' Not sütunları
    not = CInt(e.FormattedValue) 'Bunu yemez, not, VB için geçersiz bir değişkendir.
    bu_not = CInt(e.FormattedValue)
    if bu_not < 0 or bu_not > 100 then
    'Buraya hatalı girişte ne yapılacağını yazın.
    e.Cancel = True
    return False
    end if
    notTablosu(e.RowIndex, e.ColIndex) = bu_not
    ortalama = 0
    for i = 1 to 5
    ortalama = ortalama + notTablosu(e.RowIndex, i)
    next
    ortalama = ortalama / 5
    dataGridView.Rows(e.RowIndex).Cells(6).text = CStr(ortalama) '6, ortalam sütunu ise..
    end sub


    Bu sanırım ne yapılması gerektiğini iyi kötü gösteriyordur. VB ile kod yazmayalı 6-7 yıl olmuştur. O yüzden hatalar olabilir, ama temel bileşenler sanırım sorunsuzdur.

    Öncelikle öğrenci sayısı kadar bir/bir kaç array oluşturun: Dim ogrenciAdlari(25) as string, notlar(25, 5) as integer filan falan.

    Notların hepsini bir döngü ile -1 yapın. Bu, girilmemiş not demek olsun.

    Yukardaki event handler gibi bir şey yazarak, notların girilmesini sağlayın. Girilen her notu kontrol edin.

    Ortamalayı bulmak için -1 olmayan notları toplayıp, bu gibi not sayısına bölün.

    Sonucu grid'e yazın.. Elbette -1 olanlar için hede.text = '' olacak.

    Kabaca böyle bir yol uygulayabilirsiniz. Detayları için, VB bilen anlayan elemanlar yardımcı olur sanıyorum. Ben VB ile uğraşmıyorum, uğraşmayı da istemiyorum. Yardımcı olayım desem, elimde Windows bile yok. MS'tan arınmış halde, gamsız kedersiz huzur içinde aleti kullanıyorum, darısı sizinde başınıza artık, ne diyeyim.



    < Bu mesaj bu kişi tarafından değiştirildi skoylu -- 26 Nisan 2010; 21:43:12 >






  • Gebze'de, Atatürk Lisesine Okuma yazma kursu açılmış. Gelde seni kaydettireyim, M.Muavini tanıdıktır. Hemde yatılı, sana bir yerde ayarlarız.

    Böylece okuduğunu anlama kabiliyetine kavuşursun umarım.

    O zamana kadar, susta kendini rezil edip durma şuralarda.

    Kendi bildiğini "Alternatifi bile olmayan teknoloji" sanan kafasını microsoftun çamuruna gömmüş biçare..
  • quote:

    arkadaş bir soru sormuş, bunun cevabını vereceksen ver, yok ben 10 yıldır vb yazmıyorum, bilmiyorum diyorsan yazmak zorunda değilsin


    Hala aynı yerdesin işte.. 10 yıldan beri ile VB yazmıyor olmam, 10 yıldan beri kod yazmadığım demek mi?

    Ve ortadaki hata, VB mevzusu değil, genel programcılık sorunu.

    Ha, bu arada iddia ederim, VB'yi senden iyi biliyorumdur, bu halimde bile..

    Ve sen okuduğunu anlamaktan aciz arkadaşım. Bak bir daha anlatayım sana. VB ile 10 yıldan beri yazmıyorum. Bu saatten sonra ne VB, nede Windows ucubesi ile uğraşacak halimde yok. Ve bunu neden söylüyorum: Zira, oraya bir örnek kod yazıyorum, denemek, daha ötesini vs. getirmek halim yok. Neden yok, çünkü Windoz veya VB ile uğraşmıyorum, elimde yok, uğraşmakta istemiyorum. İşte söylediğimiz şey bu. Biz burada senin temel programlama sorununa bir cevap verebiliriz ey soruyu soran. Oradaki ColIndex'in ColIndex'mi, ColumnIndex'mi olduğu gibi mevzulara bakmak sana kalıyor, elinde VB olan sensin.

    Sen değil amone, soruyu soran arkadaş o 'sen'. Bunu da anlamazsın şimdi..

    Ve işte biz bu sebeple, bu durumu vurgulamak için onu yazıyoruz, kafası M$ çamuru ile dolu arkadaşım. Anladın mı? Evet, anlamadın. Neyse, okuma yazma kursu teklifim hala açık.

    Ben varacağım yere varmışım amone.. Sen kendi içinde olduğun bataktan çık önce de, ondan sonra varacağın yeri düşünecek halin olsun.. Bunuda gene şeyinden anlayıp, hakaret ettiğim sanma, dostane bir tavsiyedir, dost acı söyler malum..




  • quote:

    dikkat edersen yukarıda yalnızca microsoft ile yazdığın bölüme katılmadığımı söylemiştim


    Senin katılmıyor olman, windoz'un rezalet olduğu gerçeğini değiştirmiyor. Ama bunu tartışacaksan, yeri burası değil.

    Ve biz zaten soruya cevap verdik ve aldığın yerlerde o cevabı müteakip gelecek olan başka sorular için bir yol gösterme. Ama sen kim, bunu anlamak kim?
  • Birkaç yerden birkaç alıntı, kimse üstüne alınmasın lütfen.

    quote:

    Aptallarla tartışmayın.İlk önce sizi kendi seviyesine çeker, sonra tecrübesiyle yener.


    quote:

    Bir aptalın en büyük aptallığı kendisinden daha zeki insanlar olabileceğini idrak edememesidir.


    quote:

    Bilgili bir aptal, bilgisiz bir aptaldan daha aptaldır.
  • quote:

    Orijinalden alıntı: skoylu


    Bunlardan biriside, Three-Tier modelidir. Uzatmayalım, bu kodu 3 katmana ayırmak demektir. En altta veritabanı bulunur. Veritabanı denince, hemen herkesin aklına SQL server filan gelir, ama alakası yoktur. Bu, verilerin saklandığı bölümdür, MySQL'de olabilir, bildiğiniz bir değişkende. Bunun üzerinde uygulama lojiği yer alır. Yani işlemler. En üstte ise, UI yeralır; yani User Interface, Kullanıcı arabirimi.





    sizin iş katmanı da gösterime (forma) gömülü kalmış sanki. not class ını yazsanız sanki daha iyi olurdu. daha ileri seviyede rule repository kullanımı çok daha doğru olacaktır.

    düzeltmelerinizi yerinde ve doğru buluyorum lakin günlerdir saçma bir tartışmaya çekiliyor olanıza üzülüyorum, kolay gelsin.




  • quote:

    windows rezaletse neden bunca şirket bunca insan hala kullanıyor? neden hala pastanın %80'lik kısmına sahip

    saçma sapan konuşmaktan başka yaptığın birşey yok.. ayrıca windowsun ve microsoftun rezalet olmasının konuyla ne alakası var


    Bak, utanmadan, saçma sapan diye laflar ediyorsun. Birde bu lafı ediyorsun..

    Bak bakalım sen nasıl saçmalıyorsun:

    quote:

    İnanca Başvurma Safsatası
    (Appeal to Belief)
    [Consensus Gentium]

    Tanım: Bir fikir ya da iddianın doğruluğunu, insanların çok büyük çoğunluğunun ona inandığını ya da tüm insanların onu bütün zamanlar boyunca benimsediğini savunarak iddia etmekten doğan hata

    Ortak Tutuma Başvurma Safsatası
    (Appeal To Common Practice)

    Tanım: Öneriyi kabul ettirmek için, büyük çoğunluğunun ortak bir davranışı olduğu düşüncesine başvurarak doğru olduğunu iddia etme.

    Grup Baskısı Safsatası
    (Bandwagon, Peer Pressure)

    Tanım: Bir öneriyi kabul ettirmek için deliller öne sürmek yerine bir grubun baskısını veya beğenisini öne sürme hatası.

    http://safsatakilavuzu.com/safsata%20turleri%20ve%20guncel%20ornekler-3.htm


    Şurada boyuna böyle safsata üretip saçmalamaktan başka bir halt ettiğin yok. Gti sen bir okuma yazma öğren, ondan sonra safsata yapmamayı öğrenirsin bilahare..

    quote:

    sizin iş katmanı da gösterime (forma) gömülü kalmış sanki. not class ını yazsanız sanki daha iyi olurdu. daha ileri seviyede rule repository kullanımı çok daha doğru olacaktır.


    Evet, doğru, çok yerinde bir tespit. Ama dedimya, windoz ve vb gibi benim için gam ve keder kaynağından başka bir şey olmayan şeylerle uğraşmak istemiyorum. Elim gitmiyor daha ötesine. Ama mesela siz eklerseniz, buradaki arkadaşlar için büyük hayır işlersiniz sanıyorum..




  • quote:

    sen cevap versene yahu neden pastanın %80'i hala microsoftun


    Pastanın %90'ı Çin'in, bu çin malları iyidir demek mi oluyor?

    Sen gibi script kiddiler filan işte, MS'nin oyuncağı olmakla, onu iyi bir halt sanıyor, hepsi bu..

    Ha bu arada, o Visual Studio, Windows bilmem ne, SQL server vs. yi korsan kopyalayıp, hırsızlık edecek kadar alçak olmadığını sanıyorum. Umarım yanılmıyorumdur.



    < Bu mesaj bu kişi tarafından değiştirildi skoylu -- 28 Nisan 2010; 12:13:27 >
  • quote:

    ancak ben senin şuana dek hiç korsan ürün kullanmadığını sanmıyorum, madem alçakmış insan kendine böyle hakaret eder mi?


    Benim hiç bir korsan ürün kullanmadığımdna emin olabilirsin. Hatta istersen şu an bendeki tüm uygulamaları sana vereyim, sende kullan, para pul istemez, alıyorsun, kullanıyorsun, canının istediği gibi çoğaltıp ediyorsun. İster misin?

    Daha hala kimle dans ettiğini öğrenemedin di mi?

    quote:

    sen ve sen gibilerin anlayamadığı nokta bu işte (k9 grubu), bir yere takılıp kalıyorsunuz. programcı dil, teknoloji ayırt etmeyen insandır.


    İlginç, kendi halini güzel ifade etmişsin. Madem öyle, neden imzana "C# || PHP || MVC || JavaScript || AJAX || SQL || XHTML || CSS" yazıyorsun? Kendi adıma imzama şu dil, bu dil filan yazmam; zira her an, her istediğim dille istenen şeyi yazabileceğimi gayet iyi biliyorum. Bugüne kadar kullandığım dilleri yazsam, zaten bir sayfa tutar üstelik..

    Hadi sen git, kumda bu script kiddie oyuncaklarıyla oynamaya devam et. Büyüde gel, ondna sonra konuşalım..




  • Peki hayatında kaç satır LISP programı yazdın mesela? Kaç assembler kodu yazdın? PERL ile ne kadar?

    Kendince güya yalan yanlış adam karalyıp üste çıkacaksın.. Ama senin sorunun ben değilim, o çamur dolu kafan. Git o çamuru boşalt, okuduğunu anlamayı öğren. Ondan sonra devam ette, kendine bir iyilik yap..

    quote:

    karşıdakini tanımadan etmeden sallıyorsun


    Hadi tanıyalım bakalım seni. Kimdir Amone? Adı sanı belirsiz.. Buraya yazdıklarındna iyi kötü biraz script kurcalamayı öğrenmiş biri olduğu sonucunu çaıkrabiliyoruz o kadar. Programcılık bilgisine dair bakıyoruz: Sıfır, verdiği örneklerden filan öyle görünüyor. Herneyse..

    Buyur, aç bak bakalım ben kimmişim, hadi bir görelim. Bak şunu bir oku mesela:

    quote:

    http://www.webhatti.com/internet-teknolojileri/91201-yenilikci-ve-yaraticilik-buyuk-odulu-tubitakin.html

    Türk Elektronik Sanayicileri ve İmalatçıları Derneği (TESİD) tarafından bu yıl sekizincisi verilen 'Yenilikçilik ve Yaratıcılık Büyük Ödülü'nü FORESC isimli ürünüyle TÜBİTAK kazandı.


    Benim CV'mde bu ödülü kazanan aletin kodlarını yazanlardan biri benim diye yazıyor mesela, ya seninkinde ?




  • quote:

    mesajlarıma ve makalelerime bak artık tesadüfen kurcalamayı mı öğrenmiş yoksa çalışıp ekmeğini kazanan bir programcı sen karar ver


    Bildiğimiz mesajlara bakınca: kalın kafalı olup, okuduğunu anlama özrünün olduğunu kesin olarak görüyoruz öncelikle. Ve programcılık hakkında da biraz bir şeyler gevelediğin ama mevzuya fransız olduğunda bariz.

    Şimdi zırlayacaksın gene, boş boş laflar edeceksin. Bir bak şu haline.

    quote:

    dur dur bak şu çelişkiye bakhttp://forum.donanimhaber.com/fb.asp?m=39405106


    Yok XHTML bilrimişte, CSS bilirmişte.. Yahu sen bir sayfadan gene aynı sayfaya, kendine link verecek kadar avarenin birisin. Çıkmış kime ne anlatıyorsun? Yok mu bunun quote'si filan? Bu kadar bilgisayar, useability vs. avaresi birisin işte, gör bir halini..

    quote:

    son olarak demogoji yapma, millete yardım edeceksen et..


    Ediyoruz zaten, etmeye çalışıyoruz. Ama birde sen gibi bir halt bilmeden bildiğini sanan, birde üstüne bu kör topal bildiğiyle kendini bir halt olmuş sanan çıkıntılar olmasa, daha çok edeceğiz de.. Sizle uğraşmaktan millete bir damla bir şey verebileceğimiz zamanı heder ediyoruz. Dahası böyle işte buradaki gibi, bir şeyler gösterelim dediğimiz yerleri de çamura bulayıp çıkıyorsunuz.

    Sizden çok var, o yüzden alışkınız. Ama size rağmen bu ülkenin insanlarına bir şeyler verebilmenin gayretinde hep olacağız.






  • arkadslar vb.net 2010 yapımı program saat programı basit ama işlevsel ama labellerin arkaplanları transparan ve kenarları tırtıklı kalıo görsel bakımdan kötü oluyor yani araştırdım bulamadım yardım ederseinz sevinirim ?
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.