C++ içinde konsol hesaplayıcı oluşturma

C++ programcısı için normal başlangıç noktası, komut satırında çalışan bir "Hello, world!" uygulamasıdır. Bu makalede bununla başlayacaksınız ve sonra daha zorlayıcı bir şeye geçeceğiz: hesap makinesi uygulaması.

Önkoşullar

  • Bilgisayarınızda yüklü ve çalışan C++ iş yüküyle Masaüstü geliştirme özelliğine sahip Visual Studio. Yüklemek için bkz . Visual Studio'da C++ desteğini yükleme.
  • Bu öğreticide, uygulama çalışırken kodunuzda değişiklik yapmanızı sağlayan düzenle ve devam et adlı bir özellik gösterilmektedir. Düzenlemeyi etkinleştirmek ve devam etmek için ana menüden Araçlar>Seçenekler>Hata Ayıklama>Genel'i seçin ve Kaynak dosyaların özgün sürümle tam olarak eşleşmesini iste seçeneğinin işaretli olduğundan emin olun.

Uygulama projenizi oluşturma

Visual Studio, bir uygulamanın kodunu düzenlemek için projeleri ve bir veya daha fazla proje düzenlemeye yönelik çözümleri kullanır. Proje, uygulama oluşturmak için kullanılan tüm seçenekleri, yapılandırmaları ve kuralları içerir. Ayrıca projenin tüm dosyalarıyla dış dosyaları arasındaki ilişkiyi de yönetir. Uygulamanızı oluşturmak için önce yeni bir proje ve çözüm oluşturun.

  1. Visual Studio'yu başlat--Visual Studio Başlat iletişim kutusu görüntülenir. Başlamak için Yeni proje oluştur'u seçin.

    Visual Studio 2022 başlatıldığında görüntülenen iletişim kutusunun ekran görüntüsü.

    İletişim kutusunda depoyu kopyalama, proje veya çözüm açma, yerel klasör açma ve yeni proje oluşturma seçenekleri vardır."

  2. Proje şablonları listesinde Konsol Uygulaması'nı ve ardından İleri'yi seçin.

    Visual Studio Yeni proje oluştur iletişim kutusunun ekran görüntüsü. Konsol Uygulaması şablonu seçeneği vurgulanır.

    Önemli

    Konsol Uygulaması şablonunun C++ sürümünü seçtiğinizden emin olun. C++, Windows ve Konsol etiketleri vardır ve simgenin köşesinde "++" bulunur.

  3. Yeni projenizi yapılandırın iletişim kutusunda Proje adı metin kutusunu seçin, yeni projenize CalculatorTutorial adını verin ve oluştur'u seçin.

    Visual Studio Yeni projenizi yapılandırın iletişim kutusunun ekran görüntüsü. Proje adı, proje konumu ve Çözüm adı alanları vardır.

    Boş bir C++ Windows konsol uygulaması 'Merhaba Dünya' uygulaması oluşturulur. Konsol uygulamaları, çıkışı görüntülemek ve kullanıcı girişini kabul etmek için bir Windows konsol penceresi kullanır. Visual Studio'da bir düzenleyici penceresi açılır ve oluşturulan kodu gösterir:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

Yeni uygulamanızın derlendiğini ve çalıştığını doğrulayın

Yeni bir Windows konsol uygulaması şablonu basit bir C++ "Merhaba Dünya" uygulaması oluşturur. Bu noktada, Visual Studio'nın oluşturduğunuz uygulamaları doğrudan IDE'den nasıl derleyip çalıştıracağını görebilirsiniz.

  1. Projenizi oluşturmak için Derleme menüsünden Çözüm Derle'yi seçin. Çıkış penceresinde derleme işleminin sonuçları gösterilir.

    Visual Studio Çıkış penceresinin ekran görüntüsü. Derlemenin başarılı olduğunu belirten bir ileti görüntüleniyor.

  2. Kodu çalıştırmak için menü çubuğunda Hata Ayıkla, Hata ayıklamadan başla (Ctrl+F5) öğesini seçin.

    Uygulamanın çıkışını görüntüleyen Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü: Merhaba Dünya!.

    Bir konsol penceresi açılır ve uygulamanızı çalıştırır.

    Visual Studio'da bir konsol uygulamasını başlattığınızda, bu uygulama kodunuzu çalıştırır ve "Bu pencereyi kapatmak için herhangi bir tuşa basın. . ." komutuyla çıktıyı görme şansı verir.

    Tebrikler! Visual Studio'da ilk "Hello, world!" konsol uygulamanızı oluşturdunuz!

  3. Konsol penceresini kapatmak ve Visual Studio'ya dönmek için bir tuşa basın.

Artık kodun beklediğiniz gibi çalıştığını doğrulamak için her değişiklik sonrasında uygulamanızı derleyip çalıştırabileceğiniz araçlara sahipsiniz. Daha sonra, hata ayıklamazsa nasıl hata ayıklanacağını göstereceğiz.

Kodu düzenleme

Şimdi bu şablondaki kodu hesap makinesi uygulaması olacak şekilde değiştirelim.

  1. Dosyanın içeriğini CalculatorTutorial.cpp aşağıdaki kodla değiştirerek bu örnekle eşleşmesini sağlayın:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
            << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    Kodu anlama:

    • deyimleri #include , diğer dosyalarda bulunan koda başvurmanıza olanak sağlar. Bazen köşeli ayraçlarla (<>); diğer durumlarda ise tırnak işaretleri (" ") ile çevrili bir dosya adı görebilirsiniz. Genel olarak, C++ Standart Kitaplığı'na başvururken açılı köşeli ayraçlar kullanılırken, diğer dosyalar için tırnak işaretleri kullanılır.
    • Satırı derleyiciye using namespace std; C++ Standart Kitaplığı'ndan bu dosyada kullanılacak öğeleri beklemesini söyler. Bu satır olmadan, kapsamını belirtmek için kitaplıktan her anahtar sözcüğün önüne std:: eklenmelidir. Örneğin, bu satır olmadan her başvurusu cout olarak std::coutyazılmalıdır. deyimi using , kodun daha temiz görünmesini sağlamak için eklenir.
    • cout anahtar sözcüğü, C++ dilinde standart çıktıya yazdırmak için kullanılır. << işleci derleyiciye sağındaki her şeyi standart çıkışa göndermesini söyler.
    • Anahtar endl sözcük Enter tuşuna benzer; satırı sonlandırır ve imleci bir sonraki satıra taşır. Aynı şeyi yapmak için dizenin içine bir koymak daha iyi bir \n yöntemdir (tarafından kapsanan ""), çünkü endl her zaman programın performansına zarar verebilen arabelleği temizler. Ancak bu çok küçük bir uygulama olduğundan, endl daha iyi okunabilirlik için kullanılır.
    • Tüm C++ deyimlerinin noktalı virgülle bitmesi ve tüm C++ uygulamalarının bir main() işlev içermesi gerekir. Bu işlev, programın başlangıçta çalıştığı işlevdir. Tüm kodun kullanılabilmesi için 'den main() erişilebilir olması gerekir.
  2. Dosyayı kaydetmek için Ctrl+S tuşlarına basın veya IDE'nin üst kısmındaki Kaydet simgesini, menü çubuğunun altındaki araç çubuğundaki disket simgesini seçin.

  3. Uygulamayı çalıştırmak için Ctrl+F5 tuşlarına basın veya Hata Ayıkla menüsüne gidin ve Hata Ayıklama Olmadan Başlat'ı seçin. Kodda belirtilen metni görüntüleyen bir konsol penceresi görmeniz gerekir.

  4. İşiniz bittiğinde konsol penceresini kapatın.

