Membuat kalkulator konsol di C++

Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda akan mulai dengan itu dalam artikel ini, dan kemudian kita beralih ke sesuatu yang lebih menantang: aplikasi kalkulator.

Prasyarat

  • Visual Studio dengan pengembangan Desktop dengan beban kerja C++ terinstal dan berjalan di komputer Anda. Untuk menginstalnya, lihat Menginstal dukungan C++ di Visual Studio.
  • Tutorial ini menunjukkan fitur yang disebut edit dan lanjutkan yang memungkinkan Anda membuat perubahan pada kode Anda saat aplikasi sedang berjalan. Untuk mengaktifkan edit dan lanjutkan, dari menu utama pilih Opsi>Alat>Penelusuran Kesalahan>Umum dan pastikan bahwa Memerlukan file sumber agar sama persis dengan versi asli dicentang.

Membuat proyek aplikasi Anda

Visual Studio menggunakan proyek untuk mengatur kode untuk aplikasi, dan solusi untuk mengatur satu atau beberapa proyek. Proyek berisi semua opsi, konfigurasi, dan aturan yang digunakan untuk membuat aplikasi. Ini juga mengelola hubungan antara semua file proyek dan file eksternal apa pun. Untuk membuat aplikasi Anda, pertama-tama, buat proyek dan solusi baru.

  1. Mulai Visual Studio--kotak dialog Visual Studio Start muncul. Pilih Buat proyek baru untuk memulai.

    Cuplikan layar dialog yang muncul saat Visual Studio 2022 dimulai.

    Dialog memiliki opsi untuk mengkloning repositori, membuka proyek atau solusi, membuka folder lokal, dan membuat proyek baru."

  2. Dalam daftar templat proyek, pilih Aplikasi Konsol, lalu pilih Berikutnya.

    Cuplikan layar dialog Visual Studio Membuat proyek baru. Opsi templat Aplikasi Konsol disorot.

    Penting

    Pastikan Anda memilih versi C++ templat Aplikasi Konsol. Ini memiliki tag C++, Windows, dan Konsol, dan ikon memiliki "++" di sudut.

  3. Dalam kotak dialog Konfigurasikan proyek baru Anda, pilih kotak teks Nama proyek, beri nama proyek baru Anda CalculatorTutorial, lalu pilih Buat.

    Cuplikan layar dialog Visual Studio Mengonfigurasi proyek baru Anda. Ini memiliki bidang untuk nama proyek, lokasi proyek, dan Nama solusi.

    Aplikasi konsol C++ Windows kosong 'Halo Dunia' dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor terbuka dan menampilkan kode yang dihasilkan:

    // 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
    

Verifikasi bahwa aplikasi baru Anda dibuat dan dijalankan

Templat untuk aplikasi konsol Windows baru membuat aplikasi "Halo Dunia" C++ sederhana. Pada titik ini, Anda dapat melihat bagaimana Visual Studio membangun dan menjalankan aplikasi yang Anda buat langsung dari IDE.

  1. Untuk membangun proyek Anda, pilih Bangun Solusi dari menu Build . Jendela Output menunjukkan hasil proses build.

    Cuplikan layar jendela Output Visual Studio. Ini menampilkan pesan bahwa build berhasil.

  2. Untuk menjalankan kode, pada bilah menu, pilih Debug, Mulai tanpa penelusuran kesalahan (Ctrl+F5).

    Cuplikan layar Konsol Debug Visual Studio yang menampilkan output aplikasi: Halo Dunia!.

    Jendela konsol terbuka lalu menjalankan aplikasi Anda.

    Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi ini menjalankan kode Anda, lalu mencetak "Tekan tombol apa pun untuk menutup jendela ini. . ." untuk memberi Anda kesempatan melihat hasilnya.

    Selamat! Anda membuat aplikasi konsol "Halo, dunia!" pertama Anda di Visual Studio!

  3. Tekan tombol untuk menutup jendela konsol dan kembali ke Visual Studio.

Anda sekarang memiliki alat untuk membuat dan menjalankan aplikasi setelah setiap perubahan, untuk memverifikasi bahwa kode masih berfungsi seperti yang Anda harapkan. Kemudian, kami menunjukkan kepada Anda cara men-debugnya jika tidak.

Mengedit kode

Sekarang mari kita ubah kode dalam templat ini menjadi aplikasi kalkulator.

  1. Ganti konten CalculatorTutorial.cpp file dengan kode berikut sehingga cocok dengan contoh ini:

    // 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
    

    Memahami kode:

    • Pernyataan #include memungkinkan Anda mereferensikan kode yang terletak di file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut (<>); di lain waktu, nama file dikelilingi oleh tanda kutip (" "). Secara umum, kurung sudut digunakan saat mereferensikan Pustaka Standar C++, sementara tanda kutip digunakan untuk file lain.
    • Baris using namespace std; memberi tahu pengkompilasi untuk mengharapkan hal-hal dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului untuk std:: menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensi cout harus ditulis sebagai std::cout. Pernyataan using ditambahkan untuk membuat kode terlihat lebih bersih.
    • Kata kunci cout digunakan untuk mencetak ke output standar di C++. Operator << memberi tahu pengompilasi untuk mengirim apa pun yang ada di sebelah kanannya ke output standar.
    • Kata endl kunci seperti tombol Enter; itu mengakhiri baris dan memindahkan kursor ke baris berikutnya. Ini adalah praktik yang lebih baik untuk menempatkan \n di dalam string (dikandung oleh "") untuk melakukan hal yang sama karena endl selalu menyiram buffer yang dapat melukai kinerja program. Tetapi karena ini adalah aplikasi yang sangat kecil, endl digunakan sebagai gantinya untuk keterbacaan yang lebih baik.
    • Semua pernyataan C++ harus berakhir dengan titik koma dan semua aplikasi C++ harus berisi fungsi main(). Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses agar main() dapat digunakan.
  2. Untuk menyimpan file, tekan Ctrl+S, atau pilih ikon Simpan di dekat bagian atas IDE, ikon disket di toolbar di bawah bilah menu.

  3. Untuk menjalankan aplikasi, tekan Ctrl+F5 atau buka menu Debug dan pilih Mulai Tanpa Penelusuran Kesalahan. Anda akan melihat jendela konsol muncul yang menampilkan teks yang ditentukan dalam kode.

  4. Tutup jendela konsol setelah selesai.

Menambahkan kode untuk melakukan beberapa matematika

Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kami mendefinisikan kelas kalkulator untuk berisi logika matematika.

