新手开始学习,第一次发帖,请问怎么实现: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);
}