码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算3

时间:2015-03-18 23:02:28      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

一、要求

  在四则运算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 + "=" + "\t";
                            }
                            if ((i + 1) % ph[1] == 0)
                            {
                                textBox8.Text += "\r\n";
                                if (ph[6] != 0)                          //ph[6]表示每行间隔的数量
                                {
                                    for (j = 0; j < ph[6]; j++)
                                    {
                                        textBox8.Text += "\r\n";
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (ph[4] == 0)                   //如果不允许出现负数
                            {
                                if (num1 < num2)                //确定被减数大于减数    
                                {
                                    i = i - 1;
                                }
                                else
                                {
                                    textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "\t";
                                    if ((i + 1) % ph[1] == 0)              //判断是否换行
                                    {
                                        textBox8.Text += "\r\n";
                                        if (ph[6] != 0)                         //ph[6]表示每行间隔的数量
                                        {
                                            for (j = 0; j < ph[6]; j++)
                                            {
                                                textBox8.Text += "\r\n";
                                            }
                                        }
                                    }
                                }
                            }
                            else                             //如果允许出现负数
                            {
                                textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "\t";
                                if ((i + 1) % ph[1] == 0)              //判断是否换行
                                {
                                    textBox8.Text += "\r\n";
                                    if (ph[6] != 0)                         //ph[6]表示每行间隔的数量
                                    {
                                        for (j = 0; j < ph[6]; j++)
                                        {
                                            textBox8.Text += "\r\n";
                                        }
                                    }
                                }
                            }
                        }
                        break;
                    case 1:                                   //有乘除法的输出
                        Pway = number.Next(0,3);
                        switch (Pway)
                        {
                            case 0:                                     //加法
                                textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "\t";
                                if ((i + 1) % ph[1] == 0)
                                {
                                    textBox8.Text += "\r\n";
                                    if (ph[6] != 0)                       //ph[6]表示每行间隔的数量
                                    {
                                        for (j = 0; j < ph[6]; j++)
                                        {
                                            textBox8.Text += "\r\n";
                                        }
                                    }
                                }
                                break;
                            case 1:
                                if (ph[4] == 0)
                                {
                                    if (num1 < num2)                //确定被减数大于减数,其他的控制如上述减法的控制
                                    {
                                        i = i - 1;
                                    }
                                    else
                                    {
                                        textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "\t";
                                        if ((i + 1) % ph[1] == 0)
                                        {
                                            textBox8.Text += "\r\n";
                                            if (ph[6] != 0)                   //ph[6]表示每行间隔的数量   
                                            {
                                                for (j = 0; j < ph[6]; j++)
                                                {
                                                    textBox8.Text += "\r\n";
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    textBox8.Text += "<" + (i + 1) + ">" + num1 + "" + num2 + "=" + "\t";
                                    if ((i + 1) % ph[1] == 0)
                                    {
                                        textBox8.Text += "\r\n";
                                        if (ph[6] != 0)                            //ph[6]表示每行间隔的数量
                                        {
                                            for (j = 0; j < ph[6]; j++)
                                            {
                                                textBox8.Text += "\r\n";
                                            }
                                        }
                                    }
                                }
                                break;
                            case 2:                                //乘法
                                textBox8.Text += "<" + (i + 1) + ">" + num1 + "×" + num2 + "=" + "\t";
                                if ((i + 1) % ph[1] == 0)
                                {
                                    textBox8.Text += "\r\n";
                                    if (ph[6] != 0)                              //ph[6]表示每行间隔的数量
                                    {
                                        for (j = 0; j < ph[6]; j++)
                                        {
                                            textBox8.Text += "\r\n";
                                        }
                                    }
                                }
                                break;
                            case 3:                                //除法
                                if (num2 == 0)                       //除数不能为零
                                {
                                    i = i - 1;
                                }
                                else
                                {
                                    if (ph[5] == 1)                 //判断选择是否有余数,如果能有余数
                                    {
                                        textBox8.Text += "<" + (i + 1) + ">" + num1 + "÷" + num2 + "=" + "\t";
                                        if ((i + 1) % ph[1] == 0)
                                        {
                                            textBox8.Text += "\r\n";
                                            if (ph[6] != 0)                         //ph[6]表示每行间隔的数量
                                            {
                                                for (j = 0; j < ph[6]; j++)
                                                {
                                                    textBox8.Text += "\r\n";
                                                }
                                            }
                                        }
                                    }
                                    else                          //如果不能有余数
                                        if (num1 % num2 != 0)
                                        {
                                            i = i - 1;
                                        }
                                        else
                                        {
                                            textBox8.Text += "<" + (i + 1) + ">" + num1 + "÷" + num2 + "=" + "\t";
                                            if ((i + 1) % ph[1] == 0)
                                            {
                                                textBox8.Text += "\r\n";
                                                if (ph[6] != 0)                                   //ph[6]表示每行间隔的数量
                                                {
                                                    for (j = 0; j < ph[6]; j++)
                                                    {
                                                        textBox8.Text += "\r\n";
                                                    }
                                                }
                                            }
                                        }
                                }
                                break;
                            default:
                                textBox8.Text += "出错!\n";
                                break;
                        }
                        break;
                    default:
                        textBox8.Text += "出错!\n";
                        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窗体应用的主要问题是如何把输入的值在程序中得到响应以及在何处添加什么代码,

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

 

四则运算3

标签:

原文地址:http://www.cnblogs.com/littlechar/p/4348635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!