HOME 首頁
SERVICE 服務產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    客戶管理系統(tǒng)192.168.0.1(路由器登錄入口)

    發(fā)布時間:2023-03-16 01:08:40     稿源: 創(chuàng)意嶺    閱讀: 1081        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于客戶管理系統(tǒng)192.168.0.1的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    客戶管理系統(tǒng)192.168.0.1(路由器登錄入口)

    一、你對客戶關(guān)系管理系統(tǒng)是怎樣理解的?

    客戶關(guān)系管理系統(tǒng)簡稱crm,幫助企業(yè)管理客戶關(guān)系。客戶關(guān)系管理系統(tǒng),是指利用軟件、硬件和網(wǎng)絡技術(shù),為企業(yè)建立一個客戶信息收集、管理、分析和利用的信息系統(tǒng)。

    以客戶數(shù)據(jù)的管理為核心,記錄企業(yè)在市場營銷和銷售過程中和客戶發(fā)生的各種交互行為,以及各類有關(guān)活動的狀態(tài),提供各類數(shù)據(jù)模型,為后期的分析和決策提供支持。

    客戶關(guān)系管理系統(tǒng)依據(jù)先進的管理思想,利用先進的信息技術(shù),幫助企業(yè)最終實現(xiàn)客戶導向戰(zhàn)略,這樣的系統(tǒng)具有如下特點:

    (1)先進性

    客戶關(guān)系管理系統(tǒng)涉及種類繁多的信息技術(shù),比如數(shù)據(jù)倉庫、網(wǎng)絡、多媒體等許多先進的技術(shù)。同時,為了實現(xiàn)與客戶的全方位交流和互動,要求呼叫中心、銷售平臺、遠端銷售、移動設備以及基于因特網(wǎng)的電子商務站點的有機結(jié)合,這些不同的技術(shù)和不同規(guī)則的功能模塊要結(jié)合成統(tǒng)一的客戶關(guān)系管理系統(tǒng),需要不同類型的資源和專門的技術(shù)支持。因此,客戶關(guān)系管理系統(tǒng)具有高技術(shù)的特征。

    (2)綜合性

    客戶關(guān)系管理系統(tǒng)包含了客戶合作管理、業(yè)務操作管理、數(shù)據(jù)分析管理、信息技術(shù)管理四個子系統(tǒng),綜合了大多數(shù)企業(yè)的銷售、營銷、客戶服務行為的優(yōu)化和自動化的要求,運用統(tǒng)一的信息庫,開展有效的交流管理和執(zhí)行支持,使交易處理和流程管理成為綜合的業(yè)務操作方式。

    (3)集成性

    CRM解決方案因其具備強大的工作流引擎,可以確保各部門各系統(tǒng)的任務都能夠動態(tài)協(xié)調(diào)和無縫連接。因此,CRM系統(tǒng)與其他企業(yè)信息系統(tǒng)的集成,可以最大限度地發(fā)揮企業(yè)各個系統(tǒng)的組件功能,實現(xiàn)跨系統(tǒng)的商業(yè)智能,全面優(yōu)化企業(yè)內(nèi)部資源,提升企業(yè)整體信息化水平。

    (4)智能化

    客戶關(guān)系管理系統(tǒng)的成熟,不僅能夠?qū)崿F(xiàn)銷售、營銷、客戶服務等商業(yè)流程的自動化,減少大量的人力物流,還能為企業(yè)的管理者提供各種信息和數(shù)據(jù)的分析整合,為決策提供強有力的依據(jù)。同時,客戶關(guān)系管理的商業(yè)智能對商業(yè)流程和數(shù)據(jù)采取集中管理,大大簡化軟件的部署、維護和升級工作;基于因特網(wǎng)的客戶關(guān)系管理系統(tǒng),使用戶和員工可隨時隨地訪問企業(yè),減少大量的交易成本??蛻絷P(guān)系管理系統(tǒng)與其他企業(yè)管理信息系統(tǒng)集成后,將使商業(yè)智能得到更大的發(fā)揮,為企業(yè)發(fā)現(xiàn)新的市場機會、改善產(chǎn)品定價方案、提高客戶忠誠度,從而提高市場占有率提供支持。

    二、Unix課程設計 基于Linux內(nèi)核的防火墻的分析與設計

    一、什么是狀態(tài)機

    有限狀態(tài)機是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內(nèi)所經(jīng)歷的狀態(tài)序列,以及如何響應來自外界的各種事件。在面向?qū)ο蟮能浖到y(tǒng)中,一個對象無論多么簡單或者多么復雜,都必然會經(jīng)歷一個從開始創(chuàng)建到最終消亡的完整過程,這通常被稱為對象的生命周期。一般說來,對象在其生命期內(nèi)是不可能完全孤立的,它必須通過發(fā)送消息來影響其它對象,或者通過接受消息來改變自身。在大多數(shù)情況下,這些消息都只不過是些簡單的、同步的方法調(diào)用而已。例如,在銀行客戶管理系統(tǒng)中,客戶類(Customer)的實例在需要的時候,可能會調(diào)用帳戶(Account)類中定義的getBalance()方法。在這種簡單的情況下,類Customer并不需要一個有限狀態(tài)機來描述自己的行為,主要原因在于它當前的行為并不依賴于過去的某個狀態(tài)。

    遺憾的是并不是所有情況都會如此簡單,事實上許多實用的軟件系統(tǒng)都必須維護一兩個非常關(guān)鍵的對象,它們通常具有非常復雜的狀態(tài)轉(zhuǎn)換關(guān)系,而且需要對來自外部的各種異步事件進行響應。例如,在VoIP電話系統(tǒng)中,電話類(Telephone)的實例必須能夠響應來自對方的隨機呼叫,來自用戶的按鍵事件,以及來自網(wǎng)絡的信令等。在處理這些消息時,類Telephone所要采取的行為完全依賴于它當前所處的狀態(tài),因而此時使用狀態(tài)機就將是一個不錯的選擇。

    游戲引擎是有限狀態(tài)機最為成功的應用領(lǐng)域之一,由于設計良好的狀態(tài)機能夠被用來取代部分的人工智能算法,因此游戲中的每個角色或者器件都有可能內(nèi)嵌一個狀態(tài)機??紤]RPG游戲中城門這樣一個簡單的對象,它具有打開(Opened)、關(guān)閉(Closed)、上鎖(Locked)、解鎖(Unlocked)四種狀態(tài),如圖1所示。當玩家到達一個處于狀態(tài)Locked的門時,如果此時他已經(jīng)找到了用來開門的鑰匙,那么他就可以利用它將門的當前狀態(tài)轉(zhuǎn)變?yōu)閁nlocked,進一步還可以通過旋轉(zhuǎn)門上的把手將其狀態(tài)轉(zhuǎn)變?yōu)镺pened,從而成功地進入城內(nèi)。

    圖1 控制城門的狀態(tài)機

    在描述有限狀態(tài)機時,狀態(tài)、事件、轉(zhuǎn)換和動作是經(jīng)常會碰到的幾個基本概念。

    狀態(tài)(State) 指的是對象在其生命周期中的一種狀況,處于某個特定狀態(tài)中的對象必然會滿足某些條件、執(zhí)行某些動作或者是等待某些事件。"

    事件(Event) 指的是在時間和空間上占有一定位置,并且對狀態(tài)機來講是有意義的那些事情。事件通常會引起狀態(tài)的變遷,促使狀態(tài)機從一種狀態(tài)切換到另一種狀態(tài)。

    轉(zhuǎn)換(Transition) 指的是兩個狀態(tài)之間的一種關(guān)系,表明對象將在第一個狀態(tài)中執(zhí)行一定的動作,并將在某個事件發(fā)生同時某個特定條件滿足時進入第二個狀態(tài)。

    動作(Action) 指的是狀態(tài)機中可以執(zhí)行的那些原子操作,所謂原子操作指的是它們在運行的過程中不能被其他消息所中斷,必須一直執(zhí)行下去。

    二、手工編寫狀態(tài)機

    與其他常用的設計模式有所不同,程序員想要在自己的軟件系統(tǒng)中加入狀態(tài)機時,必須再額外編寫一部分用于邏輯控制的代碼,如果系統(tǒng)足夠復雜的話,這部分代碼實現(xiàn)和維護起來還是相當困難的。在實現(xiàn)有限狀態(tài)機時,使用switch語句是最簡單也是最直接的一種方式,其基本思路是為狀態(tài)機中的每一種狀態(tài)都設置一個case分支,專門用于對該狀態(tài)進行控制。下面的代碼示范了如何運用switch語句,來實現(xiàn)圖1中所示的狀態(tài)機:

    switch (state) {

    // 處理狀態(tài)Opened的分支

    case (Opened): {

    // 執(zhí)行動作Open

    open();

    // 檢查是否有CloseDoor事件

    if (closeDoor()) {

    // 當前狀態(tài)轉(zhuǎn)換為Closed

    changeState(Closed)

    }

    break;

    }

    // 處理狀態(tài)Closed的分支

    case (Closed): {

    // 執(zhí)行動作Close

    close();

    // 檢查是否有OpenDoor事件

    if (openDoor()) {

    // 當前狀態(tài)轉(zhuǎn)換為Opened

    changeState(Opened);

    }

    // 檢查是否有LockDoor事件

    if (lockDoor()) {

    // 當前狀態(tài)轉(zhuǎn)換為Locked

    changeState(Locked);

    }

    break;

    }

    // 處理狀態(tài)Locked的分支

    case (Locked): {

    // 執(zhí)行動作Lock

    lock();

    // 檢查是否有UnlockDoor事件

    if (unlockDoor()) {

    // 當前狀態(tài)轉(zhuǎn)換為Unlocked

    changeState(Unlocked);

    }

    break;

    }

    // 處理狀態(tài)Unlocked的分支

    case (Unlocked): {

    // 執(zhí)行動作Unlock

    unlock();

    // 檢查是否有LockDoor事件

    if (lockDoor()) {

    // 當前狀態(tài)轉(zhuǎn)換為Locked

    changeState(Locked)

    }

    // 檢查是否有OpenDoor事件

    if (openDoor()) {

    // 當前狀態(tài)轉(zhuǎn)換為Opened

    changeSate(Opened);

    }

    break;

    }

    }

    使用switch語句實現(xiàn)的有限狀態(tài)機的確能夠很好地工作,但代碼的可讀性并不十分理想,主要原因是在實現(xiàn)狀態(tài)之間的轉(zhuǎn)換時,檢查轉(zhuǎn)換條件和進行狀態(tài)轉(zhuǎn)換都是混雜在當前狀態(tài)中來完成的。例如,當城門處于Opened狀態(tài)時,需要在相應的case中調(diào)用closeDoor()函數(shù)來檢查是否有必要進行狀態(tài)轉(zhuǎn)換,如果是的話則還需要調(diào)用changeState()函數(shù)將當前狀態(tài)切換到Closed。顯然,如果在每種狀態(tài)下都需要分別檢查多個不同的轉(zhuǎn)換條件,并且需要根據(jù)檢查結(jié)果讓狀態(tài)機切換到不同的狀態(tài),那么這樣的代碼將是枯燥而難懂的。從代碼重構(gòu)的角度來講,此時更好的做法是引入checkStateChange()和performStateChange()兩個函數(shù),專門用來對轉(zhuǎn)換條件進行檢查,以及激活轉(zhuǎn)換時所需要執(zhí)行的各種動作。這樣一來,程序結(jié)構(gòu)將變得更加清晰:

    switch (state) {

    // 處理狀態(tài)Opened的分支

    case (Opened): {

    // 執(zhí)行動作Open

    open();

    // 檢查是否有激發(fā)狀態(tài)轉(zhuǎn)換的事件產(chǎn)生

    if (checkStateChange()) {

    // 對狀態(tài)機的狀態(tài)進行轉(zhuǎn)換

    performStateChange();

    }

    break;

    }

    // 處理狀態(tài)Closed的分支

    case (Closed): {

    // 執(zhí)行動作Close

    close();

    // 檢查是否有激發(fā)狀態(tài)轉(zhuǎn)換的事件產(chǎn)生

    if (checkStateChange()) {

    // 對狀態(tài)機的狀態(tài)進行轉(zhuǎn)換

    performStateChange();

    }

    break;

    }

    // 處理狀態(tài)Locked的分支

    case (Locked): {

    // 執(zhí)行動作Lock

    lock();

    // 檢查是否有激發(fā)狀態(tài)轉(zhuǎn)換的事件產(chǎn)生

    if (checkStateChange()) {

    // 對狀態(tài)機的狀態(tài)進行轉(zhuǎn)換

    performStateChange();

    }

    break;

    }

    // 處理狀態(tài)Unlocked的分支

    case (Unlocked): {

    // 執(zhí)行動作Lock

    unlock();

    // 檢查是否有激發(fā)狀態(tài)轉(zhuǎn)換的事件產(chǎn)生

    if (checkStateChange()) {

    // 對狀態(tài)機的狀態(tài)進行轉(zhuǎn)換

    performStateChange();

    }

    break;

    }

    }

    但checkStateChange()和performStateChange()這兩個函數(shù)本身依然會在面對很復雜的狀態(tài)機時,內(nèi)部邏輯變得異常臃腫,甚至可能是難以實現(xiàn)。

    在很長一段時期內(nèi),使用switch語句一直是實現(xiàn)有限狀態(tài)機的唯一方法,甚至像編譯器這樣復雜的軟件系統(tǒng),大部分也都直接采用這種實現(xiàn)方式。但之后隨著狀態(tài)機應用的逐漸深入,構(gòu)造出來的狀態(tài)機越來越復雜,這種方法也開始面臨各種嚴峻的考驗,其中最令人頭痛的是如果狀態(tài)機中的狀態(tài)非常多,或者狀態(tài)之間的轉(zhuǎn)換關(guān)系異常復雜,那么簡單地使用switch語句構(gòu)造出來的狀態(tài)機將是不可維護的。

    三、自動生成狀態(tài)機

    為實用的軟件系統(tǒng)編寫狀態(tài)機并不是一件十分輕松的事情,特別是當狀態(tài)機本身比較復雜的時候尤其如此,許多有過類似經(jīng)歷的程序員往往將其形容為"毫無創(chuàng)意"的過程,因為他們需要將大量的時間與精力傾注在如何管理好狀態(tài)機中的各種狀態(tài)上,而不是程序本身的運行邏輯。作為一種通用的軟件設計模式,各種軟件系統(tǒng)的狀態(tài)機之間肯定會或多或少地存在著一些共性,因此人們開始嘗試開發(fā)一些工具來自動生成有限狀態(tài)機的框架代碼,而在Linux下就有一個挺不錯的選擇——FSME(Finite State Machine Editor)。

    圖2 可視化的FSME

    FSME是一個基于Qt的有限狀態(tài)機工具,它能夠讓用戶通過圖形化的方式來對程序中所需要的狀態(tài)機進行建模,并且還能夠自動生成用C 或者Python實現(xiàn)的狀態(tài)機框架代碼。下面就以圖1中城門的狀態(tài)機為例,來介紹如何利用FSME來自動生成程序中所需要的狀態(tài)機代碼。

    3.1狀態(tài)機建模

    首先運行fsme命令來啟動狀態(tài)機編輯器,然后單擊工具欄上" "New"按鈕來創(chuàng)建一個新的狀態(tài)機。FSME中用于構(gòu)建狀態(tài)機的基本元素一共有五種:事件(Event)、輸入(Input)、輸出(Output)、狀態(tài)(State)和轉(zhuǎn)換(Transition),在界面左邊的樹形列表中可以找到其中的四種。

    狀態(tài)建模

    在FSME界面左邊的樹形列表中選擇"States"項,然后按下鍵盤上的Insert鍵來插入一個新的狀態(tài),接著在右下方的"Name"文本框中輸入狀態(tài)的名稱,再在右上方的繪圖區(qū)域單擊該狀態(tài)所要放置的位置,一個新的狀態(tài)就創(chuàng)建好了。用同樣的辦法可以添加狀態(tài)機所需要的所有狀態(tài),如圖3所示。

    圖3 狀態(tài)建模

    事件建模

    在FSME界面左邊的樹形列表中選" "Events"項,然后按下鍵盤上的Insert鍵來添加一個新的事件,接著在右下方的"Name"文本框中輸入事件的名稱,再單擊"Apply"按鈕,一個新的事件就創(chuàng)建好了。用同樣的辦法可以添加狀態(tài)機所需要的所有事件,如圖4所示。

    圖4 事件建模

    轉(zhuǎn)換建模

    狀態(tài)轉(zhuǎn)換是整個建模過程中最重要的一個部分,它用來定義有限狀態(tài)機中的一個狀態(tài)是如何切換到另一個狀態(tài)的。例如,當用來控制城門的狀態(tài)機處于Opened狀態(tài)時,如果此時有Close事件產(chǎn)生,那么狀態(tài)機的當前狀態(tài)將切換到Closed狀態(tài),這樣一個完整的過程在狀態(tài)機模型中可以用closeDoor這樣一個轉(zhuǎn)換來進行描述。

    要在FSME中添加這樣一個轉(zhuǎn)換,首先需要在界面左邊的樹形列表中選" "States"下的"Opened"項,然后按下鍵盤上的Insert鍵來添加一個新的轉(zhuǎn)換,接著在右下角的"Name"文本框中輸入轉(zhuǎn)換的名字"closeDoor",在"Condition"文本框中輸入"Close"表明觸發(fā)該轉(zhuǎn)換的條件是事件Close的產(chǎn)生,在"Target"下拉框中選擇"Closed"項表明該轉(zhuǎn)換發(fā)生后狀態(tài)機將被切換到Closed狀態(tài),最后再單擊"Apply"按鈕,一個新的狀態(tài)轉(zhuǎn)換關(guān)系就定義好了,如圖5所示。用同樣的辦法可以添加狀態(tài)機所需要的所有轉(zhuǎn)換。

    圖5 轉(zhuǎn)換建模

    3.2" 生成狀態(tài)機框架

    使用FSME不僅能夠進行可視化的狀態(tài)機建模,更重要的是它還可以根據(jù)得到的模型自動生成用C 或者Python實現(xiàn)的狀態(tài)機框架。首先在FSME界面左邊的樹形列表中選擇"Root"項,然后在右下角的"Name"文本框中輸入狀態(tài)機的名字"DoorFSM",再從"Initial State"下拉列表中選擇狀態(tài)"Opened"作為狀態(tài)機的初始化狀態(tài),如圖6所示。

    圖6 設置初始屬性

    在將狀態(tài)機模型保存為door.fsm文件之后,使用下面的命令可以生成包含有狀態(tài)機定義的頭文件:

    $ fsmc door.fsm -d -o DoorFSM.

    進一步還可以生成包含有狀態(tài)機實現(xiàn)的框架代碼:

    $ fsmc door.fsm -d -impl DoorFSM.h -o DoorFSM.cpp

    如果想對生成的狀態(tài)機進行驗證,只需要再手工編寫一段用于測試的代碼就可以了:

    /*

    * TestFSM.cpp

    * 測試生成的狀態(tài)機框架

    */

    #include "DoorFSM.h"

    int main()

    {

    DoorFSM door;

    door.A(DoorFSM::Close);

    door.A(DoorFSM::Lock);

    door.A(DoorFSM::Unlock);

    door.A(DoorFSM::Open);

    }

    有限狀態(tài)機是由事件來進行驅(qū)動的,在FSME生成的狀態(tài)機框架代碼中,方法A()可以被用來向狀態(tài)機發(fā)送相應的事件,從而提供狀態(tài)機正常運轉(zhuǎn)所需要的"動力"。狀態(tài)機負責在其內(nèi)部維護一個事件隊列,所有到達的事件都會先被放到事件隊列中進行等候,從而能夠保證它們將按照到達的先后順序被依次處理。在處理每一個到達的事件時,狀態(tài)機都會根據(jù)自己當前所處的狀態(tài),檢查與該狀態(tài)對應的轉(zhuǎn)換條件是否已經(jīng)被滿足,如果滿足的話則激活相應的狀態(tài)轉(zhuǎn)換過程。

    使用下面的命令能夠?qū)⑸傻臓顟B(tài)機框架和測試代碼編譯成一個可執(zhí)行文件:

    $ g DoorFSM.cpp TestFSM.cpp -o fsm

    由于之前在用fsmc命令生成狀態(tài)機代碼時使用了-d選項,生成的狀態(tài)機框架中會包含一定的調(diào)試信息,包括狀態(tài)機中每次狀態(tài)轉(zhuǎn)換時的激活事件、轉(zhuǎn)換前的狀態(tài)、所經(jīng)歷的轉(zhuǎn)換、轉(zhuǎn)換后的狀態(tài)等,如下所示:

    $ ./fsm

    DoorFSM:event:'Close'

    DoorFSM:state:'Opened'

    DoorFSM:transition:'closeDoor'

    DoorFSM:new state:'Closed'

    DoorFSM:event:'Lock'

    DoorFSM:state:'Closed'

    DoorFSM:transition:'lockDoor'

    DoorFSM:new state:'Locked'

    DoorFSM:event:'Unlock'

    DoorFSM:state:'Locked'

    DoorFSM:transition:'unlockDoor'

    DoorFSM:new state:'Unlocked'

    DoorFSM:event:'Open'

    DoorFSM:state:'Unlocked'

    DoorFSM:transition:'openDoor'

    DoorFSM:new state:'Opened'

    3.3 定制狀態(tài)機

    目前得到的狀態(tài)機已經(jīng)能夠響應來自外部的各種事件,并適當?shù)卣{(diào)整自己當前所處的狀態(tài),也就是說已經(jīng)實現(xiàn)了狀態(tài)機引擎的功能,接下來要做的就是根據(jù)應用的具體需求來進行定制,為狀態(tài)機加入與軟件系統(tǒng)本身相關(guān)的那些處理邏輯。在FSME中,與具體應用相關(guān)的操作稱為輸出(Output),它們實際上就是一些需要用戶給出具體實現(xiàn)的虛函數(shù),自動生成的狀態(tài)機引擎負責在進入或者退出某個狀態(tài)時調(diào)用它們。

    仍然以控制城門的那個狀態(tài)機為例,假設我們希望在進入每個狀態(tài)時都添加一部分處理邏輯。首在FSME界面左邊的樹形列表選擇"Outputs"項,然后按下鍵盤上的Insert鍵來添加一個新的輸出,接著在右下方的"Name"文本框中輸入相應的名稱,再單擊"Apply"按鈕,一個新的輸出就創(chuàng)建好了,如圖7所示。用同樣的辦法可以添加狀態(tài)機所需要的所有輸出。

    圖7 添加輸出

    當所有的輸出都定義好之后,接下來就可以為狀態(tài)機中的每個狀態(tài)綁定相應的輸出。首先在FSME界面左側(cè)的"States"項中選擇相應的狀態(tài),然后從右下角的"Available"列表框中選擇與該狀態(tài)對應的輸出,再單擊"<"按鈕將其添加到"In"列表中,如圖8所示。用同樣的辦法可以為狀態(tài)機中的所有狀態(tài)設置相應的輸出,同一個狀態(tài)可以對應有多個輸出,其中In列表中的輸出會在進入該狀態(tài)時被調(diào)用,而Out列表中的輸出則會在退出該狀態(tài)時被調(diào)用,輸出調(diào)用的順序是與其在In或者Out列表中的順序相一致的。

    圖8 為狀態(tài)設置輸出

    由于對狀態(tài)機模型進行了修改,我們需要再次生成狀態(tài)機的框架代碼,不過這次不需要加上-d參數(shù):

    $ fsmc door.fsm -o DoorFSM.h

    $ fsmc door.fsm -d -impl DoorFSM.h -o DoorFSM.cpp

    我們在新的狀態(tài)機模型中添加了enterOpend、enterClosed、enterLocked和enterUnlocked四個輸出,因此生成的類DoorFSM中會包含如下幾個純虛函數(shù)

    virtual void enterOpened() = 0;

    virtual void enterLocked() = 0;

    virtual void enterUnlocked() = 0;

    virtual void enterClosed() = 0;

    顯然,此時生成的狀態(tài)機框架不能夠再被直接編譯了,我們必須從類DoorFSM派生出一個子類,并提供對這幾個純虛函數(shù)的具體實現(xiàn):

    /*

    * DoorFSMLogic.h

    * 狀態(tài)機控制邏輯的頭文件

    */

    #include "DoorFSM.h"

    class DoorFSMLogic : public DoorFSM

    {

    protected:

    virtual void enterOpened();

    virtual void enterLocked();

    virtual void enterUnlocked();

    virtual void enterClosed();

    };

    正如前面所提到過的,這幾個函數(shù)實際上代表的正是應用系統(tǒng)的處理邏輯,作為例子我們只是簡單地輸出一些提示信息:

    /*

    * DoorFSMLogic.cpp

    * 狀態(tài)機控制邏輯的實現(xiàn)文件

    */

    #include "DoorFSMLogic.h"

    #include <iostream>

    void DoorFSMLogic::enterOpened()

    {

    std::cout << "Enter Opened state." << std::endl;

    }

    void DoorFSMLogic::enterClosed()

    {

    std::cout << "Enter Closed state." << std::endl;

    }

    void DoorFSMLogic::enterLocked()

    {

    std::cout << "Enter Locked state." << std::endl;

    }

    void DoorFSMLogic::enterUnlocked()

    {

    std::cout << "Enter Unlocked state." << std::endl;

    }

    同樣,為了對生成的狀態(tài)機進行驗證,我們還需要手工編寫一段測試代碼:

    /*

    * TestFSM.cpp

    * 測試狀態(tài)機邏輯

    */

    #include "DoorFSMLogic.h"

    int main()

    {

    DoorFSMLogic door;

    door.A(DoorFSM::Close);

    door.A(DoorFSM::Lock);

    door.A(DoorFSM::Unlock);

    door.A(DoorFSM::Open);

    }

    使用下面的命令能夠?qū)⑸傻臓顟B(tài)機框架和測試代碼編譯成一個可執(zhí)行文件:

    $ g DoorFSM.cpp DoorFSMLogic.cpp TestLogic.cpp -o logic

    運行結(jié)果如下所示:

    $ ./logic

    Enter Closed state.

    Enter Locked state.

    Enter Unlocked state.

    Enter Opened state.

    四、小結(jié)

    在面向?qū)ο蟮能浖到y(tǒng)中,有些對象具有非常復雜的生命周期模型,使用有限狀態(tài)機是描述這類對象最好的方法。作為一種軟件設計模式,有限狀態(tài)機的概念雖然不算復雜,實現(xiàn)起來也并不困難,但它的問題是當狀態(tài)機的模型復雜到一定的程度之后,會帶來實現(xiàn)和維護上的困難。Linux下的FSME是一個可視化的有限狀態(tài)機建模工具,而且支持狀態(tài)機框架代碼的自動生成,借助它可以更加輕松地構(gòu)建基于有限狀態(tài)機的應用系統(tǒng)。

    三、crm客戶關(guān)系管理系統(tǒng)是什么?

    CRM(Customer Relationship Management)就是客戶關(guān)系管理。從字面上來看,是指企業(yè)用CRM來管理與客戶之間的關(guān)系。CRM是選擇和管理有價值客戶及其關(guān)系的一種商業(yè)策略,CRM要求以客戶為中心的商業(yè)哲學和企業(yè)文化來支持有效的市場營銷、銷售與服務流程。CRM是一個獲取、保持和增加可獲利客戶的方法和過程。CRM既是一種嶄新的、國際領(lǐng)先的、以客戶為中心的企業(yè)管理理論、商業(yè)理念和商業(yè)運作模式,也是一種以信息技術(shù)為手段、有效提高企業(yè)收益、客戶滿意度、雇員生產(chǎn)力的具體軟件和實現(xiàn)方法。MYCRM就是CRM客戶管理軟件中創(chuàng)立最早,應用最廣范,客戶反映很不錯的CRM軟件。

    四、CRM客戶信息管理系統(tǒng)是什么? 客戶信息管理系統(tǒng)是什么東東

    客戶關(guān)系管理(Customer

    Relationship

    Management,簡稱CRM)是適應企業(yè)“以產(chǎn)品為中心”到“以客戶為中心”的經(jīng)營模式的戰(zhàn)略轉(zhuǎn)移而迅猛發(fā)展起來的新管理理念,它把追求客戶滿意和客戶忠誠作為最終目標,通過信息技術(shù)集成在軟件上,在企業(yè)與顧客之間建立一種數(shù)字的、實時的、互動的交流管理系統(tǒng),是一種現(xiàn)代的經(jīng)營管理理念。

    超博客戶關(guān)系管理系統(tǒng)——是一套針對各行業(yè)眾多企業(yè)需求特點推出的符合中國企業(yè)用戶使用的企業(yè)信息化管理系統(tǒng)。實現(xiàn)客戶關(guān)系管理維系、市場挖掘、銷售服務、日程安排、行動部署、財務流水、知識管理、作業(yè)協(xié)同等完美的融合在一起,將客戶、商機、產(chǎn)品、財務、售后服務、團隊管理、日程行動、工作匯報、內(nèi)部辦公自動化進行充分協(xié)同的平臺,有效管理企業(yè)內(nèi)部資源,提高客戶忠誠度,實現(xiàn)客戶和商業(yè)價值最大化,達到降低企業(yè)運營成本,提高效率,優(yōu)化客戶關(guān)系,提升銷售的目的。

    以上就是關(guān)于客戶管理系統(tǒng)192.168.0.1相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    客戶關(guān)系五種類型和舉例(客戶關(guān)系五種類型和舉例說明)

    網(wǎng)店代運營怎么找客戶(網(wǎng)店代運營怎么找客戶資源)

    客戶對企業(yè)發(fā)展的重要性(客戶對企業(yè)發(fā)展的重要性和意義)

    怎么將圖片上傳到小程序圖庫(怎么將圖片上傳到小程序圖庫上)

    小型室內(nèi)養(yǎng)殖致富