Menambahkan kelas Kalkulator

  1. Buka menu Proyek dan pilih Tambahkan Kelas. Dalam kotak edit Nama Kelas, masukkan Kalkulator. Pilih OK.

    Cuplikan layar kotak dialog Tambahkan Kelas Visual Studio.

    Bidang nama kelas diatur ke kalkulator. Bidang file .h berisi Calculator.h. Bidang file .cpp berisi Calculator.cpp. Bidang kelas dasar kosong. Opsi lain untuk destruktor virtual, sebaris, dan tidak terkelola tidak dicentang.

    Dua file baru ditambahkan ke proyek Anda. Untuk menyimpan semua file yang diubah sekaligus, tekan Ctrl+Shift+S. Ini adalah pintasan keyboard untuk File>Simpan Semua. Ada juga tombol bilah alat untuk Simpan Semua, ikon dua disket, ada di samping tombol Simpan. Secara umum, ada baiknya untuk sering melakukan Simpan Semua, sehingga Anda tidak melewatkan file apa pun saat menyimpan.

    Wizard Tambahkan Kelas membuat .h dan .cpp file yang memiliki nama yang sama dengan kelas . Anda dapat melihat daftar lengkap file proyek Anda di jendela Penjelajah Solusi, terlihat di sisi IDE. Jika jendela tidak terlihat, Anda dapat membukanya dari bilah menu: pilih Tampilkan> Penjelajah Solusi.

    Cuplikan layar jendela Penjelajah Solusi Visual Studio.

    Proyek tutorial kalkulator memiliki simpul file header yang berisi Calculator.h. Simpul File Sumber berisi Calculator.cpp dan CalculatorTutorial.cpp. Simpul untuk referensi, dependensi eksternal, dan file sumber daya terlihat tetapi ditutup.

    Anda dapat membuka file dengan mengklik dua kali di jendela Penjelajah Solusi. Calculator.h Klik dua kali untuk membukanya.

  2. Ganti konten Calculator.h dengan kode berikut sehingga file sekarang terlihat seperti ini:

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

    Memahami kode

    • Kode ini mendeklarasikan fungsi baru yang disebut Calculate, yang kami gunakan untuk menjalankan operasi matematika untuk penambahan, pengurangan, perkalian, dan pembagian.
    • Kode C++ diatur ke dalam file header (.h) dan file sumber (.cpp). Beberapa ekstensi file lainnya didukung oleh berbagai pengompilasi, tetapi ini adalah yang utama untuk diketahui. Fungsi dan variabel biasanya dideklarasikan, yaitu, diberi nama dan jenis, dalam file header, dan diimplementasikan, atau diberi definisi, dalam file sumber. Untuk mengakses kode yang ditentukan dalam file lain, Anda dapat menggunakan #include "filename.h", di mana filename.h adalah nama file yang mendeklarasikan variabel atau fungsi yang ingin Anda gunakan.
    • Ini adalah praktik yang baik untuk mengatur kode Anda ke dalam file yang berbeda berdasarkan apa yang dilakukannya, sehingga mudah untuk menemukan kode yang Anda perlukan nanti. Dalam kasus kami, kami mendefinisikan kelas Calculator secara terpisah dari file yang berisi fungsi main(), tetapi kami berencana untuk mereferensikan kelas Calculator di main().
  3. Squiggle hijau muncul di bawah Calculate karena meskipun Calculate fungsi dideklarasikan, itu tidak ditentukan. Arahkan mouse ke atas Calculate, klik panah bawah pada obeng yang muncul, dan pilih Buat definisi 'Hitung' di Calculator.cpp.

    Cuplikan layar dropdown obeng di jendela editor Visual Studio. Opsi 'Buat definisi Hitung dalam Calculator.cpp' disorot.

    Kode ini ditambahkan ke Calculator.cpp:

    Cuplikan layar editor Visual Studio memperlihatkan definisi fungsi ctor 'Hitung'.

    Definisi konstruktor adalah: double Calculator::Calculate( double x, char oper, double y) { return 0.0; }

    Saat ini, hanya menghasilkan 0,0. Mari kita ubah hal itu.

  4. Beralih ke Calculator.cpp file di jendela editor. Ganti isi Calculator::Calculate(double x, char oper, double y) dengan:

    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;
        }
    }
    

    Memahami kode

    • Fungsi Calculate ini mengonsumsi angka, operator, dan angka kedua, lalu melakukan operasi yang diminta pada angka.
    • Pernyataan pengalih memeriksa operator mana yang disediakan, dan hanya mengeksekusi kasus yang sesuai dengan operasi tersebut. Default: kasus adalah fallback jika pengguna mengetikkan operator yang tidak diterima, sehingga program tidak rusak. Secara umum, yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini.
    • Kata kunci double menunjukkan jenis angka yang mendukung desimal. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. Fungsi Calculate diperlukan untuk selalu menghasilkan angka seperti itu karena double pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya 0,0 dihasilkan bahkan dalam kasus default.
    • File .h mendeklarasikan prototipe fungsi, yang memberi tahu kompilator di muka parameter apa yang diperlukannya, dan jenis pengembalian apa yang diharapkan darinya. File .cpp memiliki semua detail implementasi fungsi.

Jika Anda membangun dan menjalankan kode lagi pada saat ini, kode akan segera keluar setelah meminta operasi mana yang akan dilakukan. Jadi, ubah main fungsi untuk melakukan beberapa perhitungan.

Calculator Memanggil fungsi anggota kelas

  1. main Perbarui fungsi sebagai CalculatorTutorial.cpp berikut:

    // 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;
    }
    

    Memahami kode

    • Karena program C++ selalu dimulai pada fungsi main(), kita perlu memanggil kode kita yang lain, sehingga pernyataan #include diperlukan.
    • Beberapa variabel awal x, y, oper, dan result masing-masing dideklarasikan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir. Ini selalu merupakan praktik yang baik untuk memberi mereka beberapa nilai awal untuk menghindari perilaku yang tidak terdefinisi, yaitu apa yang dilakukan di sini.
    • Baris Calculator c; mendeklarasikan objek bernama 'c' sebagai instans kelas Calculator. Kelas itu sendiri hanyalah cetak biru cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika.
    • Pernyataan while (true) adalah perulangan. Kode di dalam perulangan terus dieksekusi berulang-ulang selama kondisi di dalam hold () benar. Karena kondisinya hanya terdaftar sebagai true, maka ini selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru.
    • Kata kunci cin digunakan untuk menerima input dari pengguna. Aliran input ini cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan, dengan asumsi input pengguna cocok dengan spesifikasi yang diperlukan. Anda dapat memodifikasi baris ini untuk menerima berbagai jenis input seperti lebih dari dua angka--meskipun Calculate() fungsi juga perlu diperbarui untuk menangani ini.
    • Ekspresi c.Calculate(x, oper, y); memanggil fungsi Calculate yang ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan. Fungsi kemudian menghasilkan angka yang disimpan di result.
    • Terakhir, result dicetak ke konsol, sehingga pengguna melihat hasil perhitungan.

