Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam rangkaian empat tutorial ini, Anda akan membangun kuis matematika. Kuis berisi empat masalah matematika acak yang coba dijawab oleh pengamat kuis dalam waktu tertentu.
Kontrol menggunakan kode C# atau Visual Basic. Dalam tutorial kedua ini, Anda membuat kuis menantang dengan menambahkan kode untuk masalah matematika yang didasarkan pada angka acak. Anda juga membuat metode yang diberi nama StartTheQuiz()
untuk menyelesaikan masalah.
Dalam tutorial kedua ini, Anda mempelajari cara:
- Tulis kode untuk membuat objek Acak untuk digunakan dalam masalah matematika.
- Tambahkan penanganan aktivitas untuk tombol mulai.
- Tulis kode untuk memulai kuis.
Prasyarat
Tutorial ini dibangun pada tutorial sebelumnya, Membuat aplikasi WinForms kuis matematika. Jika Anda belum menyelesaikan tutorial tersebut, lakukan terlebih dahulu.
Membuat soal penambahan acak
Di proyek Visual Studio Anda, pilih Windows Forms Designer.
Pilih formulir: Form1.
Pada bilah menu, pilih Tampilkan Kode>. Form1.cs atau Form1.vb muncul, tergantung pada bahasa pemrograman yang Anda gunakan, sehingga Anda dapat melihat kode di belakang formulir.
Buat objek Random dengan menambahkan pernyataan
new
di dekat bagian atas kode di Form1.cs atau Form1.vb.
Anda dapat menggunakan pernyataan new
seperti ini untuk membuat tombol, label, panel, OpenFileDialogs, ColorDialogs, SoundPlayers, Randoms, dan bahkan formulir. Item ini disebut objek .
Saat Anda menjalankan program, formulir dimulai. Kode di belakangnya membuat objek Acak dan menamainya randomizer.
Kuis Anda memerlukan variabel untuk menyimpan angka acak yang dibuatnya untuk setiap masalah. Sebelum menggunakan variabel, Anda mendeklarasikannya, yang berarti mencantumkan nama dan jenis datanya.
Tambahkan dua variabel bilangan bulat ke formulir, dan beri nama addend1 dan addend2 di Form1.cs atau Form1.vb.
Nota
Variabel bilangan bulat dikenal sebagai int di C# atau Integer di Visual Basic. Variabel semacam ini menyimpan angka positif atau negatif dari -2147483648 melalui 2147483647 dan hanya dapat menyimpan bilangan bulat, bukan desimal.
Anda menggunakan sintaks serupa untuk menambahkan variabel bilangan bulat seperti yang Anda lakukan untuk menambahkan objek Acak, seperti yang ditunjukkan kode berikut.
Tambahkan metode yang bernama
StartTheQuiz()
Form1.cs atau Form1.vb. Metode ini menggunakan metode Next() objek Acak untuk menghasilkan angka acak untuk label.StartTheQuiz()
pada akhirnya akan mengisi semua masalah dan kemudian memulai timer, jadi tambahkan informasi ini ke komentar ringkasan. Fungsi akan terlihat seperti kode berikut./// <summary> /// Start the quiz by filling in all of the problems /// and starting the timer. /// </summary> public void StartTheQuiz() { // Fill in the addition problem. // Generate two random numbers to add. // Store the values in the variables 'addend1' and 'addend2'. addend1 = randomizer.Next(51); addend2 = randomizer.Next(51); // Convert the two randomly generated numbers // into strings so that they can be displayed // in the label controls. plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString(); // 'sum' is the name of the NumericUpDown control. // This step makes sure its value is zero before // adding any values to it. sum.Value = 0; }
Saat Anda menggunakan metode Next()
dengan objek Acak, seperti saat Anda memanggil randomizer.Next(51)
, Anda mendapatkan nomor acak yang kurang dari 51, atau antara 0 dan 50. Kode ini memanggil randomizer.Next(51)
sehingga dua nomor acak menambahkan hingga jawaban antara 0 dan 100.
Lihat lebih dekat pernyataan ini.
Pernyataan ini mengatur properti Teks plusLeftLabel dan plusRightLabel sehingga menampilkan dua angka acak. Kontrol label menampilkan nilai dalam format teks, dan dalam pemrograman, string menyimpan teks. Metode ToString()
dari setiap bilangan bulat mengonversi bilangan tersebut menjadi teks yang dapat ditampilkan oleh label.
Membuat masalah pengurangan, perkalian, dan pembagian acak
Langkah selanjutnya adalah mendeklarasikan variabel dan memberikan nilai acak untuk masalah matematika lainnya.
Tambahkan variabel bilangan bulat untuk sisa masalah matematika ke formulir Anda, setelah variabel masalah penambahan. Kode di Form1.cs atau Form1.vb akan terlihat seperti sampel berikut.
public partial class Form1 : Form { // Create a Random object called randomizer // to generate random numbers. Random randomizer = new Random(); // These integer variables store the numbers // for the addition problem. int addend1; int addend2; // These integer variables store the numbers // for the subtraction problem. int minuend; int subtrahend; // These integer variables store the numbers // for the multiplication problem. int multiplicand; int multiplier; // These integer variables store the numbers // for the division problem. int dividend; int divisor;
Ubah metode
StartTheQuiz()
di Form1.cs atau Form1.vb dengan menambahkan kode berikut, dimulai dengan komentar "Isi masalah pengurangan"./// <summary> /// Start the quiz by filling in all of the problem /// values and starting the timer. /// </summary> public void StartTheQuiz() { // Fill in the addition problem. // Generate two random numbers to add. // Store the values in the variables 'addend1' and 'addend2'. addend1 = randomizer.Next(51); addend2 = randomizer.Next(51); // Convert the two randomly generated numbers // into strings so that they can be displayed // in the label controls. plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString(); // 'sum' is the name of the NumericUpDown control. // This step makes sure its value is zero before // adding any values to it. sum.Value = 0; // Fill in the subtraction problem. minuend = randomizer.Next(1, 101); subtrahend = randomizer.Next(1, minuend); minusLeftLabel.Text = minuend.ToString(); minusRightLabel.Text = subtrahend.ToString(); difference.Value = 0; // Fill in the multiplication problem. multiplicand = randomizer.Next(2, 11); multiplier = randomizer.Next(2, 11); timesLeftLabel.Text = multiplicand.ToString(); timesRightLabel.Text = multiplier.ToString(); product.Value = 0; // Fill in the division problem. divisor = randomizer.Next(2, 11); int temporaryQuotient = randomizer.Next(2, 11); dividend = divisor * temporaryQuotient; dividedLeftLabel.Text = dividend.ToString(); dividedRightLabel.Text = divisor.ToString(); quotient.Value = 0;
Kode ini menggunakan metode Next() dari kelas Random dengan cara yang sedikit berbeda dari bagaimana persoalan penambahan dilakukan. Saat Anda memberikan metode Next()
dua nilai, metode akan memilih angka acak yang lebih besar dari atau sama dengan nilai pertama dan kurang dari nilai kedua.
Dengan menggunakan metode Next()
dengan dua argumen, Anda dapat memastikan masalah pengurangan memiliki jawaban positif, jawaban perkalian paling banyak 100, dan jawaban pembagian bukan pecahan.
Menambahkan penanganan aktivitas ke tombol mulai
Di bagian ini, Anda menambahkan kode untuk memulai kuis saat tombol mulai dipilih. Kode yang berjalan sebagai reaksi terhadap peristiwa seperti pemilihan tombol disebut penanganan aktivitas.
Di Windows Forms Designer , klik dua kali tombol Mulai kuis , atau pilih lalu pilih Enter. Kode formulir muncul, dan metode baru terlihat.
Tindakan ini menambahkan Klik penanganan aktivitas ke tombol mulai. Saat pengambil kuis memilih tombol ini, aplikasi menjalankan kode yang akan Anda tambahkan ke metode baru ini.
Tambahkan dua pernyataan berikut sehingga penanganan aktivitas memulai kuis.
Pernyataan pertama memanggil metode StartTheQuiz()
baru. Pernyataan kedua mengatur properti Diaktifkan dari kontrol startButton ke false
sehingga peserta kuis tidak dapat memilih tombol selama kuis.
Jalankan aplikasi Anda
Simpan kode Anda.
Jalankan aplikasi Anda, lalu pilih Mulai kuis. Masalah matematika acak muncul, seperti yang ditunjukkan oleh cuplikan layar berikut.
Langkah berikutnya
Lanjutkan ke tutorial berikutnya untuk menambahkan timer ke kuis matematika Anda dan memeriksa jawaban pengguna.