• 四则运算3


    一、要求

      在四则运算2的基础上,添加添加一个应用。具体应用如下:

       把程序变成一个Windows 图形界面的程序。

    二、思想

      在四则运算2的基础上,用C#中的控件并在其中实现所需的功能

      这个过程不需要再多写其他的代码,要做的就是如何在windows的窗体应用下实现功能。  

    三、源代码

      

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace 四则运算3
    {
        public partial class Form1 : Form
        {
            int [] ph= new int [10];                  //建立捕获数组,用以存放输入的选则  
            int Pway,num1,num2;                      //用来表示打印方式
            int  i ,j;
            int  judge;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox2_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox3_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void textBox5_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox4_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox6_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox7_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                ph[0] = int.Parse(textBox1.Text);                          //题目数量
                ph[1] = int.Parse(textBox2.Text);                          //列数
                ph[2] = int.Parse(textBox6.Text);                           //有无除法
                ph[3] = int.Parse(textBox3.Text);                           //最大整数
                ph[4] = int.Parse(textBox4.Text);                           //加减负数
                ph[5] = int.Parse(textBox7.Text);                           //有无余数
                ph[6] = int.Parse(textBox5.Text);                           //间隔数量
                System.Random number = new Random(System.DateTime.Now.Millisecond);
                for (i = 0; i < ph[0]; i++)
                {
                    int num1 = number.Next(0,ph[3]);
                    int num2 = number.Next(0,ph[3]);
                    switch (ph[2])
                    {
                        case 0:                         //如果没有乘除法
                            Pway = number.Next(0,1);            //构造随机函数,输出只有加减法的运算
                            if (Pway == 0)                //加法
                            {
                                {
                                    textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "	";
                                }
                                if ((i + 1) % ph[1] == 0)
                                {
                                    textBox8.Text += "
    ";
                                    if (ph[6] != 0)                          //ph[6]表示每行间隔的数量
                                    {
                                        for (j = 0; j < ph[6]; j++)
                                        {
                                            textBox8.Text += "
    ";
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (ph[4] == 0)                   //如果不允许出现负数
                                {
                                    if (num1 < num2)                //确定被减数大于减数    
                                    {
                                        i = i - 1;
                                    }
                                    else
                                    {
                                        textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "	";
                                        if ((i + 1) % ph[1] == 0)              //判断是否换行
                                        {
                                            textBox8.Text += "
    ";
                                            if (ph[6] != 0)                         //ph[6]表示每行间隔的数量
                                            {
                                                for (j = 0; j < ph[6]; j++)
                                                {
                                                    textBox8.Text += "
    ";
                                                }
                                            }
                                        }
                                    }
                                }
                                else                             //如果允许出现负数
                                {
                                    textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "	";
                                    if ((i + 1) % ph[1] == 0)              //判断是否换行
                                    {
                                        textBox8.Text += "
    ";
                                        if (ph[6] != 0)                         //ph[6]表示每行间隔的数量
                                        {
                                            for (j = 0; j < ph[6]; j++)
                                            {
                                                textBox8.Text += "
    ";
                                            }
                                        }
                                    }
                                }
                            }
                            break;
                        case 1:                                   //有乘除法的输出
                            Pway = number.Next(0,3);
                            switch (Pway)
                            {
                                case 0:                                     //加法
                                    textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "	";
                                    if ((i + 1) % ph[1] == 0)
                                    {
                                        textBox8.Text += "
    ";
                                        if (ph[6] != 0)                       //ph[6]表示每行间隔的数量
                                        {
                                            for (j = 0; j < ph[6]; j++)
                                            {
                                                textBox8.Text += "
    ";
                                            }
                                        }
                                    }
                                    break;
                                case 1:
                                    if (ph[4] == 0)
                                    {
                                        if (num1 < num2)                //确定被减数大于减数,其他的控制如上述减法的控制
                                        {
                                            i = i - 1;
                                        }
                                        else
                                        {
                                            textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "	";
                                            if ((i + 1) % ph[1] == 0)
                                            {
                                                textBox8.Text += "
    ";
                                                if (ph[6] != 0)                   //ph[6]表示每行间隔的数量   
                                                {
                                                    for (j = 0; j < ph[6]; j++)
                                                    {
                                                        textBox8.Text += "
    ";
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "	";
                                        if ((i + 1) % ph[1] == 0)
                                        {
                                            textBox8.Text += "
    ";
                                            if (ph[6] != 0)                            //ph[6]表示每行间隔的数量
                                            {
                                                for (j = 0; j < ph[6]; j++)
                                                {
                                                    textBox8.Text += "
    ";
                                                }
                                            }
                                        }
                                    }
                                    break;
                                case 2:                                //乘法
                                    textBox8.Text += "<" + (i + 1) + ">" + num1 + "×" + num2 + "=" + "	";
                                    if ((i + 1) % ph[1] == 0)
                                    {
                                        textBox8.Text += "
    ";
                                        if (ph[6] != 0)                              //ph[6]表示每行间隔的数量
                                        {
                                            for (j = 0; j < ph[6]; j++)
                                            {
                                                textBox8.Text += "
    ";
                                            }
                                        }
                                    }
                                    break;
                                case 3:                                //除法
                                    if (num2 == 0)                       //除数不能为零
                                    {
                                        i = i - 1;
                                    }
                                    else
                                    {
                                        if (ph[5] == 1)                 //判断选择是否有余数,如果能有余数
                                        {
                                            textBox8.Text += "<" + (i + 1) + ">" + num1 + "÷" + num2 + "=" + "	";
                                            if ((i + 1) % ph[1] == 0)
                                            {
                                                textBox8.Text += "
    ";
                                                if (ph[6] != 0)                         //ph[6]表示每行间隔的数量
                                                {
                                                    for (j = 0; j < ph[6]; j++)
                                                    {
                                                        textBox8.Text += "
    ";
                                                    }
                                                }
                                            }
                                        }
                                        else                          //如果不能有余数
                                            if (num1 % num2 != 0)
                                            {
                                                i = i - 1;
                                            }
                                            else
                                            {
                                                textBox8.Text += "<" + (i + 1) + ">" + num1 + "÷" + num2 + "=" + "	";
                                                if ((i + 1) % ph[1] == 0)
                                                {
                                                    textBox8.Text += "
    ";
                                                    if (ph[6] != 0)                                   //ph[6]表示每行间隔的数量
                                                    {
                                                        for (j = 0; j < ph[6]; j++)
                                                        {
                                                            textBox8.Text += "
    ";
                                                        }
                                                    }
                                                }
                                            }
                                    }
                                    break;
                                default:
                                    textBox8.Text += "出错!
    ";
                                    break;
                            }
                            break;
                        default:
                            textBox8.Text += "出错!
    ";
                            break;
                    }
                }
            }
    
            private void textBox8_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox6_TextChanged_1(object sender, EventArgs e)
            {
    
            }
    
            private void textBox7_TextChanged_1(object sender, EventArgs e)
            {
    
            }
            //清空所有控件中显示的算式
            private void button2_Click(object sender, EventArgs e)
            {
                textBox1.Text = "";                             //令其为空
                textBox2.Text = "";
                textBox3.Text = "";
                textBox4.Text = "";
                textBox5.Text = "";
                textBox6.Text = "";
                textBox7.Text = "";
                textBox8.Text = "";
            }
    
    
        }
    }
    四、运行截图
      

     五、实验总结

        把c语言的程序改成windows窗体应用的主要问题是如何把输入的值在程序中得到响应以及在何处添加什么代码,

      还有一点就是,输出算式和换行符 和 时的语句是textBoxn.Text +=“...”,其他的并没有什么逻辑和算法上的难点。

  • 相关阅读:
    关于键盘事件对象code值
    解决父元素定位后宽度不随着子元素增大而增大的问题
    绝对定位后元素的宽高如果用百分比表示的计算方法
    4.7做作业时发现,内联元素设置宽高背景以后正常不显示,但是设置了position:absolute;以后就可以显示了。起到了和display:block;一样的效果。然后查了一下知道了。
    react-native中显示本地照片或视频
    用js实现div元素的拖拽、
    TCP协议浅谈
    TCP的三次握手和四次挥手
    TCP协议
    关于this指向的一点小分享
  • 原文地址:https://www.cnblogs.com/littlechar/p/4348635.html
Copyright © 2020-2023  润新知