当前位置: 代码迷 >> C# >> winform实现冒泡排序,该如何解决
  详细解决方案

winform实现冒泡排序,该如何解决

热度:231   发布时间:2016-05-05 02:57:58.0
winform实现冒泡排序
新手开始学习,第一次发帖,请问怎么实现:Windows 窗体程序中,给一个文本框输入一组数组,通过按钮实现冒泡排序,然后显示在另外一个文本框中,控制台的应用程序倒是能写的出来,但是窗体程序中那个一组数据类型转换还是不怎么动,希望贴出代码来,谢谢,有分,谢谢!
------解决思路----------------------
这其实跟新手不新手关系不大

是你处理问题的能力太欠缺,而不是编程知识匮乏

遇到问题要学会分解,具体哪个步骤有问题,就对应的去查

既然控制台程序你会写,那么其实如何排序根本就不是个问题,所以就根本不应该放出来问

你要问的不过是怎么从文本框里获取一大串字符串,然后转成数组

如果你直接拿这个上网搜,早就搜到答案了
------解决思路----------------------
代码来了……

private void button_Click(object sender, RoutedEventArgs e)
{
       string strTB = textBox.Text;
       string[] strArrayTB = strTB.Split(' ');
       int[] intArray=new int[strArrayTB.Length];
       for(int i=0;i< strArrayTB.Length;i++)
       {
            intArray[i] = int.Parse(strArrayTB[i]);
       }
       int sum=0;
       foreach(int i in intArray)
       {
            sum += i;
       }
       textBlock.Text = sum.ToString();
}

这里我已经定义了一个TextBox用于输入,一个TextBlock用于输出,一个Button定义Click。代码中首先获取在TextBox中输入的string,然后用Split函数将它们排成数组,然后新建一个和string数组长度一致的int数组。在for循环中逐个地将string转换为int,后面只是一个求和的过程作为示范,你改为自己的冒泡即可。另外在string转换为int的过程中,切记用try catch判断是否是数字,这个用ascii码即可。
------解决思路----------------------
两个文本框,一个按钮,一个按钮事件


        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(textBox1.Text))
            {
                return;
            }

            char splitChar = ',';
            string[] numbers = textBox1.Text.Trim().Split(splitChar);

            List<int> lstNumbers = new List<int>();
            int tmpNum;
            foreach (var num in numbers)
            {
                try
                {
                    tmpNum = Convert.ToInt32(num);
                    lstNumbers.Add(tmpNum);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("转型异常:" + ex.Message);
                }
            }

            for (int i = 0; i < lstNumbers.Count; i++)
            {
                for (int j = 1; j < i + 1; j++)
                {
                    if (lstNumbers[i] > lstNumbers[j])
                    {
                        tmpNum = lstNumbers[i];
                        lstNumbers[i] = lstNumbers[j];
                        lstNumbers[j] = tmpNum;
                    }
                }
            }

            textBox2.Text = string.Join(",", lstNumbers);
        }
  相关解决方案