Membangun dan menguji kode lagi

Sekarang uji program lagi untuk memastikan semuanya berfungsi dengan baik.

  1. Tekan Ctrl+F5 untuk membangun kembali dan memulai aplikasi.

  2. Ketik 5+5 dan tekan Enter. Verifikasi bahwa hasilnya adalah 10.

    Cuplikan layar jendela perintah memperlihatkan hasil menjalankan program.

    Aplikasi mengeluarkan pesan: Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Pengguna memasukkan 5+5. Output aplikasi: Hasil 5+5 adalah: 10

Men-debug aplikasi

Karena pengguna bebas mengetik apa pun ke jendela konsol, mari kita pastikan kalkulator menangani input yang tidak terduga. Alih-alih menjalankan program, mari kita debug sehingga kita dapat memeriksa apa yang dilakukannya langkah demi langkah.

Menjalankan aplikasi di debugger

  1. Di CalcuatorTutorial.cpp, atur titik henti pada baris: result = c.Calculate(x, oper, y);. Untuk mengatur titik henti, klik berikutnya di samping garis di bilah vertikal abu-abu sepanjang tepi kiri jendela editor. Sebuah titik merah muncul.

    Cuplikan layar editor Visual Studio. Titik merah yang mewakili titik henti muncul pada baris: result = c.Calculate(x, oper, y).

    Sekarang ketika kita men-debug program, eksekusi berhenti sejenak pada baris itu. Kita sudah memiliki ide kasar bahwa program bekerja untuk kasus-kasus sederhana. Karena kita tidak ingin menjeda eksekusi setiap kali kita memanggil Calculate(), mari kita buat titik henti kondisional.

  2. Klik kanan titik merah yang mewakili titik henti, dan pilih Kondisi. Dalam kotak edit untuk kondisi tersebut, masukkan (y == 0) && (oper == '/'). Pilih tombol Tutup untuk menyimpan kondisi titik henti.

    Cuplikan layar Visual Studio yang menampilkan pop-up Breakpoint Pengaturan.

    Kondisi untuk titik henti adalah: y==0 && oper == '/' Adalah true.

    Sekarang, eksekusi akan dijeda pada titik henti ketika aplikasi mencoba membagi dengan 0.

  3. Untuk men-debug program, tekan F5, atau pilih tombol bilah alat Windows Debugger Lokal yang memiliki ikon panah hijau. Di aplikasi konsol Anda, jika Anda memasukkan sesuatu seperti "5 - 0", program bereaksi normal dan terus berjalan. Namun, jika mengetik "10 / 0", program akan dijeda pada titik henti. Anda dapat meletakkan sejumlah spasi antara operator dan angka: cin cukup pintar untuk mengurai input dengan tepat.

    Cuplikan layar editor Visual Studio. Eksekusi program dihentikan pada titik henti kondisional pada baris: result = c.Calculate(x, oper, y);.

Jendela yang berguna di debugger

Saat men-debug kode, Anda mungkin melihat bahwa beberapa jendela baru muncul. Jendela ini dapat membantu pengalaman debugging Anda. Lihat jendela Otomatis. Jendela Otomatis memperlihatkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini.

Cuplikan layar jendela Otomatis debugger Visual Studio.

Nilai oper adalah 47 '/', hasilnya adalah 5, x adalah 10, dan y adalah 0.

Untuk melihat semua variabel dari fungsi tersebut, beralihlah ke jendela Lokal. Anda dapat memodifikasi nilai variabel ini saat menelusuri kesalahan untuk melihat efek apa yang akan mereka miliki pada program. Dalam hal ini, kami meninggalkan mereka sendirian.

Cuplikan layar jendela Lokal di Visual Studio, menampilkan nilai variabel lokal saat ini saat penelusuran kesalahan.

Nilai oper adalah 47 '/', hasilnya adalah 0, x adalah 10, dan y adalah 0.

Anda juga dapat mengarahkan mouse ke atas variabel dalam kode untuk melihat nilainya saat ini pada titik di mana eksekusi saat ini dijeda. Pastikan jendela editor berada dalam fokus dengan mengekliknya terlebih dahulu.

Cuplikan layar tipsalat yang menunjukkan nilai variabel 'oper', yaitu 47 atau '/'.

Lanjutkan penelusuran kesalahan

  1. Panah kuning di sebelah kiri menunjukkan titik eksekusi saat ini. Baris saat ini memanggil Calculate, jadi tekan F11 untuk Step Into fungsi. Sekarang Anda menjalankan kode dalam isi Calculate fungsi. Berhati-hatilah dengan Step Into karena melangkah ke fungsi apa pun di baris tempat Anda berada, termasuk fungsi pustaka standar. Tidak masalah untuk masuk ke pustaka standar, tetapi Anda mungkin lebih tertarik untuk berfokus pada kode Anda alih-alih kode pustaka.

  2. Sekarang setelah titik eksekusi berada di awal fungsi Calculate, tekan F10 untuk pindah ke baris berikutnya dalam eksekusi program. F10 juga dikenal sebagai Step Over. Anda dapat menggunakan Step Over untuk berpindah dari baris ke baris, tanpa mempelajari detail apa yang terjadi di setiap bagian baris. Secara umum, Anda harus menggunakan Step Over alih-alih Step Into kecuali Anda ingin menyelam lebih dalam ke dalam kode yang sedang dipanggil dari tempat lain (seperti yang Anda lakukan untuk mencapai isi Calculate).

  3. Lanjut menggunakan F10 untuk Step Over setiap baris hingga Anda kembali ke fungsi main() di file lain, dan berhenti di baris cout.

    Program ini melakukan apa yang diharapkan: dibutuhkan angka pertama, dan membaginya dengan yang kedua. Pada baris cout, arahkan mouse ke variabel result atau lihat result di jendela Otomatis. Nilainya inf, yang tidak terlihat benar, jadi mari kita perbaiki. Baris cout hanya menghasilkan nilai apa pun yang disimpan di result, jadi ketika Anda melangkah satu baris lagi ke depan menggunakan F10, jendela konsol menampilkan:

    Cuplikan layar Konsol Debug Visual Studio yang menampilkan hasil pembagian dengan operasi nol.

    Output aplikasi: Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Pengguna memasukkan 5-0. Output aplikasi: Hasilnya adalah: 5. Pengguna THe memasuki 10/0. Output aplikasi: Hasilnya adalah: inf

    Hasil ini karena pembagian dengan nol tidak terdefinisi, sehingga program tidak memiliki jawaban numerik untuk operasi yang diminta.

