如何制作WinForms bubbleort程序?

时间:2018-10-15 10:36:10

标签: c#

我们刚刚开始使用c#,整个类一无所知。 但是,老师告诉我们使用WinForms和c#来创建一个使用bubbleort的程序。 我在网上四处张望,只发现了对文本框的验证(仅数字)。

我是新来的,但如有可能,我想寻求帮助。 我们今天必须交付这项工作,到目前为止我们什么都没有。

这是我的代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace maedofeixeira
{
public partial class Form1 : Form
{
    int[] elementos = new int[5];
    public Form1()
    {
        InitializeComponent();
    }

    private void TextBox1_TextChanged(object sender, EventArgs e)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "[^0-9]"))
        {
            MessageBox.Show("SO NUMEROS!!!CRL.");
            textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
        }
    }

    private void TextBox2_TextChanged(object sender, EventArgs e)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(textBox2.Text, "[^0-9]"))
        {
            MessageBox.Show("SO NUMEROS!!!CRL.");
            textBox2.Text = textBox2.Text.Remove(textBox2.Text.Length - 1);
        }
    }

    private void TextBox3_TextChanged(object sender, EventArgs e)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(textBox3.Text, "[^0-9]"))
        {
            MessageBox.Show("SO NUMEROS!!!CRL.");
            textBox3.Text = textBox3.Text.Remove(textBox3.Text.Length - 1);
        }
    }

    private void TextBox4_TextChanged(object sender, EventArgs e)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(textBox4.Text, "[^0-9]"))
        {
            MessageBox.Show("SO NUMEROS!!!CRL.");
            textBox4.Text = textBox4.Text.Remove(textBox4.Text.Length - 1);
        }
    }

    private void TextBox5_TextChanged(object sender, EventArgs e)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(textBox5.Text, "[^0-9]"))
        {
            MessageBox.Show("SO NUMEROS!!!CRL.");
            textBox5.Text = textBox5.Text.Remove(textBox5.Text.Length - 1);
        }
    }

    private void Bubblesort()
    {
        int refos = 0;
        for (int i=0;i<elementos.Length-1;i++)
        {
            for (int j = 0; j < elementos.Length - (i + 1); j++)
            {
                if (elementos[j] > elementos[j + 1])
                {
                    refos = elementos[j];
                    elementos[j] = elementos[j + 1];
                    elementos[j + 1] = refos;
                }
            }
        }
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        Bubblesort();
        for(int i=0;i<elementos.Length;i++)
        {
            lbOrdenada.Items.Add(elementos[i]);
        }
    }
}
}

截屏: link

到目前为止的问题:当我们按下“ Ordenar”按钮时,它显示5个零。

1 个答案:

答案 0 :(得分:0)

您需要将文本框中的值放入elementos数组中。由于代码普遍混乱,因此无法优雅地完成此操作,但是应该执行以下操作:

private void Button1_Click(object sender, EventArgs e)
{
    elementos[0] = Convert.ToInt32(TextBox1.Text);
    elementos[1] = Convert.ToInt32(TextBox2.Text);
    elementos[2] = Convert.ToInt32(TextBox3.Text);
    elementos[3] = Convert.ToInt32(TextBox4.Text);
    elementos[4] = Convert.ToInt32(TextBox5.Text);
    Bubblesort();
    for(int i=0;i<elementos.Length;i++)
    {
        lbOrdenada.Items.Add(elementos[i]);
    }
}