C#读取TXT文件放入数组,并统计数据,绘制折线图
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Collections;
using System.Windows.Forms.DataVisualization.Charting;
namespace ShuJuCeshi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int row = 0;//行
int col = 0;//lie
FileStream fs;
string path = "E:\\C##CX\\C#TT\\TEXT2.txt";
textBox3.Text = "当前文件夹位置是:" + "\r\n" + path;
fs = new FileStream(path, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
while (!sr.EndOfStream)
{
string[] arr = sr.ReadLine().Split(' ');
col = arr.Length;
textBox5.Text = "\r\n";
int[] a = new int[col / 2];
double[] temp = new double[col];
double[] ai = new double[col / 2];
double[] aj = new double[col / 2];
for (int x = 0; x < col; x++)
{
temp[x] = Convert.ToDouble(arr[x]);
if (x % 2 == 0)
{
for (int i = 0; i < col / 2; i++)
{
ai[i] = temp[x];
textBox1.Text = textBox1.Text + ' ' + ai[i] + "\r\n";
//int l = textBox1.Text.Length;
}
}
else
{
for (int i = 0; i < col / 2; i++)
{
aj[i] = temp[x];
textBox4.Text = textBox4.Text + ' ' + aj[i] + "\r\n";
}
}
}
int count = this.textBox1.Lines.GetUpperBound(0);
for (int d = 1; d < count + 1; d++)
{
string rr = Convert.ToString(d);
textBox5.Text = textBox5.Text + rr + "\r\n";
}
}
row++;
Console.WriteLine("\n");
}
private void button3_Click(object sender, EventArgs e)
{
int count = this.textBox1.Lines.GetUpperBound(0);
double[] temp = new double[count];
string[] str = new string[textBox1.Lines.Length];
string[] str1 = new string[textBox4.Lines.Length];
for (int i = 0; i < textBox1.Lines.Length; i++)
{
str[i] = textBox1.Lines[i];
}
for (int i = 0; i < textBox4.Lines.Length; i++)
{
str1[i] = textBox4.Lines[i];
}
int Len = textBox1.Lines.Length;
int Len1 = textBox4.Lines.Length;
for (int pointIndex = 0; pointIndex < Len; pointIndex++)
{
chart1.Series["数据统计折线图"].Points.AddXY(str[pointIndex], str1[pointIndex]);
}
}
private void button4_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox3.Text = "文件位置:" + "\r\n" + "未加载数据文件";
textBox2.Text ="未加载数据文件" +"\r\n"
+ "测量数据点数:" +"\r\n"
+ "测量数据与平均值最大偏离:"+ "\r\n"
+ "测量数据与平均值最小偏离:" + "\r\n"
+ "最大偏离测量节点数序号:"+ "\r\n"
+ "最小偏离测量节点数序号:" ;
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox4.Text == " ")
MessageBox.Show("未打开任何数据处理文件,请选择打开一个数据处理文件!", "信息提示!", MessageBoxButtons.OK);
else
{
int count = this.textBox1.Lines.GetUpperBound(0);
double sum = 0;
double aver = 0;
double mtemp;
double stemp;
int mindex=0;
int sindex=0;
double ll;
double l;
double ma;
double su;
double[] p = new double[count];
double[] a = new double[count];
double[] s = new double[count];
double[] m = new double[count];
double[] array = new double[count];
string[] lines = textBox4.Text.Split('\n');
for (int h = 0; h < count; h++)
{
p[h] = Convert.ToDouble(lines[h]);//存放文本框中的数据
sum = sum + p[h];
}
aver = sum / count;
string straver= aver.ToString("f5");//fN 保留N位,四舍五入
for (int h = 0; h < count; h++)
{
// s[h] = (p[h] - aver);
a[h] = Math.Abs(p[h] - aver);//获取文本框数据与平均值之差的数组,主要围绕数组a进行操作
array[h] = Math.Abs(p[h] - aver);//获取文本框数据与平均值之差的绝对值数组
}
ma = array.Max();
string strma = ma.ToString("f5");
su = array.Min();
string strsu= su.ToString("f5");
mtemp = a[0];
stemp = a[0];
for (int i = 0; i < a.Length; i++)
{
if (mtemp < a[i])
{
mtemp = a[i];
mindex = i + 1;
}
}
for (int j = 0; j < a.Length; j++)
{
if (stemp >= a[j])
{
stemp = a[j];
sindex = j + 1;
}
}
textBox2.Text = "测量数据平均值:" + straver;
textBox2.Text = textBox2.Text + "\r\n" + "测量数据点数:" + count;
textBox2.Text = textBox2.Text + "\r\n" + "测量数据最大偏离平均值:" + strma;
textBox2.Text = textBox2.Text + "\r\n" + "测量数据最小偏离平均值:" +strsu;
textBox2.Text = textBox2.Text + "\r\n" + "最大偏离测量节点数序号:" + mindex;
textBox2.Text = textBox2.Text + "\r\n" + "最小偏离测量节点数序号:" + sindex;
}
}
//
}}
CVTE公司福利 672人发布
查看13道真题和解析