Perbaiki kesalahan "bagi dengan nol"

Mari kita tangani pembagian dengan nol lebih anggun sehingga lebih mudah bagi pengguna untuk memahami masalah.

  1. Buat perubahan berikut dalam CalculatorTutorial.cpp. (Anda dapat membiarkan program berjalan saat Anda mengedit, berkat fitur debugger yang disebut Edit dan Lanjutkan). Tambahkan pernyataan berikut ifcin >> x >> oper >> y; untuk memeriksa pembagian dengan nol dan keluarkan pesan kepada pengguna jika itu terjadi. Jika tidak, hasilnya dicetak.

    // 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. Tekan F5 sekali. Eksekusi program berlanjut sampai harus berhenti sejenak untuk meminta input pengguna. Masukkan 10 / 0 lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna dimintai masukan lebih lanjut, dan program terus dieksekusi secara normal.

    Cuplikan layar jendela konsol memperlihatkan output akhir setelah menerapkan perubahan untuk menangani pembagian dengan nol.

    Jendela konsol menampilkan dua baris: 10 / 0 Hasilnya adalah: inf, diikuti oleh, kesalahan Matematika 10 / 0: Mencoba membagi dengan nol.

    Catatan

    Ketika mengedit kode saat dalam mode debugging, ada risiko kode menjadi usang. Ini terjadi ketika debugger masih menjalankan kode lama Anda, dan belum memperbaruinya dengan perubahan Anda. Debugger menampilkan dialog untuk memberi tahu Anda kapan hal ini terjadi. Terkadang, Anda mungkin perlu menekan F5 untuk menyegarkan kode yang sedang dieksekusi. Secara khusus, jika Anda membuat perubahan di dalam fungsi saat titik eksekusi berada di dalam fungsi itu, Anda perlu keluar dari fungsi, lalu kembali ke dalamnya lagi untuk mendapatkan kode yang diperbarui. Jika itu tidak berhasil dan Anda melihat pesan kesalahan, Anda dapat berhenti men-debug dengan mengklik kotak merah di toolbar di bawah menu di bagian atas IDE, lalu mulai debugging lagi dengan memasukkan F5 atau dengan memilih panah hijau "putar" di samping tombol berhenti pada toolbar.

    Alasan lain mengedit dan melanjutkan mungkin gagal adalah jika Anda melihat pesan yang mengatakan "Memerlukan file sumber agar sama persis dengan pengaturan versi asli di bawah Debug-Opsi-Umum>> perlu diaktifkan..." Untuk memperbaikinya, dari menu utama pilih Opsi>Alat>Debugging>Umum dan pastikan bahwa Memerlukan file sumber agar sama persis dengan versi asli yang dicentang.

    Memahami pintasan Jalankan dan Debug

    • F5 (atau Debug>Mulai Debugging) memulai sesi debugging jika belum aktif, dan menjalankan program hingga mencapai titik henti atau program memerlukan input pengguna. Jika input pengguna tidak diperlukan dan tidak ada titik henti yang dapat dicapai, program akan berakhir dan jendela konsol akan menutup sendiri ketika program selesai berjalan. Jika Anda memiliki sesuatu seperti program "Halo Dunia" untuk dijalankan, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
    • Ctrl+F5 (atau Debug>Mulai Tanpa Debugging) menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol akan tetap terbuka setelah program selesai dieksekusi.
    • F10 (dikenal sebagai Step Over) memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, serta memvisualisasikan cara kode dijalankan dan nilai variabel yang ada di setiap langkah eksekusi.
    • F11 (dikenal sebagai Step Into) berfungsi sama dengan Step Over, kecuali langkah-langkahnya ke fungsi apa pun yang dipanggil pada baris eksekusi. Misalnya, jika baris yang dieksekusi memanggil fungsi, dengan menekan F11 akan memindahkan pointer ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 akan melangkahi panggilan fungsi dan hanya berpindah ke baris berikutnya; panggilan fungsi masih terjadi, tetapi program tidak dijeda untuk menunjukkan apa yang dilakukannya.

Tutup aplikasi

  • Jika masih berjalan, tutup jendela konsol untuk aplikasi kalkulator.

Menambahkan kontrol sumber Git

Setelah membuat aplikasi, Anda mungkin ingin menambahkannya ke repositori Git. Kami siap membantu Anda. Visual Studio memudahkan proses tersebut dengan alat Git yang dapat Anda gunakan langsung dari IDE.

Tip

Git adalah sistem kontrol versi modern yang paling banyak digunakan, jadi apakah Anda seorang pengembang profesional atau Anda belajar cara membuat kode, Git bisa sangat berguna. Jika Anda baru menggunakan Git, situs web https://git-scm.com/ adalah tempat yang baik untuk memulai. Di sana, Anda dapat menemukan contekan, buku online populer, dan video Git Basics.

