chore: 初始化 VPSA ASP.NET 管理端

This commit is contained in:
yexingqiang
2026-06-08 17:14:28 +08:00
commit aeddf4ce65
126 changed files with 35594 additions and 0 deletions

View File

@@ -0,0 +1,144 @@
using System;
using System.Drawing;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI.DataVisualization.Charting;
/// <summary>
///CalculateData 的摘要说明
/// </summary>
public class CalculateData
{
public CalculateData()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 观测值最大值
/// </summary>
/// <param name="Xn">子组观测值</param>
/// <returns></returns>
static private double Max(double[] Xn)
{
double temp;
temp = Xn[0];
for (int i = 0; i < Xn.Length; i++)
{
temp = (Xn[i] > temp) ? Xn[i] : temp;
}
return temp;
}
/// <summary>
/// 观测值最小值
/// </summary>
/// <param name="Xn">子组观测值</param>
/// <returns></returns>
static private double Min(double[] Xn)
{
double temp;
temp = Xn[0];
for (int i = 0; i < Xn.Length; i++)
{
temp = (Xn[i] < temp) ? Xn[i] : temp;
}
return temp;
}
/// <summary>
/// 计算X在区间[ValueDownValueUp]的数量
/// </summary>
/// <param name="X"></param>
/// <param name="GroupCount"></param>
/// <param name="ValueDown"></param>
/// <param name="ValueUp"></param>
/// <param name="Yk"></param>
static private void SumRang(double[] X, int GroupCount, double[] ValueDown, double[] ValueUp, out double[] Yk, out double[] YkCount)
{
int temp = 0;
//总数量
int allCount = 0;
Yk = new double[GroupCount];
YkCount = new double[GroupCount];
for (int j = 0; j < GroupCount - 1; j++)
{
temp = 0;
for (int i = 0; i < X.Length; i++)
{
if (X[i] >= ValueDown[j] & X[i] < ValueUp[j])
{
temp = temp + 1;
allCount++;
}
}
Yk[j] = temp;
}
for (int i = 0; i < X.Length; i++)
{
if (X[i] >= ValueDown[GroupCount - 1] & X[i] <= ValueUp[GroupCount - 1])
{
temp = temp + 1;
allCount++;
}
}
Yk[GroupCount - 1] = temp;
for (int i = 0; i < Yk.Length; i++)
{
YkCount[i] = Yk[i];
Yk[i] = Yk[i] / (double)allCount * 100;
}
}
public static void DataPareto(double[] Data,int GroupCount)
{
Spc_Data_Pareto m_Spc_Data_Pareto = new Spc_Data_Pareto();
//数组最大值
double minValue = Min(Data);
//数组最小值
double maxValue = Max(Data);
//X轴刻度
double XSpan = (maxValue - minValue) / GroupCount;
//X轴下刻度线
double[] XSpanDown = new double[GroupCount];
//X轴上刻度线
double[] XSpanUp = new double[GroupCount];
double[] Yk=new double[GroupCount];
XSpanDown[0] = minValue;
XSpanUp[0] = minValue + XSpan;
for (int i = 1; i < GroupCount; i++)
{
XSpanDown[i] = minValue + i * XSpan;
XSpanUp[i] = minValue + (i + 1) * XSpan;
}
//数据在区间数组的数量
SumRang(Data, GroupCount, XSpanDown, XSpanUp, out Yk, out m_Spc_Data_Pareto.YCount);
for (int i = 0; i < GroupCount; i++)
{
if (i == 0)
{
m_Spc_Data_Pareto.AxisX[i] = minValue + XSpan / 2;
}
else
{
m_Spc_Data_Pareto.AxisX[i] = minValue + XSpan;
}
}
}
}
/// <summary>
/// 排列图数据
/// </summary>
public class Spc_Data_Pareto
{
//X轴数据
public double[] AxisX;
//所有数据在X轴各范围内的数量
public double[] YCount;
}