支撐篇,標(biāo)準(zhǔn)支撐的識(shí)別2020-11-10

識(shí)別支撐的算法,僅支持不帶后綴的編碼,后面會(huì)更新非標(biāo)支撐算法

public static string[] 標(biāo)準(zhǔn)支撐核心算法(string Z_編碼, string Z_數(shù)量)
        {
            //200Z200(普通支撐) Z220(梁底支撐150*220) Z(流星錘100*200)(忠旺體系的編碼)
            //定義型材信息(由于支撐沒(méi)有加筋,所以型材可以減少一部分)
            string Z_主型材 = "";
            string Z_主型材長(zhǎng)度 = "";
            string Z_主型材數(shù)量 = "";
            string Z_封板 = "";
            string Z_封板數(shù)量 = "";
            string Z_圓管數(shù)量 = "";//圓管每個(gè)公司長(zhǎng)度不同,所以只計(jì)算數(shù)量,不算長(zhǎng)度
            string Z_信息 = "";

            string[] 結(jié)果 = null;//結(jié)果
            String[] Z_無(wú)字母參數(shù) = null; 
            String[] Z_無(wú)數(shù)字參數(shù) = null; 
            //支撐算法稍微要比平板算法要復(fù)雜好幾倍,要計(jì)算用什么型材來(lái)開(kāi)料,比如125Z200,此時(shí)就不能用125的型材要用200的型材切125,然后焊接封板
            //其中參數(shù)又分好幾種情況,比如單獨(dú)一個(gè)Z,此時(shí)就不能再計(jì)算他的參數(shù)了,因?yàn)槭枪潭ㄋ赖?00*200,再比如Z220他第一個(gè)參數(shù)是固定的150,所以只有1個(gè)參數(shù),要分開(kāi)三次進(jìn)行計(jì)算
            //去除編碼中的符號(hào)和字母,方便下一次計(jì)算
            Z_無(wú)字母參數(shù) = Z_編碼.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);
            //去除編碼中的數(shù)字,方便下一次計(jì)算
            Z_無(wú)數(shù)字參數(shù) = Z_編碼.Split(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' }, StringSplitOptions.RemoveEmptyEntries);
            //去除編碼中的空格,然后轉(zhuǎn)化為string類(lèi)型,方便下一次計(jì)算
            String Z_字符串 = String.Join("", Z_無(wú)數(shù)字參數(shù).Select(y => y.ToString()).ToArray());
            char[] Z_字符數(shù)組 = Z_字符串.ToCharArray();

            //判斷獲取到的編碼是不是支撐類(lèi)型,并保證編碼中只有一個(gè)Z字符
            if (Z_字符數(shù)組.Length > 0 && Z_字符數(shù)組[0] == 'Z' && Z_字符數(shù)組.Length == 1)
            {
                //Z樓面支撐處理(無(wú)字母參數(shù)為0)
                if (Z_無(wú)字母參數(shù).Length == 0 )
                {
                    Z_主型材 = "100";
                    Z_主型材長(zhǎng)度 = "200";
                    Z_主型材數(shù)量 = Z_數(shù)量;
                    Z_封板 = "無(wú)";
                    Z_封板數(shù)量 = "無(wú)";
                    Z_圓管數(shù)量 = "150mm*" + Z_數(shù)量;//圓管每個(gè)公司長(zhǎng)度不同,所以自行修改長(zhǎng)度
                    Z_信息 = "樓面支撐Z";
                }
                //Z220梁底支撐處理(參數(shù)只有一個(gè),并保證參數(shù)是220)
                else if (Z_無(wú)字母參數(shù).Length == 1 && Z_無(wú)字母參數(shù)[0] == "220")
                {
                    Z_主型材 = "150";
                    Z_主型材長(zhǎng)度 = Z_無(wú)字母參數(shù)[0];
                    Z_主型材數(shù)量 = Z_數(shù)量;
                    Z_封板 = "無(wú)";
                    Z_封板數(shù)量 = "無(wú)";
                    Z_圓管數(shù)量 = "100mm*" + Z_數(shù)量;//圓管每個(gè)公司長(zhǎng)度不同,所以自行修改長(zhǎng)度
                    Z_信息 = "梁底支撐Z220";
                }
                //200Z200多參數(shù)型支撐處理(2個(gè)以上的參數(shù))
                else if (Z_無(wú)字母參數(shù).Length == 2)
                {
                    Z_主型材數(shù)量 = Z_數(shù)量;

                    Z_圓管數(shù)量 = "100*" + Z_數(shù)量;//不出意外基本就=支撐數(shù)量

                    Z_封板數(shù)量 = (2 * int.Parse(Z_數(shù)量)).ToString(); ;

                    Z_主型材 = Z_無(wú)字母參數(shù)[0];

                    //計(jì)算型材(取消一堆花里胡哨的算法,實(shí)際沒(méi)卵用)
                    if (float.Parse(Z_無(wú)字母參數(shù)[0]) % 50 != 0&& float.Parse(Z_無(wú)字母參數(shù)[1]) % 50 == 0)
                    {//寬度非標(biāo),長(zhǎng)度整數(shù)
                        Z_主型材 = Z_無(wú)字母參數(shù)[1];
                        Z_主型材長(zhǎng)度 = Z_無(wú)字母參數(shù)[0];
                        Z_封板 = "60.5內(nèi)封-長(zhǎng)度:" + (float.Parse(Z_無(wú)字母參數(shù)[1]) - 16).ToString();
                        Z_信息 = "非50倍數(shù)寬度支撐";
                    }
                    else if (float.Parse(Z_無(wú)字母參數(shù)[1]) % 50 != 0&&float.Parse(Z_無(wú)字母參數(shù)[0]) % 50 == 0)
                    {//長(zhǎng)度非標(biāo),寬度整數(shù)
                        Z_主型材 = Z_無(wú)字母參數(shù)[0];
                        Z_主型材長(zhǎng)度 = Z_無(wú)字母參數(shù)[1];
                        Z_封板 = "60.5內(nèi)封-長(zhǎng)度:" + (float.Parse(Z_無(wú)字母參數(shù)[0]) - 16).ToString();
                        Z_信息 = "非50倍數(shù)長(zhǎng)度支撐";
                    }
                    else if (float.Parse(Z_無(wú)字母參數(shù)[0]) % 50 != 0 && float.Parse(Z_無(wú)字母參數(shù)[1]) % 50 != 0)
                    {//長(zhǎng)寬都非標(biāo),以數(shù)小的當(dāng)型材
                        if (float.Parse(Z_無(wú)字母參數(shù)[0]) < float.Parse(Z_無(wú)字母參數(shù)[1]))
                        {
                            Z_主型材 = Z_無(wú)字母參數(shù)[0];
                            Z_主型材長(zhǎng)度 = Z_無(wú)字母參數(shù)[1];
                            Z_封板 = "60.5內(nèi)封-長(zhǎng)度:" + (float.Parse(Z_無(wú)字母參數(shù)[0]) - 16).ToString();
                        }
                        else {
                            Z_主型材 = Z_無(wú)字母參數(shù)[1];
                            Z_主型材長(zhǎng)度 = Z_無(wú)字母參數(shù)[0];
                            Z_封板 = "60.5內(nèi)封-長(zhǎng)度:" + (float.Parse(Z_無(wú)字母參數(shù)[1]) - 16).ToString();
                        }
                        Z_信息 = "非標(biāo)支撐";
                    }
                    else
                    {
                        //正常支撐
                        Z_主型材 = Z_無(wú)字母參數(shù)[0];
                        Z_主型材長(zhǎng)度 = Z_無(wú)字母參數(shù)[1];
                        Z_封板 = "60.5內(nèi)封-長(zhǎng)度:" + (float.Parse(Z_無(wú)字母參數(shù)[0]) - 16).ToString();
                        Z_信息 = "正常支撐";
                    }
                }
                else
                {//參數(shù)大于2個(gè)以上,暫時(shí)不支持,所以說(shuō)明一下
                    Z_信息 = "編碼沒(méi)有此型號(hào)支撐,請(qǐng)檢查";
                    結(jié)果 = new string[7] { Z_主型材, Z_主型材長(zhǎng)度, Z_主型材數(shù)量, Z_封板, Z_封板數(shù)量, Z_圓管數(shù)量, Z_信息 };
                    return 結(jié)果;
                }
                結(jié)果 = new string[7] { Z_主型材, Z_主型材長(zhǎng)度, Z_主型材數(shù)量, Z_封板, Z_封板數(shù)量, Z_圓管數(shù)量, Z_信息 };
                return 結(jié)果;

            }
            else
            {//不是支撐的編碼
                Z_信息 = "編碼錯(cuò)誤,請(qǐng)檢查";
                結(jié)果 = new string[7] { Z_主型材, Z_主型材長(zhǎng)度, Z_主型材數(shù)量, Z_封板, Z_封板數(shù)量, Z_圓管數(shù)量, Z_信息 };
                return 結(jié)果;
            }
        }