Untuk mengaitkan kode Anda dengan Git, Anda mulai dengan membuat repositori Git baru tempat kode Anda berada. Berikut caranya:

  1. Di bilah status di sudut kanan bawah Visual Studio, pilih Tambahkan ke Kontrol Sumber, lalu pilih Git.

    Cuplikan layar tombol kontrol sumber Git di bawah panel Penjelajah Solusi, dengan tombol Tambahkan ke Kontrol Sumber disorot.

  2. Dalam kotak dialog Buat repositori Git, masuk ke GitHub.

    Cuplikan layar jendela dialog Buat Repositori Git tempat Anda membuat repositori GitHub baru.

    Nama repositori terisi otomatis berdasarkan lokasi folder Anda. Secara default, repositori baru Anda bersifat pribadi, yang berarti Anda satu-satunya yang dapat mengaksesnya.

    Tip

    Baik repositori Anda bersifat publik atau privat, yang terbaik adalah memiliki cadangan jarak jauh kode Anda yang disimpan dengan aman di GitHub. Bahkan jika Anda tidak bekerja dengan tim, repositori jarak jauh membuat kode Anda tersedia untuk Anda dari komputer mana pun.

  3. Pilih Buat dan Dorong.

    Setelah Anda membuat repositori, detail status muncul di bilah status.

    Cuplikan layar bilah status repositori yang terletak di bawah panel Visual Studio Penjelajah Solusi, memperlihatkan nama cabang dan jumlah perubahan yang luar biasa.

    Ikon pertama dengan panah menunjukkan berapa banyak penerapan keluar/masuk di cabang Anda saat ini. Anda dapat menggunakan ikon ini untuk menarik penerapan masuk atau mendorong penerapan keluar apa pun. Anda juga dapat memilih untuk melihat penerapan ini terlebih dahulu. Untuk melakukannya, pilih ikon, lalu pilih Tampilkan Keluar/Masuk.

    Ikon kedua dengan pensil menunjukkan jumlah perubahan yang tidak dilakukan pada kode Anda. Anda dapat memilih ikon ini untuk melihat perubahan tersebut di jendela Perubahan Git.

Untuk mempelajari selengkapnya tentang cara menggunakan Git dengan aplikasi Anda, lihat dokumentasi kontrol versi Visual Studio.

Aplikasi yang sudah selesai

Selamat! Anda menyelesaikan kode untuk aplikasi kalkulator, membangun dan men-debugnya, dan menambahkannya ke repositori, semuanya di Visual Studio.

Langkah berikutnya

Pelajari selengkapnya tentang Visual Studio untuk C++

Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda mulai dengan itu dalam artikel ini, dan kemudian kita beralih ke sesuatu yang lebih menantang: aplikasi kalkulator.

Prasyarat

Membuat proyek aplikasi Anda

Visual Studio menggunakan proyek untuk mengatur kode untuk aplikasi, dan solusi untuk mengatur satu atau beberapa proyek. Proyek berisi semua opsi, konfigurasi, dan aturan yang digunakan untuk membuat aplikasi. Ini juga mengelola hubungan antara semua file proyek dan file eksternal apa pun. Untuk membuat aplikasi Anda, pertama-tama, buat proyek dan solusi baru.

  1. Pada bilah menu di Visual Studio, pilih File>Proyek Baru.> Jendela Proyek Baru terbuka.

  2. Di bilah sisi kiri, pastikan Visual C++ dipilih. Di tengah, pilih Aplikasi Konsol Windows.

  3. Di kotak teks Nama di bagian bawah, beri nama proyek baru CalculatorTutorial, lalu pilih OK.

    Cuplikan layar dialog Proyek Baru. Jenis proyek Aplikasi Konsol Windows dipilih. Kotak teks Nama diatur ke KalkulatorTutorial.

    Aplikasi konsol C++ Windows kosong 'Halo Dunia' dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor terbuka dan menampilkan kode yang dihasilkan:

    // 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
    

Verifikasi bahwa aplikasi baru Anda dibuat dan dijalankan

Templat untuk aplikasi konsol Windows baru membuat aplikasi "Halo Dunia" C++ sederhana. Pada titik ini, Anda dapat melihat bagaimana Visual Studio membangun dan menjalankan aplikasi yang Anda buat langsung dari IDE.

  1. Untuk membangun proyek Anda, pilih Bangun Solusi dari menu Build . Jendela Output menunjukkan hasil proses build.

    Cuplikan layar jendela Output Visual Studio memperlihatkan bahwa build berhasil.

  2. Untuk menjalankan kode, pada bilah menu, pilih Debug, Mulai tanpa penelusuran kesalahan (Ctrl+F5).

    Cuplikan layar Konsol Debug Visual Studio yang menampilkan output: Halo Dunia!.

    Jendela konsol terbuka lalu menjalankan aplikasi Anda.

    Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi ini menjalankan kode Anda, lalu mencetak "Tekan tombol apa pun untuk menutup jendela ini. . ." untuk memberi Anda kesempatan melihat hasilnya.

    Selamat! Anda membuat aplikasi konsol "Halo, dunia!" pertama Anda di Visual Studio!

  3. Tekan tombol untuk menutup jendela konsol dan kembali ke Visual Studio.

Anda sekarang memiliki alat untuk membuat dan menjalankan aplikasi setelah setiap perubahan, untuk memverifikasi bahwa kode masih berfungsi seperti yang Anda harapkan. Kemudian, kami menunjukkan kepada Anda cara men-debugnya jika tidak.

Mengedit kode

Sekarang mari kita ubah kode dalam templat ini menjadi aplikasi kalkulator.

  1. Ganti konten CalculatorTutorial.cpp file dengan kode berikut sehingga cocok dengan contoh ini:

    // 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
    

    Memahami kode:

    • Pernyataan #include memungkinkan Anda mereferensikan kode yang terletak di file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut (<>); di lain waktu, nama file dikelilingi oleh tanda kutip (" "). Secara umum, kurung sudut digunakan saat mereferensikan Pustaka Standar C++, sementara tanda kutip digunakan untuk file lain.
    • Baris using namespace std; memberi tahu pengkompilasi untuk mengharapkan hal-hal dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului untuk std:: menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensi cout harus ditulis sebagai std::cout. Pernyataan using ditambahkan untuk membuat kode terlihat lebih bersih.
    • Kata kunci cout digunakan untuk mencetak ke output standar di C++. Operator *<< memberi tahu pengkompilasi untuk mengirim apa pun yang ada di sebelah kanannya ke output standar.
    • Kata endl kunci seperti tombol Enter; itu mengakhiri baris dan memindahkan kursor ke baris berikutnya. Ini adalah praktik yang lebih baik untuk menempatkan \n di dalam string (terkandung oleh "") untuk melakukan hal yang sama karena endl selalu membersihkan buffer dan dapat menyakiti performa program. Tetapi karena ini adalah aplikasi yang sangat kecil, endl digunakan sebagai gantinya untuk keterbacaan yang lebih baik.
    • Semua pernyataan C++ harus berakhir dengan titik koma dan semua aplikasi C++ harus berisi fungsi main(). Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses agar main() dapat digunakan.
  2. Untuk menyimpan file, tekan Ctrl+S, atau pilih ikon Simpan di dekat bagian atas IDE, ikon disket di toolbar di bawah bilah menu.

  3. Untuk menjalankan aplikasi, tekan Ctrl+F5 atau buka menu Debug dan pilih Mulai Tanpa Penelusuran Kesalahan. Jika Anda mendapatkan pop-up yang mengatakan Proyek ini sudah kedaluarsa, Anda dapat memilih Jangan tampilkan dialog ini lagi, lalu pilih Ya untuk membangun aplikasi Anda. Anda akan melihat jendela konsol muncul yang menampilkan teks yang ditentukan dalam kode.

    Video yang menunjukkan proses menjalankan aplikasi kalkulator di IDE.

    Pertama,kotak dialog muncul yang menanyakan apakah akan membangun karena proyek sudah kedaluarsa. Kotak centang untuk 'Jangan perlihatkan dialog ini lagi' dipilih. 'Ya' dipilih untuk membangun proyek, proyek kalkulator dibangun, lalu diluncurkan di jendela konsol Windows.

  4. Tutup jendela konsol setelah selesai.

