C# 排序方法和将结果写入文本文件
我正在使用排序方法和随机方法<代码>按钮1创建参数随机化数字、大小和工作的最大数量限制。然后根据所选择的线性方法,C# 排序方法和将结果写入文本文件,c#,winforms,C#,Winforms,我正在使用排序方法和随机方法按钮1创建参数随机化数字、大小和工作的最大数量限制。然后根据所选择的线性方法,按钮2对这些数字进行排序,然后使用秒表来计时所花的时间。我目前正在执行以下操作:排序方法,大小,排序时间和文本文件中的操作数。所以我已经完成了第一部分,当程序加载时,我已经提示用户创建一个文件,用于存储结果 我可以用什么方法将结果附加到文本文件中并平均结果?我还需要添加一个按钮,在用户完成排序后关闭写入功能吗 所需格式的示例:排序方法,大小,排序时间和操作数 Linear 10000 .9
按钮2
对这些数字进行排序,然后使用秒表来计时所花的时间。我目前正在执行以下操作:排序方法
,大小
,排序时间
和文本文件中的操作数
。所以我已经完成了第一部分,当程序加载时,我已经提示用户创建一个文件,用于存储结果
我可以用什么方法将结果附加到文本文件中并平均结果?我还需要添加一个按钮,在用户完成排序后关闭写入功能吗
所需格式的示例:排序方法
,大小
,排序时间
和操作数
Linear 10000 .9 100,000,000
Linear 10000 .8 110,000,000
Linear 10000 .75 150,000,000
Linear 10000 .50 70,000,000
Linear 10000 .7375 107,500,000 ---- AVG
代码
namespace sortMachine
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Save()
{
var saveReport = new SaveFileDialog();
saveReport.Filter = "Text Files | *.txt";
var result = saveReport.ShowDialog();
if (result == DialogResult.Cancel || string.IsNullOrWhiteSpace(saveReport.FileName))
return;
using (var writer = new StreamWriter(saveReport.FileName))
{
writer.Write(textBox1.Text);
writer.Close();
}
}
private List<string> messages = new List<string>() { "Linear", "Bubble", "Index", "Other" };
private int clickCount = 0;
Stopwatch sw = new Stopwatch();
private void button1_Click(object sender, EventArgs e)
{
try
{
}
else if (textBox7.Text == "Bubble")
{
}
else if (textBox7.Text == "Index")
{
}
else if (textBox7.Text == "Other")
{
}
else if (textBox7.Text == "")
{
MessageBox.Show("Please input a sorting method");
}
}
private void Form1_Load(object sender, EventArgs e)
{
Save();
}
private void button3_Click(object sender, EventArgs e)
{
textBox7.Text = messages[clickCount];
clickCount++;
if (clickCount == messages.Count)
clickCount = 0;
}
}
名称空间排序机
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
私有void Save()
{
var saveReport=new SaveFileDialog();
saveReport.Filter=“Text Files |*.txt”;
var result=saveReport.ShowDialog();
if(result==DialogResult.Cancel | | string.IsNullOrWhiteSpace(saveReport.FileName))
返回;
使用(var writer=newstreamwriter(saveReport.FileName))
{
writer.Write(textBox1.Text);
writer.Close();
}
}
私有列表消息=新列表(){“线性”、“气泡”、“索引”、“其他”};
私有int clickCount=0;
秒表sw=新秒表();
私有无效按钮1\u单击(对象发送者,事件参数e)
{
尝试
{
}
else if(textBox7.Text==“气泡”)
{
}
else if(textBox7.Text==“索引”)
{
}
else if(textBox7.Text==“其他”)
{
}
else if(textBox7.Text==“”)
{
MessageBox.Show(“请输入排序方法”);
}
}
私有void Form1\u加载(对象发送方、事件参数e)
{
Save();
}
私有无效按钮3\u单击(对象发送者,事件参数e)
{
textBox7.Text=消息[点击计数];
点击计数++;
如果(clickCount==messages.Count)
点击计数=0;
}
}
}我没有看完所有的代码,但是你的问题有两个三个部分: 如何对结果进行排序/平均?一旦您有了结果的
列表,您就可以调用,依此类推。它们是System.Linq
命名空间的一部分。(有用函数的完整列表。)
如何将其输出到文本文件?查看file.IO
名称空间
如何获取结果数据?您最好创建一个新类:
class SortData
{
public string SortMethod;
public int Size;
public TimeSpan TimeToSort;
public int NumberOfOperations;
}
创建一个列表
并将所有结果放入其中,每个结果都作为新排序数据()
。然后你可以按照以下思路做一些事情:
foreach (var data in myList)
{
Console.WriteLine(SortMethod + "\t" + Size + "\t" + TimeToSort + "\t" + NumberOfOperations);
}
您需要输出到文件而不是控制台,但想法是一样的。我没有看完所有代码,但您的问题有两个三个部分:
如何对结果进行排序/平均?一旦您有了结果的列表,您就可以调用,依此类推。它们是System.Linq
命名空间的一部分。(有用函数的完整列表。)
如何将其输出到文本文件?查看file.IO
名称空间
如何获取结果数据?您最好创建一个新类:
class SortData
{
public string SortMethod;
public int Size;
public TimeSpan TimeToSort;
public int NumberOfOperations;
}
创建一个列表
并将所有结果放入其中,每个结果都作为新排序数据()
。然后你可以按照以下思路做一些事情:
foreach (var data in myList)
{
Console.WriteLine(SortMethod + "\t" + Size + "\t" + TimeToSort + "\t" + NumberOfOperations);
}
您需要输出到文件而不是控制台,但想法是一样的。为什么不重命名控件?例如,textBox7
可以是keyTextBox
。为什么不重命名控件?例如,textBox7
可以是keyTextBox
+1谢谢,非常清楚。你能告诉我如何在列表中列出我的结果吗(排序方法
,大小
,排序时间
和操作数
)?@charlechodex23-我添加了一个建议,但这是我能为你做的。你应该可以从那里拿走。谢谢你,非常清楚。你能告诉我如何在列表中列出我的结果吗(排序方法
,大小
,排序时间
和操作数
)?@charlechodex23-我添加了一个建议,但这是我能为你做的。你应该可以从那里得到它。