转角C槽篇2020-11-17

和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 错误结果;
            }
        }

运行结果:


image.png

下一篇,计算编码类别,未完待续...............

你可能感兴趣的:(转角C槽篇2020-11-17)