Menambahkan kode untuk melakukan beberapa matematika

Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kami mendefinisikan kelas kalkulator untuk berisi logika matematika.

Menambahkan kelas Kalkulator

  1. Buka menu Proyek dan pilih Tambahkan Kelas. Dalam kotak edit Nama Kelas, masukkan Kalkulator. Pilih OK.

    Video memperlihatkan pengguna membuka kotak dialog Tambahkan Kelas, mengetik 'Kalkulator' di bidang Nama Kelas, dan mengklik OK.

    Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kita mendefinisikan kalkulator dan cara kerjanya.

    Dua file baru ditambahkan ke proyek Anda. Untuk menyimpan semua file yang diubah sekaligus, tekan Ctrl+Shift+S. Ini adalah pintasan keyboard untuk File>Simpan Semua. Ada juga tombol bilah alat untuk Simpan Semua, ikon dua disket, ada di samping tombol Simpan. Secara umum, ada baiknya untuk sering melakukan Simpan Semua, sehingga Anda tidak melewatkan file apa pun saat menyimpan.

    Wizard Tambahkan Kelas membuat .h dan .cpp file yang memiliki nama yang sama dengan kelas . Anda dapat melihat daftar lengkap file proyek Anda di jendela Penjelajah Solusi, terlihat di sisi IDE. Jika jendela tidak terlihat, Anda dapat membukanya dari bilah menu: pilih Tampilkan> Penjelajah Solusi.

    Cuplikan layar jendela Penjelajah Solusi Visual Studio.

    Proyek tutorial kalkulator memiliki simpul file header yang berisi Calculator.h, stdafx.h, dan targetver.h. Simpul File Sumber berisi Calculator.cpp, CalculatorTutorial.cpp, dan stdafx.cpp. Simpul untuk referensi, dependensi eksternal, dan file sumber daya terlihat tetapi ditutup.

    Anda dapat membuka file dengan mengklik dua kali di jendela Penjelajah Solusi. Calculator.h Klik dua kali untuk membukanya.

  2. Ganti konten Calculator.h dengan kode berikut sehingga file sekarang terlihat seperti ini:

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

    Memahami kode

    • Kode ini mendeklarasikan fungsi baru yang disebut Calculate, yang kami gunakan untuk menjalankan operasi matematika untuk penambahan, pengurangan, perkalian, dan pembagian.
    • Kode C++ diatur ke dalam file header (.h) dan file sumber (.cpp). Beberapa ekstensi file lainnya didukung oleh berbagai pengompilasi, tetapi ini adalah yang utama untuk diketahui. Fungsi dan variabel biasanya dideklarasikan, yaitu, diberi nama dan jenis, dalam file header, dan diimplementasikan, atau diberi definisi, dalam file sumber. Untuk mengakses kode yang ditentukan dalam file lain, Anda dapat menggunakan #include "filename.h", di mana filename.h adalah nama file yang mendeklarasikan variabel atau fungsi yang ingin Anda gunakan.
    • Ini adalah praktik yang baik untuk mengatur kode Anda ke dalam file yang berbeda berdasarkan apa yang dilakukannya, sehingga mudah untuk menemukan kode yang Anda perlukan nanti. Dalam kasus kami, kami mendefinisikan kelas Calculator secara terpisah dari file yang berisi fungsi main(), tetapi kami berencana untuk mereferensikan kelas Calculator di main().
  3. Squiggle hijau muncul di bawah Calculate karena meskipun Calculate fungsi dideklarasikan, itu tidak ditentukan. Arahkan mouse ke atas Calculate, klik panah bawah pada obeng yang muncul, dan pilih Buat definisi 'Hitung' di Calculator.cpp. Muncul pop-up yang memberi Anda cuplikan perubahan kode yang dibuat di file lain. Kode ditambahkan ke Calculator.cpp.

    Video yang memperlihatkan menggunakan dropdown bola lampu untuk memilih Buat definisi Hitung dalam Calculator.cpp.

    Saat ini, hanya menghasilkan 0,0. Mari kita ubah hal itu. Tekan Esc untuk menutup pop-up.

  4. Beralih ke Calculator.cpp file di jendela editor. Ganti isi file dengan kode berikut:

    #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;
        }
    }
    

    Memahami kode

    • Fungsi Calculate ini mengonsumsi angka, operator, dan angka kedua, lalu melakukan operasi yang diminta pada angka.
    • Pernyataan pengalih memeriksa operator mana yang disediakan, dan hanya mengeksekusi kasus yang sesuai dengan operasi tersebut. Default: kasus adalah fallback jika pengguna mengetikkan operator yang tidak diterima, sehingga program tidak rusak. Secara umum, yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini.
    • Kata kunci double menunjukkan jenis angka yang mendukung desimal. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. Fungsi Calculate diperlukan untuk selalu menghasilkan angka seperti itu karena double pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya 0,0 dihasilkan bahkan dalam kasus default.
    • File .h mendeklarasikan prototipe fungsi, yang memberi tahu kompilator di muka parameter apa yang diperlukannya, dan jenis pengembalian apa yang diharapkan darinya. File .cpp memiliki semua detail implementasi fungsi.

Jika membangun dan menjalankan kode lagi pada saat ini, kode masih akan keluar setelah menanyakan operasi mana yang akan dilakukan. Selanjutnya, ubah main fungsi untuk melakukan beberapa perhitungan.

