




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
餐飲管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要:在互聯(lián)網(wǎng)技術(shù)日新月異的今天,信息化的管理方式正在逐漸占領(lǐng)各個行業(yè)。在餐飲領(lǐng)域,連鎖店具有一整套完善的管理系統(tǒng),而個體餐飲店更需要一個低成本、易操作的管理系統(tǒng)。本文分析了相關(guān)的研究背景,國內(nèi)外開發(fā)情況以及開發(fā)意義。介紹了在開發(fā)過程中所需要的平臺和關(guān)鍵技術(shù)。根據(jù)個體餐飲店的需求調(diào)查,對開發(fā)個體餐飲管理系統(tǒng)的可行性進(jìn)行分析?;贐/S模式,結(jié)合動態(tài)網(wǎng)頁生成技術(shù)ASP、數(shù)據(jù)庫管理系統(tǒng)MicrosoftSQLServer和IIS服務(wù)器,開發(fā)了一套集成多個管理功能的個體餐飲管理系統(tǒng)。最后對系統(tǒng)進(jìn)行測試,并做出總結(jié)。關(guān)鍵詞:個體餐飲;ASP;關(guān)聯(lián)推薦;B/SDesignandRealizationofIndividualCateringManagementSystemAbstract:WiththerapiddevelopmentofInternettechnology,themanagementmodeofinformatizationisgraduallyoccupyingvariousindustries.Inthefieldofcatering,chainstoreshaveacompletesetofperfectmanagementsystem,whileindividualrestaurantsneedalow-costandeasy-to-operatemanagementsystem.Thispaperanalyzestherelevantresearchbackground,domesticandforeigndevelopmentsituationanddevelopmentsignificance.Theplatformandkeytechnologiesneededinthedevelopmentprocessareintroduced.Accordingtotheindividualcateringdemandsurvey,thefeasibilityofdevelopingtheindividualcateringmanagementsystemisanalyzed.BasedonB/Smode,combinedwithdynamicwebpagegenerationtechnologyASP,databasemanagementsystemMicrosoftSQLServerandIISServer,developedasetofintegratedmultiplemanagementfunctionsoftheindividualcateringmanagementsystem.Finally,thesystemistestedandsummarized.Keywords:Individualcatering;ASP;Associationrecommendation;B/STOC\o"1-3"\h\u190021緒論 1247611.1課題背景 167011.2國內(nèi)外研究狀況 1294851.3研究意義 190972開發(fā)平臺及應(yīng)用技術(shù) 2158902.1ASP技術(shù)說明 247512.2C#開發(fā)語言介紹 2296922.3SQLServer 244712.4Bootstrap 262583系統(tǒng)分析 2141273.1需求分析 225933.2可行性分析 3259183.3業(yè)務(wù)分析 4296303.3.1系統(tǒng)用例圖 4219293.3.2系統(tǒng)活動圖 72104系統(tǒng)設(shè)計(jì) 7248404.1系統(tǒng)功能設(shè)計(jì) 8240684.1.1系統(tǒng)類圖 815774.1.2系統(tǒng)時序圖 1022074.2系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) 11184264.2.1數(shù)據(jù)表關(guān)系圖 12203294.2.2數(shù)據(jù)表設(shè)計(jì) 12234365系統(tǒng)實(shí)現(xiàn) 14140825.1系統(tǒng)開發(fā)環(huán)境及操作平臺 1412145(1)操作系統(tǒng):Windows10; 1418018(2)后臺數(shù)據(jù)庫:SQLServer2017 1424258(3)WEB服務(wù)器:InternetInformationServices10 149271(4)開發(fā)平臺:VisualStudio2017 14300915.2業(yè)務(wù)流程設(shè)計(jì) 14297355.2.1系統(tǒng)操作流程 14229035.2.2用戶注冊流程 1569895.2.3用戶修改密碼流程 172345.2.4編輯員工流程 1834295.2.5管理績效流程 19132985.2.6清點(diǎn)庫存流程 2042225.2.7登記進(jìn)貨流程 21117005.2.8開臺、點(diǎn)單、結(jié)算流程 2149155.2.9菜單管理流程 24271975.2.10訂單管理流程 24209245.2.11后廚管理流程 2530385.2.12固資管理流程 26103125.2.13查看區(qū)間賬務(wù)流程 27236865.2.14推薦菜品查看流程 2896125.3系統(tǒng)功能模塊實(shí)現(xiàn) 30211635.3.1人員管理模塊 30180275.3.2倉儲管理模塊 31324535.3.3菜單管理模塊 32194795.3.4訂單管理模塊 33116315.3.5后廚管理模塊 34266665.3.6設(shè)備管理模塊 34111675.3.7財(cái)務(wù)管理模塊 3457586系統(tǒng)測試 36178176.1測試目的 36314396.2測試結(jié)果及驗(yàn)證 3678187結(jié)論 382159致謝 3811760參考文獻(xiàn) 391緒論進(jìn)入21世紀(jì),計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)都得以快速的發(fā)展,4G的普及以及即將到來的5G時代,讓一切都變得看似觸手可及。這也為一個良好的管理系統(tǒng)做好了硬件上的基礎(chǔ)。現(xiàn)有的管理系統(tǒng)大多是對單個部門或者僅僅是針對收銀點(diǎn)菜方面下功夫,各部門之間的信息無法做到上通下達(dá),成了信息孤島[1]。因此開發(fā)一個具有多功能且能管理各個部門,傳遞數(shù)據(jù)信息的餐飲管理系統(tǒng)是很有必要的。1.1課題背景伴隨著飛速發(fā)展的科技和不斷完善的基礎(chǔ)設(shè)施,各行各業(yè)的發(fā)展都得到了極大的發(fā)展,工作和學(xué)習(xí)的效率也得以大幅提升。支付寶、微信、美團(tuán)等應(yīng)用都讓我們的生活更加便捷,從中我們也感受到了科技的力量[2]。隨著互聯(lián)網(wǎng)+思想的不斷普及,人們在越來越多的領(lǐng)域嘗試使用計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)[3]。在餐飲行業(yè)我們可以看到越來越多的連鎖餐飲店,甚至個人餐飲店也都在美團(tuán)、大眾點(diǎn)評此類與餐飲行業(yè)息息相關(guān)的互聯(lián)網(wǎng)公司的幫助下,逐步實(shí)現(xiàn)了信息化的管理。但是無論是連鎖餐飲店自己使用的,還是互聯(lián)網(wǎng)公司承包開發(fā)的系統(tǒng),都存在以下幾點(diǎn)不足:a.軟件開發(fā)者對餐飲企業(yè)的了解不夠深入。這主要體現(xiàn)在無法真正提高企業(yè)的服務(wù)質(zhì)量和運(yùn)營水品;b.軟件功能缺乏縱深。即有些系統(tǒng)功能很“全面”,但是缺少對各個領(lǐng)域的深度管理,致使功能無效堆疊,無法起到應(yīng)該有的作用[4];c.實(shí)施和服務(wù)操作復(fù)雜。這體現(xiàn)在操作過程上的復(fù)雜,餐飲企業(yè)作為流動性很強(qiáng)的企業(yè),對人員的培養(yǎng)也是占成本的一部分的[5]。1.2國內(nèi)外研究狀況由于歐美等發(fā)達(dá)國家的計(jì)算機(jī)技術(shù)普及的較早,因此國外的餐飲企業(yè)早在上世紀(jì)80年代就開始推廣使用管理軟件。根據(jù)應(yīng)用信息技術(shù)不同,還可以分為計(jì)算機(jī)化階段,自動化階段,網(wǎng)絡(luò)化階段和整合階段[6]。伴隨著不斷前進(jìn)的計(jì)算機(jī)技術(shù),餐飲管理系統(tǒng)也逐漸由原來的大眾化、粗放型向個體化、集約型方向發(fā)展。各家餐飲企業(yè)也通過不斷升級信息化管理系統(tǒng)來提升自身在同行業(yè)中的綜合競爭能力?,F(xiàn)在的餐飲管理系統(tǒng)相較于之前擁有更加穩(wěn)定的技術(shù)支撐,更加靈活的功能,這些都讓大型餐飲企業(yè)的管理成為一種優(yōu)勢,但這種優(yōu)勢本身對于整個行業(yè)而言是一種劣勢,因?yàn)樗话阒贿m用于較大型的企業(yè)[7]??墒沁@種管理模式對我們而言依舊有很多值得借鑒的地方,我們要做的是取其精華,去其糟粕。自古以來中國就是一個民以食為天的國家,伴隨著飲食成為一個行業(yè),餐飲企業(yè)也在不斷地涌現(xiàn)??墒怯捎谥形鞣轿幕夭町悾覀円M(jìn)的西方先進(jìn)的餐飲信息管理系統(tǒng)很難適用于中餐廳的管理,也導(dǎo)致了我們的大多數(shù)餐飲企業(yè)依舊停留在傳統(tǒng)的服務(wù)流程和管理方式,屬于“粗放型階段”,難以提高企業(yè)的效率[8]。也有一些企業(yè)察覺到了信息化管理時代的來臨,如俏江南、艷陽天等,都開始逐步引入餐飲管理系統(tǒng)[9],可是相較于體量巨大的整個餐飲行業(yè)而言,我們?nèi)孕枰统杀尽⒁撞僮鞯牟惋嫻芾硐到y(tǒng),現(xiàn)在的餐飲管理系統(tǒng),依舊具有上升和改進(jìn)的空間。1.3研究意義個體餐飲店的店長能夠通過整個管理系統(tǒng)對店鋪的設(shè)備、食材、財(cái)務(wù)狀況以及各部門的人員進(jìn)行管理,而店內(nèi)人員也可以使用線上的管理系統(tǒng),分管好各自的管轄范圍。中小型酒店餐飲管理系統(tǒng)提高了這些酒店的餐飲系統(tǒng)的管理效率、服務(wù)質(zhì)量,更降低了企業(yè)的運(yùn)營成本,通過數(shù)據(jù)可視化和數(shù)據(jù)分析為中小型酒店的發(fā)展提供有效依據(jù),切實(shí)促進(jìn)餐飲企業(yè)的長遠(yuǎn)發(fā)展[10]。尤其是當(dāng)今服務(wù)業(yè)的競爭越來越激烈,人工管理雖有其優(yōu)點(diǎn),但終究是弊大于利,而現(xiàn)代化、信息化的餐飲管理系統(tǒng)已然是整個行業(yè)正在追求的,而這也有助于實(shí)現(xiàn)未來整個餐飲行業(yè)資源的統(tǒng)一規(guī)劃,促進(jìn)行業(yè)的發(fā)展。2開發(fā)平臺及應(yīng)用技術(shù)2.1ASP技術(shù)說明ASP(ActiveServerPages,動態(tài)服務(wù)頁面),是微軟公司的一項(xiàng)技術(shù),主要在IIS(InternetInformationServices,Internet信息服務(wù))上運(yùn)行。ASP文件和HTML文件類似,它可包含文本、HTML、XML和腳本,其中的腳本可以在服務(wù)器上執(zhí)行。當(dāng)瀏覽器請求某個ASP文件時,請求通過IIS傳遞至ASP引擎。ASP引擎會逐行讀取這個文件,并執(zhí)行文件中的腳本。最后瀏覽器得到的是ASP文件所反饋的純HTML形式的內(nèi)容。不同用戶可以利用ASP定制自己的網(wǎng)頁,提高網(wǎng)頁的可用性、簡易性和速度。同時,由于ASP代碼無法在瀏覽器端察看,進(jìn)一步確保了站點(diǎn)的安全性。2.2C#開發(fā)語言介紹C#是一種簡單易用的編程語言,起源于C語言系列的C#能讓熟悉C、C++的程序員快速上手[11]。作為一種面向?qū)ο蟮恼Z言,C#還進(jìn)一步支持面向組件的編程。C#提供了語言構(gòu)造來為編程模型提供屬性、方法和事件,同時包含自己的文檔,這一切都讓C#成為一種非常自然的語言,可用于創(chuàng)建和使用軟件組件。2.3SQLServerSQLServer是Microsoft開發(fā)的一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),是目前最常用的數(shù)據(jù)庫之一,是一個高度可擴(kuò)展的產(chǎn)品[12]。SQLServer具有頂級事務(wù)處理TPC-E性能評分和頂級數(shù)據(jù)倉庫TPC-H性能評分,在領(lǐng)先的商業(yè)應(yīng)用方面也具有很高的評分。根據(jù)報(bào)告指出,SQLServer的安全漏洞數(shù)量是最少的。在SQLServer2017中,引入了SQL圖功能,允許用戶以更加靈活、敏捷的方式處理數(shù)據(jù)關(guān)系,讓關(guān)系建模和分析變得更為容易。2.4BootstrapBootstrap來自Twitter,是目前最受歡迎的HTML、CSS和JS前端框架。在兼容大部分jQuery插件的同時,它還形成了一套專屬于自己的網(wǎng)站風(fēng)格。Bootstrap簡潔靈活,其最大的優(yōu)勢就是響應(yīng)式布局。隨著移動設(shè)備的普及,開發(fā)者們必須讓自己的網(wǎng)頁適配平板、臺式機(jī)和手機(jī),而Bootstrap給了他們最佳的體驗(yàn)。3系統(tǒng)分析系統(tǒng)分析是軟件系統(tǒng)設(shè)計(jì)中必不可少的一個階段。在這個過程中,需要對用戶進(jìn)行調(diào)查,理解用戶的需求,對功能性需求與性能需求做出詳盡的分析。在完成上述分析的同時,對系統(tǒng)的業(yè)務(wù)做出分析,幫助用戶梳理自身需求,也方便開發(fā)人員做出系統(tǒng)設(shè)計(jì)。之后要根據(jù)團(tuán)隊(duì)或者個人的能力水平,對開發(fā)過程做技術(shù)可行性分析,開始之前還需要根據(jù)經(jīng)濟(jì)狀況做出經(jīng)濟(jì)可行性分析。本部分將主要從需求分析、可行性分析以及業(yè)務(wù)分析三個角度,通過圖表的方式來對該餐飲系統(tǒng)做出系統(tǒng)分析。3.1需求分析需求分析階段首先要理解用戶將要用計(jì)算機(jī)解決的問題是什么,系統(tǒng)分析員在理解用戶的用意之后,對系統(tǒng)的目標(biāo)、系統(tǒng)的范圍做出說明,然后用需求模型的形式準(zhǔn)確地表達(dá)出來。這個過程可以幫助開發(fā)人員快速理解用戶需求,避免錯誤理解帶來損失。首先對系統(tǒng)做出功能性需求分析。通過到餐飲店考察,親身經(jīng)歷餐飲店工作,向店長咨詢過后,系統(tǒng)對以下幾個方面具有需求:(1)空桌查看功能。大廳人員是直接與顧客面對面的工作人員,他們要能在短時間內(nèi)根據(jù)顧客的人數(shù),將顧客引導(dǎo)到可容納相應(yīng)人數(shù)的空桌。因此空桌必須是大廳的工作人員能直接查看到的。(2)菜品查找功能。在調(diào)查過程中,當(dāng)前餐飲店采用的點(diǎn)菜子系統(tǒng)要求工作人員自行到數(shù)據(jù)庫中點(diǎn)擊選取,這就需要工作人員記憶菜品在界面中所處的模塊、頁數(shù)。因此他們需要一個更加簡潔方便的點(diǎn)菜子系統(tǒng),能通過關(guān)鍵字搜索鎖定菜品,避免大量記憶。(3)后廚管理功能。后廚的工作更強(qiáng)調(diào)時效性,系統(tǒng)需要實(shí)時刷新每一桌的最近一次上菜情況,確保顧客不會陷入長時間等待的狀態(tài)。(4)設(shè)備管理功能。系統(tǒng)能夠?qū)Φ陜?nèi)設(shè)備進(jìn)行統(tǒng)計(jì),通過工作人員更新設(shè)備的狀態(tài),讓管理人員了解設(shè)備損耗情況。(5)倉儲管理功能。系統(tǒng)能夠?qū)M(jìn)貨進(jìn)行記錄,同時更新庫存中已有貨品的數(shù)量,加入新的貨品,管理人員能通過系統(tǒng)了解每日貨品的剩余量,為次日的進(jìn)貨做準(zhǔn)備。(6)財(cái)務(wù)管理功能。系統(tǒng)需要記錄過往的訂單,同時允許管理人員刪除過于久遠(yuǎn)的訂單。同時對各類成本、收入利潤進(jìn)行統(tǒng)計(jì),便于店長了解收支情況。(7)人員管理功能。從一定程度上來看,餐飲行業(yè)是一個人員流動很大的行業(yè),系統(tǒng)要能靈活的記錄人員的變化以及員工薪資的變化。性能需求分別是時間和空間方面。餐飲行業(yè)是一個強(qiáng)調(diào)實(shí)時性的行業(yè),需要能快速的將顧客帶入進(jìn)餐的過程,各個環(huán)節(jié)之間緊密連接,且不會影響其他功能的實(shí)現(xiàn)。這就要求系統(tǒng)能快速應(yīng)對高峰期大數(shù)據(jù)量的工作。系統(tǒng)對于使用者的操作也要做出快速的應(yīng)對,不會有延遲或錯誤出現(xiàn)??臻g方面,磁盤要有足夠的空間來存儲大量的往期數(shù)據(jù),此外對系統(tǒng)所需的內(nèi)存做出優(yōu)化,進(jìn)一步降低系統(tǒng)適配的條件。3.2可行性分析從技術(shù)上看,本系統(tǒng)前端采用HTML+CSS+JS編寫ASP動態(tài)頁面,這是一種常見的前端開發(fā)方法。后端采用C#語言進(jìn)行開發(fā),數(shù)據(jù)庫采用MicrosoftSQLServer2017,開發(fā)平臺是VisualStudio2017,筆者之前也有利用這套技術(shù)方案開發(fā)過類似的管理系統(tǒng),網(wǎng)上也有大量關(guān)于這套技術(shù)方案的教程,這是一套切實(shí)可行而且成熟的技術(shù)方案。此外,根據(jù)所學(xué)的軟件工程知識,能夠把握各個開發(fā)環(huán)節(jié),保證開發(fā)過程的連貫性。開發(fā)完成之后可對系統(tǒng)進(jìn)行測試,完善系統(tǒng)功能,進(jìn)一步提高系統(tǒng)可靠性。系統(tǒng)開發(fā)過程中所采用的平臺都是可以從官網(wǎng)獲取下載的免費(fèi)版本,在功能上可以滿足中小型系統(tǒng)的開發(fā)。目前市場上常見的服務(wù)器租借價格也是在一家中小型餐飲企業(yè)承受范圍之內(nèi)的。此外,改用本系統(tǒng)不需要添加額外的設(shè)備,原先所使用的設(shè)備,無論是平板、個人電腦,凡是可以利用瀏覽器上網(wǎng)的設(shè)備,都能夠使用本系統(tǒng)。不但節(jié)省了更換設(shè)備的費(fèi)用,還便于管理者更好地掌握本店的財(cái)務(wù)情況,通過推薦系統(tǒng),可以了解顧客對搭配菜品的喜好,推出不同的套餐實(shí)現(xiàn)一定程度的盈利。本系統(tǒng)還能實(shí)現(xiàn)長久存檔,避免了紙質(zhì)檔案易丟失的情況,彌補(bǔ)了人工管理的缺點(diǎn),在以后的一段時間內(nèi)信息管理軟件必會逐步替代人工管理模式。綜上,該方案在經(jīng)濟(jì)上是確實(shí)可行的。3.3業(yè)務(wù)分析3.3.1系統(tǒng)用例圖用例模型可以在系統(tǒng)開發(fā)的開始階段讓開發(fā)人員明白,新的系統(tǒng)需要有什么功能;對于構(gòu)造完畢的系統(tǒng),可以反應(yīng)系統(tǒng)完成了什么樣的功能[13]。通過調(diào)查研究,將主要從參與者的角度對系統(tǒng)進(jìn)行用例分析,大廳人員的角度見圖1,后廚人員的角度見圖2,管理人員的角度見圖3。大廳人員的角度:(1)員工管理:a.查看個人信息:員工可以通過相關(guān)界面查看個人的信息、當(dāng)月薪資的變化,允許修改部分個人信息并提交保存;b.注冊登錄:大廳工作人員被禁止注冊為系統(tǒng)用戶,只能由管理人員添加后,通過身份證號和被告知的密碼通過該模塊登陸系統(tǒng)。允許工作人員通過輸入身份證號和姓名的方式修改自己的密碼。(2)設(shè)備管理:a.編輯設(shè)備:大廳的工作人員在每日的工作結(jié)束后需要對店內(nèi)的設(shè)備進(jìn)行逐一排查,根據(jù)設(shè)備情況更新系統(tǒng)內(nèi)的設(shè)備情況,修改設(shè)備信息。(3)訂單管理:a.創(chuàng)建訂單:顧客進(jìn)店之后,大廳人員需要接待顧客,將其引導(dǎo)到正確的空桌,并開臺,創(chuàng)建訂單;b.加菜:無論是創(chuàng)建訂單時點(diǎn)菜,還是進(jìn)餐過程中加菜,都算是加菜的過程,工作人員可以通過系統(tǒng)搜索菜品,為訂單實(shí)現(xiàn)加菜;c.結(jié)算訂單:顧客用餐結(jié)束后,工作人員通過系統(tǒng)結(jié)算該桌賬單。(4)菜單管理:a.添加菜品:顧客需要的菜品可能是菜單上沒有的,允許員工向菜單內(nèi)添加新的菜品,實(shí)現(xiàn)點(diǎn)菜過程。圖1大廳人員用例圖后廚人員的角度:(1)員工管理:a.查看個人信息:員工可以通過相關(guān)界面查看個人的信息、當(dāng)月薪資的變化,允許修改部分個人信息并提交保存;b.注冊登錄:后廚工作人員被禁止注冊為系統(tǒng)用戶,只能由管理人員添加后,通過身份證號和被告知的密碼通過該模塊登陸系統(tǒng)。允許工作人員通過輸入身份證號和姓名的方式修改自己的密碼。(2)倉儲管理:a.清點(diǎn)庫存:后廚人員每日的工作結(jié)束后需要對倉庫內(nèi)的食材、飲品進(jìn)行清點(diǎn),與數(shù)據(jù)庫數(shù)據(jù)進(jìn)行對比,對增刪的貨品進(jìn)行更新操作,修改貨品信息;b.登記貨品:后廚人員需要對新進(jìn)的貨品做登記,系統(tǒng)會查詢已有庫存,對存在的貨品進(jìn)行更新操作;對不存在的貨品進(jìn)行插入操作。(3)后廚管理:a.完成菜品:切配人員根據(jù)系統(tǒng)列出的待完成菜品信息,對菜品進(jìn)行排序,完成菜品,通知服務(wù)員取菜上菜。(4)菜單管理:a.添加菜品:大廚如果有了新的菜品,可以向菜單內(nèi)添加新菜品,完善菜單。圖2后廚人員用例圖管理人員的角度:(1)員工管理:a.績效管理:管理人員可以根據(jù)工作人員的工作情況,決定對員工給予獎金或處以罰金;b.編輯員工:管理人員可以根據(jù)工作人員變化情況,添加或刪除員工;c.查看個人信息:員工可以通過相關(guān)界面查看個人的信息、當(dāng)月薪資的變化,允許修改部分個人信息并提交保存;d.注冊登錄:管理人員輸入超級密碼后,可以注冊為系統(tǒng)的管理人員,在系統(tǒng)驗(yàn)證過后可以登陸系統(tǒng)。允許工作人員通過輸入身份證號和姓名的方式修改自己的密碼。(2)倉儲管理:a.清點(diǎn)庫存:管理人員可以根據(jù)清點(diǎn)結(jié)果,添加或刪除庫存中的貨品,并修改貨品的數(shù)量;b.進(jìn)貨管理:管理人員可以對新進(jìn)的貨品做登記,系統(tǒng)會查詢已有庫存,對存在的貨品進(jìn)行更新操作;對不存在的貨品進(jìn)行插入操作。同時刪除不需要的進(jìn)貨記錄。(3)設(shè)備管理:a.添加設(shè)備:根據(jù)設(shè)備變化情況,管理人員需要及時向系統(tǒng)中添加新設(shè)備的信息;b.編輯設(shè)備:可以協(xié)助大廳工作人員檢查設(shè)備情況并更新設(shè)備狀態(tài);c.對于報(bào)廢無用的設(shè)備允許刪除設(shè)備。(4)菜單管理:a.編輯菜品:管理人員可以添加新的菜品;b.管理人員可以根據(jù)市價修改已有菜品的價格或信息;c.對于過季的或因人員更替撤銷的菜品可以予以刪除操作。(5)后廚管理:a.完成菜品:查看后廚的任務(wù),及時點(diǎn)擊已完成的菜品,避免重復(fù)制作造成浪費(fèi)。(6)訂單管理:a.創(chuàng)建訂單:可以為進(jìn)店的顧客開臺,并創(chuàng)建訂單;b.加菜:為存在的訂單添加菜品;c.結(jié)算:顧客用餐完畢后,需要根據(jù)系統(tǒng)的數(shù)據(jù),對訂單進(jìn)行結(jié)算;d.撤單:對于過往的訂單或者無用的訂單,管理人員可以進(jìn)行撤單。(7)財(cái)務(wù)管理:a.查看近期報(bào)表:管理人員可以查看近期的成本、菜品排名以及每日的盈利走勢,把握店內(nèi)的收支情況;b.菜品套餐推薦:管理人員可以根據(jù)系統(tǒng)的提示,獲取系統(tǒng)對指定日期間菜品的搭配計(jì)算,獲取常見的顧客點(diǎn)單搭配,推出套餐,增加盈利。圖3管理人員用例圖3.3.2系統(tǒng)活動圖活動圖顯示了動作的流程及結(jié)果。本部分以顧客進(jìn)店、點(diǎn)菜、用餐、結(jié)賬的過程為例,給出該過程的活動圖,見圖4。顧客進(jìn)店后,服務(wù)員查看是否有空的桌子,有空桌,則開臺點(diǎn)菜;否則顧客需要等待;顧客入座之后,服務(wù)員就開臺點(diǎn)菜,在點(diǎn)菜過程中,如果出現(xiàn)沒有的菜品,服務(wù)員需要向系統(tǒng)中添加該菜品;存在的菜品,則直接添加到訂單中去;提交訂單之后,后廚會首先查看庫存,面對沒有的菜品,需通知服務(wù)員,換菜或退菜。對于庫存中有的菜品,由切配配好材料之后,開始烹飪;菜品完成之后,切配需要在系統(tǒng)上通知服務(wù)員取菜,上菜;烹飪過程中如果顧客需要加菜,則重復(fù)加菜的過程;顧客用餐結(jié)束之后,服務(wù)員通過系統(tǒng),結(jié)算賬單。以上就是一個完整的用餐活動過程。圖4用餐活動圖4系統(tǒng)設(shè)計(jì)系統(tǒng)分析部分的工作是為系統(tǒng)設(shè)計(jì)部分做準(zhǔn)備,開發(fā)人員通過分析得到的系統(tǒng)需求和系統(tǒng)用例,需要對系統(tǒng)的各部分功能、事務(wù)的流程、數(shù)據(jù)庫的表進(jìn)行設(shè)計(jì)和規(guī)劃。本部分將從系統(tǒng)的功能設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)兩方面展開敘述。4.1系統(tǒng)功能設(shè)計(jì)系統(tǒng)主要分為7個部分:人員管理模塊,店長注冊、人員登錄、添加員工、編輯員工、刪除員工、績效管理、個人信息修改;倉儲管理模塊,進(jìn)貨登記、編輯庫存、刪除貨品;菜單管理模塊,菜品登記、編輯菜品、刪除菜品;訂單管理模塊,開臺點(diǎn)單、撤單、加菜、賬單結(jié)算;后廚管理模塊,菜品完成;設(shè)備管理模塊,設(shè)備登記、查看設(shè)備、刪除設(shè)備;財(cái)務(wù)管理模塊,當(dāng)日賬務(wù)查看、區(qū)間賬務(wù)查看、菜品套餐推薦。整體系統(tǒng)功能圖見圖5。圖5整體系統(tǒng)功能圖該功能設(shè)計(jì),基本實(shí)現(xiàn)了需求分析階段所要求的功能。4.1.1系統(tǒng)類圖類圖顯示了模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及類之間的關(guān)系,是模型的靜態(tài)結(jié)構(gòu)[14]。根據(jù)系統(tǒng)需求,首先是整體的類圖,見圖6設(shè)有以下具有代表性的類之間的關(guān)系:點(diǎn)單、員工管理、設(shè)備管理以及庫存管理,見圖7,圖8,圖9,圖10。圖6整體類圖圖7點(diǎn)單類圖圖8員工管理類圖圖9設(shè)備管理類圖圖10庫存管理類圖4.1.2系統(tǒng)時序圖時序圖是嚴(yán)格按照時間順序描述系統(tǒng)元素之間的交互的UML圖。與類圖類似,此處選取具有代表性的時序圖,點(diǎn)單時序圖、庫存管理時序圖、薪資管理時序圖和菜單管理時序圖,見圖11,圖12,圖13,圖14。圖11點(diǎn)單時序圖圖12庫存管理時序圖圖13薪資管理時序圖圖14菜單管理時序圖4.2系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)根據(jù)系統(tǒng)分析部分得到的系統(tǒng)需求,需要設(shè)計(jì)出一套適用于該系統(tǒng)的數(shù)據(jù)庫表。數(shù)據(jù)庫用于存儲系統(tǒng)需要的數(shù)據(jù),并允許工作人員對數(shù)據(jù)進(jìn)行插入、更新、刪除、維護(hù)等日常工作。本部分將通過實(shí)體聯(lián)系圖和數(shù)據(jù)庫關(guān)系表展示數(shù)據(jù)庫的整體設(shè)計(jì),再從各個表入手,介紹每個表的組成。4.2.1數(shù)據(jù)表關(guān)系圖通過實(shí)體聯(lián)系圖,就可以對數(shù)據(jù)表進(jìn)行設(shè)計(jì)。數(shù)據(jù)表關(guān)系圖描述了各個數(shù)據(jù)表之間的關(guān)系,并體現(xiàn)了每個數(shù)據(jù)表的主鍵和外鍵。見圖15。圖15數(shù)據(jù)表關(guān)系圖4.2.2數(shù)據(jù)表設(shè)計(jì)該個人餐飲管理系統(tǒng)中共計(jì)設(shè)有10個數(shù)據(jù)表,分別為:員工信息表(員工編號、員工姓名、員工身份證號、員工密碼、員工手機(jī)號、員工職位、員工部門、員工初始薪資、員工當(dāng)月薪資、員工住址、其它),如表1所示。表1員工信息表字段名類型長度備注UIDvarchar20編號(pk)Namevarchar30姓名IDCardvarchar18身份證號Passwordvarchar18密碼Cellphonevarchar20手機(jī)號Positionvarchar20職位Departmentvarchar20部門Salaryint4初始薪資MSalaryInt4當(dāng)月薪資AddressvarcharMAX住址OthervarcharMAX其它員工工資記錄信息表(記錄編號、員工編號、性質(zhì)、額度、原因、日期、結(jié)果),如表2所示。表2員工工資記錄信息表字段名類型長度備注LIDvarchar20記錄編號(pk)UIDvarchar20編號(fk)Choosenchar10性質(zhì)Valuenchar10額度Reasonvarchar50原因Datevarchar20日期Resultnchar10結(jié)果設(shè)備信息表(設(shè)備編號、設(shè)備名稱、設(shè)備類型、設(shè)備擺放位置、設(shè)備狀態(tài)),如表3所示。表3設(shè)備信息表字段名類型長度備注DIDvarchar20編號(pk)DNamevarchar50名稱DTypevarchar50類型DPlacevarchar50擺放位置DStatevarchar50狀態(tài)進(jìn)貨單信息表(貨品編號、貨品名稱、貨品類型、貨品數(shù)量、貨品單價、貨品單位、貨品總價、進(jìn)貨日期),如表4所示。表4進(jìn)貨單信息表字段名類型長度備注GIDvarchar20編號(pk)GNamevarchar50名稱GTypevarchar50類型GCountfloat8數(shù)量GPriceint4單價GUnitesvarchar20單位GTotalint4總價GDatevarchar20日期庫存信息表(存貨編號、存貨名稱、存貨類型、存貨數(shù)量、存貨單位),如表5所示。表5庫存信息表字段名類型長度備注Material_IDvarchar20編號(pk)Namevarchar30名稱Typevarchar30類型Stockfloat8數(shù)量Unitsvarchar20單位桌子信息表(桌子編號、桌子類型、桌子可容納人數(shù)、桌子狀態(tài)),如表6所示。表6桌子信息表字段名類型長度備注TableNoint4編號(pk)Typevarchar20類型Personint4可容納人數(shù)Statevarchar20狀態(tài)菜品信息表(菜品編號、菜品名稱、菜品類型、菜品單價、菜品單位),如表7所示。表7菜品信息表字段名類型長度備注FIDvarchar20菜品編號(pk)FNamevarchar50名稱FTypevarchar50類型FPricefloat8單價FUnitsvarchar20單位訂單信息表(訂單編號、訂單開臺事件、訂單人數(shù)、訂單桌號、訂單狀態(tài)、訂單支付類型、最近出餐時間、總額、開始時間段),如表8所示。表8訂單信息表字段名類型長度備注OIDvarchar20訂單編號(pk)Timevarchar50開臺時間Peoplenchar10人數(shù)TableNoint4桌號(fk)Statevarchar50狀態(tài)Typevarchar20支付類型LastOutvarchar20最近出餐時間Totalfloat8總額Startvarchar20開始時間段訂單詳情信息表(訂單編號、菜品編號、菜品名稱、菜品數(shù)量、菜品狀態(tài)、菜品總價),如表9所示。表9訂單詳情信息表字段名類型長度備注OIDvarchar20訂單編號(fk)FIDvarchar20菜品編號(fk)FNamevarchar50菜品名稱FCountint4菜品數(shù)量FStatevarchar20菜品狀態(tài)FTotalfloat8菜品總價菜品臨時表(訂單編號、菜品名稱、菜品數(shù)量、訂單日期)表10菜品臨時表字段名類型長度備注OIDvarchar20訂單編號(fk)FNamevarchar20菜品名稱(fk)FCountint4菜品數(shù)量Timevarchar50訂單日期5系統(tǒng)實(shí)現(xiàn)本部分主要介紹了系統(tǒng)的開發(fā)環(huán)境和操作平臺。通過流程圖與偽代碼相結(jié)合的方式對實(shí)現(xiàn)的功能進(jìn)行簡單的介紹。5.1系統(tǒng)開發(fā)環(huán)境及操作平臺(1)操作系統(tǒng):Windows10;(2)后臺數(shù)據(jù)庫:SQLServer2017(3)WEB服務(wù)器:InternetInformationServices10(4)開發(fā)平臺:VisualStudio20175.2業(yè)務(wù)流程設(shè)計(jì)5.2.1系統(tǒng)操作流程首先進(jìn)入登陸界面,用戶需要輸入身份證號和密碼,待系統(tǒng)后臺驗(yàn)證過后可以進(jìn)入主界面進(jìn)行被允許的操作。完成操作后,用戶可以選擇退出系統(tǒng)。圖16系統(tǒng)操作流程圖登陸過程實(shí)現(xiàn)的偽代碼如下:后端獲取控件數(shù)據(jù):身份證號(IDCard)、密碼(psw);if(身份證號==空||密碼==空) 返回錯誤信息;連接數(shù)據(jù)庫;stringcheck="select*fromUser_InfowhereIDCard='IDCard'andPassword='psw'";sqlcommand=newSqlCommand(check,sqlconnection);sdr=數(shù)據(jù)庫中讀取數(shù)據(jù);if(sdr.read()){ 設(shè)置session; if(部門==”管理”||部門==”大廳”) 跳轉(zhuǎn)Main頁面; else 跳轉(zhuǎn)Kitchen頁面;}else{ 返回錯誤信息:密碼或身份證號輸入錯誤;}退出系統(tǒng)的偽代碼如下:清除Session;跳轉(zhuǎn)Login頁面;5.2.2用戶注冊流程本系統(tǒng)僅允許管理人員進(jìn)行注冊。注冊前首先需要輸入超級密碼,在與數(shù)據(jù)庫中超級密碼比對后,正確的可以進(jìn)入注冊界面。注冊時需要填寫包括身份證號、姓名、手機(jī)號在內(nèi)的多項(xiàng)個人信息,填寫完成后點(diǎn)擊提交就可以將個人信息添加到數(shù)據(jù)庫中,注冊成功。面對錯誤的填寫,系統(tǒng)也會根據(jù)不同的情況給出不同的提示。圖17用戶注冊流程圖驗(yàn)證部分的偽代碼如下:后端獲取控件數(shù)據(jù);連接數(shù)據(jù)庫;stringselect=@"selectPasswordfromUser_InfowhereName='Admin'";sqlCommand=newSqlCommand(select,sqlConnection);sdr=數(shù)據(jù)庫中讀取數(shù)據(jù);if(sdr.Read()){ psw=數(shù)據(jù)庫中讀取超級密碼; if(輸入==psw) 跳轉(zhuǎn)注冊頁面; else 返回錯誤信息,輸入錯誤;}注冊部分的偽代碼如下:后端獲取控件數(shù)據(jù):身份證號(idcard)、密碼(psw)、姓名(name)、手機(jī)號(phone)、部門(department)、職位(position)、薪資(salary)、地址(address)、其它(other);if(獲取數(shù)據(jù)中有空) 返回錯誤信息;else{ 連接數(shù)據(jù)庫; stringcheck=@"select*fromUser_InfowhereIDCard=‘idcard’"; sqlcommand=newSqlCommand(check,sqlconnection); sdr=數(shù)據(jù)庫中獲取數(shù)據(jù); if(sdr.Read()) 返回已存在用戶的信息; else{ maxid=newSqlCommand("SelectUIDfromUser_InfoorderbyUIDdesc", sqlConnection); UID=maxid.ExecuteScalar()+1; Insert_User_Info=@"InsertintoUser_Info(UID,Password,Cellphone,Name,IDCard,Address,Other,Position,Salary,MSalary,Department)values ('UID','psw','phone','name','idcard','address','other','position','salary','salary','department')"; cmd=newSqlCommand(Insert_User_Info,slqConnection); 寫入數(shù)據(jù)庫; 跳轉(zhuǎn)Login頁面; }}5.2.3用戶修改密碼流程用戶修改密碼首先需要輸入個人的身份證號和姓名進(jìn)行驗(yàn)證,驗(yàn)證通過后可以進(jìn)入密碼修改的頁面。與注冊時一樣,需要輸入兩次新的密碼,可以幫助用戶記住密碼,同時驗(yàn)證密碼是否輸入正確。圖18修改密碼流程圖驗(yàn)證功能的偽代碼如下:后端獲取控件數(shù)據(jù):身份證號(idcard)、姓名(name);連接數(shù)據(jù)庫;select=@"select*fromUser_InfowhereIDCard='idcard'andName='name'";sqlCommand=newSqlCommand(select,sqlConnection);sdr=數(shù)據(jù)庫中獲取數(shù)據(jù);if(sdr.Read()){ 設(shè)置Session["ID"]; 跳轉(zhuǎn)Change_PSW頁面;}else{ 返回錯誤信息:身份證號或姓名輸入錯誤;}修改密碼的偽代碼如下:后端獲取控件數(shù)據(jù):新密碼(psw)、重復(fù)輸入的密碼(repsw);if(psw==空||repsw==空) 返回錯誤信息:新密碼不能為空;elseif(psw!=repsw) 返回錯誤信息:兩次輸入的密碼不同;連接數(shù)據(jù)庫update=@"updateUser_InfosetPassword='psw'whereUID='Session["ID"]";sqlCommand=newSqlCommand(update,sqlConnection);執(zhí)行sqlCommand;跳轉(zhuǎn)Login頁面;5.2.4編輯員工流程管理人員首先需要選中需要修改信息的員工,待界面跳轉(zhuǎn)之后進(jìn)行信息修改。圖19編輯員工信息流程圖編輯員工信息的偽代碼如下:后端獲取控件數(shù)據(jù):姓名(name)、身份證號(idcard)、手機(jī)號(phone)、住址(address)、其它(other);連接數(shù)據(jù)庫;type=Request["type"].QueryString;if(type=="change") id=Session["ID"];else id=QueryString["ID"];update=@"updateUser_InfosetName='name',IDCard='idcard',Cellphone='phone',Address='address',Other='other'whereUID='id'";command=newSqlCommand(update,sqlConnection);執(zhí)行command;if(type=="change") 跳轉(zhuǎn)Main頁面;else 跳轉(zhuǎn)Worker頁面;5.2.5管理績效流程與編輯員工一樣,首先需要選中員工,待界面跳轉(zhuǎn)之后,需要選擇薪資變化的性質(zhì),即獎金或罰金,選擇金額以及原因,便于日后查看。圖20績效管理流程圖績效管理功能的偽代碼如下:后端獲取控件數(shù)據(jù):變化性質(zhì)(UpDown)、金額(delta)、當(dāng)月薪資(ordinarl)、原因(reason);if(變化性質(zhì)=="罰金")delta=-delta;result=ordinarl+delta;update="updateUser_InfosetMSalary='result'whereUID='QueryString["UID"]'";LID=GetOrderNo();date=DateTime.Now.ToString("yyyy/MM/dd");insert=@"insertintoSalary_Log(LID,UID,Value,Choose,Reason,Result,Date)values('LID','QueryString["UID"]','delta','UpDown','reason','result','date')";連接數(shù)據(jù)庫;updcmd=newSqlCommand(update,sqlConnection);inscmd=newSqlCommand(insert,sqlConnection);執(zhí)行updcmd;執(zhí)行inscmd;跳轉(zhuǎn)Performance頁面;5.2.6清點(diǎn)庫存流程清點(diǎn)庫存允許用戶刪除、添加、更新現(xiàn)有庫存。接收頁面會根據(jù)傳入的信息,決定插入新的數(shù)據(jù)或是更新原有的數(shù)據(jù)。圖21清點(diǎn)庫存流程圖清點(diǎn)庫存功能的偽代碼如下:后端獲取控件數(shù)據(jù):名字(name)、數(shù)量(count)、類型(type)、單位(units)id=QueryString["id"];連接數(shù)據(jù)庫;if(id=="-1"){ maxid=newSqlCommand("SelectMaterial_IDfromStock_Info orderbyMaterial_IDdesc",sqlConnection); id=maxid+1; cmdstring=@"insertintoStock_Info(Material_ID,Name,Type,Stock,Units) values('id','name','type','count','units')";}else cmdstring="updateStock_Infoset Name='name',Type='type',Stock='count',Units='units' whereMaterial_ID='"+ID.Value+"'";command=newSqlCommand(cmdstring,sqlConnection);執(zhí)行command;跳轉(zhuǎn)Material頁面;5.2.7登記進(jìn)貨流程用戶可以對新進(jìn)的貨品進(jìn)行登記,對于過往登記過的進(jìn)貨記錄可以選擇刪除。登記新的貨品時,系統(tǒng)會對數(shù)據(jù)庫進(jìn)行掃描,如果是存在的貨品,則更新現(xiàn)有貨品的數(shù)量;如果是不存在的貨品,則插入新的貨品數(shù)據(jù)。圖22登記進(jìn)貨流程圖登記進(jìn)貨功能的偽代碼如下:后端獲取控件數(shù)據(jù):名字(name)、單價(price)、數(shù)量(count)、類型(type)、單位(units);連接數(shù)據(jù)庫;maxid=newSqlCommand("SelectGIDfromGoodsorderbyGIDdesc",sqlConnection);id=maxid+1;total=price*count;insert=@"insertintoGoods (GID,GName,GType,GCount,GPrice,GUnits,GTotal,GDate)values ('id','name','type','count','price','units','total','date')";command=newSqlCommand(insert,sqlConnection);執(zhí)行command;if(庫存中存在對應(yīng)貨品) 更新庫存表;else 向庫存表中插入該貨品信息;跳轉(zhuǎn)Goods頁面;5.2.8開臺、點(diǎn)單、結(jié)算流程開臺需要選取一個空桌進(jìn)行開臺,觸發(fā)相應(yīng)的事件后,會根據(jù)時間生成一個訂單號,跳轉(zhuǎn)進(jìn)入點(diǎn)菜的界面。點(diǎn)菜是通過搜索的方式實(shí)現(xiàn)的,通過模糊搜索,從數(shù)據(jù)庫中取出可能的菜品,供用戶選擇,添加后會加入現(xiàn)有的訂單。面對同一個菜品,可以選擇通過搜索同一個菜品進(jìn)行數(shù)量疊加,也可以選擇直接編輯,修改數(shù)量。圖23開臺、點(diǎn)菜流程圖開臺、點(diǎn)菜功能的偽代碼如下:后端獲取控件數(shù)據(jù):選擇的表的索引index;if(index==-1) 返回錯誤信息:未選擇編輯行;else{ 生成訂單號OID; 跳轉(zhuǎn)Order頁面;}后端獲取控件數(shù)據(jù):菜品名稱(fname)、菜品號(fid)、訂單號(oid)、菜品類型(ftype)、菜品價格(fprice);連接數(shù)據(jù)庫;check=@"select*fromOrder_DetailwhereOID='oid'andFID='fid'";checkcommand=newSqlCommand(check,sqlConnection);sdr=數(shù)據(jù)庫中獲取數(shù)據(jù);if(sdr.Read()){ count=數(shù)據(jù)庫中原菜品數(shù)量; count+=1; result=count*fprice; cmdstring="updateOrder_DetailsetFCount='count',FTotal='result'whereOID='oid'andFID='fid'";}else cmdstring=@"insertintoOrder_Detail (OID,FID,FName,FCount,FState,FTotal)values ('oid','fid','fname','1','未制作','fprice')";sqlcommand=newSqlCommand(cmdstring,sqlConnection);執(zhí)行sqlcommand;sum=@"selectSUM(FTotal)fromOrder_DetailwhereOID='oid'";sumcmd=newSqlCommand(sum,sqlConnection);newtotal=數(shù)據(jù)庫中獲取數(shù)據(jù);update=@"updateOrder_InfosetTotal='sumcmd'whereOID='oid'";updatecmd=newSqlCommand(update,sqlConnection);執(zhí)行updatecmd;選取需要結(jié)算的賬單,進(jìn)入賬單詳情頁面,服務(wù)員必須選擇支付類型,線上支付會跳轉(zhuǎn)到相應(yīng)的二維碼頁面,非線上支付會統(tǒng)計(jì)賬單總額和折扣,做出計(jì)算后,給出最后需要支付的金額。圖24結(jié)算流程圖結(jié)算功能的流程圖如下:后端獲取控件數(shù)據(jù):總價(Total)、支付類型(type)、折扣(Count);oid=QueryString["id"];tableno=QueryString["tableno"];if(Count!=空) Total=Total*Count;if(type==空) 返回錯誤信息:未選擇支付類型;elseif(type=="線上") 跳轉(zhuǎn)Pay頁面;updateInfo="updateOrder_InfosetTotal='Total',State='state',Type='type'whereOID='oid'";updateTable=@"update[Table]setState='無人'whereTableNo='tableno'";infocmd=newSqlCommand(updateInfo,sqlConnection);tablecmd=newSqlCommand(updateTable,sqlConnection);執(zhí)行infocmd;執(zhí)行tablecmd;跳轉(zhuǎn)Order_Info頁面;5.2.9菜單管理流程工作人員可以通過菜單管理對菜品進(jìn)行添加、更新和刪除。修改的界面會根據(jù)傳入的標(biāo)志位,判斷是添加菜品或者是修改菜品。如果是修改菜品,則會從數(shù)據(jù)庫中提取相關(guān)菜品的數(shù)據(jù),供修改使用。圖25菜單管理流程圖菜單管理功能的偽代碼如下:后端獲取控件數(shù)據(jù):菜品名稱(name)、類型(type)、價格(price)、單位(units)id=QueryString["id"];連接數(shù)據(jù)庫;if(id=="-1"){ maxid=newSqlCommand("SelectFIDfromMenuorderbyFIDdesc",sqlConnection); id=maxid+1; cmdstring=@"insertintoMenu(FID,FName,FType,FPrice,FUnits)values('id','name','type','price','units')";}else cmdstring="updateMenu setFName='name',FType='type',FPrice='price',FUnits='units'whereFID='id'";command=newSqlCommand(cmdstring,sqlConnection);執(zhí)行command;5.2.10訂單管理流程訂單管理允許用戶查看訂單的內(nèi)容,對于冗余的訂單可以選擇刪除。刪除時系統(tǒng)會進(jìn)行判斷,如果是未結(jié)賬的訂單,則拒絕刪除;否則允許刪除。圖26訂單管理流程圖訂單管理功能的偽代碼如下:后端獲取控件數(shù)據(jù):選擇的表的索引index、訂單狀態(tài)(state)、訂單號(oid)、訂單桌號(tableno);if(index==-1) 返回錯誤信息:未選擇編輯行;else{ if(選擇控件查看) 跳轉(zhuǎn)Order_Detail頁面; elseif(選擇控件刪除){ if(state!="已結(jié)賬") 跳轉(zhuǎn)Tips頁面,提示信息:未結(jié)算,不能刪除; else{ 連接數(shù)據(jù)庫; delete=@"deletefromOrder_InfowhereOID='oid'"; update=@"update[Table]setState='無人'whereTableNo='tableno'"; deletecmd=newSqlCommand(delete,sqlConnection); updatecmd=newSqlCommand(update,sqlConnection); 執(zhí)行deletecmd; 執(zhí)行updatecmd; } }}5.2.11后廚管理流程后廚的相關(guān)人員會在完成菜品后,更新菜品信息,菜品的狀態(tài)會從“未制作”成為“未出餐”,服務(wù)員需要隨時查看,避免上菜晚,同時也避免后廚重復(fù)做菜,造成浪費(fèi)。同時更新訂單的最后出餐時間,便于對出餐順序進(jìn)行排序。圖27后廚管理流程圖后廚管理功能的偽代碼如下:后端獲取控件數(shù)據(jù):選擇的表的索引index、訂單號(oid)、菜品號(fid);if(index==-1) 返回錯誤信息:未選擇編輯行;else{ 連接數(shù)據(jù)庫; updatedetail=@"updateOrder_DetailsetFState='未出餐' whereOID='oid'andFID='fid'"; detailcmd=newSqlCommand(updatedetail,sqlConnection); 執(zhí)行detailcmd; lastout=當(dāng)前時間; updateinfo=@"updateOrder_InfosetLastOut='lastout'whereOID='oid'"; infocmd=newSqlCommand(updateinfo,sqlConnection); 執(zhí)行infocmd;}5.2.12固資管理流程固資管理即對設(shè)備進(jìn)行管理。允許添加、更新、刪除功能。圖28固資管理流程圖固資管理功能的偽代碼如下:后端獲取控件數(shù)據(jù):設(shè)備名稱(name)、類型(type)、狀態(tài)(state)、位置(place)id=QueryString["id"];連接數(shù)據(jù)庫;if(id=="-1"){ maxid=newSqlCommand("SelectDIDfromDeviceorderbyDIDdesc",sqlConnection); id=maxid+1; cmdstring=@"insertintoDevice(DID,DName,DType,DPlace,DState) values('id','name','type','place','state')";}else cmdstring=@"updateDeviceset DName='name',DType='type',DPlace='place',DState='state' whereDID='id'";command=newSqlCommand(cmdstring,sqlConnection);5.2.13查看區(qū)間賬務(wù)流程區(qū)間賬務(wù)查看允許用戶自行選擇查看的范圍,頁面會顯示成本、菜品排名、近日盈利三類信息,并分別以圖表的方式顯示出來。圖29查看區(qū)間賬務(wù)流程圖區(qū)間賬務(wù)查看功能的偽代碼如下:后端獲取控件數(shù)據(jù):開始日期(start)、結(jié)束日期(end);costselect=@"selectGTypeAS類型,SUM(GTotal)AS總價fromGoodswhereGDatebetween'start'and'end'groupbyGType";foodsort=@"selecttop15FNameAS菜名,COUNT(FName)AS銷量,SUM(FTotal)AS收益fromFoodSalewhereTimebetween'start'and'end'groupbyFNameorderby銷量desc";profitselect=@"selectSUM(Total)AS當(dāng)日收益,TimeAS日期fromOrder_InfowhereTimebetween'start'and'end'groupbyTimeorderbyTime";costdata=綁定數(shù)據(jù)(costselect);fooddata=綁定數(shù)據(jù)(foodsort);profitdata=綁定數(shù)據(jù)(profitselect);繪制成本餅圖(costdata);繪制菜品排名柱狀圖(fooddata);繪制菜品利潤餅圖(fooddata);繪制利潤線型圖(profitdata);繪制利潤柱狀圖(profitdata);5.2.14推薦菜品查看流程這里引入FP關(guān)聯(lián)規(guī)則算法。相較于傳統(tǒng)的Apriori關(guān)聯(lián)規(guī)則算法,F(xiàn)P算法挖掘時只需要掃描兩次數(shù)據(jù)集就可將其壓縮成一棵FP-Tree,從FP-Tree中挖掘頻繁模式即可,降低了I/O開支,是一種非常高效的算法。首先需要對數(shù)據(jù)進(jìn)行預(yù)處理,此處引入支持度的概念,設(shè)購買的組合中存在{X,Y},支持度即指{X,Y}同時出現(xiàn)的概率,可以確定數(shù)據(jù)集的頻繁程度。圖30支持度公式同時引入置信度的概念,即購買X的人同時購買Y的概率,用于確定Y在包含X的交易中出現(xiàn)的頻繁程度。圖31置信度公式設(shè)置最小支持度minSupport,刪除低于閾值的數(shù)據(jù),對數(shù)據(jù)集進(jìn)行預(yù)處理。根據(jù)FP算法的要求對數(shù)據(jù)集進(jìn)行排序,構(gòu)成FP-Tree。通過遞歸調(diào)用FP-Growth算法,挖掘頻繁項(xiàng)集。圖32FP關(guān)聯(lián)規(guī)則算法流程圖FP關(guān)聯(lián)規(guī)則算法的核心偽代碼如下:select=@"selectOID,FNamefromTempSalewhereTimebetween'開始日期'and'結(jié)束日期'";datas=綁定數(shù)據(jù)(select);//根據(jù)菜品在事務(wù)中出現(xiàn)的次數(shù)進(jìn)行排序//刪去低于閾值的菜品//賦值項(xiàng)頭表Sort_Delete_Table(datas,headertable);//根據(jù)調(diào)整后的數(shù)據(jù)集構(gòu)建供挖掘的FP-Treefptree=CreateTree(datas)//計(jì)算菜品間的置信度Set_Confidence(confidences,熱賣菜品);置信度歸一化并排序;根據(jù)置信度刪去低于閾值的菜品;//深度遍歷設(shè)置項(xiàng)頭表DFS(fptree,headertable);//遞歸構(gòu)造條件FP-Tree,獲取頻繁項(xiàng)集mineTree(fptree,headertable,Set,freqItemList);vs=利用置信度集confidences及頻繁項(xiàng)集freqItemList獲取結(jié)果集;returnvs;構(gòu)造FP-Tree樹的偽代碼如下:CreateTree(datas){ fptree=newTNode("null"); foreach(datas中的每一項(xiàng)data){ point=fptree; foreach(data.valuelist中的每一項(xiàng)item){ index=item在point.children中的索引; if(index==-1){ node=item; nodejoinpoint.children; point指向point.children中的最后一個節(jié)點(diǎn); } else{ point.children[index].node計(jì)數(shù)++; point指向point.children中找到的節(jié)點(diǎn); } } } returnfptree;}挖掘頻繁項(xiàng)集的偽代碼如下:mineTree(fptree,headertable,Set,freqItemList){ bigL=headertable倒置;//便于從下向上查找數(shù)據(jù) foreach(bigL中的每一項(xiàng)basePat){ 向freqItemList中添加新頻繁項(xiàng)列newFreqSet; condPattBases=獲取當(dāng)前項(xiàng)前綴路徑; //賦值項(xiàng)頭表 myHead=Create_Headertable(condPattBases); Sort_Delete_Table(condPattBases,myHead); //構(gòu)建條件FP-Tree myCondTree=CreateConditionTree(condPattBases); DFS(myCondTree,myHead); if(myHead.Count!=0) mineTree(myCondTree,myHead,newFreqSet,freqItemList); }}5.3系統(tǒng)功能模塊實(shí)現(xiàn)5.3.1人員管理模塊人員管理模塊允許管理員添加或刪除員工,以及對用戶的個人信息進(jìn)行修改,如身份證號、姓名等,同時允許根據(jù)月度表現(xiàn),進(jìn)行績效管理。圖33修改員工信息圖34管理員工績效圖35添加員工5.3.2倉儲管理模塊管理人員和后廚人員被允許對倉儲進(jìn)行管理,后廚人員可以登記進(jìn)貨情況,清點(diǎn)倉儲,而管理人員則具有對倉儲管理的全部功能。圖36查看庫存圖37編輯庫存圖38添加進(jìn)貨5.3.3菜單管理模塊由于菜品數(shù)量會逐漸增多,因此可以通過搜索的方式查找需要編輯的菜品,同時管理人員可以修改菜品的信息。圖39菜品搜索圖40編輯菜品信息5.3.4訂單管理模塊訂單管理可以查看過往的訂單。未結(jié)賬的訂單只有結(jié)賬之后才能撤單。對于已結(jié)賬的訂單,可以查看詳情,也可以刪除該訂單。圖41縱覽訂單圖42查看訂單圖43撤銷未結(jié)賬訂單失敗提示5.3.5后廚管理模塊廚房主要由后廚人員進(jìn)行管理,起作用分別是:讓廚房人員了解當(dāng)前訂單數(shù)量;顯示當(dāng)前時間,幫助切配人員合理安排出菜順序;點(diǎn)擊完成菜品,通知服務(wù)員前來取餐。圖44查看未完成的菜品5.3.6設(shè)備管理模塊管理人員和大廳人員被允許對設(shè)備進(jìn)行管理,大廳人員只能夠編輯設(shè)備的信息,主要是更新設(shè)備的狀態(tài),便于管理人員了解損耗。大廳人員擁有全部權(quán)限。圖45查看設(shè)備圖46編輯設(shè)備5.3.7財(cái)務(wù)管理模塊財(cái)務(wù)管理由管理人員查看。主要是兩大功能,查看近期賬務(wù)情況和查看推薦菜品套餐。根據(jù)需要,可以自行選擇最近7天、最近30天或者選擇一段時間內(nèi)的進(jìn)行查看。圖47成本信息圖48菜品排名圖49最近7日的收益情況圖50最近7日的菜品推薦6系統(tǒng)測試6.1測試目的在編寫代碼的過程中,語法的錯誤可以通過編譯平臺發(fā)現(xiàn),但是處理邏輯的錯誤就需要通過測試來發(fā)現(xiàn)。在測試的過程中定位并糾正編譯器無法發(fā)現(xiàn)的邏輯錯誤,動態(tài)查找潛在的錯誤和問題,測試就是為了不斷完善系統(tǒng)的完備性,增強(qiáng)系統(tǒng)的健壯性,避免因測試的不完全,導(dǎo)致后期花費(fèi)大量的人力物力對系統(tǒng)進(jìn)行維護(hù)。6.2測試結(jié)果及驗(yàn)證本次測試采取黑盒測試方法,功能模塊及集成測試采用的具體測試用例設(shè)計(jì)方法有等價類劃分法、邊界值劃分法和錯誤猜測,分別對用戶注冊、密碼修改、刪除訂單、刪除菜品、員工薪水修改這幾個容易出錯的模塊進(jìn)行測試。表11注冊用戶輸入等價類測試用例輸入數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果無效等價類姓名:非空身份證號:非空密碼:非空手機(jī)號:非空薪水:非空姓名:Test身份證號:112233445566778899密碼:123456手機(jī)號:12345678901薪水:5500已存在員工提示:已存在員工姓名:非空身份證號:空密碼:非空手機(jī)號:非空薪水:非空姓名:Test身份證號:密碼:123456手機(jī)號:12345678901薪水:5500有重要信息未填寫提示:有必要項(xiàng)未填寫姓名:非空身份證號:非空密碼:非空手機(jī)號:非空薪水:非空姓名:Test身份證號:1122334455667788密碼:123456手機(jī)號:12345678901薪水:5500身份證號碼不正確提示:身份證號碼不足18位有效等價類注冊用戶姓名:Test身份證號:998877665544332211密碼:123456手機(jī)號:12345678901薪水:5500注冊成功注冊成功對于空輸入以及非法輸入,系統(tǒng)能及時地識別,保證了輸入數(shù)據(jù)的正確性。表12修改密碼輸入等價類測試用例輸入數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果無效等價類新密碼:非空重復(fù)密碼:非空新密碼:123456重復(fù)密碼:12345輸入有誤提示:兩次輸入的密碼不一致修改密碼:非空重復(fù)密碼:空新密碼:123456重復(fù)密碼:輸入有誤提示:輸入密碼不能為空修改密碼:空重復(fù)密碼:非空新密碼:重復(fù)密碼:123456輸入有誤提示:輸入密碼不能為空修改密碼:非空重復(fù)密碼:非空新密碼:1122334455667788990重復(fù)密碼:1122334455667788990輸入有誤提示:密碼不能超過18位有效等價類新密碼:非空重復(fù)密碼:非空新密碼:123456重復(fù)密碼:123456輸入正確修改成功新密碼:非空重復(fù)密碼:非空新密碼:qwer1234重復(fù)密碼:qwer1234輸入正確修改成功新密碼:非空重復(fù)密碼:非空新密碼:@qwe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年健身教練職業(yè)技能考核試卷:健身教練健身行業(yè)健身行業(yè)政策法規(guī)解讀試題
- 2025年消防設(shè)施檢測與維護(hù)消防執(zhí)業(yè)資格考試消防設(shè)施驗(yàn)收報(bào)告試題
- 2025年醫(yī)??荚囶}庫:醫(yī)保異地就醫(yī)結(jié)算實(shí)務(wù)操作要點(diǎn)與法規(guī)詳解試題
- 2025年高壓電工考試:高壓電器設(shè)備結(jié)構(gòu)原理與安全操作試題
- 2025年征信數(shù)據(jù)質(zhì)量控制專業(yè)考試題庫試題解析試卷
- 工業(yè)園區(qū)廠房布局優(yōu)化規(guī)范
- 網(wǎng)吧裝修分期付款協(xié)議
- 臭氧治療護(hù)理課件
- 2024年珠海市市級“南粵家政”技師工作站年度評估自評表
- 幼兒交通安全教育知識
- Eviews軟件使用初步課件
- 《工程制圖》題庫(含答案)
- 新高處安裝維護(hù)拆除作業(yè)課件
- 急診部重點(diǎn)??粕陥?bào)課件
- 系統(tǒng)思維解決問題(-95張)課件
- 監(jiān)控室值班記錄表免費(fèi)
- CJ-T236-2022 城市軌道交通站臺屏蔽門-高清最新版
- DB22∕T 2948-2018 天然、半天然草地牛羊混合放牧技術(shù)規(guī)程
- 煉油與化工企業(yè)電氣管理制度
- 土方開挖作業(yè)規(guī)范
- (高清版)外墻外保溫工程技術(shù)標(biāo)準(zhǔn)JGJ144-2019
評論
0/150
提交評論