Bagikan melalui


Membuat kalkulator konsol di C++

Titik awal yang biasa untuk programmer C++ adalah aplikasi "Halo, dunia!" yang berjalan pada baris perintah. Anda mulai dengan itu dalam artikel ini, lalu 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 pilihOpsi>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 dialog Buat proyek baru , atur menu dropdown bahasa ke C++, atur menu dropdown platform ke Windows, pilih Aplikasi Konsol dari daftar jenis proyek, lalu pilih Berikutnya.

    Cuplikan layar dialog Visual Studio Membuat proyek baru.

    Menu tarik-turun bahasa diatur ke C++, menu tarik-turun platform diatur ke Windows, dan jenis proyek seperti Proyek Kosong, Aplikasi Konsol, Proyek CMake, Wizard Desktop Windows, dan sebagainya, muncul dalam daftar pilihan jenis proyek.

    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.

    Sebuah aplikasi konsol Windows untuk C++ yang kosong, 'Halo Dunia', telah dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor membuka 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 dibangun dan dijalankan

Templat untuk aplikasi konsol Windows baru membuat aplikasi C++ sederhana "Halo Dunia". 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 dan aplikasi Anda berjalan di dalamnya.

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

    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 memecahkan masalahnya 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 ini mengimpor kode dari file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut seperti <iostream>. Kurung sudut menginstruksikan pengompilasi untuk mencari file header iostream terlebih dahulu di direktori sistem standar, dan jika tidak ditemukan, mencari di direktori khusus proyek. Di lain waktu, Anda mungkin melihat nama file yang dikelilingi oleh tanda kutip seperti "someHeader.h". Kutipan menginstruksikan pengkompilasi untuk melewatkan pencarian di direktori sistem standar dan sebaliknya hanya mencari di direktori yang spesifik untuk proyek.
    • using namespace std; memberi tahu pengkompilasi untuk mengharapkan kode dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului dengan std:: untuk menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensi cout akan ditulis sebagai std::cout. Pernyataan using ditambahkan untuk membuatnya lebih nyaman untuk mengakses kode di namespace lain.
    • Kata kunci cout digunakan untuk mencetak ke output standar pada 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 (dikandung oleh "") untuk melakukan hal yang sama karena endl selalu mengosongkan buffer yang dapat mengganggu kinerja program. Tetapi karena ini adalah aplikasi yang sangat kecil, endl digunakan sebagai gantinya.
    • Semua pernyataan C++ harus diakhir dengan titik koma dan semua aplikasi C++ harus berisi main() fungsi. Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses dari main() agar dapat digunakan.
  2. Untuk menyimpan file, tekan Ctrl+S, atau pilih 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 terlihat seperti ini.

  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 berisi kalkulator teks. Bidang file .h berisi Calculator.h. Bidang file .cpp berisi Calculator.cpp. Kolom kelas dasar kosong. Opsi untuk dalam garis, dan Terkelola belum 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 toolbar untuk Simpan Semua, ikon dua disket, ditemukan di samping tombol Simpan . Secara umum, adalah praktik yang baik untuk sering melakukan Simpan Semua , sehingga Anda tidak ketinggalan menyimpan perubahan apa pun.

    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, buka dari bilah menu melalui Lihat>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 berkas 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 menangani 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 kompilator, tetapi ini adalah ekstensi utama yang perlu 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 butuhkan nanti. Dalam kasus kami, kami mendefinisikan Calculator kelas secara terpisah dari file yang berisi main() fungsi, tetapi kami berencana untuk mereferensikan Calculator kelas di main().
  3. Squiggle hijau muncul di bawah Calculate karena meskipun fungsi Calculatedideklarasikan, itu tidak didefinisikan. Arahkan mouse ke atas Calculate, klik panah bawah pada ikon obeng, dan pilih Buat definisi 'Hitung' di Calculator.cpp.

    Cuplikan layar menu dropdown obeng di jendela editor Visual Studio. Opsi 'Buat definisi untuk Calculate di Calculator.cpp' disorot.

    Kode ini ditambahkan ke Calculator.cpp:

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

    Definisi fungsi adalah: Kalkulator ganda::Hitung( double x, char oper, double y) { return 0.0; }

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

  4. Beralih ke Calculator.cpp file di jendela editor. Ganti konten 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 mengambil angka, operator, dan angka kedua. Kemudian melakukan operasi yang diminta pada dua angka.
    • Pernyataan switch memeriksa operator mana yang disediakan, dan menjalankan kasus yang sesuai dengan operasi tersebut. Kasus default: ini adalah cadangan jika pengguna mengetik operator yang tidak ditangani oleh pernyataan-pernyataan sebelumnya case. Yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini.
    • Kata double kunci menunjukkan jenis angka yang mendukung desimal. Jenis angka ini disebut angka floating-point, dan double berarti angka titik mengambang yang memiliki presisi ekstra. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. Fungsi Calculate ini diperlukan untuk selalu mengembalikan angka titik mengambang presisi ganda karena double pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya kami mengembalikan 0,0 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 tersebut segera keluar setelah meminta operasi mana yang akan dilakukan. Jadi, ubah main fungsi untuk melakukan beberapa perhitungan.

