C++ ile Gelişmiş Sınıf Örnekleri - Uçak Rezervasyon

Uçak isimli bir sınıf oluşturup, koltuk sayısı, modeli, ağırlığı ve yakıt kapasitesi de özellik olarak ekleyiniz ve aşağıdaki metodları tanımlayınız .
 
1.YapıcıMetod() Bu metod hiçbir parametre almayacaktır, varsayılan olarak yakıt kapasitesi=200 ve koltuk sayısı=100 olarak ayarlanacaktır.
 
2. YapıcıMetod() Bu metod iki parametre alacaktır, yakıt Kapasitesi ve koltuk sayısı, bunların girişi zorunludur.

yakıtDoldur(miktar) – Miktar değerini alarak o anki yakıt durumuna ekleme yapacak ama yakıt kapasitesini aşmayacak şekilde depo dolacak dolduracak. Örneğin 100 lt yakıt kapasitesi olsun, 50 lt depoda yakıt olsun, miktar 75 lt gelirse ekrana “Maksimum 50 lt daha doldurabilirsiniz, 75 lt çok fazla” yazacak ve 75 lt’yi eklemeyecek. 
 
yakıtGöster() O anki depo durumunu gösterecek.

koltukArtir() Koltuk sayısını bir artıracak.

koltukSay() Toplam, Boş ve dolu koltuk sayısını verir.

bosKoltukGoster() Tüm boş koltukları gösterecektir.

koltukListele() Tüm koltukları ve kime rezerve edildiğini listelenecektir.

rezerveEt(koltukno, AdSoyad) – AdıSoyadı ve koltuk numarasını parametre alıp rezerve edecek.
Rezerve edilen koltuk bir daha rezerve edilemeyecek. Örneğin rezerveEt(5,”Oğuzhan TAŞ”) gönderildiğinde 5 nolu koltuk daha önce “Sinan Ercan” isimli kişiye rezerve edilmiş ise ekrana “5 nolu koltuk Sinan Ercan’a ayrılmış” diyecek ve ekrana boş koltukları listeleyecek.

Şimdi kodlamaya geçelim. IDE olarak Jet Brains Clion kullandım, sizler Eclipse veya NetBeans kullanabilirsiniz.



#include <iostream>
using namespace std;

class Ucak{

    double yakitKapasite;
    int toplamKoltukSayisi, koltukSayisi;
    double depo;
    string *koltuk;

public:

    Ucak() {

        yakitKapasite = 200;
        toplamKoltukSayisi = 100;
        depo = 0;
        koltukSayisi = 0;
      
        koltuk = new string[toplamKoltukSayisi];
        for(int i=0;i<toplamKoltukSayisi-1;i++)
            koltuk[i]="";
        cout<<"Yeni ucak oluşturuldu"<<"\n";
    }

    Ucak(double _yakitKapasitesi, int _toplamKoltukSayisi) {

        yakitKapasite = _yakitKapasitesi;
        toplamKoltukSayisi = _toplamKoltukSayisi;
        depo = 0;
        koltukSayisi = 0;
        koltuk = new string[toplamKoltukSayisi];
        for(int i=0;i<toplamKoltukSayisi-1;i++)
            koltuk[i]="";
        cout<<"Yeni ucak olusturuldu"<<"\n";
    }

    ~Ucak() {
        delete[] koltuk;
    }

    void yakitDoldur(double miktar) {

        if (depo + miktar > yakitKapasite)
            cout << "Maksimum " << yakitKapasite - depo 
            << " kadar daha doldurabilirsiniz, " << miktar 
            << " cok fazla"<<"\n";
        else
            depo += miktar;
    }

    void yakitGoster() {
        cout << "Depo durumu:" << depo << " litre"<<"\n";
    }

    void kolturkArtir() {
        koltukSayisi++;
    }
    void koltukSay(){
        cout<<"Toplam koltuk sayisi:"
            <<toplamKoltukSayisi<<"\n";
        int boskoltuksayisi=toplamKoltukSayisi-koltukSayisi;
        cout<<"Dolu koltuk sayisi:"
            <<koltukSayisi<<"\n";
        cout<<"Bos koltuk sayisi:"
            <<boskoltuksayisi<<"\n";

    };

    void koltuguRezerveEt(int koltukNo, string adsoyad) {
        if (koltukNo < toplamKoltukSayisi) {
            if (koltuk[koltukNo - 1] == "") {
                koltuk[koltukNo - 1] = adsoyad;
                kolturkArtir();
            } else
                cout << "Bu koltuk daha once " 
                << koltuk[koltukNo - 1] << 
                " isimli kisiye rezerve edilmis"
                << "\n";
        } else
            cout<<toplamKoltukSayisi
                <<" kadar koltuk bulunmaktadır";
    }

    void koltuklistele(){
        for(int i=0;i<toplamKoltukSayisi;i++)
            cout<<i+1<<".koltuk="<<koltuk[i]<<"\n";
    }
};

int main() {
    Ucak u1(200,5);
    u1.koltukSay();
    u1.koltuguRezerveEt(1,"Oguzhan TAS");
    u1.koltuguRezerveEt(2,"Sinan Can");
    u1.koltuguRezerveEt(2,"Ali Can");

    u1.koltukSay();
    u1.koltuklistele();
    u1.yakitDoldur(100);
    u1.yakitGoster();
    u1.yakitDoldur(250);


    return 0;
}



Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak, 2021 Bookmark and Share