調(diào)用方法:

ruslt = MBCore.標(biāo)準(zhǔn)支撐核心算法("200Z200", "10");
            if (ruslt != null)
            {
                foreach(string str in ruslt)
                {
                    Console.Write(str);
                }
            }

結(jié)果如下:


image.png

完事,下一篇標(biāo)準(zhǔn)C槽的算法,未完待續(xù)..........

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贷痪,一起剝皮案震驚了整個(gè)濱河市儒搭,隨后出現(xiàn)的幾起案子莱坎,更是在濱河造成了極大的恐慌,老刑警劉巖呜笑,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)即寒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)召噩,“玉大人,你說(shuō)我怎么就攤上這事逸爵【叩危” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵师倔,是天一觀的道長(zhǎng)构韵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)趋艘,這世上最難降的妖魔是什么疲恢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮瓷胧,結(jié)果婚禮上显拳,老公的妹妹穿的比我還像新娘。我一直安慰自己搓萧,他們只是感情好杂数,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布宛畦。 她就那樣靜靜地躺著,像睡著了一般揍移。 火紅的嫁衣襯著肌膚如雪次和。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天那伐,我揣著相機(jī)與錄音踏施,去河邊找鬼。 笑死罕邀,一個(gè)胖子當(dāng)著我的面吹牛畅形,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播燃少,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼束亏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了阵具?” 一聲冷哼從身側(cè)響起碍遍,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阳液,沒(méi)想到半個(gè)月后怕敬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帘皿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年东跪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹰溜。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡虽填,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曹动,到底是詐尸還是另有隱情斋日,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布墓陈,位于F島的核電站恶守,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏贡必。R本人自食惡果不足惜兔港,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仔拟。 院中可真熱鬧衫樊,春花似錦、人聲如沸利花。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至兑徘,卻和暖如春刚盈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挂脑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工藕漱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人崭闲。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓肋联,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刁俭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子橄仍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容