Panggil fungsi anggota kelas Calculator

  1. Perbarui fungsi main dalam CalculatorTutorial.cpp sebagai 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 dari #include sana, sehingga diperlukan pernyataan untuk membuat kode itu terlihat oleh main() fungsi kita.
    • Variabel x, , yoper, dan result dinyatakan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir, masing-masing. 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 Calculator kelas. Kelas itu sendiri hanyalah cetak biru tentang cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika.
    • Pernyataan while (true) adalah sebuah loop. Kode di dalam perulangan dijalankan berulang kali selama kondisi di dalam () terpenuhi. Karena kondisinya hanya dijelaskan sebagai true, itu selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru.
    • Kata cin kunci menerima masukan dari pengguna. Aliran input cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan.
    • Ekspresi c.Calculate(x, oper, y); memanggil fungsi yang Calculate ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan dan operasi yang diminta. Fungsi kemudian mengembalikan angka yang disimpan di result.
    • Terakhir, result dicetak ke konsol dan 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. Masukkan 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

  3. Hentikan program dengan menutup jendela konsol.

Melakukan 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 di samping garis di bilah vertikal abu-abu di sepanjang tepi kiri jendela editor sehingga 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. Kami sudah memiliki ide kasar bahwa program ini berfungsi untuk 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 titik henti yang ditetapkan

    Titik henti ada di baris: result = c dot Calculate ( x, oper, y). 'Kondisi...' Opsi Kondisi dicentang. Dropdown Kondisi diatur ke "Ekspresi Bersyarah". Dropdown kondisi diatur ke "Is true". Kondisi diatur ke y == 0 && oper == '/'.

    Sekarang, eksekusi berhenti sejenak di titik henti ketika aplikasi mencoba membagi dengan 0.

  3. Untuk men-debug program, tekan F5, atau pilih tombol bilah alat debugger 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 Anda mengetik "10 / 0", itu menjeda di 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 debug Anda. Lihat jendela Otomatis . Jendela Otomatis menunjukkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini. Jika Anda tidak melihat jendela Otomatis , dari menu utama pilih Debug>Windows>Autos.

Cuplikan layar jendela Autos 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 . Karena ini adalah fungsi kecil, jendela Otomatis dan Lokal menunjukkan variabel yang sama. Tetapi Anda dapat memodifikasi nilai variabel ini di jendela Lokal saat melakukan debugging untuk melihat efek yang akan terjadi pada program. Dalam hal ini, kami meninggalkan mereka sendirian. Buka jendela Lokal dengan memilih Lokal di bagian bawah jendela Otomatis , atau dengan memilih dari menu utama Debug>Windows>Locals.

Screenshot jendela Locals di Visual Studio, menampilkan nilai saat ini dari variabel lokal selama proses debugging.

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 mengkliknya terlebih dahulu.

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

Lanjutkan debugging

  1. Panah kuning di sebelah kiri menunjukkan titik eksekusi saat ini. Baris Calculate saat ini memanggil, jadi tekan F11 untuk memasuki 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 Calculate fungsi, 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. Lanjutkan menggunakan F10 untuk Melangkahi setiap baris hingga Anda kembali ke main() fungsi yang ada di file lain, dan berhenti di cout baris.

    Program ini melakukan apa yang diharapkan: mengambil angka pertama, lalu membaginya dengan angka yang kedua. Pada garis cout, arahkan mouse ke variabel result atau lihat result di jendela Autos. Nilainya adalah inf, yang tidak tampak benar.

    Cuplikan layar debug kalkulator.

    Pernyataan saat ini dalam debugger adalah cout << "Hasilnya adalah: " << hasil << endl; Di jendela otomatis, hasilnya adalah inf.

    Mari kita perbaiki. Baris cout 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 memasukkan 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.

Memperbaiki kesalahan "bagi dengan nol"

Mari kita tangani pembagian dengan nol dengan cara yang lebih baik sehingga lebih mudah bagi pengguna untuk memahami masalah.

  1. Buat perubahan berikut di CalculatorTutorial.cpp. Anda dapat membiarkan program berjalan saat 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 << "Math error: 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 hingga harus jeda untuk meminta input pengguna. Masukkan 10 / 0 lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna diminta untuk lebih banyak input, dan program terus dijalankan 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.

    Nota

    Saat Anda mengedit kode 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 dijalankan. 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 pilihOpsi>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 Penelusuran Kesalahan, memulai sesi debugging jika sesi tersebut belum aktif, dan menjalankan program hingga titik henti tercapai atau program memerlukan masukan pengguna. Jika tidak ada input pengguna yang diperlukan dan tidak ada titik henti yang tersedia untuk ditemui, program berakhir dan jendela konsol menutup dirinya sendiri ketika program selesai berjalan. Jika program Anda keluaran ke konsol, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
    • Ctrl+F5, atau Debug>Mulai Tanpa Debug, menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol tetap terbuka setelah program selesai dijalankan.
    • F10, yang dikenal sebagai Step Over, memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, dan memvisualisasikan bagaimana kode dijalankan dan nilai variabel apa yang ada di setiap langkah eksekusi.
    • F11, yang dikenal sebagai Step Into, berfungsi mirip dengan Step Over, kecuali ia masuk ke dalam fungsi apa pun yang dipanggil pada baris yang dieksekusi. Misalnya, jika baris yang dijalankan memanggil fungsi, menekan F11 memindahkan penunjuk ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 melewati panggilan fungsi dan langsung berpindah ke baris berikutnya; panggilan fungsi tetap terjadi, tetapi program tidak berhenti untuk memperlihatkan apa yang sedang dilakukannya.

Tutup aplikasi

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

Menambahkan kontrol sumber Git

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

Petunjuk / Saran

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

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.

    Petunjuk / Saran

    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 Unggah.

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

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

    Ikon pertama dengan panah menunjukkan berapa banyak komit keluar/masuk yang ada di cabang Anda saat ini. Anda dapat menggunakan ikon ini untuk mengambil komit masuk atau mengirim komit keluar apa pun. Anda juga dapat memilih untuk melihat commit ini terlebih dahulu. Untuk melakukannya, pilih ikon, lalu pilih Lihat 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 selanjutnya

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, lalu 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>. Jendela Proyek Baru terbuka.

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

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

    Cuplikan layar dialog Proyek Baru.

    Di sebelah kiri, Bahasa Lain > Visual C++ dipilih. Di tengah, jenis proyek Aplikasi Konsol dipilih. Kotak teks Nama berisi KalkulatorTutorial.

    Sebuah aplikasi konsol Windows untuk C++ yang kosong, 'Halo Dunia', telah dibuat. Aplikasi konsol menggunakan jendela konsol Windows untuk menampilkan output dan menerima input pengguna. Di Visual Studio, jendela editor membuka 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 dibangun dan dijalankan

