【问题标题】:Random Number Generator using C#使用 C# 的随机数生成器
【发布时间】:2018-12-11 00:58:32
【问题描述】:

我需要根据用户所需的随机数数量创建随机数。

然后,当单击“保存到文件”按钮时,用户可以将这些随机数保存到文件中。

之后,程序允许用户打开同一个文件,但这一次,打开的文件需要显示在特定范围内创建了多少随机数。 范围是:(0-19、20-39、40-59、60-79 和 80-99)。

到目前为止,我能够创建一个随机数并在用户输入的次数上列出相同的数字,但不幸的是:

  • 创建的随机数需要通过用户创建的迭代次数全部随机。

  • 我不知道如何显示各自范围内的数字。

  • 我无法正确显示数字。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
    
        }
    
        private void RandNumbtextBox_TextChanged(object sender, EventArgs e)
        {
    
    
        }
    
        private void saveFileButton_Click(object sender, EventArgs e)
        {
            double randomNumber = double.Parse(RandNumbtextBox.Text);
            Random r = new Random();//random number object
            int random = r.Next(1, 10);// random number 1
            if (saveFileDialog.ShowDialog()== DialogResult.OK)
            {
                StreamWriter outputFile;
                outputFile = File.CreateText(saveFileDialog.FileName + ".txt");
                for(int i = 0; i < randomNumber; i++)
                {
                    outputFile.WriteLine(random.ToString());
                }
    
                outputFile.Close();
    
            }
            else
            {
                MessageBox.Show("op cancelled");
            }
    
    
        }
    
        private void openFileButton_Click(object sender, EventArgs e)
        {
            if (openFileDialog.ShowDialog() == DialogResult.OK) 
            {
                StreamReader inputFile;
                inputFile = File.OpenText(openFileDialog.FileName);
                int sum = 0;
                while (!inputFile.EndOfStream)
                {
                    sum += int.Parse(inputFile.ReadLine());
                }
                inputFile.Close();
                MessageBox.Show(sum.ToString());
            }            
            else
            {
                    MessageBox.Show("op cancelled");
            }
        }
    }
    

    感谢约翰,我能够弄清楚问题的第一个问题。生成随机数问题并将它们写入文件。 我仍然无法: *显示各自范围内的数字。

  • 我无法正确显示数字。

【问题讨论】:

  • 问题是什么?

标签: c# random random-seed


【解决方案1】:

OP,您正在分配随机数一次

int random = r.Next(1, 10);// random number 1

然后写出来randomNumber次:

for(int i = 0; i < randomNumber; i++)
{
    outputFile.WriteLine(random.ToString());
}

我认为你的代码需要阅读:

for(int i = 0; i < randomNumber; i++)
{
    outputFile.WriteLine(r.Next(1, 10).ToString());
}

至于计数范围内的数字:一种简单的方法可能是为每个范围创建“计数”变量,并实施分支逻辑以根据您正在查看的数字递增正确的数字。更动态的方法可能涉及字典或包含范围和计数值的类数组。

【讨论】:

  • 天啊!!!!!!非常感谢!!!我想不通。关于我的问题第二部分的任何想法。将文件打开到特定范围
  • 您可以在读取文件的同时获取行数,然后用它来确定范围...
  • string range; if (lineCount &lt; 20) range = "0-19"; else if (lineCount &lt; 40) range = "20-39"; else if (lineCount &lt; 60) range = "40-59"; else range = "80-99";
猜你喜欢
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2014-09-21
  • 2013-11-09
  • 2012-09-24
相关资源
最近更新 更多