Memanggil fungsi anggota kelas Kalkulator

  1. Sekarang mari kita perbarui main fungsi di CalculatorTutorial.cpp:

    // 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;
    }
    

    Memahami kode

    • Karena program C++ selalu dimulai pada fungsi main(), kita perlu memanggil kode kita yang lain, sehingga pernyataan #include diperlukan.
    • Beberapa variabel awal x, y, oper, dan result masing-masing dideklarasikan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir. Ini selalu merupakan praktik yang baik untuk memberi mereka beberapa nilai awal untuk menghindari perilaku yang tidak terdefinisi, yaitu apa yang dilakukan di sini.
    • Baris Calculator c; mendeklarasikan objek bernama 'c' sebagai instans kelas Calculator. Kelas itu sendiri hanyalah cetak biru cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika.
    • Pernyataan while (true) adalah perulangan. Kode di dalam perulangan terus dieksekusi berulang-ulang selama kondisi di dalam hold () benar. Karena kondisinya hanya terdaftar sebagai true, maka ini selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru.
    • Kata kunci cin digunakan untuk menerima input dari pengguna. Aliran input ini cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan, dengan asumsi input pengguna cocok dengan spesifikasi yang diperlukan. Anda dapat memodifikasi baris ini untuk menerima berbagai jenis input seperti lebih dari dua angka--meskipun Calculate() fungsi juga perlu diperbarui untuk menangani ini.
    • Ekspresi c.Calculate(x, oper, y); memanggil fungsi Calculate yang ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan. Fungsi kemudian menghasilkan angka yang disimpan di result.
    • Terakhir, result dicetak ke konsol, sehingga pengguna melihat hasil perhitungan.

Membangun dan menguji kode lagi

Uji program lagi untuk memastikan semuanya berfungsi dengan baik.

  1. Tekan Ctrl+F5 untuk membangun kembali dan memulai aplikasi.

  2. Ketik 5+5 dan tekan Enter. Verifikasi bahwa hasilnya adalah 10.

    Cuplikan layar jendela perintah yang menjalankan aplikasi Kalkulator. Ini menunjukkan bahwa hasil 5 + 5 adalah 10.

Men-debug aplikasi

Karena pengguna bebas mengetik apa pun ke jendela konsol, mari kita pastikan kalkulator menangani input yang tidak terduga. Alih-alih menjalankan program, mari kita debug sebagai gantinya, sehingga kita dapat memeriksa apa yang dilakukannya langkah demi langkah.

Menjalankan aplikasi di debugger

  1. Di CalcuatorTutorial.cpp, atur titik henti result = c.Calculate(x, oper, y); pada baris. Untuk mengatur titik henti, klik berikutnya di samping garis di bilah vertikal abu-abu sepanjang tepi kiri jendela editor. Sebuah titik merah muncul.

    Video yang memperlihatkan pengguna mengatur titik henti pada baris 25: result = c.Calculate(x, oper, y);.

    Sekarang ketika kita men-debug program, eksekusi pada baris tersebut akan selalu dijeda. Kita sudah memiliki ide kasar bahwa program bekerja untuk kasus-kasus sederhana. Karena kita tidak ingin menjeda eksekusi setiap saat, mari kita buat titik henti kondisional.

  2. Klik kanan titik merah yang mewakili titik henti, dan pilih Kondisi. Dalam kotak edit untuk kondisi tersebut, masukkan (y == 0) && (oper == '/'). Pilih tombol Tutup saat Anda selesai untuk menyimpan kondisi titik henti.

    Video yang menunjukkan proses pengaturan titik henti bersyarat.

    Titik henti ada di baris: result = c dot Calculate ( x, oper, y). 'Kondisi...' dipilih di dropdown titik henti, yang membuka jendela pengaturan titik henti. Opsi Kondisi dicentang, di bawah dropdown diatur sebagai: 'Ekspresi Bersyar' dan 'Adalah benar'. Pengguna memasukkan y == 0 && oper == '/' ke dalam kotak teks kondisi lalu memilih dekat untuk mengatur titik henti kondisi.

    Sekarang kita menjeda eksekusi di titik henti secara khusus jika pembagian oleh 0 dicoba.

  3. Untuk men-debug program, tekan F5, atau pilih tombol bilah alat Windows Debugger Lokal yang memiliki ikon panah hijau. Di aplikasi konsol Anda, jika Anda memasukkan sesuatu seperti "5 - 0", program bereaksi normal dan terus berjalan. Namun, jika mengetik "10 / 0", program akan dijeda pada titik henti. Anda bahkan dapat menempatkan sejumlah spasi antara operator dan angka; cin cukup cerdas untuk mengurai input dengan benar.

    Video yang menunjukkan eksekusi program dijeda pada titik henti kondisi.

    Pengguna memasukkan 5 - 0. Output aplikasi: Hasilnya adalah 5. Pengguna kemudian memasukkan 10/0 dan karena kondisi untuk titik henti kondisional terpenuhi, eksekusi berhenti pada baris: result = c.Calculate(x, oper, y);

Jendela yang berguna di debugger

Saat men-debug kode, Anda mungkin melihat bahwa beberapa jendela baru muncul. Jendela ini dapat membantu pengalaman debugging Anda. Lihat jendela Otomatis. Jendela Otomatis memperlihatkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini.

Cuplikan layar jendela Otomatis debugger Visual Studio.

Nilai oper adalah 47 '/', hasilnya adalah 5, x adalah 10, dan y adalah 0.

Untuk melihat semua variabel dari fungsi tersebut, beralihlah ke jendela Lokal. Anda dapat memodifikasi nilai variabel ini saat men-debug, untuk melihat efek apa yang akan mereka miliki pada program. Dalam hal ini, kami meninggalkan mereka sendirian.

Cuplikan layar jendela Lokal di Visual Studio, menampilkan nilai variabel lokal saat ini saat penelusuran kesalahan.

Nilai oper adalah 47 '/', hasilnya adalah 0, x adalah 10, dan y adalah 0.

Anda juga dapat mengarahkan mouse ke atas variabel dalam kode itu sendiri untuk melihat nilainya saat ini di mana eksekusi saat ini dijeda. Pastikan jendela editor berada dalam fokus dengan mengekliknya terlebih dahulu.

Video yang menunjukkan tipsalat yang muncul saat melayang di atas variabel y. Ini menampilkan nilai y saat ini, yaitu 0.