Templat untuk aplikasi konsol windows baru membuat aplikasi C++ sederhana "Halo Dunia". 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 dan aplikasi Anda berjalan di dalamnya.

    Saat Anda memulai aplikasi konsol di Visual Studio, aplikasi tersebut menjalankan kode Anda, lalu mencetak Press any key to close this window . . . untuk memberi Anda kesempatan untuk melihat outputnya.

    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 memecahkan masalahnya 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 ini mengimpor kode dari file lain. Terkadang, Anda mungkin melihat nama file yang dikelilingi oleh tanda kurung sudut seperti <iostream>. Kurung sudut menginstruksikan pengompilasi untuk mencari file header iostream terlebih dahulu di direktori sistem standar, dan jika tidak ditemukan, mencari di direktori khusus proyek. Di lain waktu, Anda mungkin melihat nama file yang dikelilingi oleh tanda kutip seperti "someHeader.h". Kutipan menginstruksikan pengkompilasi untuk melewatkan pencarian di direktori sistem standar dan sebaliknya hanya mencari di direktori yang spesifik untuk proyek.
    • using namespace std; memberi tahu pengkompilasi untuk mengharapkan kode dari Pustaka Standar C++ untuk digunakan dalam file ini. Tanpa baris ini, setiap kata kunci dari pustaka harus didahului dengan std:: untuk menunjukkan cakupannya. Misalnya, tanpa baris itu, setiap referensi cout akan ditulis sebagai std::cout. Pernyataan using ditambahkan untuk membuatnya lebih nyaman untuk mengakses kode di namespace lain.
    • Kata kunci cout mencetak ke keluaran standar dalam 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.
    • Semua pernyataan C++ harus diakhir dengan titik koma dan semua aplikasi C++ harus berisi main() fungsi. Fungsi inilah yang dijalankan program di awal. Semua kode harus dapat diakses dari main() agar dapat digunakan.
  2. Untuk menyimpan file, tekan Ctrl+S, atau pilih 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 terlihat seperti ini:

    Cuplikan layar aplikasi kalkulator yang berjalan di jendela konsol.

    Aplikasi konsol menunjukkan output yaitu: Aplikasi Konsol Kalkulator. Silakan masukkan operasi yang akan dilakukan. Format: a+b | a-b | a*b | a/b. Proses keluar dengan kode 0 dan ada pesan bahwa untuk menutup konsol secara otomatis saat penelusuran kesalahan berhenti, aktifkan Alat > Opsi > Penelusuran Kesalahan > Tutup konsol secara otomatis saat penelusuran kesalahan berhenti. Terakhir, ada pesan untuk menekan tombol apa pun untuk menutup jendela ini.

  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 berisi kalkulator teks. Bidang file .h berisi Calculator.h. Bidang file .cpp berisi Calculator.cpp. Kolom kelas dasar kosong. Opsi untuk dalam garis, dan Terkelola belum dicentang.

    Kelas seperti cetak biru untuk objek yang melakukan sesuatu. Dalam hal ini, kami 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 toolbar untuk Simpan Semua, ikon dua disket, ditemukan 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 Penjelajah Solusi tidak terlihat, buka dari bilah menu: pilih Lihat>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 berkas 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 menangani 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 kompilator, tetapi ini adalah ekstensi utama yang perlu 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 butuhkan nanti. Dalam kasus kami, kami mendefinisikan Calculator kelas secara terpisah dari file yang berisi main() fungsi, tetapi kami berencana untuk mereferensikan Calculator kelas di main().
  3. Squiggle hijau muncul di bawah Calculate karena meskipun fungsi Calculatedideklarasikan, itu tidak didefinisikan. Arahkan mouse ke atas Calculate, klik panah bawah pada bola lampu, dan pilih Buat definisi 'Hitung' di Calculator.cpp. Pop-up muncul yang memberi Anda intip perubahan kode yang dibuat di file lain. Kode ditambahkan ke Calculator.cpp.

    Video yang menunjukkan cara menggunakan dropdown ikon bola lampu untuk membuat definisi fungsi Hitung dalam Calculator.cpp.

    Saat ini, itu hanya mengembalikan 0,0. Mari kita ubah hal itu. Tekan Esc untuk menutup pop-up dan pilih Ya untuk menyimpan perubahan.

  4. Beralih ke Calculator.cpp file di jendela editor. Ganti konten 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 mengambil angka, operator, dan angka kedua. Kemudian melakukan operasi yang diminta pada dua angka.
    • Pernyataan switch memeriksa operator mana yang disediakan, dan menjalankan kasus yang sesuai dengan operasi tersebut. Kasus default: ini adalah cadangan jika pengguna mengetik operator yang tidak ditangani oleh pernyataan-pernyataan sebelumnya case. Yang terbaik adalah menangani input pengguna yang tidak valid dengan cara yang lebih elegan, tetapi ini di luar cakupan tutorial ini.
    • Kata double kunci menunjukkan jenis angka yang mendukung desimal. Jenis angka ini disebut angka floating-point, dan double berarti angka titik mengambang yang memiliki presisi ekstra. Dengan cara ini, kalkulator dapat menangani matematika desimal dan matematika bilangan bulat. Fungsi Calculate ini diperlukan untuk selalu mengembalikan angka titik mengambang presisi ganda karena double pada awal kode (ini menunjukkan jenis pengembalian fungsi), itulah sebabnya kami mengembalikan 0,0 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 tahap ini, kode masih berhenti setelah menanyakan operasi mana yang akan dilakukan. Selanjutnya, ubah main fungsi untuk melakukan beberapa perhitungan.