Matematik işlemi yapmak için kod ekleme

Sınıf, bir şey çalıştıran bir nesnenin şeması gibidir. Bu durumda, matematik mantığını içerecek bir hesap makinesi sınıfı tanımlarız.

Hesap Makinesi sınıfı ekleme

  1. Proje menüsüne gidin ve Sınıf Ekle'yi seçin. Sınıf Adı düzenleme kutusuna Hesap Makinesi yazın. Tamam'ı seçin.

    Visual Studio Sınıf Ekle iletişim kutusunun ekran görüntüsü.

    Sınıf adı alanı hesap makinesi olarak ayarlanır. .h dosya alanı Calculator.h dosyasını içerir. .cpp dosya alanı Calculator.cpp içerir. Temel sınıf alanı boş. Sanal yıkıcı, satır içi ve yönetilmeyen diğer seçenekler işaretlenmemiş.

    Projenize iki yeni dosya eklenir. Değiştirilen tüm dosyalarınızı aynı anda kaydetmek için Ctrl+Shift+S tuşlarına basın. Bu, Dosya>Tümünü Kaydet için bir klavye kısayoludur. Kaydet düğmesinin yanında iki disketin simgesi olan Tümünü Kaydet için bir araç çubuğu düğmesi de bulunur. Genel olarak, Tümünü Kaydet'i sık sık yapmak iyi bir uygulamadır, böylece kaydederken hiçbir dosyayı kaçırmazsınız.

    Sınıf Ekleme sihirbazı, sınıfla aynı ada sahip ve .cpp dosyaları oluşturur.h. proje dosyalarınızın tam listesini Çözüm Gezgini penceresinde, IDE'nin yanında görünür olarak görebilirsiniz. Pencere görünmüyorsa menü çubuğundan açabilirsiniz: Görünüm Çözüm Gezgini'ü> seçin.

    Visual Studio Çözüm Gezgini penceresinin ekran görüntüsü.

    Hesap makinesi öğretici projesi, Calculator.h dosyasını içeren bir üst bilgi dosyaları düğümüne sahiptir. Kaynak Dosyalar düğümü Calculator.cpp ve CalculatorTutorial.cpp içerir. Başvurular, dış bağımlılıklar ve kaynak dosyaları için düğümler görünür ancak kapatılır.

    Bir dosyayı Çözüm Gezgini penceresinde çift tıklayarak açabilirsiniz. Çift tıklayarak Calculator.h açın.

  2. dosyasının şu şekilde görünmesi için içeriğini Calculator.h aşağıdaki kodla değiştirin:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    Kodu anlama

    • Bu kod, toplama, çıkarma, çarpma ve bölme için matematik işlemlerini çalıştırmak için kullandığımız adlı Calculateyeni bir işlev bildirir.
    • C++ kodu üst bilgi (.h) dosyaları ve kaynak (.cpp) dosyalar halinde düzenlenir. Diğer birkaç dosya uzantısı çeşitli derleyiciler tarafından desteklenir, ancak bunlar hakkında bilinmesi gereken temel dosyalardır. İşlevler ve değişkenler normalde , bir ad ve tür verildiğinde, üst bilgi dosyalarında bildirilir ve kaynak dosyalarda uygulanır veya bir tanım verilir. Başka bir dosyada tanımlanan koda erişmek için kullanabilirsiniz #include "filename.h". Burada filename.h , kullanmak istediğiniz değişkenleri veya işlevleri bildiren dosyanın adıdır.
    • Kodunuzu ne yaptığına göre farklı dosyalar halinde düzenlemek iyi bir uygulamadır, böylece daha sonra ihtiyacınız olan kodu kolayca bulabilirsiniz. Bizim örneğimizde, sınıfı işlevi içeren main() dosyadan ayrı olarak tanımlarızCalculator, ancak içindeki main()sınıfına başvurmayı Calculator planlıyoruz.
  3. altında yeşil dalgalı çizgi görünür Calculate çünkü işlev bildirilse Calculatede tanımlanmamıştır. CalculateÜzerine gelin, görüntülenen tornavida üzerindeki aşağı oka tıklayın ve içinde 'Calculate' tanımını oluştur'u Calculator.cppseçin.

    Visual Studio düzenleyici penceresinde bir tornavida açılan listesinin ekran görüntüsü. 'Calculator.cpp hesapla'nın tanımını oluştur' seçeneği vurgulanır.

    Bu kod öğesine Calculator.cppeklenir:

    'Calculate' ctor işlevinin tanımını gösteren Visual Studio düzenleyicisinin ekran görüntüsü.

    Oluşturucunun tanımı şöyledir: double Calculator::Calculate( double x, char oper, double y) { return 0.0; }

    Şu anda yalnızca 0,0 döndürür. Şimdi bunu değiştirelim.

  4. Calculator.cpp Düzenleyici penceresinde dosyaya geçin. Calculator::Calculate(double x, char oper, double y) içeriğini şununla değiştirin:

    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    Kodu anlama

    • işlevi Calculate bir sayı, işleç ve ikinci bir sayı tüketir, ardından istenen işlemi sayılar üzerinde gerçekleştirir.
    • switch deyimi hangi işlecin sağlandığını denetler ve yalnızca bu işleme karşılık gelen servis talebini yürütür. Varsayılan: durum, kullanıcının kabul edilen olmayan bir işleç oluşturması durumunda bir geri dönüşdür, bu nedenle program bozulmaz. Genel olarak, geçersiz kullanıcı girişini daha zarif bir şekilde işlemek en iyisidir, ancak bu, bu öğreticinin kapsamının dışındadır.
    • anahtar double sözcüğü, ondalıkları destekleyen bir sayı türünü belirtir. Bu şekilde, hesap makinesi hem ondalık matematik hem de tamsayı matematiği işleyebilir. kodun Calculate en başındaki (işlevin dönüş türünü belirtir) nedeniyle double işlevin her zaman böyle bir sayı döndürmesi gerekir; bu nedenle varsayılan durumda bile 0,0 döndürüriz.
    • Dosya .h , derleyiciye hangi parametreleri gerektirdiğini ve ondan hangi dönüş türünün bekleyebileceğinizi önceden bildiren işlev prototipini bildirir. dosyasında .cpp işlevin tüm uygulama ayrıntıları bulunur.

Bu noktada kodu derleyip yeniden çalıştırırsanız, hangi işlemin gerçekleştirileceğini sorduktan sonra hemen çıkar. Bu nedenle işlevi birden çok hesaplama yapacak şekilde değiştirin main .

