课后作业:新建窗体项目,定义一个长度为10的整型数组,数组元素从文本框输入,使用选择排序将数组排序,把排序稍后的数组元素显示在下方的label中。
时间: 2024-09-26 16:09:38 浏览: 50
在创建一个新的Windows Form应用程序中,你可以按照以下步骤完成这个课后作业:
1. **添加控件**:
- 在Form上添加两个TextBox控件,一个用于用户输入数组元素,另一个用于显示排序后的结果。
- 添加一个Label控件作为结果显示区域。
2. **初始化数组**:
- 使用代码在程序启动时,获取用户在第一个TextBox中输入的10个整数,并存储在一个名为`intArray`的整型数组中。
```csharp
int[] intArray = new int[10];
for (int i = 0; i < 10; i++)
{
int num;
if (Int32.TryParse(textBoxInput.Text, out num)) // 验证输入是否有效
{
intArray[i] = num;
textBoxInput.Text = ""; // 清空输入框,以便下一次输入
}
}
```
3. **选择排序**:
- 创建一个选择排序函数,遍历数组并找到最小值,然后将其与当前位置交换,以此类推。
```csharp
void SelectionSort(int[] arr)
{
for (int i = 0; i < arr.Length - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[j] < arr[minIndex])
minIndex = j;
}
if (minIndex != i)
{
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
```
4. **显示结果**:
- 对数组进行排序后,遍历并更新Label控件的内容。
```csharp
SelectionSort(intArray);
for (int i = 0; i < intArray.Length; i++)
{
labelResult.Text += $"{intArray[i]}, "; // 结果之间用逗号分隔
}
labelResult.Text = labelResult.Text.TrimEnd(',') + "\n"; // 去掉最后一个逗号并换行
```
5. **完整的代码示例**:
```csharp
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
InitializeArray();
}
private void InitializeArray()
{
int[] intArray = new int[10];
for (int i = 0; i < 10; i++)
{
int num;
if (Int32.TryParse(textBoxInput.Text, out num))
{
intArray[i] = num;
textBoxInput.Text = "";
}
}
SelectionSort(intArray);
DisplaySortedArray(intArray);
}
void SelectionSort(int[] arr)
{
// 选择排序实现...
}
void DisplaySortedArray(int[] sortedArray)
{
labelResult.Text = "";
for (int i = 0; i < sortedArray.Length; i++)
{
labelResult.Text += $"{sortedArray[i]}, ";
}
labelResult.Text = labelResult.Text.TrimEnd(',') + "\n";
}
private void textBoxInput_TextChanged(object sender, EventArgs e)
{
InitializeArray(); // 当用户输入变化时,重新计算数组
}
}
阅读全文