Memanggil fungsi anggota dari kelas Kalkulator

  1. Perbarui fungsi main dalam CalculatorTutorial.cpp sebagai 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 is: " << result << endl;
        }
    
        return 0;
    }
    

    Memahami kode

    • Karena program C++ selalu dimulai pada fungsi main(), kita perlu memanggil kode kita yang lain dari #include sana, sehingga diperlukan pernyataan untuk membuat kode itu terlihat oleh main() fungsi kita.
    • Variabel x, , yoper, dan result dinyatakan untuk menyimpan angka pertama, angka kedua, operator, dan hasil akhir, masing-masing. 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 Calculator kelas. Kelas itu sendiri hanyalah cetak biru tentang cara kerja kalkulator; objek adalah kalkulator spesifik yang melakukan matematika.
    • Pernyataan while (true) adalah sebuah loop. Kode di dalam perulangan dieksekusi berulang kali selama kondisi di dalam () memenuhi syarat. Karena kondisinya hanya dijelaskan sebagai true, itu selalu benar, sehingga perulangan berjalan selamanya. Untuk menutup program, pengguna harus menutup jendela konsol secara manual. Jika tidak, program selalu menunggu input baru.
    • Kata cin kunci menerima masukan dari pengguna. Aliran input cukup cerdas untuk memproses baris teks yang dimasukkan di jendela konsol dan menempatkannya di dalam setiap variabel yang tercantum, secara berurutan.
    • Ekspresi c.Calculate(x, oper, y); memanggil fungsi yang Calculate ditentukan sebelumnya, dan menyediakan nilai input yang dimasukkan dan operasi yang diminta. Fungsi kemudian mengembalikan angka yang disimpan di result.
    • Terakhir, result dicetak ke konsol dan 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. Masukkan 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.

  3. Hentikan program dengan menutup jendela konsol.

Melakukan 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 di samping garis di bilah vertikal abu-abu di sepanjang tepi kiri jendela editor sehingga titik merah muncul.

    Cuplikan layar pengguna mengatur titik henti pada baris 23: result = c.Calculate(x, oper, y);.

    Sekarang ketika Anda men-debug program, program selalu menjeda eksekusi pada baris tersebut. Kami sudah memiliki ide kasar bahwa program ini berfungsi untuk kasus sederhana. Karena kita tidak ingin menjeda eksekusi setiap kali, 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.

    Cuplikan layar memperlihatkan jendela titik henti bersyarat.

    Titik henti ada di baris: result = c dot Calculate ( x, oper, y). 'Kondisi...' Opsi Kondisi dicentang. Dropdown Kondisi diatur ke "Ekspresi Bersyarah". Dropdown kondisi diatur ke "Is true". Kondisi diatur ke y == 0 && oper == '/'.

    Eksekusi akan berhenti sejenak pada titik henti jika terjadi usaha 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 Anda mengetik "10 / 0", itu menjeda di titik henti. Anda bahkan dapat meletakkan sejumlah spasi antara operator dan angka; cin cukup cerdas untuk mengurai input dengan tepat.

    Video yang menunjukkan eksekusi program dijeda pada titik henti bersyarat.

    Pengguna memasukkan 5 - 0. Aplikasi menghasilkan: 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 debug Anda. Lihat jendela Otomatis . Jendela Otomatis menunjukkan nilai variabel saat ini yang digunakan setidaknya tiga baris sebelum dan hingga baris saat ini. Jika Anda tidak melihat jendela Otomatis , dari menu utama pilih Debug>Windows>Autos.

Cuplikan layar jendela Autos 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 . Karena ini adalah fungsi kecil, jendela Otomatis dan Lokal menunjukkan variabel yang sama. Tetapi Anda dapat memodifikasi nilai variabel ini saat debugging, untuk melihat efek apa yang akan terjadi pada program. Dalam hal ini, kami meninggalkan mereka sendirian. Buka jendela Lokal dengan memilih Lokal di bagian bawah jendela Otomatis , atau dengan memilih dari menu utama Debug>Windows>Locals.

