Как добавить выбор файла из директории? - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. У меня есть код программы, которая строит гистограммы из заданного файла. Подскажите, как сделать так чтобы этот файл можно было выбрать вручную? Код программы прилагается.
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;
using System.IO;
 
namespace KSSLR1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
     
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            
            string[] lines = File.ReadAllLines("proba.TXT");
            double M = 0, sred = 0, sum = 0, max, min, razmah, delta, D = 0, G;
            double[] mas = new double[lines.Length];
 
            int i, L = 15, Mo = 0;
            double AMo, temp, As = 0, Ex = 0;
            int[] masX = new int[L];
            int sumZ = 0;
            double[] masY = new double[L];
            for (i = 0; i < lines.Length; i++)
            {
                mas[i] = Convert.ToDouble(lines[i]);
            }
            max = mas[0];
            min = mas[0];
 
            for (i = 0; i < lines.Length; i++)
            {
                if (mas[i] > max) max = mas[i];
                if (mas[i] < min) min = mas[i];
            }
 
            razmah = max - min;
            delta = razmah / L;
 
            for (i = 0; i < lines.Length; i++)
            {
                if (mas[i] >= min && mas[i] < min + delta) masX[0]++;
                if (mas[i] >= min + delta && mas[i] < min + 2 * delta) masX[1]++;
                if (mas[i] >= min + 2 * delta && mas[i] < min + 3 * delta) masX[2]++;
                if (mas[i] >= min + 3 * delta && mas[i] < min + 4 * delta) masX[3]++;
                if (mas[i] >= min + 4 * delta && mas[i] < min + 5 * delta) masX[4]++;
 
                if (mas[i] >= min + 5 * delta && mas[i] < min + 6 * delta) masX[5]++;
                if (mas[i] >= min + 6 * delta && mas[i] < min + 7 * delta) masX[6]++;
                if (mas[i] >= min + 7 * delta && mas[i] < min + 8 * delta) masX[7]++;
 
                if (mas[i] >= min + 8 * delta && mas[i] < min + 9 * delta) masX[8]++;
                if (mas[i] >= min + 9 * delta && mas[i] < min + 10 * delta) masX[9]++;
 
                if (mas[i] >= min + 10 * delta && mas[i] < min + 11 * delta) masX[10]++;
 
                if (mas[i] >= min + 11 * delta && mas[i] < min + 12 * delta) masX[11]++;
                if (mas[i] >= min + 12 * delta && mas[i] < min + 13 * delta) masX[12]++;
                if (mas[i] >= min + 13 * delta && mas[i] < min + 14 * delta) masX[13]++;
                if (mas[i] >= min + 14 * delta && mas[i] < min + 15 * delta) masX[14]++;
            }
 
            for (i = 0; i < L; i++)
            {
                masY[i] = min + i * delta;
            }
 
            for (i = 0; i < L; i++)
            {
                M = M + (masX[i] * delta * (i - 0.5) / masX[i]);
            }
 
            for (i = 0; i < L; i++)
            {
                if (Mo < masX[i]) Mo = masX[i];
            }
 
            for (i = 0; i < L; i++)
            {
                sumZ = sumZ + masX[i];
            }
 
            for (i = 0; i < L; i++)
            {
                D = D + (masX[i] * (delta * (i - 0.5) - M) * (delta * (i - 0.5) - M) / (masX[i] - 1));
            }
 
            G = Math.Pow(D, 0.5);
            temp = sumZ;
            
            AMo = (Mo * 100)/temp;
 
            for (i = 0; i < L; i++)
            {
                As = As + (masX[i] * Math.Pow((delta * (i - 0.5) - M),3) / (Math.Pow(G,3) * masX[i]));
            }
 
            for (i = 0; i < L; i++)
            {
                Ex = Ex + (masX[i] * Math.Pow((delta * (i - 0.5) - M), 4) / (Math.Pow(G, 4) * masX[i]));
            }
            Ex = Ex - 3;
 
            this.chart1.Series["Series1"].Points.DataBindXY(masY,masX);
 
            label1.Text = "max = " + max;
            label2.Text = "min = " + min;
            label3.Text = "Вариационный размах = " + razmah;
            label4.Text = "M = " + M;
            label5.Text = "Mo = " + Mo;
            label6.Text = "Амплитуда Mo = " + AMo;
            label7.Text = "Дисперсия = " + D;
            label8.Text = "Среднеквадратическое отклонение = " + G;
            label9.Text = "Коэффициент вариации = " + G/M;
            label10.Text = "Коэффициент асимметрии = " + As;
            label11.Text = "Коэффициент эксцесса = " + Ex;

            string sss = "";
 
            for (i = 0; i < masX.Length; i++) { sss = sss + masX[i] + " "; }
        }
 
        private void label4_Click(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
        }
    }
}

Решение задачи: «Как добавить выбор файла из директории?»

textual
Листинг программы
            var ofd = new OpenFileDialog() {Filter = "Text|*.txt"};
            if(ofd.ShowDialog() == DialogResult.OK)
            {
                string[] lines = File.ReadAllLines(ofd.FileName);
                ...
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы