Şimdi Ara

Yapılarla İlgili Bir Soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
952
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar yapılar konusunda bir alıştırma yapıyorum fakat takıldığım yerler var .Yardımcı olacak arkadaşlara şimdiden teşekkürler.Öncelikle kitraptaki soru şu şekilde:

    Kullanıcıya araba ekleme ve silme olmak üzere iki seçenek sunan,eğer kullanıcı eklemeyi seçer ise aracın numarasını,markasını,modelini ve üretim tarihini isteyip bu elemanları
    bir yapı dizisine aktaran,silmeyi seçerse silinecek aracın numarasını isteyip yapı dizisinden silen programı oluşturunuz.Her işlemden sonra devam etmek ister misiniz sorusunu sorsun.
    Eğer kullanıcı devam etmek isterse kayıt ekleme ve kayıt silme seçenekleri tekrar gelsin fakat devam etmek istemezse,ekrana veriler görüntülensin ve program sonlansın.


    Arakdaşlar bu yapmaya çalıştığım en karmaşık prgoram şuanlık.O yüzden çok yerde hatam olabilir.

    #include <iostream>
    #include <cstring>
    using namespace std;

    struct araba{

    char *marka;
    int numarasi,uretimtarihi,modeli;







    }d[100];

    int main(){
    int s,i=1;
    char a[100];
    cout << "1-Araba ekleme \t 2-Araba Silme " << endl << "Lutfen Bir Secenek Seciniz : " ;
    cin >> s;

    do {
    switch(s){

    case 1 :
    cout << "Arabanin Markasini Giriniz : ";
    gets(d.marka);
    cout << "Arabanin Numarasini Giriniz : " ;
    cin >> d.numarasi;
    cout << "Arabanin Uretim Tarihini Giriniz: " ;
    cin >> d.uretimtarihi;
    cout << "Arabanin Modelini Giriniz : " ;
    cin >> d.modeli;



    case 2 :
    cout << "Silmek İstediginiz Arabanin Numarasini Giriniz :" ;
    cin >> d.numarasi;



    }
    i++;
    cout << "İsleme Devam Etmek İstiyormusunuz : " ;
    gets(a) ;

    } while(strcmp(a,"hayir")==0);

    cout << "Arabalarin Verileri " ;
    for(;i>0;i--){

    cout << i << ". Araba : " << "MARKA: " d.marka <<"NUMARASİ:" d.numarasi << "URETİM TARİHİ:" d.uretimtarihi <<"MODELİ:" d.modeli ;


    }








    system("PAUSE");
    return 0;

    }


    Birde daha önce bir dizinin içindeki verileri sildirmemiştim.Bu nasıl yapılıyor bilmiyorum.Oyüzden case 2 kısmını boş bıraktım.Yardımlarınız için şimdiden teşekkürler.Bu arada d lerin yanında köşeli parantez içinde "i" vardır.Site köşeli parantez içinde göstermiyor "i"leri , o yüzden görünmüyorlar.



    < Bu mesaj bu kişi tarafından değiştirildi Hunterangel -- 20 Aralık 2012; 12:34:46 >







  • silme işlemi için bir tüyo vereyim. Elindeki sisteme göre gerçekten de silmek zorunda değilsin. diyelim ki silmek istediğin arabanın numarasını okudun. Arrayde aradın buldun o yapıyı. Direk olarak numarayı -1 gibi hiç kullanılmayan bir değere eşitleyebilirsin. Böylece sildim bunu diye işaretlemiş olursun. Ekrana yazdırırken de numarası -1 olanları yazmazsın. Böylece hiç görünmezler sanki silmişsin gibi olurlar.
  • dizide arayıp bulma kısmını nasıl yapabilirim peki?Onu açarsan çok daha iyi olur.Bu daha ilk programlama dilim olduğu için çoğu algoritmayı yeni yeni öğreniyorumda :D
  • Ekleme yapabildiğine emin misin?

    gets(d.marka); <- Bu satırda çakılması gerekiyor programın. Tabi ordaki d' lerin d[ i] olduğunu varsaydım aksi halde derlenmez bile.
  • quote:

    Orijinalden alıntı: elektro_gadget

    Ekleme yapabildiğine emin misin?

    gets(d.marka); <- Bu satırda çakılması gerekiyor programın. Tabi ordaki d' lerin d[ i] olduğunu varsaydım aksi halde derlenmez bile.

    senin dediğin gibi ekliyorum saten ynalızca d nin yanına köşeli parantezle yazınca sitede görünmedi o yüzden yoklar :D Programı yapabilşmem için verilen numarayı dizidekilerle karşılaştırıp eğer dizide varsa silme kısmını bilmem gerek.Birisi bu konuda yardımcı olursa çok sevinirim.
  • #include <iostream>

    using namespace std;

    struct notlar{

    char ad[100],soyad[100];
    int notlari;




    }d[100];

    int main(){

    int i=1,x;
    cout << "Ogrenci Sayisini Giriniz : " ;
    cin >> x;


    for(;i<=x;i++){

    cout << i << "." << "Ogrencinin Adini Giriniz : " ;
    gets(d[i ].ad) ;
    cout << i << "." << "Ogrencinin Soyadini Giriniz : " ;
    gets(d[i ].soyad) ;
    cout << i << "." << "Ogrenciin Ntunu Giriniz : " ;
    cin >> d[i ].notlari;

    }










    system("PAUSE");
    return 0;


    }
    arkadaşlar burda yapılar yardımıyla öğrencilerin adlarını soyadlarını ve notlarını alacam fakat ad kısmını program direk geçiyor ve soyadı alıyor.Yaptığım bütün yapı örneklerinde bu sorunla karşılaşıyorum . Yardımlarınız için şimdiden teşekkürler.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.