和C槽类似,只是参数多几个,判断方法多几个
public static string[] 转角C槽核心算法(string N_编码, string N_数量)
{
//5N400-400 N400-400 5DN400-400 DN400-400(忠旺体系的编码)
//定义型材信息
string[] 计算结果 = new string[6];//结果
string[] 错误结果 = new string[1];//结果
String[] N_无字母参数 = null;
String[] N_无数字参数 = null;
//去除编码中的符号和字母
N_无字母参数 = N_编码.Split(new char[] { '-', 'P', 'J', 'Q', 'C', 'D', 'K', 'L', '/', '(', ')', 'A', 'B', 'E', 'F', 'G', 'H', 'I', 'J', 'M', 'N', 'O', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }, StringSplitOptions.RemoveEmptyEntries);
//去除编码中的数字
N_无数字参数 = N_编码.Split(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' }, StringSplitOptions.RemoveEmptyEntries);
//去除编码中的空格,然后转化为string类型
String N_字符串 = String.Join("", N_无数字参数.Select(y => y.ToString()).ToArray());
char[] N_字符数组 = N_字符串.ToCharArray();
if (N_编码 != "" && N_数量 != "")
{
//判断获取到的编码是不是N类型,并保证编码中只有一个N或者DN字符
switch (N_字符串)
{
case "N-":
switch (N_无字母参数.Length)
{
//2个参数的算法 N***-***,给参数指定范围
case 2:
if (N_编码.Substring(0, 1) == "N")
{
if (float.Parse(N_无字母参数[0]) <= 500 && float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[0]) >= 150 && float.Parse(N_无字母参数[1]) >= 150)
{
计算结果[0] = "型材1:100*150*" + N_无字母参数[0];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:100*150*" + N_无字母参数[1];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:93.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
return 计算结果;
}
else
{
错误结果[0] = "数字过大或过小,请检查";
return 错误结果;
}
}
else
{
错误结果[0] = "编码不全,无法计算";
return 错误结果;
}
//3个参数的算法
case 3:
if (float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[2]) <= 500 && float.Parse(N_无字母参数[1]) >= 150 && float.Parse(N_无字母参数[2]) >= 150)
{
switch (N_无字母参数[0])
{
case "1":
计算结果[0] = "型材1:110*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:110*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:103.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "2":
计算结果[0] = "型材1:120*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:120*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:113.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "3":
计算结果[0] = "型材1:130*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:130*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:123.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "4":
计算结果[0] = "型材1:140*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:140*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:133.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "5":
计算结果[0] = "型材1:150*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:150*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:143.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "6":
计算结果[0] = "型材1:160*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:160*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:153.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "7":
计算结果[0] = "型材1:170*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:170*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:163.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "8":
计算结果[0] = "型材1:180*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:180*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:173.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "9":
计算结果[0] = "型材1:190*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:190*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:183.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
case "20":
计算结果[0] = "型材1:200*150*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:200*150*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:193.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角N槽";
break;
default://除以上类型之外的型号,这里不支持
错误结果[0] = "不支持的型号,请检查";
return 错误结果;
}
return 计算结果;
}
else
{
错误结果[0] = "数字过大或过小,请检查";
return 错误结果;
}
default://编码不对,不支持
错误结果[0] = "不支持的编码,请检查";
return 错误结果;
}
case "DN-"://DC型号的C槽计算
switch (N_无字母参数.Length)
{
//2个参数的算法 DN***-***,给参数指定范围
case 2:
if (N_编码.Substring(0, 2) == "DN")
{
if (float.Parse(N_无字母参数[0]) <= 500 && float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[0]) >= 100 && float.Parse(N_无字母参数[1]) >= 100)
{
计算结果[0] = "型材1:100*100*" + N_无字母参数[0];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:100*100*" + N_无字母参数[1];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:93.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
return 计算结果;
}
else
{
错误结果[0] = "数字过大或过小,请检查";
return 错误结果;
}
}
else
{
错误结果[0] = "编码不全,无法计算";
return 错误结果;
}
//3个参数的算法
case 3:
if (float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[2]) <= 500 && float.Parse(N_无字母参数[1]) >= 100 && float.Parse(N_无字母参数[2]) >= 100)
{
switch (N_无字母参数[0])
{
case "1":
计算结果[0] = "型材1:110*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:110*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:103.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "2":
计算结果[0] = "型材1:120*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:120*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:113.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "3":
计算结果[0] = "型材1:130*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:130*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:123.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "4":
计算结果[0] = "型材1:140*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:140*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:133.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "5":
计算结果[0] = "型材1:100*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:100*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:93.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "6":
计算结果[0] = "型材1:160*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:160*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:153.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "7":
计算结果[0] = "型材1:170*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:170*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:163.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "8":
计算结果[0] = "型材1:180*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:180*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:173.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "9":
计算结果[0] = "型材1:190*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:190*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:183.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
case "20":
计算结果[0] = "型材1:200*100*" + N_无字母参数[1];//固定参数
计算结果[1] = "型材1数量:" + N_数量;
计算结果[2] = "型材2:200*100*" + N_无字母参数[2];//固定参数
计算结果[3] = "型材2数量:" + N_数量;
计算结果[4] = "封板:193.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
计算结果[5] = "正常转角DN槽";
break;
default://除以上类型之外的型号,这里不支持
错误结果[0] = "不支持的型号,请检查";
return 错误结果;
}
return 计算结果;
}
else
{
错误结果[0] = "数字过大或过小,请检查";
return 错误结果;
}
default://编码不对,不支持
错误结果[0] = "不支持的编码,请检查";
return 错误结果;
}
default:
//不是C槽的编码,不支持
错误结果[0] = "编码不是转角C槽,请检查";
return 错误结果;
}
}
else
{
if (N_编码 == "" && N_数量 == "")
{
错误结果[0] = "错误: 编码数量都没有我算你妹?";
}
else if (N_编码 == "")
{
错误结果[0] = "错误: 编码没有怎么算?";
}
else if (N_编码 == "")
{
错误结果[0] = "错误: 数量没填我特么怎么算?";
}
return 错误结果;
}
}
运行结果:
下一篇,计算编码类别,未完待续...............