Calculator Sınıf üyesi işlevlerini çağırma

  1. main içindeki CalculatorTutorial.cpp işlevini aşağıdaki gibi güncelleştirin:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
             << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result " << "of " << x << oper << y << " is: " << result << endl;
        }
    
        return 0;
    }
    

    Kodu anlama

    • C++ programları her zaman işlevden başladığından main() , diğer kodumuzu oradan çağırmamız gerekir, bu nedenle bir #include deyim gerekir.
    • Bazı başlangıç değişkenleri x, y, operve result sırasıyla ilk sayıyı, ikinci sayıyı, işleci ve nihai sonucu depolamak için bildirilir. Tanımsız davranışlardan kaçınmak için onlara bazı başlangıç değerleri vermek her zaman iyi bir uygulamadır. Burada yapılan budur.
    • Satırı, sınıfın Calculator c; bir örneği Calculator olarak 'c' adlı bir nesne bildirir. Sınıfın kendisi yalnızca hesap makinelerinin nasıl çalıştığına yönelik bir şemadır; nesnesi, matematik işleminin belirli bir hesap makinesidir.
    • deyimi while (true) bir döngüdür. Döngünün içindeki kod, içindeki koşul () true olduğu sürece tekrar tekrar yürütülmeye devam eder. Koşul basitçe olarak truelistelendiğinden her zaman doğrudur, bu nedenle döngü sonsuza kadar çalışır. Programı kapatmak için kullanıcının konsol penceresini el ile kapatması gerekir. Aksi takdirde, program her zaman yeni girişi bekler.
    • anahtar cin sözcüğü, kullanıcıdan gelen girişleri kabul etmek için kullanılır. Bu giriş akışı, konsol penceresine girilen bir metin satırını işleyip kullanıcı girişinin gerekli belirtim ile eşleştiğini varsayarak sırasıyla listelenen değişkenlerin her birinin içine yerleştirecek kadar akıllıdır. Bu satırı, ikiden fazla sayı gibi farklı giriş türlerini kabul edecek şekilde değiştirebilirsiniz; ancak bunu işlemek için işlevin Calculate() de güncelleştirilmesi gerekir.
    • İfade, c.Calculate(x, oper, y); daha önce tanımlanan işlevi çağırır Calculate ve girilen giriş değerlerini sağlar. İşlev daha sonra içinde resultdepolanan bir sayı döndürür.
    • Son olarak konsola result yazdırılır, böylece kullanıcı hesaplamanın sonucunu görür.

Kodu yeniden derleme ve test etme

Şimdi her şeyin düzgün çalıştığından emin olmak için programı yeniden test edin.

  1. Uygulamayı yeniden derlemek ve başlatmak için Ctrl+F5 tuşlarına basın.

  2. yazın 5+5ve Enter tuşuna basın. Sonucun 10 olduğunu doğrulayın.

    Programı çalıştırma sonuçlarını gösteren komut penceresinin ekran görüntüsü.

    Uygulama şu iletiyi alır: Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. Kullanıcı 5+5 girdi. Uygulama çıkışı: 5+5 sonucu: 10

Uygulamada hata ayıklama

Kullanıcı konsol penceresine herhangi bir şey yazabildiğinden hesap makinesinin beklenmeyen girişleri işlediğinden emin olalım. Programı çalıştırmak yerine, adım adım ne yaptığını inceleyebilmemiz için programın hatalarını ayıklayalım.

Uygulamayı hata ayıklayıcıda çalıştırma

  1. içinde CalcuatorTutorial.cpp, satırında bir kesme noktası ayarlayın: result = c.Calculate(x, oper, y);. Kesme noktasını ayarlamak için, düzenleyici penceresinin sol kenarı boyunca gri dikey çubukta çizginin yanına tıklayın. Kırmızı bir nokta görünür.

    Visual Studio düzenleyicisinin ekran görüntüsü. Satırda kesme noktasını temsil eden kırmızı bir nokta görüntülenir: result = c.Calculate(x, oper, y).

    Şimdi programda hata ayıkladığımızda yürütme bu satırda duraklatılır. Programın basit durumlar için çalıştığına dair zaten kaba bir fikrimiz var. her çağırışımızda Calculate()yürütmeyi duraklatmak istemediğimiz için kesme noktasını koşullu hale getirelim.

  2. Kesme noktasını temsil eden kırmızı noktaya sağ tıklayın ve Koşullar'ı seçin. Koşulun düzenleme kutusuna yazın (y == 0) && (oper == '/'). Kesme noktası koşulunu kaydetmek için Kapat düğmesini seçin.

    Kesme Noktası Ayarlar açılır penceresini görüntüleyen Visual Studio'nun ekran görüntüsü.

    Kesme noktasının koşulu: y==0 && oper == '/' True.

    Artık uygulama 0'a bölmeye çalıştığında yürütme kesme noktasında duraklatılır.

  3. Programda hata ayıklamak için F5 tuşuna basın veya yeşil ok simgesine sahip Yerel Windows Hata Ayıklayıcısı araç çubuğu düğmesini seçin. Konsol uygulamanızda "5 - 0" gibi bir şey girerseniz, program normal şekilde davranır ve çalışmaya devam eder. Ancak, "10 / 0" yazarsanız kesme noktasında duraklatılır. İşleç ve sayılar arasına istediğiniz sayıda boşluk koyabilirsiniz: cin girişi uygun şekilde ayrıştıracak kadar akıllıdır.

    Visual Studio düzenleyicisinin ekran görüntüsü. Program yürütme, satırdaki koşullu kesme noktasında durduruldu: result = c.Calculate(x, oper, y);.

Hata ayıklayıcıda yararlı pencereler

Kodunuzun hatalarını ayıkladığınızda bazı yeni pencerelerin göründüğünü fark edebilirsiniz. Bu pencereler hata ayıklama deneyiminize yardımcı olabilir. Otomatikler penceresine göz atın. Otomatikler penceresi, geçerli satırdan önce ve en fazla üç satır kullanılan değişkenlerin geçerli değerlerini gösterir.

Visual Studio hata ayıklayıcısı OtomatikLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 5, x 10 ve y 0'dır.

Bu işlevdeki tüm değişkenleri görmek için Yerel ayarlar penceresine geçin. Hata ayıklarken bu değişkenlerin program üzerindeki etkisini görmek için bu değişkenlerin değerlerini değiştirebilirsiniz. Bu durumda, onları yalnız bırakırız.

Hata ayıklama sırasında yerel değişkenlerin geçerli değerlerini görüntüleyen Visual Studio'daki YerelLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 0, x 10 ve y 0'dır.

Yürütmenin şu anda duraklatıldığı noktada geçerli değerlerini görmek için koddaki değişkenlerin üzerine de gelebilirsiniz. Önce üzerine tıklayarak düzenleyici penceresinin odakta olduğundan emin olun.

47 veya '/' olan 'oper' değişkeninin değerini gösteren araç ipucunun ekran görüntüsü.

Hata ayıklamaya devam et

  1. Soldaki sarı ok geçerli yürütme noktasını gösterir. Geçerli satır öğesini çağırırCalculate, bu nedenle F11 tuşuna basarak İşleve Adımlayın. Şimdi işlevin gövdesinde Calculate kod yürütüyorsunuz. Standart kitaplık işlevleri dahil olmak üzere, üzerinde olduğunuz satırdaki tüm işlevlere adım attığından, Adımla'ya dikkat edin. Standart kitaplığa geçmek normaldir, ancak kitaplık kodu yerine kodunuz üzerinde odaklanmak daha ilginizi çekebilir.

  2. Yürütme noktası işlevin başında Calculate olduğuna göre, programın yürütmesinde bir sonraki satıra geçmek için F10 tuşuna basın. F10, Adım At olarak da bilinir. Satırın her bir bölümünde gerçekleşen işlemlerin ayrıntılarını gözden geçirmeden satırdan satıra gitmek için Üzerine Adımla'yı kullanabilirsiniz. Genel olarak, başka bir yerden çağrılan koda daha derinden dalmak istemiyorsanız (gövdesine Calculateulaşmak için yaptığınız gibi) Adımla yerine Adımla seçeneğini kullanmanız gerekir.

  3. Diğer dosyadaki işleve geri dönene kadar F10 kullanarak her satırın main() Üzerine Adımlayın ve satırda cout durun.

    Program bekleneni yapıyor: ilk sayıyı alır ve ikinciye böler. Satırda değişkenin üzerine gelin veya Otomatikler penceresinde bir göz atın result.coutresult değeri infdoğru görünmüyor, bu nedenle düzeltelim. Satır cout yalnızca içinde resultdepolanan değeri verir, bu nedenle F10 kullanarak bir satır daha ileri doğru ilerlettiğinizde konsol penceresi görüntülenir:

    Sıfıra bölme işleminin sonucunu görüntüleyen Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü.

    Uygulama çıkışı: Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. Kullanıcı 5-0 girdi. Uygulama çıkışı: Sonuç: 5. Kullanıcı 10/0 girdi. Uygulama çıkışı: Sonuç: inf

    Bu sonucun nedeni sıfıra bölme işleminin tanımlanmamış olmasıdır, dolayısıyla programın istenen işlem için sayısal bir yanıtı yoktur.

