C++ Class Yapısı

  • Konuyu başlatan WD40
  • Başlangıç Tarihi
  • Mesaj 0
  • Görüntüleme 540
W

WD40

Ziyaretçi
Elimde bir C++ otomasyon programı var class yapısı kullanmadan yaptım. Bunu daha düzenli bir hale getirmem gerekiyor. Class yapısını nasıl bu programa entegre edebilirim? Yardımclarınızı bekliyorum proje ödevimdi ancak gözden kaçırmışım detayları.

Projede bulunması gereken detaylar:
Class Yapısı
Yapıcı-Yıkıcı Fonksiyonlar
Kalıtım
Get ve set komutları

Yardımlarınızı bekliyorum.

Not: İlk başlatmada veriler olmadığı için veri ekleyip ondan sonra programı başlatın yoksa hata alırsınız.

C++:
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <string.h>
#include <stdio.h>
#include <cstdlib>
using namespace std;
//Fonksiyon tanımlamaları.
void anatercih();
void tercih();
void tercih2();
void turdetay();
void turekle();
void tursil();
void turarama();
void turguncelle();
void musteridetay();
void musteridetay2();
void musteriekle();
void musterisil();
void musteriarama();
void musteriguncelle();
//Global değişken tanımlamaları.
string turdetayoku,konaklama,ulasim,turucreti,turismi;
string musteri, yas, iletisim, turbilgisi,musteri_ismi;
char secim;
int main()
{
    setlocale(LC_ALL, "Turkish"); //Turkçe karakter desteği.
    anatercih();
    system("pause");
}
void anatercih() {
    system("cls");
    int sec;
    cout << "*****  GÜNAYDIN TURİZM ACENTESİ  *****\n";
    cout << "\n1-> Tur Bilgileri\n2-> Müşteri Bilgileri";
    cout << "\nLütfen Yapmak İstediğiniz İşlemi Seçiniz ->";
    cin >> sec;
    switch (sec) //Sec değişkeni ile kullanıcıdan ne yapmak istediği bilgisini aldık.
    {
    case 1:
        tercih();
        break;
    case 2:
        tercih2();
        break;
    default:
        cout << "Geçersiz Seçim Yaptınız";
        tercih();
        break;

    }
}
void tercih() {
    system("cls");
    int sec;
    cout << "*****  GÜNAYDIN TURİZM ACENTESİ  *****\n";
    cout << "\n1-> Tur Türleri ve Detayları\n2-> Tur Ekle\n3-> Tur Kaldır\n4-> Tur Arama\n5-> Tur Güncelle\n";
    cout << "\nLütfen Yapmak İstediğiniz İşlemi Seçiniz ->";
    cout << "\nBir üst menüye dönmek için -> '0'  :";
    cin >> sec;
    switch (sec) //Sec değişkeni ile kullanıcıdan ne yapmak istediği bilgisini aldık.
    {
    case 1:
        turdetay();
        break;
    case 2:
        turekle();
        break;
    case 3:
        tursil();
        break;
    case 4:
        turarama();
        break;
    case 5:
        turguncelle();
    case 0:
        anatercih();
        break;
    default:
        cout << "Geçersiz Seçim Yaptınız";
        tercih();
        break;

    }

}
void tercih2() {
    system("cls");
    int sec;
    cout << "*****  GÜNAYDIN TURİZM ACENTESİ  *****\n";
    cout << "\n1-> Müşteri Bilgileri Listele\n2-> Müşteri Ekle\n3-> Müşteri Kaldır\n4-> Tur Arama\n5-> Müşteri Bilgi Güncelle\n";
    cout << "\nLütfen Yapmak İstediğiniz İşlemi Seçiniz ->";
    cout << "\nBir üst menüye dönmek için -> '0'  :";
    cin >> sec;
    switch (sec) //Sec değişkeni ile kullanıcıdan ne yapmak istediği bilgisini aldık.
    {
    case 1:
        musteridetay();
        break;
    case 2:
        musteriekle();
        break;
    case 3:
        musterisil();
        break;
    case 4:
        musteriarama();
        break;
    case 5:
        musteriguncelle();
    case 0:
        anatercih();
        break;
    default:
        cout << "Geçersiz Seçim Yaptınız";
        tercih();
        break;
    }

}
void turdetay()
{
        system("cls"); //Ekranı temizleme.
        cout << "-TUR BİLGİLENDİRME SİSTEMİNE HOŞGELDİNİZ-\n\n";
        cout << std::left<< "Tur İsmi" << "\t"  << "Konaklama" << "\t"  << "Ulaşım" <<"\t\t"  << "Tur Ücreti"; //Üst bilgi satırı.
        cout << "\n----------------------------------------------------------------------\n";
        ifstream dosyaoku("turdetay.txt", ios::in); //Dosyayı açtık.
        while (!dosyaoku.eof()) { //Dosyanın içindeki tüm verileri sonuna kadar okuduk ve yazdırdık.
            dosyaoku >> turdetayoku >> konaklama >> ulasim >> turucreti;
            cout << endl << std::left << turdetayoku << "\t\t" << konaklama << "\t\t"  << ulasim << "\t\t"  << turucreti; ;
        }
        dosyaoku.close(); //Dosyamızı kapattık
        cout << "\n----------------------------------------------------------------------\n";
        cout << "Bir önceki menüye dönmek için (E / e) -->";
        cin >> secim;
        if (secim == 'e' || 'E')
            tercih();

}
void turdetay2()
{
    cout << std::left  << "Tur İsmi" << "\t"  << "Konaklama" << "\t"  << "Ulaşım" << "\t\t"  << "Tur Ücreti";
    cout << "\n-----------------------------------------------------\n";
    ifstream dosyaoku("turdetay.txt", ios::in);
    while (!dosyaoku.eof()) { //Dosyanın içindeki tüm verileri sonuna kadar okuduk ve yazdırdık.
        dosyaoku >> turdetayoku >> konaklama >> ulasim >> turucreti;
        cout << endl << std::left  << turdetayoku << "\t\t"  << konaklama << "\t\t"  << ulasim << "\t\t"  << turucreti; ;
    }
    dosyaoku.close();
    cout << "\n----------------------------------------------------------------------\n";
}
void turekle() {
    do {
        system("cls");
        cout << "-TUR EKLEME ISLEMINE HOSGELDINIZ-\n\n";
        turdetay2();

        ofstream DosyaYaz;
        DosyaYaz.open("turdetay.txt", ios::app); //Dosyamızı açtık
        cout << "\n Tur İsmi (Maks. 6 Karakter) :"; cin >> turdetayoku; //Eklenecek Tur bilgilerini kullanıcıdan aldık
        cout << "\n Konaklama İmkani (Var/Yok) :"; cin >> konaklama;
        cout << "\n Ulaşım İmkanı (Ucak/Otobus) :"; cin >> ulasim;
        cout << "\n Tur Ucreti (TL) :"; cin >> turucreti;

        DosyaYaz << "\n" << turdetayoku << "\t" << konaklama << "\t" << ulasim << "\t" << turucreti; //Bilgileri Dosyaya yazdık

        DosyaYaz.close(); //Dosyayıkapattık
        cout << "Turk ekleme tamamlandi." << endl;
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih();
}

void tursil() {
    int gecici = 0;
    do {
        system("cls");
        cout << "-TUR SILME ISLEMINE HOSGELDINIZ-\n\n";
        turdetay2();
        cout << "\n\nSilmek istediginiz Turun ismini Giriniz -> ";
        cin >> turismi;
        ifstream dosyaoku("turdetay.txt", ios::in);
        ofstream dosyayaz("turdetay1.txt", ios::app); //Geçiçi bir dosya açtık
        while (!dosyaoku.eof()) { //Dosyadaki verileri okuduk.
            dosyaoku >> turdetayoku >> konaklama >> ulasim >> turucreti;
            if (turdetayoku == turismi) {
                cout << "\nTur basariyla silindi." << endl;
                gecici = 1;
            }
            else {
                dosyayaz << endl << turdetayoku << "\t" << konaklama << "\t" << ulasim << "\t" << turucreti;
            }
        }
        if (gecici == 0)
            cout << "Dosyada eslesen tur bulunamadi." << endl;
        dosyaoku.close();
        dosyayaz.close(); //Geçiçi dosyayı kapattık
        remove("turdetay.txt"); //Dosyanın aslını sildik ve geçiçi dosyamızın ismini değiştirdik.
        rename("turdetay1.txt", "turdetay.txt"); //
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih();
}
void turarama()
{
    do {
        system("cls");
        cout << "-TUR ARAMA ISLEMINE HOSGELDINIZ-\n\n";
        cout << "\n\nAramak istediginiz Turun ismini Giriniz -> ";
        cin >> turismi;
        ifstream dosyaoku("turdetay.txt", ios::in); //Dosyayı açtık.
        while (!dosyaoku.eof()) { //Dosyanın içindeki tüm verileri sonuna kadar okuduk ve yazdırdık.
            dosyaoku >> turdetayoku >> konaklama >> ulasim >> turucreti;
        }
        if (turdetayoku == turismi) {
            system("cls");
            cout << "Girdiğiniz isimde tur bulundu\n\n";
            cout << "\n----------------------------------------------------------------------\n";
            cout << std::left << "Tur İsmi" << "\t" << "Konaklama" << "\t" << "Ulaşım" << "\t" << "Tur Ücreti";
            cout << "\n----------------------------------------------------------------------\n";
            cout << endl << std::left << turdetayoku << "\t" << konaklama << "\t" << ulasim << "\t" << turucreti; ;
            cout << "\n----------------------------------------------------------------------\n";
        }
        else
            cout << "Aradığınız Tur Bulunamadı...";
        dosyaoku.close(); //Dosyamızı kapattık
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih();
}
void turguncelle() {

    int gecici = 0;
    do {
        system("cls");
        cout << "-VERI GUNCELLEME ISLEMINE HOSGELDINIZ-\n\n";
        turdetay2();
        cout << "\n\nGuncellemek istediginiz kayitin sira numarasini giriniz -> ";
        cin >> turismi;
        ifstream dosyaoku("turdetay.txt", ios::in);
        ofstream dosyayaz("turdetay1.txt", ios::app);
        while (!dosyaoku.eof()) {
            dosyaoku >> turdetayoku >> konaklama >> ulasim >> turucreti;
            if (turdetayoku == turismi) {
                cout << "Guncel tur ismini girin= ";   cin >> turdetayoku;
                if (turdetayoku.length() >= 1) {
                    cout << "Guncel konaklama seçeneğini girin= ";   cin >> konaklama;
                    cout << "Guncel ulaşım seçeneğini girin= ";   cin >> ulasim;
                    cout << "Guncel tur ücretini girin= ";   cin >> turucreti;
                    dosyayaz << endl << turdetayoku << "\t" << konaklama << "\t" << ulasim << "\t" << turucreti;
                    cout << "\nVerileriniz basariyla guncellendi." << endl;
                }
                gecici = 1;
            }
            else
                dosyayaz << endl << turdetayoku << "\t" << konaklama << "\t" << ulasim << "\t" << turucreti;
        }
        if (gecici == 0)
            cout << "Dosyada eslesen sira numarasi bulunamadi." << endl;
        dosyaoku.close();
        dosyayaz.close();
        remove("turdetay.txt");
        rename("turdetay1.txt", "turdetay.txt");
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih();
}

void musteridetay() {
    system("cls"); //Ekranı temizleme.
    cout << "-MUSTERİ BİLGİLENDİRME SİSTEMİNE HOŞGELDİNİZ-\n\n";
    cout << std::left << "Musteri İsmi" << "\t"  << "Yaş" << "\t"  << "İletişim" << "\t"  << "Tur Bilgisi"; //Üst bilgi satırı.
    cout << "\n----------------------------------------------------------------------\n";
    ifstream dosyaoku("musteri.txt", ios::in); //Dosyayı açtık.
    while (!dosyaoku.eof()) { //Dosyanın içindeki tüm verileri sonuna kadar okuduk ve yazdırdık.
        dosyaoku >> musteri >> yas >> iletisim >> turbilgisi;
        cout << endl << std::left << musteri << "\t" << yas << "\t"  << iletisim << "\t"  << turbilgisi; ;
    }
    dosyaoku.close(); //Dosyamızı kapattık
    cout << "\n----------------------------------------------------------------------\n";
    cout << "Bir önceki menüye dönmek için (E / e) -->";
    cin >> secim;
    if (secim == 'e' || 'E')
        anatercih();
}
void musteridetay2() {

    cout << std::left << "Musteri İsmi" << "\t" << "Yaş" << "\t" << "İletişim" << "\t" << "Tur Bilgisi"; //Üst bilgi satırı.
    cout << "\n----------------------------------------------------------------------\n";
    ifstream dosyaoku("musteri.txt", ios::in); //Dosyayı açtık.
    while (!dosyaoku.eof()) { //Dosyanın içindeki tüm verileri sonuna kadar okuduk ve yazdırdık.
        dosyaoku >> musteri >> yas >> iletisim >> turbilgisi;
        cout << endl << std::left << musteri << "\t" << yas << "\t" << iletisim << "\t" << turbilgisi; ;
    }
    dosyaoku.close(); //Dosyamızı kapattık
    cout << "\n----------------------------------------------------------------------\n";

}
void musteriekle() {
    do {
        system("cls");
        cout << "-MUSTERİ EKLEME ISLEMINE HOSGELDINIZ-\n\n";
        musteridetay2();

        ofstream DosyaYaz;
        DosyaYaz.open("musteri.txt", ios::app); //Dosyamızı açtık
        cout << "\n Musteri İsmi (İsim_Soyisim) :"; cin >> musteri; //Eklenecek Tur bilgilerini kullanıcıdan aldık
        cout << "\n Musteri Yaşı :"; cin >> yas;
        cout << "\n İletişim Tel (10 Karakter) :"; cin >> iletisim;
        cout << "\n Tur Bilgisi :"; cin >> turbilgisi;

        DosyaYaz << "\n" << musteri << "\t" << yas << "\t" << iletisim << "\t" << turbilgisi; //Bilgileri Dosyaya yazdık

        DosyaYaz.close(); //Dosyayıkapattık
        cout << "Musteri ekleme tamamlandi." << endl;
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih2();
}
void musterisil() {
    int gecici = 0;
    do {
        system("cls");
        cout << "-MUSTERİ SILME ISLEMINE HOSGELDINIZ-\n\n";
        musteridetay2();
        cout << "\n\nSilmek istediginiz Müşteri ismini Giriniz -> ";
        cin >> musteri_ismi;
        ifstream dosyaoku("musteri.txt", ios::in);
        ofstream dosyayaz("musteri1.txt", ios::app); //Geçiçi bir dosya açtık
        while (!dosyaoku.eof()) { //Dosyadaki verileri okuduk.
            dosyaoku >> musteri >> yas >> iletisim >> turbilgisi;
            if (musteri == musteri_ismi) {
                cout << "\nMusteri basariyla silindi." << endl;
                gecici = 1;
            }
            else {
                dosyayaz << "\n" << musteri << "\t" << yas << "\t" << iletisim << "\t" << turbilgisi; //Bilgileri Dosyaya yazdık
            }
        }
        if (gecici == 0)
            cout << "Dosyada eslesen müşteri bulunamadi." << endl;
        dosyaoku.close();
        dosyayaz.close(); //Geçiçi dosyayı kapattık
        remove("musteri.txt"); //Dosyanın aslını sildik ve geçiçi dosyamızın ismini değiştirdik.
        rename("musteri1.txt", "musteri.txt"); //
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih2();
}
void musteriarama() {
    do {
        system("cls");
        cout << "-MÜŞTERİ ARAMA ISLEMINE HOSGELDINIZ-\n\n";
        cout << "\n\nAramak istediginiz Müşteri ismini Giriniz -> ";
        cin >> musteri_ismi;
        ifstream dosyaoku("musteri.txt", ios::in); //Dosyayı açtık.
        while (!dosyaoku.eof()) { //Dosyanın içindeki tüm verileri sonuna kadar okuduk ve yazdırdık.
            dosyaoku >> musteri >> yas >> iletisim >> turbilgisi;
        }
        if (musteri == musteri_ismi) {
            system("cls");
            cout << "Girdiğiniz isimde müşteri bulundu\n\n";
            cout << "\n----------------------------------------------------------------------\n";
            cout << std::left << "Musteri İsmi" << "\t" << "Yaş" << "\t" << "İletişim" << "\t" << "Tur Bilgisi"; //Üst bilgi satırı.
            cout << "\n----------------------------------------------------------------------\n";
            cout << endl << std::left << musteri << "\t" << yas << "\t" << iletisim << "\t" << turbilgisi; ;
            cout << "\n----------------------------------------------------------------------\n";
        }
        else
            cout << "Aradığınız Müşteri Bulunamadı...";
        dosyaoku.close(); //Dosyamızı kapattık
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih2();
}
void musteriguncelle() {
    int gecici = 0;
    do {
        system("cls");
        cout << "-MUSTERİ GUNCELLEME ISLEMINE HOSGELDINIZ-\n\n";
        musteridetay2();
        cout << "\n\nGuncellemek istediginiz musterinin giriniz -> ";
        cin >> musteri_ismi;
        ifstream dosyaoku("musteri.txt", ios::in);
        ofstream dosyayaz("musteri1.txt", ios::app);
        while (!dosyaoku.eof()) {
            dosyaoku >> musteri >> yas >> iletisim >> turbilgisi;
            if (musteri == musteri_ismi) {
                cout << "Guncel müşteri ismini girin= ";   cin >> musteri;
                if (musteri.length() >= 1) {
                    cout << "Guncel müşteri yaşını girin= ";   cin >> yas;
                    cout << "Guncel güncel iletişim numarasını girin= ";   cin >> iletisim;
                    cout << "Guncel tur bilgisini girin= ";   cin >> turbilgisi;
                    dosyayaz << "\n" << musteri << "\t" << yas << "\t" << iletisim << "\t" << turbilgisi; //Bilgileri Dosyaya yazdık
                    cout << "\nVerileriniz basariyla guncellendi." << endl;
                }
                gecici = 1;
            }
            else
                dosyayaz << "\n" << musteri << "\t" << yas << "\t" << iletisim << "\t" << turbilgisi; //Bilgileri Dosyaya yazdık
        }
        if (gecici == 0)
            cout << "Dosyada eslesen müşteri bulunamadi." << endl;
        dosyaoku.close();
        dosyayaz.close();
        remove("musteri.txt");
        rename("musteri1.txt", "musteri.txt");
        cout << "\nTekrar islem yapmak icin -> 'E / e' \nBir onceki menu icin -> '0' \n";
        cin >> secim;
    } while ((secim == 'e') || (secim == 'E'));
    if (secim == '0')
        tercih2();
}
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı