Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a négy oktatóanyagból álló sorozatban matematikai tesztet fog készíteni. A teszt négy véletlenszerű matematikai problémát tartalmaz, amelyeket a tesztválasztó egy megadott időn belül próbál megválaszolni.
A vezérlők C# vagy Visual Basic kódot használnak. Ebben a második oktatóanyagban kihívást teszteképp véletlenszerű számokon alapuló matematikai problémákhoz adsz hozzá kódot. Egy StartTheQuiz() nevű metódust is létrehozhat a problémák kitöltéséhez.
Ebben a második oktatóanyagban megtanulhatja, hogyan:
- Kód írása véletlenszerű objektumok létrehozásához matematikai problémák esetén.
- Adjon hozzá egy eseménykezelőt a start gombhoz.
- Írjon kódot a teszt elindításához.
Előfeltételek
Ez az oktatóanyag egy korábbi oktatóanyagra épül, Matematikai teszt létrehozása WinForms-alkalmazás. Ha még nem fejezte be ezt az oktatóanyagot, először haladjon végig rajta.
Véletlenszerű hozzáadási probléma létrehozása
A Visual Studio-projektben válassza Windows Forms Designerlehetőséget.
Válassza ki az űrlapot, Űrlap1.
A menüsávon válassza a >Kód megtekintéselehetőséget. Form1.cs vagy Form1.vb jelenik meg a használt programozási nyelvtől függően, így megtekintheti az űrlap mögötti kódot.
Hozzon létre egy Random objektumot egy
newutasítás hozzáadásával a kód tetején Form1.cs vagy Form1.vb.
Az ehhez hasonló new utasításokkal gombokat, címkéket, paneleket, OpenFileDialogs- és ColorDialog-elemeket, SoundPlayers-eket, véletlenszerű elemeket és akár űrlapokat is létrehozhat. Ezeket az elemeket objektumoknaknevezzük.
A program futtatásakor az űrlap elindul. A háttérkód létrehoz egy Random objektumot, és randomizáló-nak nevezi el.
A tesztnek változókra van szüksége az egyes problémákhoz létrehozott véletlenszerű számok tárolásához. A változók használata előtt deklarálja őket, ami azt jelenti, hogy felsorolja a nevüket és az adattípusukat.
Adjon hozzá két egész típusú változót az űrlaphoz, és nevezze el őket addend1 és addend2 a következők egyikében: Form1.cs vagy Form1.vb.
Jegyzet
Az egész típusú változót C# nyelven int-nek, vagy Visual Basicben Integer-nek nevezik. Ez a változótípus pozitív vagy negatív számot tárol -2147483648 és 2147483647 között, és csak egész számokat tárolhat, tizedesvesszőket nem.
Hasonló szintaxist használva egész szám változót adhat hozzá a Véletlenszerű objektum hozzáadásához, ahogy az alábbi kód is mutatja.
// 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;
Adjon hozzá egy
StartTheQuiz()Form1.cs vagy Form1.vbnevű metódust. Ez a módszer a Véletlenszerű objektum Next() metódusával véletlenszerű számokat hoz létre a címkékhez.StartTheQuiz()végül kitölti az összes problémát, majd elindítja az időzítőt, ezért adja hozzá ezeket az információkat az összefoglaló megjegyzéshez. A függvénynek a következő kódhoz hasonlóan kell kinéznie./// <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; }
Ha a Next() metódust véletlenszerű objektummal használja, például amikor meghívja randomizer.Next(51), akkor egy 51-nél kisebb vagy 0 és 50 közötti véletlenszerű számot kap. Ez a kód meghívja randomizer.Next(51), hogy a két véletlenszerű szám 0 és 100 közötti választ adjon.
Tekintse meg közelebbről ezeket az állításokat.
Ezek az utasítások beállítják a szöveg tulajdonságait a plusLeftLabel és a plusRightLabel esetében, hogy megjelenítsék a két véletlenszerű számot. A címkevezérlők szöveges formátumban jelenítik meg az értékeket, a programozásban pedig a sztring típusú változók a szöveget tárolják. Az egyes egész számok ToString() metódusa az egész számot szöveggé alakítja, amelyet egy címke megjeleníthet.
Véletlenszerű kivonási, szorzási és osztási problémák létrehozása
A következő lépés a változók deklarálása és a többi matematikai probléma véletlenszerű értékeinek megadása.
Adjon hozzá egész szám változókat a fennmaradó matematikai problémákhoz az összeadás változói után az űrlapon. A Form1.cs vagy Form1.vb kódjának az alábbi mintához hasonlóan kell kinéznie.
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;
Módosítsa a
StartTheQuiz()metódust a(z) Form1.cs vagy a(z) Form1.vb fájlban a következő kód hozzáadásával, kezdve a "Kivonási feladat kitöltése" megjegyzéssel./// <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;
Ez a kód a Random osztály Next() metódusát használja egy kicsit másként, mint a hozzáadási probléma. Ha két értéket ad a Next() metódusnak, akkor egy véletlenszerű számot választ ki, amely nagyobb vagy egyenlő az első értéknél, és kisebb, mint a második.
Ha a Next() metódust két argumentummal használja, meggyőződhet arról, hogy a kivonási probléma pozitív választ ad, a szorzási válasz legfeljebb 100, az osztási válasz pedig nem tört.
Eseménykezelő hozzáadása a start gombra
Ebben a szakaszban kódot ad hozzá a teszt indításához a start gomb kiválasztásakor. A gombkijelöléshez hasonló eseményre reagáló kódot eseménykezelőnek nevezzük.
A Windows Forms Designer-ben kattintson duplán a A teszt indítása gombra, vagy jelölje ki, majd válassza az Enteropciót. Megjelenik az űrlap kódja, és megjelenik egy új metódus.
Ezek a műveletek hozzáadnak egy Kattintás eseménykezelőt a start gombra. Amikor egy tesztválasztó kiválasztja ezt a gombot, az alkalmazás futtatja az új metódushoz hozzáadni kívánt kódot.
Adja hozzá a következő két utasítást, hogy az eseménykezelő elindítsa a tesztet.
private void startButton_Click(object sender, EventArgs e) { StartTheQuiz(); startButton.Enabled = false; }
Az első utasítás meghívja az új StartTheQuiz() metódust. A második utasítás a startButton vezérlőelem Engedélyezett tulajdonságát false állítja be, hogy a tesztválasztó ne tudja kiválasztani a gombot a teszt során.
Az alkalmazás futtatása
Mentse a kódot.
Először válassza a Kvíz indításalehetőséget, majd futtassa az alkalmazást. Véletlenszerű matematikai problémák jelennek meg az alábbi képernyőképen látható módon.
Következő lépések
Lépjen tovább a következő oktatóanyagra, hogy időzítőt adjon hozzá a matematikai teszthez, és ellenőrizze a felhasználói válaszokat.