"Sıfıra böl" hatasını düzeltme

Kullanıcının sorunu anlamasını kolaylaştırmak için sıfıra bölme işlemini daha düzgün bir şekilde ele alalım.

  1. içinde CalculatorTutorial.cppaşağıdaki değişiklikleri yapın. (Adlı bir hata ayıklayıcısı özelliği sayesinde, programı düzenlerken çalışır durumda bırakabilirsinizDüzenle ve Devam Et). if Sıfıra bölmeyi denetlemek ve olursa kullanıcıya bir ileti göndermek için aşağıdaki cin >> x >> oper >> y; deyimini ekleyin. Aksi takdirde sonuç yazdırılır.

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Attempted to divide by zero!" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result " << "of " << x << oper << y << " is: " << result << endl;
        }
    
        return 0;
    }
    
  2. F5 tuşuna bir kez basın. Program yürütme, kullanıcı girişi istemek için duraklatmak zorunda olana kadar devam eder. Yeniden girin 10 / 0 . Şimdi daha yararlı bir ileti yazdırılır. Kullanıcıdan daha fazla giriş istenir ve program normal şekilde yürütülür.

    Sıfıra bölmeyi işlemek için yapılan değişiklikler uygulandıktan sonra son çıkışı gösteren konsol penceresinin ekran görüntüsü.

    Konsol penceresinde iki satır görüntülenir: 10 / 0 Sonuç: inf, ardından 10 / 0 Matematik hatası: Sıfıra bölme girişimi.

    Not

    Hata ayıklama modundayken kodu düzenlerken kodun eskime riski vardır. Hata ayıklayıcı eski kodunuzu çalıştırmaya devam ettiğinde ve henüz değişikliklerinizle güncelleştirmediğinde bu durum ortaya çıkar. Hata ayıklayıcı, bu durum oluştuğunda sizi bilgilendirmek için bir iletişim kutusu görüntüler. Bazen yürütülen kodu yenilemek için F5 tuşuna basmanız gerekebilir. Özellikle, yürütme noktası bu işlevin içindeyken bir işlevin içinde bir değişiklik yaparsanız, güncelleştirilmiş kodu almak için işlevden çıkmanız ve yeniden içine dönmeniz gerekir. Bu işe yaramazsa ve bir hata iletisi görürseniz, IDE'nin üst kısmındaki menülerin altındaki araç çubuğundaki kırmızı kareye tıklayıp F5 girerek veya araç çubuğundaki durdur düğmesinin yanındaki yeşil "oynat" okunu seçerek hata ayıklamayı yeniden başlatabilirsiniz.

    Düzenleme ve devam etme işleminin başarısız olmasının bir diğer nedeni de"Debug-Options-General>> altındaki Kaynak dosyaların özgün sürümle tam olarak eşleşmesini iste ayarının etkinleştirilmesi gerekiyor..." iletisini görmenizdir. Bunu düzeltmek için ana menüden Araçlar>Seçenekler>Hata Ayıklama>Genel'i seçin ve Kaynak dosyaların özgün sürümle tam olarak eşleşmesini iste seçeneğinin işaretli olduğundan emin olun.

    Çalıştırma ve Hata Ayıklama kısayollarını anlama

    • F5 (veya Hata Ayıklamayı>Başlat Hata Ayıklama) zaten etkin değilse bir hata ayıklama oturumu başlatır ve bir kesme noktasına isabet edene veya programın kullanıcı girişi yapması gerekene kadar programı çalıştırır. Kullanıcı girişi gerekmiyorsa ve isabet etmek için kullanılabilir kesme noktası yoksa, program sonlandırılır ve program çalışmaya başladığında konsol penceresi kapanır. Çalıştırılacak bir "Merhaba Dünya" programınız varsa, pencereyi açık tutmak için F5 tuşuna basmadan önce Ctrl+F5 tuşlarını kullanın veya bir kesme noktası ayarlayın.
    • Ctrl+F5 (veya Hata>Ayıklama Olmadan Başlat) hata ayıklama moduna geçmeden uygulamayı çalıştırır. Bu hata ayıklamadan biraz daha hızlıdır ve program yürütmeyi tamamladıktan sonra konsol penceresi açık kalır.
    • F10 (AdımLa olarak bilinir), kodda yineleme yapmanıza, satır satır çalıştırmanıza ve kodun nasıl çalıştırıldığından ve yürütmenin her adımında hangi değişken değerlerinin olduğunu görselleştirmenize olanak tanır.
    • F11 (İçine Adımla olarak bilinir) Adımla benzer şekilde çalışır, ancak yürütme satırında çağrılan işlevlere adım atar. Örneğin, yürütülen satır bir işlevi çağırırsa, F11 tuşuna basıldığında işaretçi işlevin gövdesine taşınır, böylece başladığınız satıra dönmeden önce işlevin çalıştırılan kodunu izleyebilirsiniz. İşlev çağrısının üzerinde F10 adımlarına basıldığında bir sonraki satıra geçebilirsiniz; işlev çağrısı yine de gerçekleşir, ancak program ne yaptığını göstermek için duraklatılmıyor.

Uygulamayı kapatma

  • Hala çalışıyorsa hesap makinesi uygulamasının konsol penceresini kapatın.

Git kaynak denetimi ekleme

Artık bir uygulama oluşturduğunuza göre, uygulamayı bir Git deposuna eklemek isteyebilirsiniz. Biz size destek oluyoruz. Visual Studio, doğrudan IDE'den kullanabileceğiniz Git araçlarıyla bu işlemi kolaylaştırır.

İpucu

Git, en yaygın olarak kullanılan modern sürüm denetim sistemidir, bu nedenle ister profesyonel bir geliştirici olun ister kod oluşturmayı öğrenin, Git çok yararlı olabilir. Git'i kullanmaya yeni başladıysanız, https://git-scm.com/ web sitesi başlamak için iyi bir yerdir. Burada, hile sayfaları, popüler bir çevrimiçi kitap ve Git Basics videolarını bulabilirsiniz.

