c#实验一:基于winform的冒泡排序练习

一、界面设计

在排序前textbox中输入数字,以逗号隔开,通过两个button实现降序排序或升序排序,然后在排序后textbox中显示

三个关键点:

1、监测输入是否合法,最好使用正则表达式

2、拆分textbox中字符串,使用String类的slipt方法

3、冒泡排序法

二、关于拆分textbox中字符串

1、如果以空格作为字符串结束标志,应采用以下语句

string str = textBox1.Text.Trim();
string[] ss = str.Split();

2、如果以逗号作为结束标志,应采用以下语句

string str = textBox1.Text.Trim();     或者 string str = textBox1.Text;
string[] ss = str.Split(',');

三、冒泡排序法

冒泡排序法就是把数组中的元素按从小到大或从大到小顺序排例,注意每次比较的次数依次减小

公式格式为:

 1 for(int i = 0; i < array.length - 1; i++)
 2 {
 3          for(int j = 0; j < array.length - 1 - i; j++)          //不能忘减i
 4          {
 5                 int temp;
 6                 if(array[j] < array[j + 1])
 7                 {
 8                            temp = array[j];                     //这里决定了是降序,还是升序      
 9                            array[j]   = array[j + 1] ;
10                            array[j + 1] =temp;
11                 }
12          }          
13 }                    

四、完整代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.Text.RegularExpressions;
 11 
 12 namespace 冒泡法排序
 13 {
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18             InitializeComponent();
 19         }
 20 
 21         private void button2_Click(object sender, EventArgs e)          //降序排列
 22         {
 23             string str = textBox1.Text.Trim();
 24             //string str = textBox1.Text;
 25             string[] ss = str.Split();
 26 
 27             string temp = "";
 28             for (int i = 0; i < ss.Length - 1; i++)
 29             {
 30                 for (int j = 0; j < ss.Length - 1 - i; j++)
 31                 {
 32                     if (int.Parse(ss[j])  < int.Parse(ss[j + 1]))
 33                     {
 34                         temp = ss[j];
 35                         ss[j] = ss[j + 1];
 36                         ss[j + 1] = temp;
 37                     }
 38                 }
 39             }
 40             for (int i = 0; i < ss.Length; i++)
 41             {
 42                 textBox2.AppendText(ss[i]);
 43                 textBox2.AppendText(",");
 44             }
 45         }
 46 
 47         private void button1_Click(object sender, EventArgs e)          //升序排例
 48         {
 49             string str = textBox1.Text.Trim();
 50             //string str = textBox1.Text;
 51             string[] ss = str.Split(',');
 52 
 53             string temp = "";
 54             for (int i = 0; i < ss.Length - 1; i++)
 55             {
 56                 for (int j = 0; j < ss.Length - 1 - i; j++)
 57                 {
 58                     if (int.Parse(ss[j]) > int.Parse(ss[j + 1]))
 59                     {
 60                         temp = ss[j];
 61                         ss[j] = ss[j + 1];
 62                         ss[j + 1] = temp;
 63                     }
 64                 }
 65             }
 66             for (int i = 0; i < ss.Length; i++)
 67             {
 68                 textBox2.AppendText(ss[i]);
 69                 textBox2.AppendText(",");
 70             }
 71         }
 72 
 73         private void Form1_Load(object sender, EventArgs e)
 74         {
 75             int[] array = { 23, 24, 25, 21, 19, 16, 12, 32, 100, 98, 45, 67, 39, 48, 67, 54, 53, 27 };
 76 
 77             for (int i = 0; i < array.Length - 1; i++)
 78             {
 79                 for (int j = 0; j < array.Length - 1-i; j++)
 80                 {
 81                     if (array[j] <= array[j + 1])
 82                     {
 83                         int temp = array[j];
 84                         array[j] = array[j + 1];   //把大的放在前面
 85                         array[j + 1] = temp;       //小的放在后面
 86                     }
 87                 }
 88             }
 89 
 90             //for (int ik = 0; ik < array.Length; ik++)
 91             //{
 92             //    textBox2.AppendText(array[ik].ToString());
 93             //    textBox2.AppendText(",");
 94             //}
 95             foreach(int i in array)
 96             {
 97                 textBox2.AppendText(i.ToString());
 98                 textBox2.AppendText(",");
 99             }
100         }
101 
102         private void button3_Click(object sender, EventArgs e)
103         {
104             textBox1.Text = "";
105             textBox2.Text = "";
106         }
107     }
108 }

 

posted @ 2019-01-18 16:44  码码的都是爱  阅读(909)  评论(0编辑  收藏  举报