Генератор случайных чисел с использованием C # - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужно создать случайные числа, основанные на количестве случайных чисел, необходимых пользователю.

Пользователь может затем сохранить эти случайные числа в файл, когда нажата кнопка «Сохранить в файл».

После этого программа позволяет пользователю открывать один и тот же файл, но на этот раз открытый файл должен отображать, сколько случайных чисел было создано в пределах определенного диапазона.Доступны следующие диапазоны: (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");
            }
        }
    }
    

    Благодаря Джону я смог выяснить первый вопрос вопроса.Генерация случайных чисел и запись их в файл.Я все еще не могу: * Отображать числа в соответствующем диапазоне.

  • Я не могу правильно отобразить числа.

1 Ответ

0 голосов
/ 11 декабря 2018

ОП, вы назначаете случайное число один раз :

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());
}

Что касается подсчета чисел в диапазонах: простой подход может состоять в создании переменных «count» для каждого диапазона и реализации логики ветвления для увеличения правильной в зависимости отномер, на который вы смотрите.Более динамичный подход может включать словарь или массив классов, которые содержат диапазон и значение счетчика.

...