版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 學(xué)士學(xué)位論文</b></p><p> 題 目: 基于Linux餐廳點菜系統(tǒng)的設(shè)計與開發(fā)</p><p> 姓 名: *** </p><p> 分 院: 工學(xué)院 </p>&l
2、t;p> 專 業(yè): 電子信息工程 </p><p> 學(xué) 號: </p><p> 指導(dǎo)教師: *** </p><p> 二0 年 月 日</p><p>
3、; 畢業(yè)設(shè)計(論文)任務(wù)書</p><p><b> 摘 要</b></p><p> 中國是舉世聞名的美食大國,擁有五千年的飲食文化和巨大的餐飲市場。隨著人民生活水平和生活方式的轉(zhuǎn)變,漸漸的人們發(fā)現(xiàn)餐飲業(yè)具有巨大的投資市場。中國市場的競爭尤為激烈,而且隨著餐飲業(yè)的迅速擴展,其中所暴露的問題也是不容忽視的,如餐飲業(yè)管理人才的專業(yè)化程度不夠?qū)е聝?nèi)供不足,餐廳缺少
4、一套現(xiàn)代企業(yè)制度和監(jiān)督管理體制,服務(wù)管理應(yīng)變能力差,缺乏先進的信息工具等。所以,餐飲業(yè)管理從觀念意識、經(jīng)營思想和管理水平還有待專業(yè)化。因此,開發(fā)實用型點菜系統(tǒng)是餐飲業(yè)發(fā)展的必然趨勢。</p><p> 本系統(tǒng)是基于Linux系統(tǒng)下開發(fā)的餐廳點菜系統(tǒng),運用服務(wù)器/客戶端開發(fā)模式,采用的是RedHat企業(yè)版5,圖形界面功能由QT類開發(fā),后臺數(shù)據(jù)庫采用SQLITE3,網(wǎng)絡(luò)編程使用的協(xié)議是Linux支配的Socket
5、TCP/IP 協(xié)議。前臺劃分為前臺管理,點菜管理,后廚管理,數(shù)據(jù)庫管理,服務(wù)器五個功能模塊。</p><p> 本系統(tǒng)的主要作業(yè)流程,從顧客在前臺查看餐桌空閑空閑狀態(tài),入桌點菜,可以加菜、刪菜等,提交菜單,后廚按照菜單做菜,顧客到前臺結(jié)賬,前臺打印賬單,顧客結(jié)賬,實現(xiàn)了開臺、點菜、加菜、刪菜等系統(tǒng)設(shè)計功能。</p><p> 關(guān)鍵詞:餐廳點菜系統(tǒng);Linux;QT;SQLITE3<
6、;/p><p><b> Abstract</b></p><p> China is world-famous cate big country, with five thousand years of diet culture and great food market. As the people's living standard and life t
7、ransitions, gradually people found restaurant industry has great investment market. China was particularly intense market competition, and with the rapid expansion of catering industry, which is exposed to the problem is
8、 also not allow to ignore, such as catering management personnel of professional enough to lead to internal for shortage, lack of a re</p><p> This system is based on Linux system of development order syste
9、m restaurant, using server/client development mode, use is RedHat enterprise version 5, graphic interface functions by QT kind of development, the backend database using SQLITE3, network programming use agreement is Linu
10、x dominate Socket of the TCP/IP protocol. The front desk is divided into the front desk management, order management, management after hutch, database management, server five function module.</p><p> The sy
11、stem's main operation process, from the customer in the front desk check table free idle state, into the table to order, can add food, delete vegetables etc, submit the menu, kitchen according to menu after cooking,
12、the customer to front desk check, front desk print bill, customer checkout, realize the founding, order, and food, delete vegetables etc system design functions.</p><p> Keywords:Restaurant order system;Lin
13、ux;QT;SQLITE3</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p> 第1章 緒 論1</p><p> 1.1 選題目的和意義1</p>
14、<p> 1.2 國內(nèi)外綜述1</p><p> 1.3 論文研究內(nèi)容2</p><p> 第2章 相關(guān)知識概述3</p><p> 2.1 系統(tǒng)開發(fā)環(huán)境3</p><p> 2.2 系統(tǒng)的結(jié)構(gòu)4</p><p> 2.3 應(yīng)用的相關(guān)技術(shù)5</p><p>
15、 2.3.1 QT圖形界面5</p><p> 2.3.2 SQLite數(shù)據(jù)庫5</p><p> 2.3.3 Linux系統(tǒng)支配的TCP/IP協(xié)議6</p><p><b> 2.4本章小結(jié)8</b></p><p> 第3章 系統(tǒng)分析及設(shè)計9</p><p> 3.1系統(tǒng)
16、需求分析9</p><p> 3.1.1功能需求9</p><p> 3.1.2性能需求9</p><p> 3.2系統(tǒng)開發(fā)環(huán)境10</p><p> 3.3系統(tǒng)總體功能模塊10</p><p> 3. 4數(shù)據(jù)庫結(jié)構(gòu)設(shè)計12</p><p> 3.5本章小結(jié)12<
17、/p><p> 第4章 軟件設(shè)計13</p><p> 4.1 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計13</p><p> 4.2 各功能模塊的詳細設(shè)計13</p><p> 4.2.1 服務(wù)器管理模塊13</p><p> 4.2.2 前臺管理模塊14</p><p> 4.2.3 顧客點菜端管
18、理模塊15</p><p> 4.2.4 后廚管理系統(tǒng)20</p><p> 4.2.5 數(shù)據(jù)庫管理模塊20</p><p> 4.3本章小結(jié)22</p><p> 第5章 系統(tǒng)測試23</p><p> 5.1測試方法與原則23</p><p> 5.1.1 黑盒測試
19、23</p><p> 5.1.2 測試基本原則23</p><p> 5.2 系統(tǒng)測試23</p><p> 5.3 測試小結(jié)26</p><p><b> 結(jié) 論27</b></p><p><b> 致 謝28</b></p>&
20、lt;p><b> 參考文獻29</b></p><p><b> 附錄A30</b></p><p><b> 附錄B35</b></p><p><b> 第1章 緒 論</b></p><p> 1.1 選題目的和意義<
21、/p><p> 面對餐飲業(yè)多元化的經(jīng)營現(xiàn)狀,經(jīng)營的特色、規(guī)模、出品這些因素的不同,帶給餐飲企業(yè)的則是不同的標(biāo)準和工作流程和方法,面對著這解決方法不一的情況,對人才的專業(yè)化程度的要求也相應(yīng)地提高了,然而在國內(nèi)市場上,餐飲業(yè)人才供應(yīng)不足,在這樣的兩難情況下,信息系統(tǒng)得出現(xiàn)暫緩了這一緊張局面。</p><p> 首先,餐飲管理信息系統(tǒng)不是單純的用于結(jié)帳計算的工具,它有著科學(xué)的、標(biāo)準的管理體系,它
22、是通過對目前餐飲市場的具體情況科學(xué)的調(diào)研分析后設(shè)計而成的,它能夠針對中餐因其菜品的多樣化和特色化的服務(wù)很難實現(xiàn)標(biāo)準化管理,使中餐企業(yè)的成本控制很難實現(xiàn)這些問題給與解決。</p><p> 其次,餐飲管理信息系統(tǒng)能夠給出具體的相應(yīng)的符合企業(yè)自身要求的較科學(xué)的標(biāo)準化管理流程,這暫時緩解了專業(yè)人才的需求,通過使用該系統(tǒng)就能完成專業(yè)人員所要做的事。</p><p> 最后,餐飲管理信息系統(tǒng)可以
23、針對企業(yè)的經(jīng)營現(xiàn)狀而做出科學(xué)的分析,使得企業(yè)對市場的應(yīng)變能力得到了提高,從而通過餐飲管理信息系統(tǒng)來實現(xiàn)強化管理、降低成本、堵漏節(jié)流等作用。更好的完善企業(yè)的經(jīng)營管理,提高企業(yè)自身的競爭實力。</p><p> 另一方面,基于ARM和Linux的嵌入式系統(tǒng),具有成熟的嵌入式硬件結(jié)構(gòu)和豐富的開放軟件資源,優(yōu)良的性能和廣泛的市場定位,這無疑對開發(fā)工作和學(xué)習(xí)研究是一個重大幫助;在GUI(圖形用戶界面)的選用上,使用基于C
24、++語言面向?qū)ο缶幊痰膽?yīng)用程序開發(fā)軟件庫Qt,它匯集了豐富的C++類提供開發(fā)應(yīng)用程序用戶界面所需要的全部內(nèi)容,具有優(yōu)良的跨平臺性能和豐富的API函數(shù)及開發(fā)文檔。另外,當(dāng)前量產(chǎn)的普通PDA和PC機硬件上已經(jīng)基本滿足點菜需求,使自行研究的專用硬件設(shè)備不再具有明顯的成本優(yōu)勢,為此,本課題集合嵌入式Linux和Qt開發(fā)應(yīng)用等技術(shù),以程序軟件的通用性和易用性為方向,構(gòu)造能夠方便移植的軟件。提高餐飲業(yè)的服務(wù)質(zhì)量,并為自身研究學(xué)習(xí)嵌入式系統(tǒng)和GUI應(yīng)
25、用開發(fā)提供一個良好的平臺。</p><p><b> 1.2 國內(nèi)外綜述</b></p><p> 餐廳點菜系統(tǒng)代表著當(dāng)今餐飲業(yè)解決方案中最尖端的領(lǐng)先科技,它集網(wǎng)絡(luò)通信技術(shù)與移動電腦終端技術(shù)與一身,此高端技術(shù)應(yīng)用在餐飲行業(yè)中,即使在美國也是2001年才在洛杉磯的一家高檔餐廳中誕生;國內(nèi)于2002年3月份方有一例高檔的餐館在上海露面,開中國餐飲管理真正數(shù)字化之先河,
26、在餐飲業(yè)轟動一時。自此,點菜系統(tǒng)市場上豪杰并起,全面促進了餐飲業(yè)信息化管理的普及和發(fā)展。</p><p> 目前,國內(nèi)已經(jīng)有不少公司開發(fā)出電子點菜系統(tǒng),例如上海工理電子有限公司的點菜通、餐飲通等,北京辰森計算機系統(tǒng)有限公司的手持點菜寶等。有些大型的餐飲企業(yè)已經(jīng)采用了這兩個公司的產(chǎn)品,例如,花雨大酒店、上海美林閣等采用了上海工理電子有限公司的點菜通或餐飲通;向陽漁港集團、中國全聚集團、四川文杏大酒樓則采用了北京辰
27、森計算機系統(tǒng)有限公司的手持點菜系統(tǒng)。但是由于成本等原因使電子點菜系統(tǒng)的餐館還比較少,市場需求很大。隨著技術(shù)的進步及餐飲業(yè)的激烈競爭,電子點菜系統(tǒng)將會越來越普遍,并越做越好。</p><p> 市場上出現(xiàn)的點菜系統(tǒng)都是作為餐廳信息化管理系統(tǒng)的一部分出現(xiàn)的,它們除了實現(xiàn)基本的點菜功能外,為了便于客戶及管理者的使用,還添加了許多其他的功能,例如,查詢當(dāng)前餐館的資源使用情況,記錄營業(yè)歷史,當(dāng)前工作狀態(tài)等。由此可見,開發(fā)
28、餐廳點菜系統(tǒng)具有重大的意義。首先,提高運營效率與降低運營成本,使用餐廳點菜系統(tǒng)可以加快點菜速度,減少人力資源的投入,避免跑、冒、漏;其次,提升餐廳品牌與形象,餐廳點菜系統(tǒng)是一個高科技產(chǎn)品,它代替?zhèn)鹘y(tǒng)的紙筆式點菜方式給人一種高貴的感覺;最后,營造一個安靜、舒服的就餐環(huán)境,傳統(tǒng)的餐廳點菜方式在某些環(huán)節(jié)中出現(xiàn)大聲喧嘩的場面,餐廳點菜系統(tǒng)則可以避免這類情況的發(fā)生。</p><p> 如今開源的嵌入式Linux操作系統(tǒng)已
29、經(jīng)發(fā)展的非常成熟,其性能并不亞于很多商業(yè)操作系統(tǒng),而且,它支持的上層軟件非常多,數(shù)據(jù)庫方面的有MySQL、Sqlite等,用戶圖形界面系統(tǒng)有Qt、MiniGUI和Microwindows等。因此,構(gòu)造一個基于嵌入式Linux的點菜系統(tǒng)在技術(shù)上來說已經(jīng)不是困難的事。</p><p> 1.3 論文研究內(nèi)容</p><p> 本文設(shè)計并實現(xiàn)了一個功能簡單的餐廳點菜系統(tǒng),基于該系統(tǒng)可以容易過
30、渡到實用的點菜系統(tǒng)。在該系統(tǒng)的實現(xiàn)過程中設(shè)計到許多技術(shù),其中主要有嵌入式技術(shù)、數(shù)據(jù)庫技術(shù)、用戶圖形界面編程技術(shù)等。</p><p> 餐廳點菜系統(tǒng)一般都涉及很多數(shù)據(jù),而且還要對數(shù)據(jù)進行各種處理,因而絕大部分餐廳點菜系統(tǒng)都用數(shù)據(jù)庫管理系統(tǒng)來管理數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)一般依賴與某種操作系統(tǒng),因此,也要選擇一個合適的操作系統(tǒng)。另外,為了方便用戶的使用,還要設(shè)計一個人性化的圖形界面。餐廳點菜系統(tǒng)中,管理數(shù)據(jù)的地方與使用數(shù)
31、據(jù)的地方往往不在同一個站點上,需要用到計算機網(wǎng)絡(luò)將二者聯(lián)系起來。在本文設(shè)計的系統(tǒng)中使用了MySQL來管理數(shù)據(jù),操作系統(tǒng)選用了Linux,用戶圖形界面引入了Qt。</p><p> 本課題通過研究現(xiàn)有的電子點菜系統(tǒng)的解決方案,以當(dāng)代廣泛應(yīng)用的Linux系統(tǒng)、Qt圖形界面、SQLite數(shù)據(jù)庫、系統(tǒng)支持的TCP/IP網(wǎng)絡(luò)通信協(xié)議來實現(xiàn)的點菜系統(tǒng)的終端。具體包括以下內(nèi)容:</p><p> 1
32、.Linux系統(tǒng)開發(fā)平臺的構(gòu)建:使用是全球應(yīng)用最廣泛的Red Hat Linux,建立基本的開發(fā)環(huán)境,建立編譯工具,安裝用于程序開發(fā)的Qt,用于數(shù)據(jù)管理的SQLite3。</p><p> 2.點菜終端程序設(shè)計:首先利用Qt設(shè)計器規(guī)劃點菜終端的程序的大致界面,然后遵循Qt編程一般規(guī)則編寫代碼,主要為主窗口類的實現(xiàn),實現(xiàn)開臺、點菜、加菜、刪菜等功能,并在主程序中添加國際化和中文支持,編譯后進行測試。</p&
33、gt;<p> 3.?dāng)?shù)據(jù)庫的設(shè)計:首先利用Qt設(shè)計器規(guī)劃數(shù)據(jù)庫管理程序的大致界面,然后遵循Qt編程一般規(guī)則編寫代碼,主要為主窗口類的實現(xiàn),數(shù)據(jù)庫的管理功能,包括刪除菜單列表、添加菜單列表,查詢菜單等功能,并在主程序中添加中文支持。</p><p> 第2章 相關(guān)知識概述</p><p> 本系統(tǒng)主要運用到的開發(fā)系統(tǒng)環(huán)境是Linux系統(tǒng),選擇的是RedHat 企業(yè)版5,該
34、系統(tǒng)是采用C/S(客戶端/服務(wù)器)架構(gòu)開發(fā)的,其中運用到的技術(shù)有QT圖形界面的開發(fā)、SQLITE3數(shù)據(jù)庫的開發(fā)及socket編程。</p><p> 2.1 系統(tǒng)開發(fā)環(huán)境</p><p> Linux是一種自由和開放源碼的類Unix操作系統(tǒng)。目前存在著許多不同的Linux,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計算機硬件設(shè)備中,從手機、平板電腦、路由器和視頻游戲控制臺,到
35、臺式計算機、大型機和超級計算機。Linux是一個領(lǐng)先的操作系統(tǒng),世界上運算最快的10臺超級計算機運行的都是Linux操作系統(tǒng)。嚴格來講,Linux這個詞本身只表示Linux內(nèi)核,但實際上人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。</p><p> 1.Linux操作系統(tǒng)概述:Linux操作系統(tǒng)是UNIX操作系統(tǒng)的一種克隆系統(tǒng)。Linux于1991年8
36、月在Usenet新聞組comp.os.minix上正式發(fā)布(Free minx-like kernel sources for 386-AT)。其創(chuàng)始人是林納斯·本納第克特·托瓦茲(Lines Benedict Tornados),出生于芬蘭赫爾辛基市。他畢業(yè)于赫爾辛基大學(xué)計算機科學(xué)系。早期的Linux1.0版本內(nèi)核發(fā)布于1994年3月14日,兩年之后2.0版本發(fā)布,此時,Linux功能已經(jīng)非常強大,只是界面設(shè)計不是
37、很理想。</p><p> Linux被大眾所關(guān)注是在1998年3月,當(dāng)Netscape承諾在GNU計劃的GPL(General Public License,通用公共許可證)的一個修訂版本的基礎(chǔ)上公開Netscape Communicator Internet套件的源代碼的時候。同年7月,世界上最大的兩家關(guān)系數(shù)據(jù)庫廠商Informix和Oracle宣布把他們的數(shù)據(jù)庫產(chǎn)品移植到了Linux上。一個月后,Inte
38、l和Netscape公司購買了Linux發(fā)布商中的領(lǐng)頭羊Red Hat公司的少量股票,專項資金投入了Linux世界。次年,Linux成為了IT市場的年青分子,隨著RedHat和Valium成為上市的Linux公司,Linux得到了軟硬件廠商的投資支持,很快便眾所周知,公眾對Linux的興趣與日俱增,相關(guān)的大眾媒體也蜂擁而至,幾乎每周都有與Linux相關(guān)的消息發(fā)布,此時的Linux已經(jīng)不僅僅是愛好者的玩具了。</p><
39、;p> 如今Linux已經(jīng)是軟件開發(fā)人員的首選開發(fā)環(huán)境,其發(fā)行版超過了三百個,最普遍被使用的發(fā)行版有大約十二個,例如Bantu,RedHat,Defiant,F(xiàn)edora等。通常來講,一個Linux發(fā)行版包括Linux內(nèi)核,將整個軟件安裝到電腦上的一套安裝工具,各種GNU軟件,其他的一些自由軟件,在一些特定的Linux發(fā)行版中也有一些專有軟件。發(fā)行版為許多不同的目的而制作,包括對不同計算機結(jié)構(gòu)的支持,對一個具體區(qū)域或語言的本地化
40、,實時應(yīng)用,和嵌入式系統(tǒng)。Linux主要作為Linux發(fā)行版(通常被稱為"distort")的一部分而使用</p><p> 2. Linux操作系統(tǒng)特點:Linux是一款開放源代碼的操作系統(tǒng)。用戶可以通過任何途徑免費獲得它的源代碼,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。由于它的開放性使無數(shù)程序員積極的參與了Linux的修改、編寫工作,使得Linux吸收了無數(shù)程序員在根據(jù)自己
41、的興趣和靈感對其所做的精華改變,并不斷壯大。</p><p> Linux支持多任務(wù)、多用戶。多任務(wù)使得Linux可以同時獨立運行多個程序而互不影響,為大型的多任務(wù)工程提供保障。多用戶使得各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。</p><p> Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進行操作。它同時也提供了類似W
42、indows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對其進行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。</p><p> Linux提供了先進的網(wǎng)絡(luò)支持。它的網(wǎng)絡(luò)功能和其內(nèi)核緊密相連,用戶可以輕松實現(xiàn)網(wǎng)頁瀏覽、文件傳輸、遠程登陸等網(wǎng)絡(luò)工作。并且可以作為服務(wù)器提供WWW、FTP、E-Mail等服務(wù)。</p><p> Li
43、nux完全運行于保護模式,其中有對讀、寫進行權(quán)限控制、審計跟蹤、核心授權(quán)等技術(shù)。Linux以它較高的穩(wěn)定性在網(wǎng)絡(luò)服務(wù)器上利于不敗之地。</p><p> Linux可以運行在多種硬件平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),業(yè)界歸納為什么Linux嵌入式操作系統(tǒng)發(fā)展如此之快的三大原因是:第一,Linux在嵌入式系統(tǒng)所需的實時性、電源管理等核心技
44、術(shù)不斷發(fā)展,成熟可期。第二,國際標(biāo)準組織OSDL、CELF等,持續(xù)建立嵌入式Linux相關(guān)標(biāo)準,有效解決版本分歧與兼容性問題。第三,業(yè)界主導(dǎo)組織、開發(fā)廠商等不斷推出嵌入式Linux相關(guān)開發(fā)工具、維護系統(tǒng)。2001年1月份發(fā)布的Linux 2.4版內(nèi)核已經(jīng)能夠完全支持Intel 64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,使系統(tǒng)性能大大提高。Linux支持數(shù)十種文件系統(tǒng)格式。普通文件,純文本文件,二進制文件,數(shù)據(jù)
45、格式文件,目錄,連接文件,設(shè)備與設(shè)備文件,塊設(shè)備文件,字符設(shè)備文件,套接字和管道等。采用先進的內(nèi)存管理機制,更加有效的利用物理內(nèi)存。主要有頁面、連續(xù)內(nèi)存區(qū)管理和非連續(xù)存儲區(qū)管理機制。</p><p> 3.Linux的基本思想:Linux的基本思想有兩點,第一,一切都是文件;第二,每個軟件都有確定的用途。其中第一條詳細來講就是系統(tǒng)中的所有都歸結(jié)為一個文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進程等等對于操作系統(tǒng)
46、內(nèi)核而言,都被視為擁有各自特性或類型的文件。至于說Linux是基于Unix的,很大程度上也是因為這兩者的基本思想十分相近。</p><p><b> 2.2 系統(tǒng)的結(jié)構(gòu)</b></p><p> 傳統(tǒng)的C/S體系結(jié)構(gòu)常采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應(yīng)用中無論是Client端還是Server端都還需要特定的軟件支持。由于沒能提供用戶真正期望
47、的開放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代快,已經(jīng)很難適應(yīng)百臺電腦以上局域網(wǎng)用戶同時使用。而且代價高,效率低。</p><p> 目前,C/S 結(jié)構(gòu)的基本原則是將計算機任務(wù)分解成多個子任務(wù),由多臺計算機分工完成,即采用“功能分布”原則??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務(wù)器端完成DBMS的核心功能。這種客戶請求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的
48、計算機應(yīng)用模式。</p><p> C/S結(jié)構(gòu)的優(yōu)點是能充分發(fā)揮出客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點就是客戶端響應(yīng)速度非???。缺點主要反映以下3個方面: </p><p> 1.只適用于局域網(wǎng)。而隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動辦公和分布式辦公越來越普及,這需要我們的系統(tǒng)具有擴展性。這種方式遠程訪問需要專門的技術(shù),同時要對系統(tǒng)進行專門的設(shè)計來處理分布式
49、的數(shù)據(jù)。 </p><p> 2.客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。特別是有很多分部或?qū)Yu店的情況,不是工作量的問題,而是路程的問題。還有,系統(tǒng)軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。</p><p> 3.對客戶端的操作系統(tǒng)一般也會有限制??赡苓m應(yīng)于Win98, 但不能用于wi
50、n2000或Windows XP。或者不適用于微軟新的操作系統(tǒng)等等,更不用說Linux、Unix等。</p><p> 2.3 應(yīng)用的相關(guān)技術(shù)</p><p> 本系統(tǒng)應(yīng)用的相關(guān)技術(shù)主要有QT的圖形界面的開發(fā)、數(shù)據(jù)庫的SQLITE的應(yīng)用、還有運用到了TCP/IP協(xié)議。</p><p> 2.3.1 QT圖形界面</p><p> 1.
51、Qt概念:Qt是諾基亞開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。QT是完全面向?qū)ο蟮?,很容易擴展,并且允許真正地組件編程。所以說QT的進步發(fā)展將會推進諾基亞桌面等方面的大幅度進步。</p><p> 2.Qt的特點:Qt是一款面向?qū)ο蟮膱D形界面開發(fā)工具。Qt 的良好封裝機制使得Qt的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常 方便
52、的。Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件之間的協(xié)同工作變得十分簡單。它具有豐富的API。Qt包括多達 250 個以上的 C++ 類,還提供基于模板的 collections,serialization,file,I/O device,directory management, date/time 類。甚至還包括正則表達式的處理 功能。Qt支持 2D/3D 圖形渲染,支持 O
53、penGL。真正使得 Qt 在自由軟件界的眾多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脫穎而出的還是基于 Qt 的重量級軟件 KDE。</p><p> 3.QtCreator:在發(fā)布Qt 4.6 的同時,作為Qt開發(fā)跨平臺 IDE 的 Qt Creator 也發(fā)布了更新版本。Qt Creator 1.3 和 Qt 4.6共同構(gòu)成的 Qt SDK,包含了開發(fā)跨
54、平臺應(yīng)用程序所需的全部功能。</p><p> Qt Creator是一個用于Qt開發(fā)的輕量級跨平臺集成開發(fā)環(huán)境。Qt Creator可帶來兩大關(guān)鍵益處:提供首個專為支持跨平臺開發(fā)而設(shè)計的集成開發(fā)環(huán)境 (IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。</p><p> Qt Creator包含了一套用于創(chuàng)建和測試基于Qt應(yīng)用程序的高效工具,包括:一個高級的C++代碼編輯器
55、 上下文感知幫助系統(tǒng) 可視化調(diào)試器 源代碼管理 項目和構(gòu)建管理工具。</p><p> 2.3.2 SQLite數(shù)據(jù)庫</p><p> SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等
56、等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月,至今已經(jīng)有10個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。SQLite的具有以下特性:</p><p> 1.ACID事務(wù); &
57、lt;/p><p> 2.零配置–無需安裝和管理配置; </p><p> 3.儲存在單一磁盤文件中的一個完整的數(shù)據(jù)庫; </p><p> 4.數(shù)據(jù)庫文件可以在不同字節(jié)順序的機器間自由的共享; </p><p> 5.支持數(shù)據(jù)庫大小至2TB; </p><p> 6.足夠小,大致3萬行C代碼, 25
58、0K; </p><p> 7.比一些流行的數(shù)據(jù)庫在大部分普通數(shù)據(jù)庫操作要快; </p><p> 8.簡單,輕松的API; </p><p> 9.包含TCL綁定,同時通過Wrapper支持其他語言的綁定。; </p><p> 10.良好注釋的源代碼,并且有著90%以上的測試覆蓋率; </p><p
59、> 11.獨立:沒有額外依賴; </p><p> 12.Source完全的Open,你可以用于任何用途, 包括出售它; </p><p> 13.支持多種開發(fā)語言,C,PHP, Perl, Java, C#,Python。</p><p> 基于SQLITE有諸多特性,我在設(shè)計該點菜系統(tǒng)時應(yīng)用的數(shù)據(jù)庫選擇了它,它雖然很小巧,但是支持的SQL語句
60、不會遜色于其他開源數(shù)據(jù)庫,同時還支持事務(wù)處理功能等待。</p><p> 2.3.3 Linux系統(tǒng)支配的TCP/IP協(xié)議</p><p> TCP/IP 是一個網(wǎng)絡(luò)協(xié)議族的名字,協(xié)議是所有軟件產(chǎn)品必須遵守的、能夠保證各種軟件產(chǎn)品能夠正確通訊的規(guī)則。協(xié)議還定義了每一部分數(shù)據(jù)塊怎樣管理所傳輸?shù)臄?shù)據(jù)。精確一點說,一個協(xié)議定義了兩個應(yīng)用程序或是計算機之間能夠進行互相通訊,對于其中的每一個(應(yīng)
61、用程序或計算機)都保證使用同樣的標(biāo)準。</p><p> TCP/IP 代表傳輸控制協(xié)議/網(wǎng)絡(luò)協(xié)議,它是做為軟件的網(wǎng)絡(luò)組成部件而設(shè)計的。每個TCP/IP 的協(xié)議都有他專門的工作,比如萬維網(wǎng)(WWW),發(fā)送電子郵件(E-mail),傳輸文件(Ftp),提供遠程登陸服務(wù)等。從協(xié)議分層模型方面來講,TCP/IP由四個層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。 TCP/IP協(xié)議并不完全符合OSI的七層參考模型。
62、OSI是傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。由于ARPNET的設(shè)計者注重的是網(wǎng)絡(luò)互聯(lián),允許通信子網(wǎng)(網(wǎng)絡(luò)接口層)采用已有的或是將來有的各種協(xié)議,所以這個層次中沒有提供專門
63、的協(xié)議。實際上,TCP/IP協(xié)議可以通過網(wǎng)絡(luò)接口層連接到任何網(wǎng)絡(luò)上,例如X.25交換網(wǎng)或IEEE802局域網(wǎng)。TCP/IP協(xié)議的具有以下3個特點:</p><p> 1.對數(shù)據(jù)可靠性的要求:對數(shù)據(jù)要求高可靠性的應(yīng)用需選擇TCP協(xié)議,如驗證、密碼字段的傳送都是不允許出錯的,而對數(shù)據(jù)的可靠性要求不那么高的應(yīng)用可選擇UDP傳送。</p><p> 2.應(yīng)用的實時性:TCP協(xié)議在傳送過程中要使
64、用三次握手、重傳確認等手段來保證數(shù)據(jù)傳輸?shù)目煽啃?。使用TCP協(xié)議會有較大的時延,因此不適合對實時性要求較高的應(yīng)用,如VOIP、視頻監(jiān)控等。相反,UDP協(xié)議則在這些應(yīng)用中能發(fā)揮很好的作用。</p><p> 3.網(wǎng)絡(luò)的可靠性:由于TCP協(xié)議的提出主要是解決網(wǎng)絡(luò)的可靠性問題,它通過各種機制來減少錯誤發(fā)生的概率。因此,在網(wǎng)絡(luò)狀況不是很好的情況下需選用TCP協(xié)議(如在廣域網(wǎng)等),但是若在網(wǎng)絡(luò)狀況很好的情況下(如局域網(wǎng)等
65、)就不需要再采用TCP協(xié)議,而建議選擇UDP協(xié)議來減少網(wǎng)絡(luò)負荷。</p><p> TCP/IP協(xié)議的運作機制是IP層負責(zé)接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP層,相反,IP層也把從TCP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接
66、收它的主機的地址(目的地址)。</p><p> 高層的TCP服務(wù)在接收數(shù)據(jù)包時,通常假設(shè)包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務(wù)的認證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個有效的主機發(fā)送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務(wù)來說,使用了該選項的IP包好像是從路徑上的最后一個系統(tǒng)傳遞過來的,而不
67、是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進行平常是被禁止的連接。許多依靠IP源地址做確認的服務(wù)將產(chǎn)生問題并且會被非法入侵。</p><p> TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的所以只能用于點對點的通訊。TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認”技術(shù)來實現(xiàn)傳輸?shù)目煽啃?。TCP還采用一種稱為“滑動窗口
68、”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發(fā)送方的發(fā)送速度。 </p><p> 如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向上傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送
69、回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP傳送有關(guān)單個主機的信息。</p><p> 基于TCP/IP有諸多特點,它的數(shù)據(jù)可靠性剛好符合本系統(tǒng)設(shè)計的要求數(shù)據(jù)的安全性,同時它具有很好
70、的網(wǎng)絡(luò)的安全性,保證餐廳點菜系統(tǒng)能夠很好的運行,所以我在設(shè)計該系統(tǒng)的時候選擇了該協(xié)議來實現(xiàn)通信。</p><p> TCP/IP協(xié)議的實現(xiàn)的流程圖如下圖2-1所示。</p><p> 圖 2-1 TCP/IP協(xié)議流程圖 </p><p><b> 2.4本章小結(jié)</b></p><p> 本章主要詳細介紹了該點菜
71、系統(tǒng)應(yīng)用的相關(guān)的技術(shù),主要介紹了開發(fā)的系統(tǒng)環(huán)境Linux系統(tǒng)和用到的數(shù)據(jù)庫SQLITE3,運用到的圖形界面開發(fā)工具QT,運用到的網(wǎng)絡(luò)技術(shù)TCP/IP協(xié)議等概念,并且介紹了相關(guān)技術(shù)的特點。</p><p> 第3章 系統(tǒng)分析及設(shè)計</p><p><b> 3.1系統(tǒng)需求分析</b></p><p> 隨著局域網(wǎng)技術(shù)與電子商務(wù)的深入發(fā)展,餐
72、廳自助點菜系統(tǒng)也在國內(nèi)外蓬勃發(fā)展,并日益深入到人們的生活當(dāng)中。餐廳自助自助點菜在國外早已成為一種時尚。餐廳每日消費人數(shù)的巨大,自助點菜是一種必不可少的工具,而國內(nèi)的點菜系統(tǒng)還不成熟 ,所以本課題將設(shè)計實現(xiàn)一個餐廳自助點菜系統(tǒng)。本系統(tǒng)根據(jù)一般餐廳的需要,分析本系統(tǒng)的業(yè)務(wù)流程如下:</p><p> 1.服務(wù)器負責(zé)前臺、廚房、數(shù)據(jù)庫管理、點菜終端的通信;</p><p> 2.點菜終端從數(shù)
73、據(jù)庫獲取菜品信息;</p><p> 3.前臺負責(zé)查詢餐臺的空閑狀態(tài)和結(jié)賬并打印賬單;</p><p> 4.顧客點菜,并填入數(shù)據(jù)庫;</p><p> 5.服務(wù)器接受點菜信息并發(fā)送給后廚;</p><p> 6.后廚開始按照菜單信息做菜;</p><p> 7.用戶到前臺結(jié)賬;</p><
74、;p> 8.結(jié)果被顯示給用戶,顧客結(jié)賬。</p><p><b> 3.1.1功能需求</b></p><p> 用戶在客戶端點菜,通過局域網(wǎng)傳送到服務(wù)器,后廚接受從服務(wù)器接受到菜單信息,客戶在前臺結(jié)賬。同時有個數(shù)據(jù)庫管理界面可以實現(xiàn)菜品信息的管理。根據(jù)系統(tǒng)功能的需求,分析了所需要的系統(tǒng)總功能結(jié)構(gòu)如表3-1所示。</p><p>
75、 表 3-1 功能需求</p><p><b> 3.1.2性能需求</b></p><p> 本系統(tǒng)性能要求主要是以下5個方面。</p><p> 1.系統(tǒng)處理的準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足信息處理的需求。&
76、lt;/p><p> 由于餐廳自助點菜系統(tǒng)客戶端的點菜對于整個系統(tǒng)的功能和性能完成舉足輕重。作為客戶自助點菜的模塊,其準確性很大程度上決定了系統(tǒng)的成敗。在系開發(fā)過程中,必須保證系統(tǒng)的準確性。</p><p> 2.系統(tǒng)的開放性和系統(tǒng)的可擴充性:餐廳自助點菜系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴充性。例如新增菜品,會員充值等。所有這些,都要求系統(tǒng)提供足夠的手段進行功能的調(diào)整和擴充。而要實現(xiàn)
77、這一點,應(yīng)通過系統(tǒng)的開放性來完成。</p><p> 3.系統(tǒng)的易用性:餐廳自助點菜系統(tǒng)是直接面對用戶的,而用戶往往對計算機并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面。</p><p> 4.系統(tǒng)的標(biāo)準性:系統(tǒng)在設(shè)計開發(fā)使用過程中都要涉及到很多計算機硬件、軟件。所有這些都要符合主流國際、國家
78、和行業(yè)標(biāo)準。例如在開發(fā)中使用的操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、開發(fā)工具都必須符合通用標(biāo)準。如規(guī)范的數(shù)據(jù)庫操縱界面、作為業(yè)界標(biāo)準的TCP/IP網(wǎng)絡(luò)協(xié)議及ISO9002標(biāo)準所要求的質(zhì)量規(guī)范等;同時,在自主開發(fā)本系統(tǒng)時,要進行良好的設(shè)計工作,制訂行之有效的軟件工程規(guī)范,保證代碼的易讀性、可操作性和可移植性。</p><p> 5.系統(tǒng)的先進性:目前計算系統(tǒng)的技術(shù)發(fā)展相當(dāng)快,做為餐廳管理系統(tǒng)工程,應(yīng)該在系統(tǒng)的生命周期盡量做到系統(tǒng)的
79、先進。這一方面通過系統(tǒng)的開放性和可擴充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計和開發(fā)的過程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當(dāng)前主流并先進且有良好發(fā)展前途的工具。</p><p><b> 3.2系統(tǒng)開發(fā)環(huán)境</b></p><p> 本系統(tǒng)是基于Linux系統(tǒng)中Qt來設(shè)計前臺應(yīng)用系統(tǒng)的可視化界面,而后臺部分數(shù)據(jù)庫的實現(xiàn)采用SQLite3來構(gòu)建。Linux系
80、統(tǒng)采用了可視化的程序設(shè)計,具有面向?qū)ο蟮目梢暬O(shè)計工具,結(jié)構(gòu)化的程序設(shè)計語言,提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境,支持多種數(shù)據(jù)庫系統(tǒng)的訪問,Linux系統(tǒng)中的Qt提供了可視化的界面。用QtCreator可以動態(tài)的調(diào)整用戶風(fēng)格圖形界面,直到滿意為止。</p><p> 3.3系統(tǒng)總體功能模塊</p><p> 根據(jù)對餐廳點菜系統(tǒng)需要實現(xiàn)的功能進行需求分析,將本系統(tǒng)的前臺劃分為前臺管理,
81、點菜管理,后廚管理,數(shù)據(jù)庫管理,服務(wù)器五個功能模塊;系統(tǒng)功能模塊如圖3-1所示。查詢</p><p> 圖3-1 系統(tǒng)總功能模塊</p><p> 餐廳點菜系統(tǒng)的功能模塊概要描述如表3-2所示。</p><p> 表3-2 功能模塊描述表</p><p> 1.服務(wù)器功能:服務(wù)器功能是整個系統(tǒng)的傳輸通道,是系統(tǒng)的重中之重。當(dāng)顧客點菜客
82、戶端與服務(wù)器連接后,可通過此將點菜信息發(fā)送到后廚。后廚和服務(wù)器連接后,可以將做完的菜發(fā)送到服務(wù)器,服務(wù)器將信息發(fā)送到點菜客戶端和前臺。</p><p> 2.前臺終端管理:前臺是本系統(tǒng)重要組成部分之一。本模塊可以查詢當(dāng)前餐臺的空閑信息、接收服務(wù)器發(fā)送過來顧客點菜的消費菜單信息,并打印菜單給客戶。細分的功能模塊如圖3-2。</p><p> 圖3-2 前臺終端模塊</p>
83、<p> 3.點菜終端:點菜終端是本系統(tǒng)給顧客的使用的,是本系統(tǒng)的重要組成部分。本模塊將用戶點菜單菜肴發(fā)送到服務(wù)器,并將數(shù)據(jù)信息添加到數(shù)據(jù)庫。細分的功能模塊如圖3-3所示。</p><p> 選擇菜肴功能是將用戶選擇的菜肴存與表中,用戶可以添加與刪除。</p><p> 點菜信息發(fā)送功能是將用戶點菜信息以結(jié)構(gòu)體的形式發(fā)送到服務(wù)器,并添加到相應(yīng)的數(shù)據(jù)庫中。</p>
84、<p> 圖3-3 點菜終端模塊</p><p> 4.后廚終端:后廚終端從服務(wù)器接收到顧客點的菜肴,可以繼續(xù)接受顧客加菜的菜單、按照菜單做菜,并可以詢問菜是否需要退菜。細分功能如圖3-4所示。</p><p> 圖3-4 后廚終端模塊</p><p> 5.?dāng)?shù)據(jù)庫管理:數(shù)據(jù)庫管理管理菜單數(shù)據(jù)庫信息,包括刪除菜單列表、添加菜單列表,查詢菜單等功
85、能。細分數(shù)據(jù)庫管理功能模塊如圖3-5所示。</p><p> 刪除菜單列表功能是將刪除不做的菜肴信息。</p><p> 添加菜單列表功能是允許可以添加新的菜肴信息。</p><p> 查詢菜單功能是查詢是否有哪道菜肴信息。</p><p> 圖3-5 數(shù)據(jù)庫管理模塊</p><p> 3. 4數(shù)據(jù)庫結(jié)構(gòu)設(shè)計
86、 </p><p> 根據(jù)對本系統(tǒng)數(shù)據(jù)的分析,系統(tǒng)的數(shù)據(jù)庫設(shè)計了一個表:菜肴信息表。該表用于存放菜肴的信息,包括菜肴的名字、菜肴的類別、菜肴的價格、菜肴的描述。</p><p><b> 3.5本章小結(jié)</b></p><p> 本章主要對該系統(tǒng)設(shè)計進行了需求分析、功能分析,最后做出詳細設(shè)計方案。設(shè)計中主要將餐廳點菜系統(tǒng)分為五個模塊
87、,每個模塊的需求和實現(xiàn)的功能進行了闡述和詳細設(shè)計過程分析。</p><p><b> 第4章 軟件設(shè)計</b></p><p> 軟件采用面向?qū)ο竦脑O(shè)計方法,考慮到對計算效率的要求,采用C++編程語言,開發(fā)環(huán)境為Linux RedHat 企業(yè)版5,服務(wù)器編譯工具為gcc,其余編程工具為g++編譯器,采用C++標(biāo)準庫函數(shù)和QT類庫。</p><p
88、> 4.1 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計</p><p> 本系統(tǒng)數(shù)據(jù)庫中建立了一張菜單信息表,該表詳細結(jié)構(gòu)如圖表4-1所示。</p><p> 表4-1 菜單信息表</p><p> 4.2 各功能模塊的詳細設(shè)計</p><p> 本系統(tǒng)有五個模塊組成,分別為server(服務(wù)器),前臺管理模塊,顧客點菜管理模塊,后廚管理模塊,數(shù)據(jù)庫管
89、理模塊等。</p><p> 4.2.1 服務(wù)器管理模塊</p><p> 服務(wù)器模塊主要是用C語言編寫的,主要是為其他模塊間的通信。其中主要運用到TCP/IP協(xié)議通信的。運用到了TCP/IP協(xié)議函數(shù),首先socket()函數(shù)獲得套接字描述符,然后用bind()函數(shù)將描述符捆綁到IP上,監(jiān)聽listen()函數(shù),其中可以設(shè)置客戶端的個數(shù)。然后就是等待客戶端的請求連接用accept()函
90、數(shù),其中運用到了線程,創(chuàng)建線程函數(shù)pthread_create()用來處理客戶的的請求。主要實現(xiàn)代碼如下: </p><p> if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)</p><p><b> {</b></p><p> perror("-------Socket
91、error!-------");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> /* 服務(wù)器端填充 sockaddr_in結(jié)構(gòu) */</p><p> bzero(&server_addr,sizeof(serv
92、er_addr));</p><p> server_addr.sin_family = AF_INET;</p><p> server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");</p><p> server_addr.sin_port = htons(portnumber);<
93、/p><p> /* 捆綁sockfd描述符到IP地址 */</p><p> if(bind(sockfd,(struct sockaddr*)&server_addr,sizeof(server_addr)) == -1)</p><p><b> {</b></p><p> perror("
94、-------Bind error!-------");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> /* 設(shè)置允許連接的最大客戶端數(shù) */</p><p> if(listen(sockfd,10) == -1)&l
95、t;/p><p><b> {</b></p><p> perror("-------Listen error!-------");</p><p><b> exit(0);</b></p><p><b> }</b></p><
96、;p> address_size = sizeof(client_addr);</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> int i=0;</b></p><p> /* 服務(wù)器阻塞,等待
97、客戶程序建立連接 */</p><p> if((accefd = accept(sockfd,(struct sockaddr*)&client_addr,</p><p> &address_size)) == -1)</p><p><b> {</b></p><p> perror(&q
98、uot;-------Accept error!-------");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> sock_accept[i] =accefd;</p><p><b> i++;</b
99、></p><p> /*創(chuàng)建線程,處理客戶端請求*/</p><p> pthread_t tid;</p><p> pthread_create(&tid,0,run,&accefd);</p><p> /*服務(wù)器主程序返回繼續(xù)等待下一次客戶端連接*/</p><p><b&
100、gt; }</b></p><p> close(sockfd);</p><p> 4.2.2 前臺管理模塊 </p><p> 前臺管理模塊主要查看餐臺空閑信息,和打印賬單兩部分組成。餐臺空閑信息主要是根據(jù)Button組件文本顯示判斷的是否是空閑狀態(tài),空閑時,當(dāng)顧客來時如空閑點擊按鈕就connect()觸發(fā)了槽函數(shù)table1(),其中槽
101、函數(shù)中用到Button類的成員函數(shù)setText(),將button的文本信息設(shè)置為“1號有人”。同樣,當(dāng)顧客結(jié)賬時點擊按鈕觸發(fā)槽函數(shù)打印賬單給顧客查看,同時將Button的文本信息設(shè)置為“2人桌”,賬單是用QListWidget類來顯示。</p><p><b> 主要實現(xiàn)代碼如下:</b></p><p> void foregroundDialog::tab
102、le1()</p><p><b> {</b></p><p> QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));</p><p> static bool a = true;</p><p><b> if
103、(a)</b></p><p><b> {</b></p><p> button1->setText(tr("1號有人"));</p><p> a = false;</p><p><b> }</b></p><p>&l
104、t;b> else//結(jié)帳</b></p><p><b> {</b></p><p><b> shou();</b></p><p><b> int i=0;</b></p><p> double sum=0;</p><
105、;p> //將客人消費情況添加到賬單列表</p><p> QListWidget *list = new QListWidget;</p><p> QString str1 = QString(tr("菜名 價格 數(shù)量"));</p><p> list->insertItem(0,str1);<
106、;/p><p> while(menu1[i].num!=0)</p><p><b> {</b></p><p> char a[50];</p><p> memset(a,0,sizeof(a));</p><p> sprintf(a,"%d %d ",
107、menu1[i].price,menu1[i].num);</p><p> list->insertItem(i+1,QString(tr(menu1[i].name)+tr(" ")+tr(a)));</p><p> sum+=menu1[i].price*menu1[i].num;</p><p><b> i+
108、+;</b></p><p><b> }</b></p><p> QString a;</p><p> char af[10];</p><p> sprintf(af,"%d",menu1[0].buff[1]);</p><p> a.appen
109、d(QString("%1").arg(sum));</p><p> QString str2 = QString(tr("桌號:")+tr(af)+tr("共計"));</p><p> list->insertItem(i+1,str2+a);</p><p> list->show
110、();</p><p> //添加當(dāng)前時間到賬單</p><p> time_t lt;</p><p> lt =time(NULL);</p><p> char aa[80];</p><p> memset(aa,0,sizeof(aa));</p><p> sprintf
111、(aa,"%s",ctime(<));</p><p> list->insertItem(i+2,QString(tr(aa)));</p><p> button1->setText(tr("1號(2人桌)"));</p><p><b> a = true;</b>&l
112、t;/p><p><b> }</b></p><p> 4.2.3 顧客點菜端管理模塊</p><p> 點菜端是顧客從前臺獲知該餐桌空閑,則開臺,并開始點菜,點菜界面可以根據(jù)菜譜信息點擊選擇按鈕,如果需要刪除可以點擊刪除按鈕,當(dāng)確認后點擊提交按鈕就將顧客點菜信息發(fā)送到服務(wù)器,服務(wù)器并發(fā)送到后廚。</p><p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于嵌入式linux的無線點菜系統(tǒng)設(shè)計
- 基于嵌入式linux的無線點菜系統(tǒng)設(shè)計.pdf
- 嵌入式畢業(yè)設(shè)計論文基于arm的嵌入式gui點菜系統(tǒng)
- 基于linux的嵌入式點菜系統(tǒng)終端.pdf
- 畢業(yè)設(shè)計--餐廳點菜系統(tǒng)(含外文翻譯)
- 基于嵌入式Linux的點菜系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于嵌入式的無線點菜系統(tǒng)課程設(shè)計
- 嵌入式系統(tǒng)課程設(shè)計--基于arm 的電子點菜系統(tǒng)
- 嵌入式無線點菜系統(tǒng)的實現(xiàn)
- 畢業(yè)設(shè)計外文翻譯--嵌入式_linux_應(yīng)用概述
- 基于ARM嵌入式無線點菜系統(tǒng)終端的研究與設(shè)計.pdf
- 基于嵌入式前臺收銀點菜系統(tǒng)的研究.pdf
- 電子點菜系統(tǒng)畢業(yè)論文(含外文翻譯)
- 外文翻譯---基于linux的嵌入式采集系統(tǒng)
- 基于無線通信的點菜系統(tǒng)設(shè)計【畢業(yè)設(shè)計】
- 設(shè)計論文—基于linux系統(tǒng)下開發(fā)的餐廳點菜系統(tǒng)
- 畢業(yè)設(shè)計--基于嵌入式linux公交漢字顯示系統(tǒng)的設(shè)計與實現(xiàn)
- 基于arm和linux的嵌入式數(shù)碼相框系統(tǒng)設(shè)計-畢業(yè)設(shè)計論文
- 基于fpga的嵌入式系統(tǒng)設(shè)計外文翻譯
- 基于fpga的嵌入式系統(tǒng)設(shè)計外文翻譯
評論
0/150
提交評論