Kodunuzu Git ile ilişkilendirmek için, kodunuzun bulunduğu yeni bir Git deposu oluşturarak işe başlarsınız. Şunu yapabilirsiniz:

  1. Visual Studio'nun sağ alt köşesindeki durum çubuğunda Kaynak Denetimine Ekle'yi ve ardından Git'i seçin.

    Çözüm Gezgini bölmesinin altındaki Git kaynak denetimi düğmelerinin ekran görüntüsü; Kaynak Denetimine Ekle düğmesi vurgulanmış.

  2. Git deposu oluştur iletişim kutusunda GitHub'da oturum açın.

    Yeni bir GitHub deposu oluşturduğunuz Git Deposu Oluştur iletişim penceresinin ekran görüntüsü.

    Depo adı, klasör konumunuza göre otomatik olarak doldurulur. Varsayılan olarak, yeni deponuz özeldir ve bu da depoya erişebilecek tek kişinin siz olduğunuz anlamına gelir.

    İpucu

    Deponuzun genel veya özel olması fark etmeksizin kodunuzun uzaktan yedeğinin GitHub'da güvenli bir şekilde depolanması en iyisidir. Bir ekiple çalışmasanız bile, uzak bir depo kodunuzu herhangi bir bilgisayardan kullanımınıza sağlar.

  3. Oluştur ve Gönder'i seçin.

    Deponuzu oluşturduktan sonra durum çubuğunda durum ayrıntıları görüntülenir.

    Visual Studio Çözüm Gezgini bölmesinin altında yer alan ve dal adını ve bekleyen değişikliklerin sayısını gösteren depo durum çubuğunun ekran görüntüsü.

    Okları içeren ilk simge, geçerli dalınızda kaç giden/gelen işleme olduğunu gösterir. Gelen işlemeleri çekmek veya giden işlemeleri göndermek için bu simgeyi kullanabilirsiniz. Ayrıca, önce bu işlemeleri görüntülemeyi de seçebilirsiniz. Bunu yapmak için simgeyi seçin ve ardından Giden/Gelenleri Görüntüle'yi seçin.

    Kalem içeren ikinci simge, kodunuzdaki kaydedilmemiş değişikliklerin sayısını gösterir. Bu değişiklikleri Git Değişiklikleri penceresinde görüntülemek için bu simgeyi seçebilirsiniz.

Git'i uygulamanızla kullanma hakkında daha fazla bilgi edinmek için Visual Studio sürüm denetimi belgelerine bakın.

Tamamlanmış uygulama

Tebrikler! Hesap makinesi uygulamasının kodunu tamamladınız, derleyip hata ayıkladınız ve hepsini Visual Studio'da depoya eklediniz.

Sonraki adımlar

C++ için Visual Studio hakkında daha fazla bilgi edinin

C++ programcısı için normal başlangıç noktası, komut satırında çalışan bir "Hello, world!" uygulamasıdır. Bu makalede bununla başlıyorsunuz ve sonra daha zorlayıcı bir şeye geçiyoruz: hesap makinesi uygulaması.

Önkoşullar

  • Bilgisayarınızda yüklü ve çalışan C++ iş yüküyle Masaüstü geliştirme özelliğine sahip Visual Studio. Yüklemek için bkz . Visual Studio'da C++ desteğini yükleme.

Uygulama projenizi oluşturma

Visual Studio, bir uygulamanın kodunu düzenlemek için projeleri ve bir veya daha fazla proje düzenlemeye yönelik çözümleri kullanır. Proje, uygulama oluşturmak için kullanılan tüm seçenekleri, yapılandırmaları ve kuralları içerir. Ayrıca projenin tüm dosyalarıyla dış dosyaları arasındaki ilişkiyi de yönetir. Uygulamanızı oluşturmak için önce yeni bir proje ve çözüm oluşturun.

  1. Visual Studio'daki menü çubuğunda Dosya>Yeni Proje'yi> seçin. Yeni Proje penceresi açılır.

  2. Sol kenar çubuğunda Visual C++ öğesinin seçili olduğundan emin olun. Ortada Windows Konsol Uygulaması'nı seçin.

  3. Alttaki Ad metin kutusunda yeni projeyi CalculatorTutorial olarak adlandırın ve tamam'ı seçin.

    Yeni Proje iletişim kutusunun ekran görüntüsü. Windows Konsol Uygulaması proje türü seçilidir. Ad metin kutusu CalculatorTutorial olarak ayarlanır.

    Boş bir C++ Windows konsol uygulaması 'Merhaba Dünya' uygulaması oluşturulur. Konsol uygulamaları, çıkışı görüntülemek ve kullanıcı girişini kabul etmek için bir Windows konsol penceresi kullanır. Visual Studio'da bir düzenleyici penceresi açılır ve oluşturulan kodu gösterir:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

Yeni uygulamanızın derlendiğini ve çalıştığını doğrulayın

Yeni bir Windows konsol uygulaması şablonu basit bir C++ "Merhaba Dünya" uygulaması oluşturur. Bu noktada, Visual Studio'nın oluşturduğunuz uygulamaları doğrudan IDE'den nasıl derleyip çalıştıracağını görebilirsiniz.

  1. Projenizi oluşturmak için Derleme menüsünden Çözüm Derle'yi seçin. Çıkış penceresinde derleme işleminin sonuçları gösterilir.

    Derlemenin başarılı olduğunu gösteren Visual Studio Çıktı penceresinin ekran görüntüsü.

  2. Kodu çalıştırmak için menü çubuğunda Hata Ayıkla, Hata ayıklamadan başla (Ctrl+F5) öğesini seçin.

    Çıktıyı gösteren Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü: Merhaba Dünya!.

    Bir konsol penceresi açılır ve uygulamanızı çalıştırır.

    Visual Studio'da bir konsol uygulamasını başlattığınızda, bu uygulama kodunuzu çalıştırır ve "Bu pencereyi kapatmak için herhangi bir tuşa basın. . ." komutuyla çıktıyı görme şansı verir.

    Tebrikler! Visual Studio'da ilk "Hello, world!" konsol uygulamanızı oluşturdunuz!

  3. Konsol penceresini kapatmak ve Visual Studio'ya dönmek için bir tuşa basın.

Artık kodun beklediğiniz gibi çalıştığını doğrulamak için her değişiklik sonrasında uygulamanızı derleyip çalıştırabileceğiniz araçlara sahipsiniz. Daha sonra, hata ayıklamazsa nasıl hata ayıklanacağını göstereceğiz.

Kodu düzenleme

Şimdi bu şablondaki kodu hesap makinesi uygulaması olacak şekilde dönüştürelim.

  1. Dosyanın içeriğini CalculatorTutorial.cpp aşağıdaki kodla değiştirerek bu örnekle eşleşmesini sağlayın:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    Kodu anlama:

    • deyimleri #include , diğer dosyalarda bulunan koda başvurmanıza olanak sağlar. Bazen köşeli ayraçlarla (<>); diğer durumlarda ise tırnak işaretleri (" ") ile çevrili bir dosya adı görebilirsiniz. Genel olarak, C++ Standart Kitaplığı'na başvururken açılı köşeli ayraçlar kullanılırken, diğer dosyalar için tırnak işaretleri kullanılır.
    • Satırı derleyiciye using namespace std; C++ Standart Kitaplığı'ndan bu dosyada kullanılacak öğeleri beklemesini söyler. Bu satır olmadan, kapsamını belirtmek için kitaplıktan her anahtar sözcüğün önüne std:: eklenmelidir. Örneğin, bu satır olmadan her başvurusu cout olarak std::coutyazılmalıdır. deyimi using , kodun daha temiz görünmesini sağlamak için eklenir.
    • cout anahtar sözcüğü, C++ dilinde standart çıktıya yazdırmak için kullanılır. *<< işleci derleyiciye sağındaki her şeyi standart çıkışa göndermesini söyler.
    • Anahtar endl sözcük Enter tuşuna benzer; satırı sonlandırır ve imleci bir sonraki satıra taşır. Her zaman arabelleği temizler ve programın performansına zarar verebilir çünkü endl dizenin içine (tarafından ""dahil) aynı şeyi yapmak için bir \n koymak daha iyi bir uygulamadır. Ancak bu çok küçük bir uygulama olduğundan, endl daha iyi okunabilirlik için kullanılır.
    • Tüm C++ deyimlerinin noktalı virgülle bitmesi ve tüm C++ uygulamalarının bir main() işlev içermesi gerekir. Bu işlev, programın başlangıçta çalıştığı işlevdir. Tüm kodun kullanılabilmesi için 'den main() erişilebilir olması gerekir.
  2. Dosyayı kaydetmek için Ctrl+S tuşlarına basın veya IDE'nin üst kısmındaki Kaydet simgesini, menü çubuğunun altındaki araç çubuğundaki disket simgesini seçin.

  3. Uygulamayı çalıştırmak için Ctrl+F5 tuşlarına basın veya Hata Ayıkla menüsüne gidin ve Hata Ayıklama Olmadan Başlat'ı seçin. Bu proje güncel değil ifadesini içeren bir açılır pencere alırsanız, Bu iletişim kutusunu bir daha gösterme'yi ve ardından uygulamanızı derlemek için Evet'i seçebilirsiniz. Kodda belirtilen metni görüntüleyen bir konsol penceresi görmeniz gerekir.

    Hesap makinesi uygulamasını IDE'de çalıştırma işlemini gösteren video.

    İlk olarak, proje güncel olmadığından derleme yapılıp yapılmayacağını soran bir iletişim kutusu görüntülenir. 'Bu iletişim kutusunu bir daha gösterme' onay kutusu seçili. Projeyi oluşturmak için 'Evet' seçilir, hesap makinesi projesi derlenir ve ardından bir Windows konsol penceresinde başlatılır.

  4. İşiniz bittiğinde konsol penceresini kapatın.

