• 21-11-2012, 03:53:48
    #1
    yazmıs oldugum programda 3 kisinin ad-soyad- vize - final ve ortalamasını aldırıyorum.

    ad ve soyad dizi degiskenlerini char olarak tanımladım.

    yapmak istedigim kayıtları ad a göre aratmak istiyorum.

    fakat aranan isim kayıtlarda bulundugunda

    sadece o kayıta ait olan vize + final + ortalama vb.. bilgilerin ekranda görüntülenmesibi istiyorum.

    yardım edebilecek arkadas var mı ?

    Program kodları şöyle

    /* AD VE SOYAD EKLENEREK ARAMALAR GERÇEKLEŞTİRİLECEK */
    
    
    #include<iostream.h>
    #include<conio.h>
    #include <iomanip.h>
    
    char ad[3][12];
    char soyad[3][12];
    int vz[3],fnl[3];
    float ort[3];
    
    void fKayitGiris()
       {
       int i1;
       int i2;
    
       for (i1=1;i1<=3;i1++)
          {
                            
          cout<<i1<<". Kişinin Adını Giriniz    = ";
          cin>>ad[i1];
          cout<<i1<<". Kişinin SoyAdını Giriniz    = ";
          cin>>soyad[i1];
          cout<<i1<<". Kişinin Vizesini Giriniz    = ";
          cin>>vz[i1];
          cout<<i1<<". Kişinin Finalini Giriniz    = ";
          cin>>fnl[i1];
          for (i2=1;i2<=3;i2++)
          {
          ort[i1]=vz[i1]*0.4+fnl[i1]*0.6;
          }
          }
       }
    
    void fKayitGoruntuleme()
       {
       int i3;
       cout<<"Sıra     Ad         Soyad    Vize Final Ortalama Durum\n";
       cout<<"---- ----------- ----------- ---- ----- -------- -----\n";
       for (i3=1;i3<=3;i3++)
          {
          cout<<setw(4)<<i3<<setw(12)<<ad[i3]<<setw(12)<<soyad[i3]<<setw(5)<<vz[i3]<<setw(6)<<fnl[i3]<<setw(9)<<ort[i3];
          if (fnl[i3]>=50 && ort[i3]>=60)
             cout<<" Geçti\n";
          else
             cout<<" Kaldı\n";
          }
     
       getch();
       }
       
    void fKayitBulmaSira()
       {
       int ara;
       cout<<"Aranan Kaydın Sırasını Giriniz = ";
       cin>>ara;
       cout<<"Sıra     Ad         Soyad    Vize Final Ortalama Durum\n";
       cout<<"---- ----------- ----------- ---- ----- -------- -----\n";
       cout<<setw(4)<<ara<<setw(12)<<ad[ara]<<setw(12)<<soyad[ara]<<setw(5)<<vz[ara]<<setw(6)<<fnl[ara]<<setw(9)<<ort[ara];
       if (fnl[ara]>=50 && ort[ara]>=60)
          cout<<" Geçti";
       else
          cout<<" Kaldı";
       getch();
       }
       
    void fKayitBulmaAd()
       {
       char bul[0][12];
       cout<<"Aranan Kaydın Adını Giriniz = ";
       cin>>bul[0];
       if (bul[0][12] == ad[3][12])
       {
       cout<<"Sıra     Ad         Soyad    Vize Final Ortalama Durum\n";
       cout<<"---- ----------- ----------- ---- ----- -------- -----\n";
         cout<<setw(4)<<"sira"<<setw(12)<<ad[]<<setw(12)<<soyad[]<<setw(5)<<vz[]<<setw(6)<<fnl[]<<setw(9)<<ort[];
          if (fnl[]>=50 && ort[]>=60)
             cout<<" Geçti\n";
          else
             cout<<" Kaldı\n";
          }
        }
      else
      
          {cout<<"Kayit Bulunamadi"<<"\n";}
       
       getch();
       
          }
    
    main(void)
        {
        int sec,tbn,us;
        setlocale(LC_ALL, "Turkish");
        do
          {
          system("cls");
          cout<<"**************************"<<"\n";
          cout<<"*1-Kayıt Giriş              *"<<"\n";
          cout<<"*2-Kayıt Görüntüleme        *"<<"\n";
          cout<<"*3-Kayıt Bulma(Sıraya Göre) *"<<"\n";
          cout<<"*4-Kayıt Bulma(Ada Göre)    *"<<"\n";
          cout<<"*5-ÇIKIŞ >=5                *"<<"\n";
          cout<<"*****************************"<<"\n";
          cout<<"Seçiminiz Nedir (1,2,3,4,5) = ";
          cin>>sec;
          system("cls");
          if (sec==1)
             fKayitGiris();
          else if (sec==2)
             fKayitGoruntuleme();
          else if (sec==3)
             fKayitBulmaSira();
          else if (sec==4)
             fKayitBulmaAd();
          }
        while (sec<5);
        }
    void fKayitBulmaAd() fonksiyonu kısmında girdiğim kişi bilgilerini isme gör aratması gerkli fakat Kırmızı ve kalın yazılı olan kısımı kaldıgımda program calsısıyor arama yaptırdıgmıda aramayı yapıyor ama aradıgım kişinin ismini ve bilgilerini göstermiyor. Kırmızı kısmı eklediğimde ise sorunn cıkıyor kişi bilgilerini yazıyor ama yalnış bilgi cekiyo doğru bilgileri çekmiyor

    bilgisi olan varsa yardım edebilirmi acil...

    Ekran çıktısı



    1 kayıt giris bölümünü acıyor
    2 kayıtları listeleyerek gösteriyor
    3 kayıtları sıra numarasına göre arama bölümünü açıyor
    4 kayıtları isme göre arama bölümünü açıyor
    5 cıkıyo
  • 21-11-2012, 12:32:29
    #2
    yardım edecek kimse yokmu arkadaşlar :S
  • 21-11-2012, 16:45:41
    #3
    hata 1= if (bul[0][12] == ad[3][12]) böyle karşılaştırma olmaz [12] ler fazla

    hata 2= char dizisi karşılaştırılması da böyle olmaz. bunun yerine strcmp kullan

    hata 3 ad dizisinin tüm elemanlarını kontrol edecek bir döngü yazman gerek. karşılaştırma sonucu eşleşme varsa eleman bulunmuş demektir.