【发布时间】:2018-02-26 05:33:13
【问题描述】:
我想在 Visual Studios Windows 窗体应用程序中编写一个需要实现以下功能的 C# 程序:
创建 1,000 个介于 1 和 5000 之间的随机数
使用冒泡排序算法对 1000 个数字进行排序
这是我目前的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Prog7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnGenerate_Click(object sender, EventArgs e)
{
Random num = new Random();
string line = Environment.NewLine;
int nbr = num.Next(0, 5001);
textNumbers.Text = nbr.ToString();
for(int i = 1; i <= 1000; i++)
{
nbr = num.Next(0, 5001);
textNumbers.Text = textNumbers.Text + line + nbr.ToString();
}
}
private void SortBtn_Click(object sender, EventArgs e)
{
bool inorder = false;
while (!inorder)
{
inorder = true;
for (int i = 1; i <= 1000; i++)
{
if (swap(ref i, ref i + 1))
inorder = false;
}
}
for (int i = 1; i <= 1000; i++)
{
nbr = num.Next(0, 5001);
SortBox.Text = SortBox.Text + line + nbr.ToString();
}
}
private bool swap(ref int top, ref int bottom)
{
int temp;
if (top <= bottom)
return false;
temp = top;
top = bottom;
bottom = temp;
return true;
}
}
}
我最初的计划是让表单有一个用于生成数字的按钮和一个用于对数字进行排序的按钮,其中包含两个文本框以列出数字。我的 btnGenerate_Click 中的代码可以很好地生成 1000 个不同的数字。但是我很难弄清楚如何将冒泡排序算法输入到这个程序中。我在网上查了很多关于该怎么做的例子,但是很多例子都涉及一个我没有使用的数组列表。我现在用于 SortBtn_Click 的程序显然不起作用。如果有人可以就如何使其工作或创建此程序的更简单方法给我建议,请告诉我!感谢任何人愿意提供的所有帮助。
【问题讨论】:
-
您想对
textNumbers文本框中的数字进行排序吗?如果是,那么您没有使用这些数字作为冒泡排序的输入。如果否,请告诉我btnGenerate的点击事件的用法 -
是的,我想使用在 textnumbers 文本框中生成的数字并对它们进行排序,以便它们可以显示在 SortBox 中。你能告诉我如何准确地使用气泡排序,因为我真正放下的任何东西都会出现某种形式的错误?
-
您应该注意,在
btnGenerate_Click事件中……您正在“创建”变量“num、“line”和“nbr”。由于当代码离开btnGenerate_Click事件时它们将超出范围,因此您将无法像在其他方法SortBtn_Clicks中那样使用这些变量。
标签: c# random windows-forms-designer bubble-sort