Matematik işlemi yapmak için kod ekleme

Sınıf, bir şey çalıştıran bir nesnenin şeması gibidir. Bu durumda, matematik mantığını içerecek bir hesap makinesi sınıfı tanımlarız.

Hesap Makinesi sınıfı ekleme

  1. Proje menüsüne gidin ve Sınıf Ekle'yi seçin. Sınıf Adı düzenleme kutusuna Hesap Makinesi yazın. Tamam'ı seçin.

    Kullanıcının Sınıf Ekle iletişim kutusunu açmasını, Sınıf Adı alanına 'Hesap Makinesi' yazıp Tamam'a tıklamasını gösteren video.

    Sınıf, bir şey çalıştıran bir nesnenin şeması gibidir. Bu durumda, bir hesap makinesi ve nasıl çalışması gerektiğini tanımlarız.

    Projenize iki yeni dosya eklenir. Değiştirilen tüm dosyalarınızı aynı anda kaydetmek için Ctrl+Shift+S tuşlarına basın. Bu, Dosya>Tümünü Kaydet için bir klavye kısayoludur. Kaydet düğmesinin yanında iki disketin simgesi olan Tümünü Kaydet için bir araç çubuğu düğmesi de bulunur. Genel olarak, Tümünü Kaydet'i sık sık yapmak iyi bir uygulamadır, böylece kaydederken hiçbir dosyayı kaçırmazsınız.

    Sınıf Ekleme sihirbazı, sınıfla aynı ada sahip ve .cpp dosyaları oluşturur.h. proje dosyalarınızın tam listesini Çözüm Gezgini penceresinde, IDE'nin yanında görünür olarak görebilirsiniz. Pencere görünmüyorsa menü çubuğundan açabilirsiniz: Görünüm Çözüm Gezgini'ü> seçin.

    Visual Studio Çözüm Gezgini penceresinin ekran görüntüsü.

    Hesap makinesi öğretici projesi calculator.h, stdafx.h ve targetver.h içeren bir üst bilgi dosyaları düğümüne sahiptir. Kaynak Dosyalar düğümü Calculator.cpp, CalculatorTutorial.cpp ve stdafx.cpp içerir. Başvurular, dış bağımlılıklar ve kaynak dosyaları için düğümler görünür ancak kapatılır.

    Bir dosyayı Çözüm Gezgini penceresinde çift tıklayarak açabilirsiniz. Çift tıklayarak Calculator.h açın.

  2. dosyasının şu şekilde görünmesi için içeriğini Calculator.h aşağıdaki kodla değiştirin:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    Kodu anlama

    • Bu kod, toplama, çıkarma, çarpma ve bölme için matematik işlemlerini çalıştırmak için kullandığımız adlı Calculateyeni bir işlev bildirir.
    • C++ kodu üst bilgi (.h) dosyaları ve kaynak (.cpp) dosyalar halinde düzenlenir. Diğer birkaç dosya uzantısı çeşitli derleyiciler tarafından desteklenir, ancak bunlar hakkında bilinmesi gereken temel dosyalardır. İşlevler ve değişkenler normalde , bir ad ve tür verildiğinde, üst bilgi dosyalarında bildirilir ve kaynak dosyalarda uygulanır veya bir tanım verilir. Başka bir dosyada tanımlanan koda erişmek için kullanabilirsiniz #include "filename.h". Burada filename.h , kullanmak istediğiniz değişkenleri veya işlevleri bildiren dosyanın adıdır.
    • Kodunuzu ne yaptığına göre farklı dosyalar halinde düzenlemek iyi bir uygulamadır, böylece daha sonra ihtiyacınız olan kodu kolayca bulabilirsiniz. Bizim örneğimizde, sınıfı işlevi içeren main() dosyadan ayrı olarak tanımlarızCalculator, ancak içindeki main()sınıfına başvurmayı Calculator planlıyoruz.
  3. altında yeşil dalgalı çizgi görünür Calculate çünkü işlev bildirilse Calculatede tanımlanmamıştır. CalculateÜzerine gelin, görüntülenen tornavida üzerindeki aşağı oka tıklayın ve içinde 'Calculate' tanımını oluştur'u Calculator.cppseçin. Diğer dosyada yapılan kod değişikliğine göz atmanızı sağlayan bir açılır pencere görüntülenir. Kod öğesine Calculator.cppeklendi.

    Calculator.cpp'da Hesapla tanımını oluştur'u seçmek için ampul açılan listesinin kullanılmasını gösteren video.

    Şu anda yalnızca 0,0 döndürür. Şimdi bunu değiştirelim. Açılır menüyi kapatmak için Esc tuşuna basın.

  4. Calculator.cpp Düzenleyici penceresinde dosyaya geçin. Bu dosyanın içeriğini aşağıdaki kodla değiştirin:

    #include "Calculator.h"
    
    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    Kodu anlama

    • işlevi Calculate bir sayı, işleç ve ikinci bir sayı tüketir, ardından istenen işlemi sayılar üzerinde gerçekleştirir.
    • switch deyimi hangi işlecin sağlandığını denetler ve yalnızca bu işleme karşılık gelen servis talebini yürütür. Varsayılan: durum, kullanıcının kabul edilen olmayan bir işleç oluşturması durumunda bir geri dönüşdür, bu nedenle program bozulmaz. Genel olarak, geçersiz kullanıcı girişini daha zarif bir şekilde işlemek en iyisidir, ancak bu, bu öğreticinin kapsamının dışındadır.
    • anahtar double sözcüğü, ondalıkları destekleyen bir sayı türünü belirtir. Bu şekilde, hesap makinesi hem ondalık matematik hem de tamsayı matematiği işleyebilir. kodun Calculate en başındaki (işlevin dönüş türünü belirtir) nedeniyle double işlevin her zaman böyle bir sayı döndürmesi gerekir; bu nedenle varsayılan durumda bile 0,0 döndürüriz.
    • Dosya .h , derleyiciye hangi parametreleri gerektirdiğini ve ondan hangi dönüş türünün bekleyebileceğinizi önceden bildiren işlev prototipini bildirir. dosyasında .cpp işlevin tüm uygulama ayrıntıları bulunur.

Bu noktada kodu derleyip yeniden çalıştırırsanız, hangi işlemin gerçekleştirileceğini sorduktan sonra yine çıkar. Ardından, işlevi bazı hesaplamalar yapacak şekilde değiştirin main .