Screenshot jendela Locals di Visual Studio, menampilkan nilai saat ini dari variabel lokal selama proses debugging.

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 mengkliknya terlebih dahulu.

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

Lanjutkan debugging

  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 Calculate fungsi, 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 Anda ingin menyelam lebih dalam ke dalam kode yang sedang dipanggil dari tempat lain (seperti yang Anda lakukan untuk mencapai isi Calculate).

  3. Lanjutkan menggunakan F10 untuk Melangkahi setiap baris hingga Anda kembali ke main() fungsi yang ada di file lain, dan berhenti di cout baris.

    Program ini melakukan apa yang diharapkan: mengambil angka pertama, lalu membaginya dengan angka yang kedua. Pada garis cout, arahkan mouse ke variabel result atau lihat result di jendela Autos. Nilainya adalah inf, yang tidak tampak benar.

    Cuplikan layar debug kalkulator.

    Pernyataan saat ini dalam debugger adalah cout << "Hasilnya adalah: " << hasil << endl; Di jendela otomatis, hasilnya adalah inf.

    Mari kita perbaiki. Baris cout 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 memasukkan 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.

Memperbaiki kesalahan "bagi dengan nol"

Mari kita tangani pembagian dengan nol dengan cara yang lebih baik sehingga lebih mudah bagi pengguna untuk memahami masalah.

  1. Buat perubahan berikut di CalculatorTutorial.cpp. (Anda dapat membiarkan program berjalan saat 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 hingga harus jeda untuk meminta input pengguna. Masukkan 10 / 0 lagi. Sekarang, pesan yang lebih bermanfaat dicetak. Pengguna diminta untuk lebih banyak input, dan program terus dijalankan secara normal.

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

    Nota

    Saat Anda mengedit kode 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 kapan hal ini terjadi. Terkadang, Anda mungkin perlu menekan F5 untuk menyegarkan kode yang sedang dijalankan. 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 itu tidak berfungsi karena beberapa alasan 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 "putar" hijau di samping tombol berhenti pada toolbar.

    Alasan lain mengedit dan melanjutkan mungkin gagal adalah Anda perlu masuk ke menu utama dan memilihOpsi>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 Penelusuran Kesalahan, memulai sesi debugging jika sesi tersebut belum aktif, dan menjalankan program hingga titik henti tercapai atau program memerlukan masukan pengguna. Jika tidak ada input pengguna yang diperlukan dan tidak ada titik henti yang tersedia untuk ditemui, program berakhir dan jendela konsol menutup dirinya sendiri ketika program selesai berjalan. Jika program Anda keluaran ke konsol, gunakan Ctrl+F5 atau atur titik henti sebelum Anda menekan F5 untuk menjaga jendela tetap terbuka.
    • Ctrl+F5, atau Debug>Mulai Tanpa Debug, menjalankan aplikasi tanpa masuk ke mode debug. Ini sedikit lebih cepat daripada debugging, dan jendela konsol tetap terbuka setelah program selesai dijalankan.
    • F10, yang dikenal sebagai Step Over, memungkinkan Anda melakukan iterasi melalui kode, baris demi baris, dan memvisualisasikan bagaimana kode dijalankan dan nilai variabel apa yang ada di setiap langkah eksekusi.
    • F11, yang dikenal sebagai Step Into, berfungsi mirip dengan Step Over, kecuali ia masuk ke dalam fungsi apa pun yang dipanggil pada baris yang dieksekusi. Misalnya, jika baris yang dijalankan memanggil fungsi, menekan F11 memindahkan penunjuk ke dalam isi fungsi, sehingga Anda dapat mengikuti kode fungsi yang dijalankan sebelum kembali ke baris yang Anda mulai. Menekan F10 melewati panggilan fungsi dan langsung berpindah ke baris berikutnya; panggilan fungsi tetap terjadi, tetapi program tidak berhenti untuk memperlihatkan apa yang sedang dilakukannya.

Tutup aplikasi

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

Aplikasi yang sudah selesai

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

Langkah selanjutnya

Pelajari selengkapnya tentang Visual Studio untuk C++