簡體   English   中英

如何制作 WinForms 冒泡排序程序?

[英]How do I make a WinForms bubblesort program?

我們剛開始使用c#,全班同學什么都不知道。 然而,老師告訴我們用WinForms和c#來做一個使用冒泡排序的程序。 我環顧網絡,只找到了文本框的驗證(僅限數字)。

我是新來的,但如果可能的話,我想尋求幫助。 我們今天必須交付這項工作,到目前為止我們什么都沒有。

這是我的代碼。

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]);
        }
    }
}
}

截屏: 截屏

到目前為止的問題:當我們點擊“Ordenar”按鈕時,它顯示 5 個零。

您需要將文本框中的值放入 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]);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM