




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 太原理工大學畢業(yè)設(shè)計(論文)用紙 緒論引言編寫目的本文檔是餐飲點餐管理系統(tǒng)的項目需求說明書,對餐飲點餐管理系統(tǒng)的發(fā)展進行簡要回顧,分析當前的業(yè)務流程,總結(jié)此類管理系統(tǒng)的基本特點以及總體功能,盡可能完整的概括提取出需求方的全部想法。本文檔對項目開發(fā)人員、設(shè)計人員及系統(tǒng)實施人員具有很重要的指導意義。項目背景項目名稱:餐飲點餐管理系統(tǒng);中國是舉世聞名的美食大國,擁有五千年的飲食文化和巨大的餐飲市場,隨著人民生活水平和生活方式的轉(zhuǎn)變,餐飲業(yè)具有巨大的投資市場,被稱為中國的黃金產(chǎn)業(yè),但同樣也應看到,餐飲業(yè)不僅面臨著巨大的發(fā)展機遇,也面臨著前所未有的挑戰(zhàn)和考驗。餐飲業(yè)的不斷發(fā)展,在經(jīng)營管理上也逐步向電子
2、化邁進,通過電腦信息系統(tǒng)管理餐飲業(yè)的內(nèi)部事務,使得作業(yè)更加簡單化、高效。以財務為中心,減輕一線操作人員的勞動強度,節(jié)省營業(yè)人員的交班時間,加強財務審核管理。提供多種點菜、結(jié)算、統(tǒng)計報表功能,提供分廚房直接打印前臺點菜數(shù)據(jù)。在餐飲經(jīng)營中,傳統(tǒng)的紙制作業(yè)流程無法滿足現(xiàn)代客戶在信息娛樂及服務安保等方面的要求。而此系統(tǒng)的使用,使餐廳管理者便捷的進行經(jīng)營娛樂的管理,大大增加的各店成本控制及銷售額現(xiàn)實背景我國的餐飲市場經(jīng)過30多年的改革開放及發(fā)展,可以說我國正迎來一個餐飲業(yè)大發(fā)展的時期,市場潛在力量巨大,遠景很是廣闊。根據(jù)中國烹飪協(xié)會發(fā)布的2009年度餐飲業(yè)發(fā)展報告顯示,即便在經(jīng)濟遭受重創(chuàng)的2009年,全
3、社會餐飲業(yè)零售額達依然到17998億元,同比增長16.8%。其中,每月的零售額均超過1300億元,增長率穩(wěn)定在14.4%至21.6%。在各類消費性支出中增幅居前,僅次于交通和通信支出。并且預計2012年餐飲市場還將繼續(xù)增長,營業(yè)額也將達到20000億元。 與此同時,我國餐飲業(yè)發(fā)展的質(zhì)量和內(nèi)涵也發(fā)生了重大變化。行業(yè)的經(jīng)營領(lǐng)域和市場空間不斷拓寬,經(jīng)營檔次和企業(yè)管理水平不斷提高,經(jīng)營業(yè)態(tài)日趨豐富,投資主體和消費需求多元化特點更加突出,網(wǎng)點數(shù)量和人員隊伍繼續(xù)擴大;餐飲市場更加繁榮,消費的個性化和特色化的趨勢明顯,追求健康營養(yǎng)和連鎖規(guī)模發(fā)展成為主題。集團化、品牌化、產(chǎn)業(yè)化和國際化的發(fā)展步伐加快,餐飲現(xiàn)代
4、化的進程不斷推進。 近幾年來,中國餐飲業(yè)的發(fā)展一直保持強勁快速增長同時,也看到目前餐飲行業(yè)普遍存在的問題。餐飲企業(yè)的發(fā)展一直處于自我摸索、自我運作、自我積累和自我完善為主的狀態(tài),利潤低、承載重、支撐小、發(fā)展難的特點突出。餐飲企業(yè)在產(chǎn)品標準化技術(shù)設(shè)備開發(fā)、連鎖管理體系的建立、專業(yè)人才的培養(yǎng)、吸納資本投入、理論指導和信息交流等方面的條件十分不足,存在著技術(shù)開發(fā)與設(shè)備配套難、管理與人才難、配送渠道與發(fā)展資金難、溝通交流與合作難等深層次因素的制約,行業(yè)平臺和基礎(chǔ)支持力量不強,對企業(yè)發(fā)展產(chǎn)生較大的影響。術(shù)語定義所謂”翻臺率”是指在某期間里,指餐桌座位坐滿及餐桌空蕩的速度。 一個高翻臺率意味更多用餐者吃了
5、并且走了,而一個低的翻臺率意味同樣用餐者是在一段長時間里使用餐桌,或者餐桌座位是空的。參考資料1餐飲點餐管理系統(tǒng)項目開發(fā)計劃_v1.00研究目的和意義目的在我們這個“食文化”高度發(fā)達的國度里,餐飲業(yè)毋庸置疑地成為第一大傳統(tǒng)產(chǎn)業(yè)。然而,正是這歷史悠久、規(guī)模龐大的產(chǎn)業(yè),卻也是信息化程度最慢和最低的產(chǎn)業(yè)之一。至今為止,絕大多數(shù)餐飲企業(yè)的經(jīng)營方式仍然停留在“一張紙、一支筆、經(jīng)理喊破嗓、員工跑斷腿”的境地;而會計工作,也仍然是以一支筆或一個算盤,或最好的情況下一個計算器進行加減乘除,其本質(zhì)仍然是以人腦計算為基礎(chǔ),不但工作量巨大,而且極易出錯。筆者曾經(jīng)見過生意極好的大排檔,服務員進進出出地飛奔于戶外桌臺、
6、大堂吧臺和廚房之間,而經(jīng)理則用計算器算得滿頭大汗的場景,蔚為壯觀。且不說這種日復一日的重復、單調(diào)的勞動意義何在,單就消費計算方面的出錯而引發(fā)的與客戶之間的矛盾糾紛,就不可勝計。其實在人類文明已經(jīng)進入電子信息的時代,絕大多數(shù)重復、單調(diào)、可程式化的工作都已經(jīng)可以交由計算機來完成。面對復雜和龐大的計算任務,計算機在效率和準確度方面是人腦所不能望其項背的。作為傳統(tǒng)產(chǎn)業(yè)的餐飲業(yè),同其他很多傳統(tǒng)產(chǎn)業(yè)一樣,同樣可以引入信息化改造。餐飲業(yè)的信息化改造內(nèi)容,主要有:由傳統(tǒng)的筆和紙點餐,改用電子點餐;由傳統(tǒng)的人工計算、統(tǒng)計、管理,改用電腦進行計算、統(tǒng)計和管理;將現(xiàn)代的電子技術(shù)、無線技術(shù)、計算機技術(shù)和網(wǎng)絡技術(shù)引入到
7、餐飲行業(yè)中來,替代部分人工操作,加快餐飲企業(yè)的運轉(zhuǎn)效率,提升餐飲企業(yè)的管理水平,使餐飲企業(yè)運作更規(guī)范、更科學、更高效。在餐飲企業(yè)的信息化改造當中,無線點餐(點菜)系統(tǒng),成為其核心內(nèi)容,也是餐飲企業(yè)進行信息化改造的必由之路。因此本論文研究的目的在于通過餐飲企業(yè)的信息化改造暨利用無線技術(shù),替代傳統(tǒng)的紙和筆進行電子點餐(點菜)操作,實現(xiàn)遠距離地進行信息即時傳遞。當然,無線點餐(點菜)系統(tǒng)不只是可以進行點餐操作,同時通過配套的餐飲管理軟件,還可以實現(xiàn)強大的統(tǒng)計和管理功能,使餐飲企業(yè)真正實現(xiàn)信息化。意義 能夠有效地的提升 餐飲企業(yè)的檔次和管理水平,做到科學管理、科學決策、高效運轉(zhuǎn)、降低成本,進行信息化是
8、必由之路。而采用無線點餐(點菜)系統(tǒng)取代傳統(tǒng)的手工點餐,采用餐飲管理軟件取代傳統(tǒng)的人工統(tǒng)計和粗放型管理又是信息化當中的核心內(nèi)容。餐飲企業(yè)引進一套無線點餐(點菜)系統(tǒng),成本大約在一萬元左右(視配置情況而不同),大約相當于一個服務員一年的工資,但帶來的便利性和管理水平的升級則是無與倫比的。無線點餐(點菜)系統(tǒng)所帶來的運營效率的大幅度提高和人力成本的節(jié)約,遠超其投資成本,對于餐飲企業(yè)信息化,可以說是不二的選擇。開發(fā)平臺及核心技術(shù)簡介開發(fā)語言介紹 Qt介紹Qt是一個1991年由奇趣科技開發(fā)的跨平臺C+圖形用戶界面應用程序開發(fā)框架。它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序,比如控制臺工具和服務器
9、。Qt是面向?qū)ο蟮目蚣埽褂锰厥獾拇a生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,易于擴展,允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。Qt是一個跨平臺的C+圖形用戶界面庫,由挪威TrollTech公司出品,目前包括Qt/X11, 基于Framebuffer的Qt Embedded,快速開發(fā)工具Qt Designer,國際化工具Qt Linguist 等,Qt支持Unix系統(tǒng)及Linux,還支持WinNT/Win2k,Win95/98平臺。Qt的良好封裝機制使得Q
10、t的模塊化程度非常高,可重用性 較好,對于用戶開發(fā)來說是非常方便的。Qt API和開發(fā)工具對所有支持平臺都是一致的,從而可以進行獨立于平臺的程序開發(fā)和配置。它使得跨平臺軟件編程直觀、簡易和方便。Qt 提供了一種稱為signals/slots 的安全類型來替代 callback回調(diào)函數(shù),這使得各個控件之間的協(xié)同工作變得十分簡單。Qt在Linux下有GPL版,可方便用戶的學習及開發(fā)。如果用戶使用 C+,對庫的穩(wěn)定性,健壯性要求比較高,并且希望跨平臺開發(fā)的話,那么使用Qt是較好的選擇,Qt還支持 2D/3D圖形渲染、OpenGL、XML等。 Qt Script for Applications (Q
11、SA)是Trolltech的跨平臺腳本工具箱。Qt為靜態(tài)的Qt/C+程序提供了一個腳本界面,可以定制和擴展程序。 Qtopia是為基于Linux的PDA,智能電話和其他移動設(shè)備設(shè)計的一個全面的,可以用戶化的應用程序平臺和用戶界面。 Qt/Embedded是面向嵌入式系統(tǒng)的Qt版本,是Qt的嵌入式Linux窗口,是完整的自包含C+ GUI和基于Linux的嵌入式平臺開發(fā)工具。Qt/Embedded API可用于多種開發(fā)項目。許多基于Qt的X Window程序可以非常方便地移植到嵌入式版本,適用于高端PDA等產(chǎn)品。Qt/Embedded內(nèi)部對于字符集的處理采用了UNICODE編碼標準。Qt是基于面
12、向?qū)ο蟮腃+語言,Qt提供了signal和slot的對象通信機制,具有可查詢和可設(shè)計的屬性以及強大的事件和事件過濾 器,同時,還具有字符國際化,即支持根據(jù)上下文進行國際化的字符串翻譯。許多Qt的特性是基于QObject的繼承,通過標準C+技術(shù)實現(xiàn)的優(yōu)良的跨平臺特性:Qt支持下列操作系統(tǒng): Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。面向?qū)?/p>
13、象:Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常 方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協(xié)同工作變得十分簡單。 豐富的 API:Qt包括多達 250 個以上的 C+ 類,還提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達式的處理功能。支持 2D/3D 圖形渲染,支持 OpenGL,豐富的XML 支持。Qt信號槽機制簡介信號和槽是
14、一種高級接口,應用于對象之間的通信,它是QT的核心特性,也是QT區(qū)別于其它工具包的重要地方。信號和槽是QT自行定義的一種通信機制,它獨立于標準的C/C+語言,因此要正確的處理信號和槽,必須借助一個稱為moc(Meta Object Compiler)的QT工具,該工具是一個C+預處理程序,它為高層次的事件處理自動生成所需要的附加代碼。在我們所熟知的很多GUI工具包中,窗口小部件(widget)都有一個回調(diào)函數(shù)用于響應它們能觸發(fā)的每個動作,這個回調(diào)函數(shù)通常是一個指向某個函數(shù)的指針。但是,在QT中信號和槽取代了這些凌亂的函數(shù)指針,使得我們編寫這些通信程序更為簡潔明了。 信號和槽能攜帶任意數(shù)量和任意
15、類型的參數(shù),他們是類型完全安全的,不會像回調(diào)函數(shù)那樣產(chǎn)生core dumps。所有從QObject或其子類(例如Qwidget)派生的類都能夠包含信號和槽。當對象改變其狀態(tài)時,信號就由該對象發(fā)射(emit)出去,這就是對象所要做的全部事情,它不知道另一端是誰在接收這個信號。這就是真正的信息封裝,它確保對象被當作一個真正的軟件組件來使用。槽用于接收信號,但它們是普通的對象成員函數(shù)。一個槽并不知道是否有任何信號與自己相連接。而且,對象并不了解具體的通信機制。我們可以將很多信號與單個的槽進行連接,也可以將單個的信號與很多的槽進行連接,甚至于將一個信號與另外一個信號相連接也是可能的,這時無論第一個信號
16、什么時候發(fā)射系統(tǒng)都將立刻發(fā)射第二個信號。總之,信號與槽構(gòu)造了一個強大的部件編程機制。(1)信號當某個信號對其客戶或所有者發(fā)生的內(nèi)部狀態(tài)發(fā)生改變,信號被一個對象發(fā)射。只有 定義過這個信號的類及其派生類能夠發(fā)射這個信號。當一個信號被發(fā)射時,與其相關(guān)聯(lián)的槽將被立刻執(zhí)行,就象一個正常的函數(shù)調(diào)用一樣。信號-槽機制完全獨立于任何GUI事件循環(huán)。只有當所有的槽返回以后發(fā)射函數(shù)(emit)才返回。 如果存在多個槽與某個信號相關(guān)聯(lián),那么,當這個信號被發(fā)射時,這些槽將會一個接一個地 執(zhí)行,但是它們執(zhí)行的順序?qū)请S機的、不確定的,我們不能人為地指定哪個先執(zhí)行、哪個后執(zhí)行。信號的聲明是在頭文件中進行的,QT的sig
17、nals關(guān)鍵字指出進入了信號聲明區(qū),隨后即可 聲明自己的信號。例如,下面定義了三個信號:signals: void mySignal();void mySignal(int x); void mySignalParam(int x,int y);在上面的定義中,signals是QT的關(guān)鍵字,而非C/C+的。接下來的一行void mySignal() 定義了信號mySignal,這個信號沒有攜帶參數(shù);接下來的一行void mySignal(int x)定義 了重名信號mySignal,但是它攜帶一個整形參數(shù),這有點類似于C+中的虛函數(shù)。從形式上 講信號的聲明與普通的C+函數(shù)是一樣的,但是信號卻沒
18、有函數(shù)體定義,另外,信號的返回 類型都是void,不要指望能從信號返回什么有用信息。信號由moc自動產(chǎn)生,它們不應該在.cpp文件中實現(xiàn)。(2)槽槽是普通的C+成員函數(shù),可以被正常調(diào)用,它們唯一的特殊性就是很多信號可以與其相關(guān)聯(lián)。當與其關(guān)聯(lián)的信號被發(fā)射時,這個槽就會被調(diào)用。槽可以有參數(shù),但槽的參數(shù)不能有缺省值。既然槽是普通的成員函數(shù),因此與其它的函數(shù)一樣,它們也有存取權(quán)限。槽的存取權(quán)限決定了誰能夠與其相關(guān)聯(lián)。同普通的C+成員函數(shù)一樣,槽函數(shù)也分為三種類型,即public slots、private slots和protected slots:public slots:在這個區(qū)內(nèi)聲明的槽意味著任
19、何對象都可將信號與之相連接。這對于組件編程非常有用,你可以創(chuàng)建彼此互不了解的對象,將它們的信號與槽進行連接以便信息能夠正確的傳遞。protected slots:在這個區(qū)內(nèi)聲明的槽意味著當前類及其子類可以將信號與之相連接。這適用于那些槽,它們是類實現(xiàn)的一部分,但是其界面接口卻面向外部。private slots:在這個區(qū)內(nèi)聲明的槽意味著只有類自己可以將信號與之相連接。這適用于聯(lián)系非常緊密的類。槽也能夠聲明為虛函數(shù),這也是非常有用的。槽的聲明也是在頭文件中進行的。例如,下面聲明了三個槽:public slots:void mySlot();void mySlot(int x);void mySi
20、gnalParam(int x,int y);(3)信號與槽的關(guān)聯(lián)建立連接:通過調(diào)用QObject對象的connect函數(shù)來將某個對象的信號與另外一個對象的槽函數(shù)相關(guān)聯(lián),這樣當發(fā)射者發(fā)射信號時,接收者的槽函數(shù)將被調(diào)用。該函數(shù)的定義如下:bool QObject:connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member ) static這個函數(shù)的作用就是將發(fā)射者sender對象中的信號signal與接收者receiver中的member槽函數(shù)聯(lián)系起來。當
21、指定信號signal時必須使用QT的宏SIGNAL(),當指定槽函數(shù)時必須使用宏SLOT()。如果發(fā)射者與接收者屬于同一個對象的話,那么在connect調(diào)用中接收者參數(shù)可以省略。斷開連接:disconnect函數(shù)來斷開連接。其定義如下:bool QObject:disconnect ( const QObject * sender, const char * signal, const Object * receiver, const char * member ) static這個函數(shù)斷開發(fā)射者中的信號與接收者中的槽函數(shù)之間的關(guān)聯(lián)。屬性介紹Qt的屬性也基于元對象系統(tǒng),在類聲明中用宏Q_PRO
22、PERTY來聲明。屬性只能在繼承于QObject的子類中聲明。宏Q_OVERRIDE用來覆蓋一些子類中由繼承得到的屬性。屬性也是一個類的成員。元對象系統(tǒng)中設(shè)置屬性和得到屬性的成員函數(shù)列出如下:QObject:setProperty()可以讓你控制類中那些在編譯時不可用的屬性。QMetaObject:propertyNames()返回所有可用屬性的名稱。QMetaObject:property()返回一個指定屬性的屬性數(shù)據(jù):一個QMetaProperty對象。下面兩個設(shè)置函數(shù)是等效的:/ QButton *b和QObject *o指向同一個按鈕時 b-setDown( TRUE ); o-set
23、Property( down, TRUE );開發(fā)環(huán)境VisioStudio2008簡介Microsoft Visual Studio(簡稱VS)是美國微軟公司的開發(fā)工具包系列產(chǎn)品。VS是一個基本完整的開發(fā)工具集,它包括了整個軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發(fā)環(huán)境(IDE)等等。所寫的目標代碼適用于微軟支持的所有平臺,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和MicrosoftSilverlight及Windows Phone。Vis
24、ual Studio 2008 在三個方面為開發(fā)人員提供了關(guān)鍵改進:1、快速的應用程序開發(fā)。2、高效的團隊協(xié)作。3、突破性的用戶體驗。Visual Studio 2008 提供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當前最先進的應用程序。Visual Studio 2008 包括各種增強功能,例如可視化設(shè)計器(使用 .NET Framework 3.5加速開發(fā))、對 Web 開發(fā)工具的大量改進,以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強功能。Visual Studio 2008 為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持
25、AJAX 的 Web 應用程序。開發(fā)人員能夠利用這些豐富的客戶端和服務器端框架輕松構(gòu)建以客戶為中心的 Web 應用程序,這些應用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當前瀏覽器內(nèi)運行并完全訪問 ASP NET應用程序服務和 Microsoft 平臺。2程序開發(fā)為了幫助開發(fā)人員迅速創(chuàng)建先進的軟件,Visual Studio 2008 提供了改進的語言和數(shù)據(jù)功能,例如語言集成的查詢 (LINQ),各個編程人員可以利用這些功能更輕松地構(gòu)建解決方案以分析和處理信息。Visual Studio 2008 還使開發(fā)人員能夠從同一開發(fā)環(huán)境內(nèi)創(chuàng)建面向多個 .NET Framework 版本的應用程序。開發(fā)人
26、員能夠構(gòu)建面向 .NET Framework 2.0、3.0 或 3.5 的應用程序,意味他們可以在同一環(huán)境中支持各種各樣的項目。Visual Studio 2008為開發(fā)人員提供了在最新平臺上加速創(chuàng)建緊密聯(lián)系的應用程序的新工具,這些平臺包括Web、Windows Vista、Office 2007、SQL Server 2008和Windows Server 2008。對于 Web,ASP NET AJAX 及其他新技術(shù)使開發(fā)人員能夠迅速創(chuàng)建更高效、交互式更強和更個性化的新一代 Web 體驗。3高效的團隊協(xié)作Visual Studio 2008 提供了幫助開發(fā)團隊改進協(xié)作的擴展的和改進的服務
27、項目,包括幫助將數(shù)據(jù)庫專業(yè)人員和圖形設(shè)計人員加入到開發(fā)流程的工具。3VC2008與Qt4.7的開發(fā)環(huán)境搭建VC2008與Qt開發(fā)環(huán)境搭建是十分簡單的事情,Qt授權(quán)模式有三種授權(quán)協(xié)議,分別是GPL, LGPL和Commercial,選擇GPL協(xié)議即可。1下載并安裝Vc2008專業(yè)版。2下載并安裝Qt 安裝包qt-win-opensource-4.7.0-vs2008.exe 。3下載并安裝qt-vs-addin-1.1.7.exe。 4. 在系統(tǒng)環(huán)境變量中添加D:QT4.7.0。核心技術(shù)介紹UDP協(xié)議UDP協(xié)議是英文UserDatagramProtocol的縮寫,即用戶數(shù)據(jù)報協(xié)議,主要用來支持那
28、些需要在計算機之間傳輸數(shù)據(jù)的網(wǎng)絡應用。包括網(wǎng)絡視頻會議系統(tǒng)在內(nèi)的眾多的客戶/服務器模式的網(wǎng)絡應用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項非常實用和可行的網(wǎng)絡傳輸層協(xié)議。與我們所熟知的TCP(傳輸控制協(xié)議)協(xié)議一樣,UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層。根據(jù)OSI(開放系統(tǒng)互連)參考模型,UDP和TCP都屬于傳輸層協(xié)議。UDP協(xié)議的主要作用是將網(wǎng)絡數(shù)據(jù)流量壓縮成數(shù)據(jù)報的形式。一個典型的數(shù)據(jù)報就是一個二進制數(shù)據(jù)的傳輸單位。每一個數(shù)據(jù)報的前8個字節(jié)用來包含報頭信息,剩余字節(jié)則用來包含具體的傳
29、輸數(shù)據(jù)。UDP協(xié)議的全稱是用戶數(shù)據(jù)報協(xié)議2,在網(wǎng)絡中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議。在OSI模型中,在第四層傳輸層,處于IP協(xié)議的上一層。UDP有不提供數(shù)據(jù)包分組、組裝和不能對數(shù)據(jù)包進行排序的缺點,也就是說,當報文發(fā)送之后,是無法得知其是否安全完整到達的。UDP用來支持那些需要在計算機之間傳輸數(shù)據(jù)的網(wǎng)絡應用。包括網(wǎng)絡視頻會議系統(tǒng)在內(nèi)的眾多的客戶/服務器模式的網(wǎng)絡應用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網(wǎng)絡傳輸層協(xié)議。與所熟知的TCP(傳輸控制協(xié)議)協(xié)議一
30、樣,UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層。根據(jù)OSI(開放系統(tǒng)互連)參考模型,UDP和TCP都屬于傳輸層協(xié)議。UDP協(xié)議使用端口號為不同的應用保留其各自的數(shù)據(jù)傳輸通道。UDP和TCP協(xié)議正是采用這一機制實現(xiàn)對同一時刻內(nèi)多項應用同時發(fā)送和接收數(shù)據(jù)的支持。數(shù)據(jù)發(fā)送一方(可以是客戶端或服務器端)將UDP數(shù)據(jù)報通過源端口發(fā)送出去,而數(shù)據(jù)接收一方則通過目標端口接收數(shù)據(jù)。有的網(wǎng)絡應用只能使用預先為其預留或注冊的靜態(tài)端口;而另外一些網(wǎng)絡應用則可以使用未被注冊的動態(tài)端口。因為UDP報頭使用兩個字節(jié)存放端口號,所以端口號的有效范圍是從0到65535。一般來說,大于49151的端口號都代表動態(tài)端口。UDP
31、協(xié)議的主要作用是將網(wǎng)絡數(shù)據(jù)流量壓縮成數(shù)據(jù)包的形式。一個典型的數(shù)據(jù)包就是一個二進制數(shù)據(jù)的傳輸單位。每一個數(shù)據(jù)包的前8個字節(jié)用來包含報頭信息,剩余字節(jié)則用來包含具體的傳輸數(shù)據(jù)。 TCP協(xié)議Transmission Control Protocol傳輸控制協(xié)議TCP是一種面向連接(連接導向)的、可靠的、基于字節(jié)流的傳輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說明(specified)。TCP在IP報文的協(xié)議號是6。在簡化的計算機網(wǎng)絡OSI模型中,它完成第四層傳輸層所指定的功能,UDP是同一層內(nèi)另一個重要的傳輸協(xié)TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開
32、放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡來完成自己的需求。這4層分別為: 應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡遠程訪問協(xié)議(Telnet)等。 傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一
33、層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。 互連網(wǎng)絡層:負責提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。 網(wǎng)絡接口層:對實際的網(wǎng)絡媒體的管理,定義如何使用實際網(wǎng)絡(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。在因特網(wǎng)協(xié)議族(Internet protocol suite)四層協(xié)議中,TCP層是位于IP層之上,應用層之下的傳輸層。不同主機的應用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機制,而是提供不可靠的包交換。應用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)?、?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分割
34、成適當長度的報文段(通常受該計算機連接的網(wǎng)絡的數(shù)據(jù)鏈路層的最大傳送單元(MTU)的限制)。之后TCP把結(jié)果包傳給IP層,由它來通過網(wǎng)絡將包傳送給接收端實體的TCP層。TCP為了保證不發(fā)生丟包,就給每個字節(jié)一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節(jié)發(fā)回一個相應的確認(ACK);如果發(fā)送端實體在合理的往返時延(RTT)內(nèi)未收到確認,那么對應的數(shù)據(jù)(假設(shè)丟失了)將會被重傳。TCP用一個校驗和函數(shù)來檢驗數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計算和校驗。首先,TCP建立連接之后,通信雙方都同時可以進行數(shù)據(jù)的傳輸,其次,它是全雙工的;在保證可靠性上,采用超時重傳
35、和捎帶確認機制。在流量控制上,采用滑動窗口協(xié)議,協(xié)議中規(guī)定,對于窗口內(nèi)未經(jīng)確認的分組需要重傳。在擁塞控制上,采用廣受好評的TCP擁塞控制算法(也稱AIMD算法),該算法主要包括三個主要部分:1,加性增、乘性減;2,慢啟動;3,對超時事件做出反應。Qt 數(shù)據(jù)庫支持Qt 提供了 QtSql 模塊來提供平臺獨立的基于 SQL 的數(shù)據(jù)庫操作。這里我們所說的“平臺獨立”,既包括操作系統(tǒng)平臺,有包括各個數(shù)據(jù)庫平臺。另外,我們強調(diào)了“基于 SQL”,因為 NoSQL 數(shù)據(jù)庫至今沒有一個通用查詢方法,所以不可能提供一種通用的 NoSQL 數(shù)據(jù)庫的操作。Qt 的數(shù)據(jù)庫操作還可以很方便的與 model/view
36、架構(gòu)進行整合。通常來說,對數(shù)據(jù)庫的操作更多地在于對數(shù)據(jù)庫表的操作,而這正是 model/view 架構(gòu)的長項。不過,由于受到協(xié)議的限制,Qt 開源版本并沒有提供上面所有驅(qū)動的二進制版本,而僅僅以源代碼的形式提供。通常,Qt 只默認搭載 QSqlite 驅(qū)動(這個驅(qū)動實際還包括 Sqlite 數(shù)據(jù)庫,也就是說,如果需要使用 Sqlite 的話,只需要該驅(qū)動即可)。我們可以選擇把這些驅(qū)動作為 Qt 的一部分進行編譯,也可以當作插件編譯。如果習慣于使用 SQL 語句,我們可以選擇QSqlQuery類;如果只需要使用高層次的數(shù)據(jù)庫接口(不關(guān)心 SQL 語法)。Qt為數(shù)據(jù)庫訪問提供的QtSql模塊實現(xiàn)了
37、數(shù)據(jù)庫和Qt應用程序的無縫集成,同時為開發(fā)人員提供了一套與平臺無關(guān)和具體所用數(shù)據(jù)庫均無關(guān)的調(diào)用接口。這使得開發(fā)人員只需掌握基本的SQL語句,就能進行簡單的數(shù)據(jù)庫應用程序開發(fā)。如下表所示,QtSql模塊由3部分組成。驅(qū)動層:驅(qū)動層實現(xiàn)了特定數(shù)據(jù)庫與SQL接口的底層橋接。SQL接口層:SQL接口層提供了數(shù)據(jù)庫類的訪問用戶接口層:用戶接口層提供從數(shù)據(jù)庫數(shù)據(jù)到用于數(shù)據(jù)庫表示的窗體的映射QtSql模塊提供了一個平臺無關(guān)且數(shù)據(jù)庫無關(guān)的訪問SQL數(shù)據(jù)庫的接口。Qt中的每個數(shù)據(jù)庫連接用一個QSqlDatabase對象來表示;Qt使用不同driver來和各種不同數(shù)據(jù)庫的API進行通訊。QSqlQuery提供了直
38、接執(zhí)行任意SQL語句的特性;此外還提供了兩個高層次的無需SQL命令的數(shù)據(jù)庫接口:QSqlTableModel和QSqlRelationalTableModelSection 1. Connecting and Querying在執(zhí)行SQL命令前,必須先建立好同數(shù)據(jù)庫的連接。靜態(tài)函數(shù)QSqlDatabase:addDatabase()用于創(chuàng)建一個新的QSqlDatabase對象,函數(shù)的第一個參數(shù)指定了Qt該選擇哪個Driver來訪問數(shù)據(jù)庫。在對創(chuàng)建的QSqlDatabase對象設(shè)定好host name,database name ,username和password后,需要調(diào)用open()函數(shù)來
39、建立到數(shù)據(jù)庫的連接。一旦到數(shù)據(jù)庫的鏈接建立好后,就可以通過QSqlQuery:exec()來執(zhí)行底層數(shù)據(jù)庫所支持的任意SQL語句了。QSqlQuery:next()返回查詢結(jié)果集中的下一行,而QSqlQuery:value()則返回當前行中的某一項的值,以QVariant的形式返回。可以使用QSqlQuery:isActive()來檢查SQL語句的執(zhí)行是否出現(xiàn)錯誤。placeholder QSqlQuery:prepare() QSqlQuery:bindValue() or QSqlQuery:addBindValue() QSqlQuery:exec()Qt支持數(shù)據(jù)庫中transactio
40、n(事務)這個概念。transaction()用于啟動transaction,而commit()或rollback()用于結(jié)束transaction。靜態(tài)函數(shù)QSqlDatabase:database(),返回指定連接所對應的QSqlDatabase對象。 QSqlDatabase:driver() 返回該連接底層所使用的dirver QSqlDatabase:hasFeature()可用來查詢底層數(shù)據(jù)庫是否支持某項特性。 Qt允許在一個程序中創(chuàng)建多個數(shù)據(jù)庫連接,這中情況下在執(zhí)行SQL語句時,需要為QSqlQuery的構(gòu)造函數(shù)傳入要執(zhí)行該語句的數(shù)據(jù)庫對應的QSqlDatabase對象。與QSq
41、lQuery相比,QSqlTableModel提供了一個更高層次、更抽象的接口,可以避免使用原始的SQL命令。 QSqlTableModel:record() & QSqlTableModel:value() QSqlTableModel:insertRow() & QSqlTableModel:setData() QSqlTableModel:submitAll() ,于其他model不同,在使用QSqlTableModel時,必須調(diào)用submitAll()來強制所有的修改都寫入數(shù)據(jù)庫。當需要處理外鍵(foreign key)時,需要使用QSqlRelationalTableModel而不是
42、QSqlTableModel。對于使用了SQL相關(guān)類的應用程序,需要在對應的.pro中添加下面一行:QT +=sql,這樣在鏈接時會將QtSql庫鏈入。需求分析目前餐飲企業(yè)工作流程目前的中小餐飲企業(yè)采用最多的手工記賬形式,其業(yè)務流程如圖2.1所示客人點餐客人點餐服務員登記廚師加工處理客人點餐收銀臺服務員登記 圖3-1手工業(yè)務流程分析流程圖簡介:顧客到達餐廳有引領(lǐng)員引導到座位后,承上菜譜并登記客人所點食品,完畢后唱菜譜并由客人確認,征得客人同意后交給后臺廚師及配餐人員,配餐人員根據(jù)大廳服務員提交的菜譜為客人配齊所有飲料、酒水、甜點等食物,廚師根據(jù)大廳服務員提供的菜譜按照先涼后熱的順序快速加工出美
43、味可口的食物交友送餐人員及時送到指定的餐桌??腿擞貌屯戤吅笥蟹諉T或者客戶到收銀處辦理結(jié)算手續(xù),客人如有會員卡的話,收銀員應給予相應的優(yōu)惠,結(jié)算完畢后有引領(lǐng)員送客人出餐廳,這樣的工作方式當客流量增加的時候,必然會出現(xiàn)爭搶菜譜,上錯菜,漏上菜、忘記上菜以及計算失誤等現(xiàn)象,輕則引起客戶的不滿,重則引起糾紛,因此有必要采用新的工作模式,來避免上述情況的發(fā)生。所建議系統(tǒng)的工作流程基于傳統(tǒng)餐飲企業(yè)手工操作所帶來的種種弊端,一種新的利用計算機來管理信息的系統(tǒng)餐飲點餐管理系統(tǒng)也就應運而生,那么該系統(tǒng)的工作流程如圖2.2所示圖3-2自動化的點餐系統(tǒng)產(chǎn)品功能根據(jù)所建議系統(tǒng)的業(yè)務流程圖,分析出新系統(tǒng)的功能模塊圖如
44、2.3所示用戶登錄用戶登錄點餐管理配餐管理結(jié)算管理系統(tǒng)管理圖3-3功能模塊圖軟件需求描述1用戶登陸:用戶輸入用戶名及密碼后,系統(tǒng)自動驗證有效性及用戶角色,根據(jù)用戶擁有的角色自動進入不同的子系統(tǒng)2客戶點餐子系統(tǒng):當客人落座后,服務員手持IPAD登陸點餐子系統(tǒng)后,首先輸入相應的桌號,然后由客人根據(jù)不同的服務類別(特價、涼菜、熱菜、湯、酒水、飲料)選擇不同的食物及數(shù)量,系統(tǒng)根據(jù)不同的食物計算出總價格,方便客人控制總價格,如果輸入錯誤系統(tǒng)提供刪除的功能,最后提交到后廚配餐子系統(tǒng)中.3配餐管理子系統(tǒng):配餐員或者廚師根據(jù)最新的配餐信息,按照時間先后順序配置食品,完成后提交給結(jié)算管理子系統(tǒng)中4結(jié)算管理子系統(tǒng)
45、:收銀員根據(jù)服務員或者客人提供的桌號計算出總價格,客人如果提供會員卡或者會員號,系統(tǒng)自動驗證卡號及會員身份并計算出相應的折扣及實付金額,根據(jù)相應的金額出具對應的發(fā)票5系統(tǒng)管理子系統(tǒng):經(jīng)理登陸子系統(tǒng)后,上傳菜譜,管理菜譜及特價。在此子系統(tǒng)中,還實現(xiàn)了會員及用戶、留言、桌位的管理。系統(tǒng)用例圖系統(tǒng)用例【9】圖是按照場景的形式對系統(tǒng)的功能做清晰地設(shè)計,具體用例有:登陸用例圖、點餐用例圖、配餐用例圖、結(jié)賬用例圖、管理用例。用戶通過餐飲管理系統(tǒng)可以實現(xiàn)用戶登陸,如圖:圖3-4登陸用例服務員通過餐飲管理系統(tǒng)可以實現(xiàn)客人點餐,如圖:圖3-5點餐用例廚師通過餐飲管理系統(tǒng)實現(xiàn)廚師配餐,如圖:圖3-6配餐用例收銀員
46、通過餐飲管理系統(tǒng)實現(xiàn)替客人結(jié)賬功能,如圖:圖3-7結(jié)算用例經(jīng)理通過餐飲管理系統(tǒng)實現(xiàn)對系統(tǒng)的設(shè)置等操作,如圖:圖3-8系統(tǒng)設(shè)置用例軟件接口Windows操作系統(tǒng)所提供的各種API:1.基礎(chǔ)服務(Base Services),提供對Windows系統(tǒng)可用的基礎(chǔ)資源的訪問接口。比如象:文件系統(tǒng)(file system)、外部設(shè)備(device)、,進程(process)、線程(thread)以及訪問注冊表(Windows registry)和錯誤處理機制(error handling)。這些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系統(tǒng)
47、文檔中;以及32位Windows下的 kernel32.dll和advapi32.dll中。2.圖形設(shè)備接口(GDI),提供功能為:輸出圖形內(nèi)容到顯示器、打印機以及其他外部輸出設(shè)備。它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。3.圖形化用戶界面(GUI),提供的功能有創(chuàng)建和管理屏幕和大多數(shù)基本控件(control),比如按鈕和滾動條。接收鼠標和鍵盤輸入,以及其他與GUI有關(guān)的功能。這些調(diào)用接口位于:16位Windows下的user.exe,以及32位Windows下的user32.dll。從Windows XP版本之后,基本控件和通用對話框控件
48、(Common Control Library)的調(diào)用接口放在comctl32.dll中。4.通用對話框鏈接庫(Common Dialog Box Library),為應用程序提供標準對話框,比如打開/保存文檔對話框、顏色對話框和字體對話框等等。這個鏈接庫位于:16位Windows下的commdlg.dll中,以及32位Windows下comdlg32.dll中。它被歸類為User Interface API之下。5.通用控件鏈接庫(Common Control Library),為應用程序提供接口來訪問操作系統(tǒng)提供的一些高級控件。比如像:狀態(tài)欄(status bar)、進度條(progres
49、s bars)、工具欄(toolbar)和標簽(tab)。這個鏈接庫位于:16位Windows下的commctrl.dll中,以及32位Windows下comctl32.dll中。它被歸類為User Interface API之下。6.Windows外殼(Windows Shell),作為Windows API的組成部分,不僅允許應用程序訪問Windows外殼提供的功能,還對之有所改進和增強。它位于16位Windows下的shell.dll中,以及32位Windows下的shell32.dll中(Windows 95則在 shlwapi.dll中)。 它被歸類為User Interface A
50、PI之下。7.網(wǎng)絡服務(Network Services),為訪問操作系統(tǒng)提供的多種網(wǎng)絡 功能提供接口。它包括NetBIOS、Winsock、NetDDE及RPC等。 總體設(shè)計與實現(xiàn)系統(tǒng)架構(gòu)設(shè)計本系統(tǒng)采用流行的C/S結(jié)構(gòu),既客戶端/服務器端結(jié)構(gòu),客戶端是基于.Net FrameWork平臺的應用程序,服務器端是基于Sql Server 2005的數(shù)據(jù)庫存儲應用系統(tǒng),采用面向?qū)ο蟆?2】的開發(fā)語言C#【13】作為編程語言,使用Visual studio 2010作為開發(fā)工具以及應用流行的軟件開發(fā)模型瀑布模型系統(tǒng)編碼規(guī)范系統(tǒng)編碼實現(xiàn)采用目前流行的面向?qū)ο蟮木幊陶Z言C#,因此為了今后的系統(tǒng)擴展及測試
51、維護,所以按照微軟統(tǒng)一發(fā)布的C#編碼規(guī)范,具體內(nèi)容如下:類型的命名1.類名,以Class聲明的類,都必須以名詞或名詞短語命名,體現(xiàn)類的作用。如:Class Indicator當類是一個特性(Attribute)時,以Attribute結(jié)尾,當類是一個異常(Exception)時,以Exception結(jié)尾:Class ColorSetException Class CauseExceptionAttribute 當類只需有一個對象實例(全局對象,比如Application等),必須以Class結(jié)尾,如 Class ScreenClass Class SystemClass。當類只用于作為其他類的
52、基類,根據(jù)情況,以Base結(jié)尾:MustInherit Class IndicatorBase,如果定義的類是一個窗體,那么名字的后面必須加后綴Form,如果是Web窗體,必須加后綴Page:Class PrintForm : Inherits Form * Windows窗體Class StartPage : Inherits Page * Web窗體2.枚舉和結(jié)構(gòu):同樣必須以名詞或名詞短語命名。最好體現(xiàn)枚舉或結(jié)構(gòu)的特點,如:Enum ColorButtons 以復數(shù)結(jié)尾,表明這是一個枚舉Structure CustomerInfoRecord 以Record結(jié)尾,表明這是一個結(jié)構(gòu)體3.委派
53、類型:普通的委派類型以描述動作的名詞命名,以體現(xiàn)委派類型實例的功能:Delegate Sub DataSeeker (ByVal SeekString As String),用于事件處理的委派類型,必須以EventHandler結(jié)尾,如:Delegate Sub DataChangedEventHandler (ByVal Sender As Object, ByVal e As DataChangedEventArgs)4.接口:與其他類型不同,接口必須要由I作為前綴,并用形容詞命名,突出表現(xiàn)實現(xiàn)接口的類將具有什么能力:Interface ISortable5.模塊:模塊不是類型,他的名稱除
54、了必須以名詞命名外,必須加以后綴Module:Module SharedFunctionsModule,上述所有規(guī)則的共同特點是,每個組成名稱的詞語都必須是大寫開頭,禁止完全大寫或小寫的名稱。方法和屬性的命名1.方法:無論是函數(shù)還是子程序,方法都必須以動詞或動詞短語命名。無需區(qū)分函數(shù)和子程序,也無需指明返回類型。Sub Open(ByVal CommandString As String),F(xiàn)unction SetCopyNumber(ByVal CopyNumber As Integer),參數(shù)需要指明ByVal還是ByRef,這一點寫起來會讓程序邊長,但非常必要。如果沒有特別情況,都使用B
55、yVal。參數(shù)的命名方法,參考后面“變量的命名方法”。需要重載的方法,一般不寫Overloads,根據(jù)需要編寫重載的方法。2.屬性:原則上,字段(Field)是不能公開的,要訪問字段的值,一般使用屬性。屬性以簡潔清晰的名詞命名:Property Concentration As Single,Property Customer As CustomerTypes3.事件:事件是特殊的屬性,只能在事件處理上下文中使用。命名的原則一般是動詞或動詞的分詞,通過時態(tài)表明事件發(fā)生的時間:Event Click As ClickEventHandler,Event ColorChanged As Color
56、ChangedEventHangler變量和常數(shù)常數(shù)以表明常數(shù)意義的名詞命名,一般不區(qū)分常數(shù)的類型:Const DefaultConcentration As Single = 0.01,在嚴格要求的代碼中,常數(shù)以c_開頭,如c_DefaultConcentration,但最好不要用它,它會帶來輸入困難。普通類型的變量,只要用有意義的名字命名即可,不可使用簡稱和無意義的名稱諸如A,x1等,下面給出了良好的例子:Dim Index As IntegerDim NextMonthExpenditure As DecimalDim CustomerName As String不能起太長的名字,應該盡
57、量簡潔,如下面的例子:Dim VariableUsedToStoreSystemInformation As String * 錯誤,太復雜了Dim SystemInformation As String * 正確,簡單明了Dim sysInfo As String * 錯誤,過于簡單特殊情況可以考慮一個字母的變量:Dim g As Graphic對于控件,應該指明控件的類型,方法是直接在變量后面加以類名:Friend WithEvents NextPageButton As Button * 按鈕Friend WithEvents ColorChoicerPanel As Panel * 面
58、版Friend WithEvents CardFileOpenDialog As FileOpenDialog * 文件打開對話框等等,無需規(guī)定某種類型的變量的前綴,只需把類型寫在后面就行了,試對比下列代碼:btnCancel.Text = &CancelCancelButton.Text = &Cancel顯然后者更能使閱讀者明白變量的類型是一個按鈕。Main函數(shù)代碼int main(int argc, char *argv)QApplication a(argc, argv);QApplication:addLibraryPath(./plugins);QTextCodec:setCode
59、cForTr(QTextCodec:codecForName(GB2312); QTextCodec:setCodecForLocale(QTextCodec:codecForName(GB2312); QTextCodec:setCodecForCStrings(QTextCodec:codecForName(GB2312); QApplication:addLibraryPath(./sqldrivers);QDataBase* p = QDataBase:GetInstance();p-ConnectDataBase();QLoadManger dlg;if( dlg.exec() !=
60、 QDialog:Accepted )return 0;QMeal w;w.show();return a.exec(); 詳細設(shè)計數(shù)據(jù)庫模塊功能設(shè) 數(shù)據(jù)庫模塊主要包括用戶管理、菜品管理、會員管理三大部分,這三大部分都需要將數(shù)據(jù)保存到數(shù)據(jù)庫,所以都歸結(jié)到了數(shù)據(jù)庫模塊中。其中用戶管理模塊主要是包括用戶的注冊和用于用戶登錄的驗證功能;而菜品管理模塊主要是實現(xiàn)對菜品的添加,對菜品的修改,對菜品的刪除三大功能;同樣會員管理也主要是實現(xiàn)對會員添加,對會員的修改,以及對會員的刪除。 圖5-1登錄模塊功能設(shè)計登錄模塊主要實現(xiàn)的功能就是對系統(tǒng)管理員用戶的注冊以及對已經(jīng)注冊的用戶進行用戶信息驗證,用來完成用戶登
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全責任班級擔當3篇
- 兒童藥物使用授權(quán)書3篇
- 創(chuàng)意棉花糖機項目分析3篇
- 快速創(chuàng)建委托書的步驟3篇
- 員工自愿放棄簽勞動合同協(xié)議3篇
- 取保候?qū)彵WC書模板3篇
- 保育老師的個人工作計劃(3篇)
- 學生乘坐校車保證書3篇
- 2025年三國演義讀書心得體會(20篇)
- 2024年永州市零陵高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)選調(diào)工作人員考試真題
- 2025-2030中國寵物行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景預測報告
- AGC-AVC培訓課件教學課件
- 山洪災害防御知識課件
- 境外道路貨物運輸應急預案
- JC01基礎(chǔ)心理學單科作業(yè)題匯總(含解析)
- 中考英語讀寫綜合練習
- 混凝土供應保證方案 2
- 慢性阻塞性肺疾病入院記錄模板-病歷書寫
- 新疆維吾爾自治區(qū)和田地區(qū)各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細及行政區(qū)劃代碼
- 軟件測試技術(shù)課程教學大綱
- 液壓與氣壓傳動完整版課件
評論
0/150
提交評論