转角C槽篇2020-11-17

作者: new_blash | 来源:发表于2020-11-17 16:56 被阅读0次

    和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

        本文链接:https://www.haomeiwen.com/subject/gatfiktx.html