Hesap Makinesi sınıf üyesi işlevlerini çağırma

  1. Şimdi içindeki CalculatorTutorial.cppişlevini güncelleştirelimmain:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    

    Kodu anlama

    • C++ programları her zaman işlevden başladığından main() , diğer kodumuzu oradan çağırmamız gerekir, bu nedenle bir #include deyim gerekir.
    • Bazı başlangıç değişkenleri x, y, operve result sırasıyla ilk sayıyı, ikinci sayıyı, işleci ve nihai sonucu depolamak için bildirilir. Tanımsız davranışlardan kaçınmak için onlara bazı başlangıç değerleri vermek her zaman iyi bir uygulamadır. Burada yapılan budur.
    • Satırı, sınıfın Calculator c; bir örneği Calculator olarak 'c' adlı bir nesne bildirir. Sınıfın kendisi yalnızca hesap makinelerinin nasıl çalıştığına yönelik bir şemadır; nesnesi, matematik işleminin belirli bir hesap makinesidir.
    • deyimi while (true) bir döngüdür. Döngünün içindeki kod, içindeki koşul () true olduğu sürece tekrar tekrar yürütülmeye devam eder. Koşul basitçe olarak truelistelendiğinden her zaman doğrudur, bu nedenle döngü sonsuza kadar çalışır. Programı kapatmak için kullanıcının konsol penceresini el ile kapatması gerekir. Aksi takdirde, program her zaman yeni girişi bekler.
    • anahtar cin sözcüğü, kullanıcıdan gelen girişleri kabul etmek için kullanılır. Bu giriş akışı, konsol penceresine girilen bir metin satırını işleyip kullanıcı girişinin gerekli belirtim ile eşleştiğini varsayarak sırasıyla listelenen değişkenlerin her birinin içine yerleştirecek kadar akıllıdır. Bu satırı, ikiden fazla sayı gibi farklı giriş türlerini kabul edecek şekilde değiştirebilirsiniz; ancak bunu işlemek için işlevin Calculate() de güncelleştirilmesi gerekir.
    • İfade, c.Calculate(x, oper, y); daha önce tanımlanan işlevi çağırır Calculate ve girilen giriş değerlerini sağlar. İşlev daha sonra içinde resultdepolanan bir sayı döndürür.
    • Son olarak konsola result yazdırılır, böylece kullanıcı hesaplamanın sonucunu görür.

Kodu yeniden derleme ve test etme

Her şeyin düzgün çalıştığından emin olmak için programı yeniden test edin.

  1. Uygulamayı yeniden derlemek ve başlatmak için Ctrl+F5 tuşlarına basın.

  2. yazın 5+5ve Enter tuşuna basın. Sonucun 10 olduğunu doğrulayın.

    Hesap Makinesi uygulamasını çalıştıran bir komut penceresinin ekran görüntüsü. 5 + 5 sonucunun 10 olduğunu gösterir.

Uygulamada hata ayıklama

Kullanıcı konsol penceresine herhangi bir şey yazabildiğinden hesap makinesinin beklenmeyen girişleri işlediğinden emin olalım. Bunun yerine programın hatalarını ayıklayalım, böylece adım adım ne yaptığını inceleyebiliriz.

Uygulamayı hata ayıklayıcıda çalıştırma

  1. içinde CalcuatorTutorial.cpp, satırda result = c.Calculate(x, oper, y); bir kesme noktası ayarlayın. Kesme noktasını ayarlamak için, düzenleyici penceresinin sol kenarı boyunca gri dikey çubukta çizginin yanına tıklayın. Kırmızı bir nokta görünür.

    Kullanıcının 25. satırda kesme noktası ayarlamasını gösteren video: sonuç = c.Calculate(x, oper, y);.

    Şimdi programda hata ayıkladığımızda, yürütmeyi her zaman bu satırda duraklatır. Programın basit durumlar için çalıştığına dair zaten kaba bir fikrimiz var. Yürütmeyi her seferinde duraklatmak istemediğimiz için kesme noktasını koşullu hale getirelim.

  2. Kesme noktasını temsil eden kırmızı noktaya sağ tıklayın ve Koşullar'ı seçin. Koşulun düzenleme kutusuna yazın (y == 0) && (oper == '/'). Kesme noktası koşulunu kaydetmek için bitirdiğinizde Kapat düğmesini seçin.

    Koşullu kesme noktası ayarlama işlemini gösteren video.

    Kesme noktası şu satırdadır: sonuç = c nokta Hesapla ( x, oper, y). 'Koşullar...' kesme noktası ayarları penceresini açan kesme noktası açılan listesinde seçilidir. Koşul seçeneği işaretlidir ve altında açılan menüler şöyle ayarlanır: 'Koşullu İfade' ve 'True'. Kullanıcı koşul metin kutusuna y == 0 && oper == '/' girer ve ardından koşullu kesme noktasını ayarlamak için yakın'ı seçer.

    Şimdi yürütmeyi kesme noktasında özellikle 0'a bölme denenirse duraklatıyoruz.

  3. Programda hata ayıklamak için F5 tuşuna basın veya yeşil ok simgesine sahip Yerel Windows Hata Ayıklayıcısı araç çubuğu düğmesini seçin. Konsol uygulamanızda "5 - 0" gibi bir şey girerseniz, program normal şekilde davranır ve çalışmaya devam eder. Ancak, "10 / 0" yazarsanız kesme noktasında duraklatılır. Hatta işleç ve sayılar arasına istediğiniz sayıda boşluk koyabilirsiniz; cin girişi uygun şekilde ayrıştıracak kadar akıllıdır.

    Program yürütmesinin koşullu kesme noktasında duraklatıldığını gösteren video.

    Kullanıcı 5 - 0 girer. Uygulama çıkışları: Sonuç 5'tir. Kullanıcı daha sonra 10/0 girer ve koşullu kesme noktası koşulu karşılandığından yürütme satırda durur: sonuç = c.Calculate(x, oper, y);

Hata ayıklayıcıda yararlı pencereler

Kodunuzun hatalarını ayıkladığınızda bazı yeni pencerelerin göründüğünü fark edebilirsiniz. Bu pencereler hata ayıklama deneyiminize yardımcı olabilir. Otomatikler penceresine göz atın. Otomatikler penceresi, geçerli satırdan önce ve en fazla üç satır kullanılan değişkenlerin geçerli değerlerini gösterir.

Visual Studio hata ayıklayıcısı OtomatikLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 5, x 10 ve y 0'dır.

Bu işlevdeki tüm değişkenleri görmek için Yerel ayarlar penceresine geçin. Hata ayıklarken bu değişkenlerin değerlerini değiştirerek bunların program üzerindeki etkisini görebilirsiniz. Bu durumda, onları yalnız bırakırız.

Hata ayıklama sırasında yerel değişkenlerin geçerli değerlerini görüntüleyen Visual Studio'daki YerelLer penceresinin ekran görüntüsü.

Oper değeri 47 '/', sonuç 0, x 10 ve y 0'dır.

Yürütmenin şu anda duraklatıldığı geçerli değerlerini görmek için kodun içindeki değişkenlerin üzerine de gelebilirsiniz. Önce üzerine tıklayarak düzenleyici penceresinin odakta olduğundan emin olun.

y değişkeninin üzerine gelindiğinde görünen araç ipucunun gösterildiği video. y'nin 0 olan geçerli değerini görüntüler.

