Home

Control-Based Application: Algebra

 

Description

This application was created to explore some characteristics of text boxes and button controls. To do this, we create some methods used to calculate:

  • The factorial of a number
  • The permutation of two numbers
  • The combinatorial of two numbers

We display the results in text boxes after the user has entered the necessary number(s) and clicked a button.

Practical Learning Practical Learning: Creating the Application

  1. Start Microsoft Visual C# and create a Windows Application named Algebra2
  2. On the main menu, click Project -> Add Class...
  3. In the Templates list, make sure Class is selected.
    Change the Name to Algebra and click Add
  4. Change the file as follows:
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Algebra2
    {
        public class Algebra
        {
            public static long Factorial(long x)
            {
                if (x <= 1)
                    return 1;
                else
                    return x * Factorial(x - 1);
            }
    
            public static long Permutation(long n, long r)
            {
                if (r == 0)
                    return 0;
                if (n == 0)
                    return 0;
                if ((r >= 0) && (r <= n))
                    return Factorial(n) / Factorial(n - r);
                else
                    return 0;
            }
    
            public static long Combinatorial(long a, long b)
            {
                if (a <= 1)
                    return 1;
    
                return Factorial(a) / (Factorial(b) * Factorial(a - b));
            }
        }
    }
  5. In the Solution Explorer, right-click Form1.cs and click Rename
  6. Type Exercise.cs and press Enter twice (to save and to open the form)
  7. Click the body of the form to make sure it is selected.
    In the Properties window, change the following characteristics
    FormBorderStyle: FixedDialog
    Text: Factorial, Permutation, and Combination
    Size: 304, 208
    StartPosition: CenterScreen
    MaximizeBox: False
    MinimizeBox: False
  8. In the Containers section of the Toolbox, click TabControl and click the form
  9. On the form, right-click the right side of tabPage2 and click Add Page
  10. Based on what we learned in Lesson 24, design the form as follows:
     
    Algebra
    Control Text Name Additional Properties
    TabControl   tclAlgebra HotTrack: True
    Location: 12, 12
    Size: 304, 235
    TabPage Factorial tabFactorial  
    Label Number:   Location: 22, 21
    TextBox   txtNumber TextAlign: Right
    Location: 88, 18
    Size: 50, 20
    Label Result:   Location: 22, 56
    TextBox   txtFactorial TextAlign: Right
    Location: 88, 54
    Size: 140, 20
    Control Text Name Location Size
    TabPage Permutation tabPermutation    
    Label n:   22, 21  
    TextBox   txtPermutationN 88, 18 50, 20
    Label r:   22, 56  
    TextBox   txtPermutationR 88, 54 50, 20
    Label P(n, r):   22, 92  
    TextBox   txtPermutation 88, 90 140, 20
    Control Text Name Location Size
    TabPage Combination tabCombination    
    Label n:   22, 21  
    TextBox   txtCombinationN 88, 18 50, 20
    Label r:   22, 56  
    TextBox   txtCombinationR 88, 54 50, 20
    Label C(n, r):   22, 92  
    TextBox   txtCombination 88, 90 140, 20
  11. Save the form
  12. In the combo box on top of the Properties window, select tabFactorial
  13. From the Common Controls section of the Toolbox, click Button and click on the right side of the top text box
  14. Access each tab page and add a button to it
  15. Add a button to the form and under the tab control
  16. Complete the design of the form as follows:
     
    Control Text Name
    Button Calculate btnCalcFactorial
    Button Close btnClose
    Control Text Name
    Button Calculate btnCalcPermutation
    Control Text Name
    Button Calculate btnCalcCombination
  17. Access the Factorial tab page and double-click its Calculate button
  18. Implement the event as follows:
     
    private void btnCalcFactorial_Click(object sender, EventArgs e)
    {
            long number = 0;
            long result;
    
            try
            {
                    number = long.Parse(txtFactNumber.Text);
                    result = Algebra.Factorial(number);
                    txtFactorial.Text = result.ToString();
            }
            catch (FormatException)
            {
                    MessageBox.Show("Invalid Number");
            }
    }
  19. Return to the form
  20. Access the Permutation tab page and double-click its Calculate button
  21. Implement the event as follows:
     
    private void btnCalcPermutation_Click(object sender, EventArgs e)
    {
            long n = 0, r = 0;
            long result;
    
            try
            {
                    n = long.Parse(txtPermutationN.Text);
            }
            catch (FormatException)
            {
                    MessageBox.Show("Invalid Number");
            }
    
            try
            {
                    r = long.Parse(txtPermutationR.Text);
                    result = Algebra.Permutation(n, r);
                    txtPermutation.Text = result.ToString();
            }
            catch (FormatException)
            {
                    MessageBox.Show("Invalid Number");
            }
    }
  22. Return to the form
  23. Access the Combination tab page and double-click its Calculate button
  24. Implement the event as follows:
     
    private void btnCalcCombination_Click(object sender, EventArgs e)
    {
            long n = 0, r = 0;
            long result;
    
            try
            {
                    n = long.Parse(txtCombinationN.Text);
            }
            catch (FormatException)
            {
                    MessageBox.Show("Invalid Number");
            }
    
            try
            {
                    r = long.Parse(txtCombinationR.Text);
                    result = Algebra.Combinatorial(n, r);
                    txtCombination.Text = result.ToString();
            }
            catch (FormatException)
           {
                    MessageBox.Show("Invalid Number");
            }
    }
  25. Return to the form and double-click the Close button
  26. Implement the event as follows:
     
    private void btnClose_Click(object sender, EventArgs e)
    {
                Close();
    }
  27. Execute the application to test the calculations
     
    Factorial
    Permutation
    Combinatorial
  28. Close the form and return to your programming environment
 
 

Home Copyright 2008-2009, yevol.com