Lanjutkan penelusuran kesalahan

  1. Panah kuning di sebelah kiri menunjukkan titik eksekusi saat ini. Baris saat ini memanggil Calculate, jadi tekan F11 untuk Melangkah Ke fungsi , yang membawa Anda ke dalam isi Calculate fungsi. Berhati-hatilah dengan Step Into karena melangkah ke fungsi apa pun di baris tempat Anda berada, termasuk fungsi pustaka standar. Tidak masalah untuk masuk ke pustaka standar, tetapi Anda mungkin lebih tertarik untuk berfokus pada kode Anda alih-alih kode pustaka.

  2. Sekarang setelah titik eksekusi berada di awal fungsi Calculate, tekan F10 untuk pindah ke baris berikutnya dalam eksekusi program. F10 juga dikenal sebagai Step Over. Anda dapat menggunakan Step Over untuk berpindah dari baris ke baris, tanpa mempelajari detail apa yang terjadi di setiap bagian baris. Secara umum, Anda harus menggunakan Step Over alih-alih Step Into, kecuali jika ingin lebih mendalami kode yang sedang dipanggil dari tempat lain (seperti yang Anda lakukan untuk mencapai isi Calculate).

  3. Lanjut menggunakan F10 untuk Step Over setiap baris hingga Anda kembali ke fungsi main() di file lain, dan berhenti di baris cout.

    Video memperlihatkan langkah di atas setiap baris kode dalam fungsi Hitung.

    Setiap baris kode dalam fungsi Hitung dilangkahi hingga kontrol kembali ke fungsi utama. Pengguna kemudian mengarahkan mouse ke atas variabel bernama result untuk melihat nilainya, yaitu: inf."

    Program ini melakukan apa yang diharapkan: dibutuhkan angka pertama, dan membaginya dengan yang kedua. Pada baris cout, arahkan mouse ke variabel result atau lihat result di jendela Otomatis. Nilainya adalah inf, yang tidak terlihat benar, jadi mari kita perbaiki. Baris cout hanya menghasilkan nilai apa pun yang disimpan di result, jadi ketika Anda melangkah satu baris lagi ke depan menggunakan F10, jendela konsol menampilkan:

    Cuplikan layar Konsol Debug Visual Studio yang menampilkan hasil pembagian dengan operasi nol.

    Output aplikasi: Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Pengguna memasukkan 5-0. Output aplikasi: Hasilnya adalah: 5. Pengguna THe memasuki 10/0. Output aplikasi: Hasilnya adalah: inf

    Hasil ini karena pembagian dengan nol tidak terdefinisi, sehingga program tidak memiliki jawaban numerik untuk operasi yang diminta.

Perbaiki kesalahan "bagi dengan nol"

Mari kita tangani pembagian dengan nol lebih anggun sehingga lebih mudah bagi pengguna untuk memahami masalah.

  1. Buat perubahan berikut dalam CalculatorTutorial.cpp. (Anda dapat membiarkan program berjalan saat Anda mengedit, berkat fitur debugger yang disebut Edit dan Lanjutkan). Perubahannya adalah menambahkan pernyataan berikut ifcin >> x >> oper >> y; untuk memeriksa pembagian dengan nol dan menghasilkan pesan kepada pengguna jika itu terjadi. Jika tidak, hasilnya dicetak:

    // 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. Tekan F5 sekali. Eksekusi program berlanjut sampai harus berhenti sejenak untuk meminta input pengguna. Masukkan 10 / 0 lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna dimintai masukan lebih lanjut, dan program terus dieksekusi secara normal.

    Video Konsol Debug memperlihatkan hasil akhir setelah perubahan kode. 10 /0 dimasukkan dan program menampilkan 'Pembagian dengan 0 pengecualian'.

    Catatan

    Ketika mengedit kode saat dalam mode debugging, ada risiko kode menjadi usang. Ini terjadi ketika debugger masih menjalankan kode lama Anda, dan belum memperbaruinya dengan perubahan Anda. Debugger memunculkan dialog untuk memberi tahu Anda ketika hal ini terjadi. Terkadang, Anda mungkin perlu menekan F5 untuk menyegarkan kode yang sedang dieksekusi. Secara khusus, jika Anda membuat perubahan di dalam fungsi saat titik eksekusi berada di dalam fungsi itu, keluar dari fungsi, lalu kembali ke dalamnya lagi untuk mendapatkan kode yang diperbarui. Jika tidak berhasil karena beberapa alasan dan Anda melihat pesan kesalahan, Anda dapat berhenti debugging dengan mengklik kotak merah di bilah alat pada menu di bagian atas IDE, lalu mulai debugging lagi dengan menekan F5 atau dengan memilih panah "putar" hijau di samping tombol berhenti pada bilah alat.

    Alasan lain mengedit dan melanjutkan mungkin gagal adalah Anda perlu masuk ke menu utama dan memilih Opsi>Alat>Penelusuran Kesalahan>Umum dan memastikan bahwa Memerlukan file sumber agar sama persis dengan versi asli yang dicentang.

    Memahami pintasan Jalankan dan Debug

    • F5 (atau Debug>Mulai Debugging) memulai sesi debugging jika belum aktif, dan menjalankan program hingga mencapai titik henti atau program memerlukan input pengguna. Jika input pengguna tidak diperlukan dan tidak ada titik henti yang dapat dicapai, program akan berakhir dan jendela konsol akan menutup sendiri ketika program selesai berjalan. Jika Anda memiliki sesuatu seperti program "Halo Dunia" untuk dijalankan, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
    • Ctrl+F5 (atau Debug>Mulai Tanpa Debugging) menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol akan tetap terbuka setelah program selesai dieksekusi.
    • F10 (dikenal sebagai Step Over) memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, serta memvisualisasikan cara kode dijalankan dan nilai variabel yang ada di setiap langkah eksekusi.
    • F11 (dikenal sebagai Step Into) berfungsi sama dengan Step Over, kecuali langkah-langkahnya ke fungsi apa pun yang dipanggil pada baris eksekusi. Misalnya, jika baris yang dieksekusi memanggil fungsi, dengan menekan F11 akan memindahkan pointer ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 akan melangkahi panggilan fungsi dan hanya berpindah ke baris berikutnya; panggilan fungsi masih terjadi, tetapi program tidak dijeda untuk menunjukkan apa yang dilakukannya.

Tutup aplikasi

  • Jika masih berjalan, tutup jendela konsol untuk aplikasi kalkulator.

Selamat! Anda menyelesaikan kode untuk aplikasi kalkulator, dan membuat dan men-debugnya di Visual Studio.

Langkah berikutnya

Pelajari selengkapnya tentang Visual Studio untuk C++