Hata ayıklamaya devam et

  1. Soldaki sarı ok geçerli yürütme noktasını gösterir. Geçerli satır öğesini çağırırCalculate, bu nedenle F11 tuşuna basarak işlevin içine adımlayın ve bu da sizi işlevin Calculate gövdesine götürür. Standart kitaplık işlevleri dahil olmak üzere, üzerinde olduğunuz satırdaki tüm işlevlere adım attığından, Adımla'ya dikkat edin. Standart kitaplığa geçmek normaldir, ancak kitaplık kodu yerine kodunuz üzerinde odaklanmak daha ilginizi çekebilir.

  2. Yürütme noktası işlevin başında Calculate olduğuna göre, programın yürütmesinde bir sonraki satıra geçmek için F10 tuşuna basın. F10, Adım At olarak da bilinir. Satırın her bir bölümünde gerçekleşen işlemlerin ayrıntılarını gözden geçirmeden satırdan satıra gitmek için Üzerine Adımla'yı kullanabilirsiniz. Genel olarak, başka bir yerden çağrılan koda daha derinden dalmak istemiyorsanız (gövdesine Calculateulaşmak için yaptığınız gibi) Adımla yerine Adımla'yı kullanmanız gerekir.

  3. Diğer dosyadaki işleve geri dönene kadar F10 kullanarak her satırın main() Üzerine Adımlayın ve satırda cout durun.

    Calculate işlevindeki her kod satırının üzerinde adım atlayan video.

    Calculate işlevindeki her kod satırı, denetim ana işleve dönene kadar devredilir. Kullanıcı daha sonra değeri olan inf değerini görmek için result adlı değişkenin üzerine gelir."

    Program bekleneni yapıyor: ilk sayıyı alır ve ikinciye böler. Satırda değişkenin üzerine gelin veya Otomatikler penceresinde bir göz atın result.coutresult Değeri, doğru görünmeyen değeridir inf, bu nedenle düzeltelim. Satır cout yalnızca içinde resultdepolanan değeri verir, bu nedenle F10 kullanarak bir satır daha ileri doğru ilerlettiğinizde konsol penceresi görüntülenir:

    Sıfıra bölme işleminin sonucunu görüntüleyen Visual Studio Hata Ayıklama Konsolu'nun ekran görüntüsü.

    Uygulama çıkışı: Lütfen gerçekleştirilecek işlemi girin. Biçim: a+b | a-b | a*b | a/b. Kullanıcı 5-0 girdi. Uygulama çıkışı: Sonuç: 5. Kullanıcı 10/0 girdi. Uygulama çıkışı: Sonuç: inf

    Bu sonucun nedeni sıfıra bölme işleminin tanımlanmamış olmasıdır, dolayısıyla programın istenen işlem için sayısal bir yanıtı yoktur.

"Sıfıra böl" hatasını düzeltme

Kullanıcının sorunu anlamasını kolaylaştırmak için sıfıra bölme işlemini daha düzgün bir şekilde ele alalım.

  1. içinde CalculatorTutorial.cppaşağıdaki değişiklikleri yapın. (Adlı bir hata ayıklayıcısı özelliği sayesinde, programı düzenlerken çalışır durumda bırakabilirsinizDüzenle ve Devam Et). Değişiklik, sıfıra bölme olup olmadığını denetlemek ve gerçekleşirse kullanıcıya bir ileti göndermek için aşağıdaki cin >> x >> oper >> y; deyimi eklemektirif. Aksi takdirde, sonuç yazdırılır:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Division by 0 exception" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    
  2. F5 tuşuna bir kez basın. Program yürütme, kullanıcı girişi istemek için duraklatmak zorunda olana kadar devam eder. Yeniden girin 10 / 0 . Şimdi daha yararlı bir ileti yazdırılır. Kullanıcıdan daha fazla giriş istenir ve program normal şekilde yürütülür.

    Kod değiştikten sonra nihai sonucu gösteren Hata Ayıklama Konsolu videosu. 10/ 0 girilir ve program '0 özel duruma göre bölme' görüntüler.

    Not

    Hata ayıklama modundayken kodu düzenlerken kodun eskime riski vardır. Hata ayıklayıcı eski kodunuzu çalıştırmaya devam ettiğinde ve henüz değişikliklerinizle güncelleştirmediğinde bu durum ortaya çıkar. Hata ayıklayıcı, bu durum oluştuğunda sizi bilgilendirmek için bir iletişim kutusu açar. Bazen yürütülen kodu yenilemek için F5 tuşuna basmanız gerekebilir. Özellikle, yürütme noktası bu işlevin içindeyken işlevin içinde bir değişiklik yaparsanız, işlevden çıkın ve ardından güncelleştirilmiş kodu almak için yeniden işleve geri dönün. Bu herhangi bir nedenle işe yaramazsa ve bir hata iletisi görürseniz, IDE'nin üst kısmındaki menülerin altındaki araç çubuğundaki kırmızı kareye tıklayıp F5 girerek veya araç çubuğundaki durdur düğmesinin yanındaki yeşil "oynat" okunu seçerek hata ayıklamayı yeniden başlatabilirsiniz.

    Düzenleme ve devam etme işleminin başarısız olmasının bir diğer nedeni de ana menüye gidip Araçlar>Seçenekler>Hata Ayıklama>Genel'i seçmeniz ve Kaynak dosyaların özgün sürümle tam olarak eşleşmesini gerektir seçeneğinin işaretli olduğundan emin olmanızdır.

    Çalıştırma ve Hata Ayıklama kısayollarını anlama

    • F5 (veya Hata Ayıklamayı>Başlat Hata Ayıklama) zaten etkin değilse bir hata ayıklama oturumu başlatır ve bir kesme noktasına isabet edene veya programın kullanıcı girişi yapması gerekene kadar programı çalıştırır. Kullanıcı girişi gerekmiyorsa ve isabet etmek için kullanılabilir kesme noktası yoksa, program sonlandırılır ve program çalışmaya başladığında konsol penceresi kapanır. Çalıştırılacak bir "Merhaba Dünya" programınız varsa, pencereyi açık tutmak için F5 tuşuna basmadan önce Ctrl+F5 tuşlarını kullanın veya bir kesme noktası ayarlayın.
    • Ctrl+F5 (veya Hata>Ayıklama Olmadan Başlat) hata ayıklama moduna geçmeden uygulamayı çalıştırır. Bu hata ayıklamadan biraz daha hızlıdır ve program yürütmeyi tamamladıktan sonra konsol penceresi açık kalır.
    • F10 (AdımLa olarak bilinir), kodda yineleme yapmanıza, satır satır çalıştırmanıza ve kodun nasıl çalıştırıldığından ve yürütmenin her adımında hangi değişken değerlerinin olduğunu görselleştirmenize olanak tanır.
    • F11 (İçine Adımla olarak bilinir) Adımla benzer şekilde çalışır, ancak yürütme satırında çağrılan işlevlere adım atar. Örneğin, yürütülen satır bir işlevi çağırırsa, F11 tuşuna basıldığında işaretçi işlevin gövdesine taşınır, böylece başladığınız satıra dönmeden önce işlevin çalıştırılan kodunu izleyebilirsiniz. İşlev çağrısının üzerinde F10 adımlarına basıldığında bir sonraki satıra geçebilirsiniz; işlev çağrısı yine de gerçekleşir, ancak program ne yaptığını göstermek için duraklatılmıyor.

Uygulamayı kapatma

  • Hala çalışıyorsa hesap makinesi uygulamasının konsol penceresini kapatın.

Tebrikler! Hesap makinesi uygulamasının kodunu tamamladınız ve Visual Studio'da derleyip hata ayıklamıştınız.

Sonraki adımlar

C++ için Visual Studio hakkında daha fazla bilgi edinin