畢業(yè)設計--基于linux嵌入式點菜系統的設計(含外文翻譯)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  學士學位論文</b></p><p>  題 目: 基于Linux餐廳點菜系統的設計與開發(fā)</p><p>  姓 名: *** </p><p>  分  院: 工學院 </p>&l

2、t;p>  ?! I(yè): 電子信息工程 </p><p>  學 號: </p><p>  指導教師: *** </p><p>  二0 年 月 日</p><p>

3、;  畢業(yè)設計(論文)任務書</p><p><b>  摘 要</b></p><p>  中國是舉世聞名的美食大國,擁有五千年的飲食文化和巨大的餐飲市場。隨著人民生活水平和生活方式的轉變,漸漸的人們發(fā)現餐飲業(yè)具有巨大的投資市場。中國市場的競爭尤為激烈,而且隨著餐飲業(yè)的迅速擴展,其中所暴露的問題也是不容忽視的,如餐飲業(yè)管理人才的專業(yè)化程度不夠導致內供不足,餐廳缺少

4、一套現代企業(yè)制度和監(jiān)督管理體制,服務管理應變能力差,缺乏先進的信息工具等。所以,餐飲業(yè)管理從觀念意識、經營思想和管理水平還有待專業(yè)化。因此,開發(fā)實用型點菜系統是餐飲業(yè)發(fā)展的必然趨勢。</p><p>  本系統是基于Linux系統下開發(fā)的餐廳點菜系統,運用服務器/客戶端開發(fā)模式,采用的是RedHat企業(yè)版5,圖形界面功能由QT類開發(fā),后臺數據庫采用SQLITE3,網絡編程使用的協議是Linux支配的Socket

5、TCP/IP 協議。前臺劃分為前臺管理,點菜管理,后廚管理,數據庫管理,服務器五個功能模塊。</p><p>  本系統的主要作業(yè)流程,從顧客在前臺查看餐桌空閑空閑狀態(tài),入桌點菜,可以加菜、刪菜等,提交菜單,后廚按照菜單做菜,顧客到前臺結賬,前臺打印賬單,顧客結賬,實現了開臺、點菜、加菜、刪菜等系統設計功能。</p><p>  關鍵詞:餐廳點菜系統;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 國內外綜述1</p><p>  1.3 論文研究內容2</p><p>  第2章 相關知識概述3</p><p>  2.1 系統開發(fā)環(huán)境3</p><p>  2.2 系統的結構4</p><p>  2.3 應用的相關技術5</p><p>

15、  2.3.1 QT圖形界面5</p><p>  2.3.2 SQLite數據庫5</p><p>  2.3.3 Linux系統支配的TCP/IP協議6</p><p><b>  2.4本章小結8</b></p><p>  第3章 系統分析及設計9</p><p>  3.1系統

16、需求分析9</p><p>  3.1.1功能需求9</p><p>  3.1.2性能需求9</p><p>  3.2系統開發(fā)環(huán)境10</p><p>  3.3系統總體功能模塊10</p><p>  3. 4數據庫結構設計12</p><p>  3.5本章小結12<

17、/p><p>  第4章 軟件設計13</p><p>  4.1 數據庫表結構設計13</p><p>  4.2 各功能模塊的詳細設計13</p><p>  4.2.1 服務器管理模塊13</p><p>  4.2.2 前臺管理模塊14</p><p>  4.2.3 顧客點菜端管

18、理模塊15</p><p>  4.2.4 后廚管理系統20</p><p>  4.2.5 數據庫管理模塊20</p><p>  4.3本章小結22</p><p>  第5章 系統測試23</p><p>  5.1測試方法與原則23</p><p>  5.1.1 黑盒測試

19、23</p><p>  5.1.2 測試基本原則23</p><p>  5.2 系統測試23</p><p>  5.3 測試小結26</p><p><b>  結 論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è)多元化的經營現狀,經營的特色、規(guī)模、出品這些因素的不同,帶給餐飲企業(yè)的則是不同的標準和工作流程和方法,面對著這解決方法不一的情況,對人才的專業(yè)化程度的要求也相應地提高了,然而在國內市場上,餐飲業(yè)人才供應不足,在這樣的兩難情況下,信息系統得出現暫緩了這一緊張局面。</p><p>  首先,餐飲管理信息系統不是單純的用于結帳計算的工具,它有著科學的、標準的管理體系,它

22、是通過對目前餐飲市場的具體情況科學的調研分析后設計而成的,它能夠針對中餐因其菜品的多樣化和特色化的服務很難實現標準化管理,使中餐企業(yè)的成本控制很難實現這些問題給與解決。</p><p>  其次,餐飲管理信息系統能夠給出具體的相應的符合企業(yè)自身要求的較科學的標準化管理流程,這暫時緩解了專業(yè)人才的需求,通過使用該系統就能完成專業(yè)人員所要做的事。</p><p>  最后,餐飲管理信息系統可以

23、針對企業(yè)的經營現狀而做出科學的分析,使得企業(yè)對市場的應變能力得到了提高,從而通過餐飲管理信息系統來實現強化管理、降低成本、堵漏節(jié)流等作用。更好的完善企業(yè)的經營管理,提高企業(yè)自身的競爭實力。</p><p>  另一方面,基于ARM和Linux的嵌入式系統,具有成熟的嵌入式硬件結構和豐富的開放軟件資源,優(yōu)良的性能和廣泛的市場定位,這無疑對開發(fā)工作和學習研究是一個重大幫助;在GUI(圖形用戶界面)的選用上,使用基于C

24、++語言面向對象編程的應用程序開發(fā)軟件庫Qt,它匯集了豐富的C++類提供開發(fā)應用程序用戶界面所需要的全部內容,具有優(yōu)良的跨平臺性能和豐富的API函數及開發(fā)文檔。另外,當前量產的普通PDA和PC機硬件上已經基本滿足點菜需求,使自行研究的專用硬件設備不再具有明顯的成本優(yōu)勢,為此,本課題集合嵌入式Linux和Qt開發(fā)應用等技術,以程序軟件的通用性和易用性為方向,構造能夠方便移植的軟件。提高餐飲業(yè)的服務質量,并為自身研究學習嵌入式系統和GUI應

25、用開發(fā)提供一個良好的平臺。</p><p><b>  1.2 國內外綜述</b></p><p>  餐廳點菜系統代表著當今餐飲業(yè)解決方案中最尖端的領先科技,它集網絡通信技術與移動電腦終端技術與一身,此高端技術應用在餐飲行業(yè)中,即使在美國也是2001年才在洛杉磯的一家高檔餐廳中誕生;國內于2002年3月份方有一例高檔的餐館在上海露面,開中國餐飲管理真正數字化之先河,

26、在餐飲業(yè)轟動一時。自此,點菜系統市場上豪杰并起,全面促進了餐飲業(yè)信息化管理的普及和發(fā)展。</p><p>  目前,國內已經有不少公司開發(fā)出電子點菜系統,例如上海工理電子有限公司的點菜通、餐飲通等,北京辰森計算機系統有限公司的手持點菜寶等。有些大型的餐飲企業(yè)已經采用了這兩個公司的產品,例如,花雨大酒店、上海美林閣等采用了上海工理電子有限公司的點菜通或餐飲通;向陽漁港集團、中國全聚集團、四川文杏大酒樓則采用了北京辰

27、森計算機系統有限公司的手持點菜系統。但是由于成本等原因使電子點菜系統的餐館還比較少,市場需求很大。隨著技術的進步及餐飲業(yè)的激烈競爭,電子點菜系統將會越來越普遍,并越做越好。</p><p>  市場上出現的點菜系統都是作為餐廳信息化管理系統的一部分出現的,它們除了實現基本的點菜功能外,為了便于客戶及管理者的使用,還添加了許多其他的功能,例如,查詢當前餐館的資源使用情況,記錄營業(yè)歷史,當前工作狀態(tài)等。由此可見,開發(fā)

28、餐廳點菜系統具有重大的意義。首先,提高運營效率與降低運營成本,使用餐廳點菜系統可以加快點菜速度,減少人力資源的投入,避免跑、冒、漏;其次,提升餐廳品牌與形象,餐廳點菜系統是一個高科技產品,它代替?zhèn)鹘y的紙筆式點菜方式給人一種高貴的感覺;最后,營造一個安靜、舒服的就餐環(huán)境,傳統的餐廳點菜方式在某些環(huán)節(jié)中出現大聲喧嘩的場面,餐廳點菜系統則可以避免這類情況的發(fā)生。</p><p>  如今開源的嵌入式Linux操作系統已

29、經發(fā)展的非常成熟,其性能并不亞于很多商業(yè)操作系統,而且,它支持的上層軟件非常多,數據庫方面的有MySQL、Sqlite等,用戶圖形界面系統有Qt、MiniGUI和Microwindows等。因此,構造一個基于嵌入式Linux的點菜系統在技術上來說已經不是困難的事。</p><p>  1.3 論文研究內容</p><p>  本文設計并實現了一個功能簡單的餐廳點菜系統,基于該系統可以容易過

30、渡到實用的點菜系統。在該系統的實現過程中設計到許多技術,其中主要有嵌入式技術、數據庫技術、用戶圖形界面編程技術等。</p><p>  餐廳點菜系統一般都涉及很多數據,而且還要對數據進行各種處理,因而絕大部分餐廳點菜系統都用數據庫管理系統來管理數據。數據庫管理系統一般依賴與某種操作系統,因此,也要選擇一個合適的操作系統。另外,為了方便用戶的使用,還要設計一個人性化的圖形界面。餐廳點菜系統中,管理數據的地方與使用數

31、據的地方往往不在同一個站點上,需要用到計算機網絡將二者聯系起來。在本文設計的系統中使用了MySQL來管理數據,操作系統選用了Linux,用戶圖形界面引入了Qt。</p><p>  本課題通過研究現有的電子點菜系統的解決方案,以當代廣泛應用的Linux系統、Qt圖形界面、SQLite數據庫、系統支持的TCP/IP網絡通信協議來實現的點菜系統的終端。具體包括以下內容:</p><p>  1

32、.Linux系統開發(fā)平臺的構建:使用是全球應用最廣泛的Red Hat Linux,建立基本的開發(fā)環(huán)境,建立編譯工具,安裝用于程序開發(fā)的Qt,用于數據管理的SQLite3。</p><p>  2.點菜終端程序設計:首先利用Qt設計器規(guī)劃點菜終端的程序的大致界面,然后遵循Qt編程一般規(guī)則編寫代碼,主要為主窗口類的實現,實現開臺、點菜、加菜、刪菜等功能,并在主程序中添加國際化和中文支持,編譯后進行測試。</p&

33、gt;<p>  3.數據庫的設計:首先利用Qt設計器規(guī)劃數據庫管理程序的大致界面,然后遵循Qt編程一般規(guī)則編寫代碼,主要為主窗口類的實現,數據庫的管理功能,包括刪除菜單列表、添加菜單列表,查詢菜單等功能,并在主程序中添加中文支持。</p><p>  第2章 相關知識概述</p><p>  本系統主要運用到的開發(fā)系統環(huán)境是Linux系統,選擇的是RedHat 企業(yè)版5,該

34、系統是采用C/S(客戶端/服務器)架構開發(fā)的,其中運用到的技術有QT圖形界面的開發(fā)、SQLITE3數據庫的開發(fā)及socket編程。</p><p>  2.1 系統開發(fā)環(huán)境</p><p>  Linux是一種自由和開放源碼的類Unix操作系統。目前存在著許多不同的Linux,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,從手機、平板電腦、路由器和視頻游戲控制臺,到

35、臺式計算機、大型機和超級計算機。Linux是一個領先的操作系統,世界上運算最快的10臺超級計算機運行的都是Linux操作系統。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數據庫的操作系統。</p><p>  1.Linux操作系統概述:Linux操作系統是UNIX操作系統的一種克隆系統。Linux于1991年8

36、月在Usenet新聞組comp.os.minix上正式發(fā)布(Free minx-like kernel sources for 386-AT)。其創(chuàng)始人是林納斯·本納第克特·托瓦茲(Lines Benedict Tornados),出生于芬蘭赫爾辛基市。他畢業(yè)于赫爾辛基大學計算機科學系。早期的Linux1.0版本內核發(fā)布于1994年3月14日,兩年之后2.0版本發(fā)布,此時,Linux功能已經非常強大,只是界面設計不是

37、很理想。</p><p>  Linux被大眾所關注是在1998年3月,當Netscape承諾在GNU計劃的GPL(General Public License,通用公共許可證)的一個修訂版本的基礎上公開Netscape Communicator Internet套件的源代碼的時候。同年7月,世界上最大的兩家關系數據庫廠商Informix和Oracle宣布把他們的數據庫產品移植到了Linux上。一個月后,Inte

38、l和Netscape公司購買了Linux發(fā)布商中的領頭羊Red Hat公司的少量股票,專項資金投入了Linux世界。次年,Linux成為了IT市場的年青分子,隨著RedHat和Valium成為上市的Linux公司,Linux得到了軟硬件廠商的投資支持,很快便眾所周知,公眾對Linux的興趣與日俱增,相關的大眾媒體也蜂擁而至,幾乎每周都有與Linux相關的消息發(fā)布,此時的Linux已經不僅僅是愛好者的玩具了。</p><

39、;p>  如今Linux已經是軟件開發(fā)人員的首選開發(fā)環(huán)境,其發(fā)行版超過了三百個,最普遍被使用的發(fā)行版有大約十二個,例如Bantu,RedHat,Defiant,Fedora等。通常來講,一個Linux發(fā)行版包括Linux內核,將整個軟件安裝到電腦上的一套安裝工具,各種GNU軟件,其他的一些自由軟件,在一些特定的Linux發(fā)行版中也有一些專有軟件。發(fā)行版為許多不同的目的而制作,包括對不同計算機結構的支持,對一個具體區(qū)域或語言的本地化

40、,實時應用,和嵌入式系統。Linux主要作為Linux發(fā)行版(通常被稱為"distort")的一部分而使用</p><p>  2. Linux操作系統特點:Linux是一款開放源代碼的操作系統。用戶可以通過任何途徑免費獲得它的源代碼,并可以任意修改其源代碼。這是其他的操作系統所做不到的。由于它的開放性使無數程序員積極的參與了Linux的修改、編寫工作,使得Linux吸收了無數程序員在根據自己

41、的興趣和靈感對其所做的精華改變,并不斷壯大。</p><p>  Linux支持多任務、多用戶。多任務使得Linux可以同時獨立運行多個程序而互不影響,為大型的多任務工程提供保障。多用戶使得各個用戶對于自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。</p><p>  Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似W

42、indows圖形界面的X-Window系統,用戶可以使用鼠標對其進行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。</p><p>  Linux提供了先進的網絡支持。它的網絡功能和其內核緊密相連,用戶可以輕松實現網頁瀏覽、文件傳輸、遠程登陸等網絡工作。并且可以作為服務器提供WWW、FTP、E-Mail等服務。</p><p>  Li

43、nux完全運行于保護模式,其中有對讀、寫進行權限控制、審計跟蹤、核心授權等技術。Linux以它較高的穩(wěn)定性在網絡服務器上利于不敗之地。</p><p>  Linux可以運行在多種硬件平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統,業(yè)界歸納為什么Linux嵌入式操作系統發(fā)展如此之快的三大原因是:第一,Linux在嵌入式系統所需的實時性、電源管理等核心技

44、術不斷發(fā)展,成熟可期。第二,國際標準組織OSDL、CELF等,持續(xù)建立嵌入式Linux相關標準,有效解決版本分歧與兼容性問題。第三,業(yè)界主導組織、開發(fā)廠商等不斷推出嵌入式Linux相關開發(fā)工具、維護系統。2001年1月份發(fā)布的Linux 2.4版內核已經能夠完全支持Intel 64位芯片架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。Linux支持數十種文件系統格式。普通文件,純文本文件,二進制文件,數據

45、格式文件,目錄,連接文件,設備與設備文件,塊設備文件,字符設備文件,套接字和管道等。采用先進的內存管理機制,更加有效的利用物理內存。主要有頁面、連續(xù)內存區(qū)管理和非連續(xù)存儲區(qū)管理機制。</p><p>  3.Linux的基本思想:Linux的基本思想有兩點,第一,一切都是文件;第二,每個軟件都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬件和軟件設備、操作系統、進程等等對于操作系統

46、內核而言,都被視為擁有各自特性或類型的文件。至于說Linux是基于Unix的,很大程度上也是因為這兩者的基本思想十分相近。</p><p><b>  2.2 系統的結構</b></p><p>  傳統的C/S體系結構常采用的是開放模式,但這只是系統開發(fā)一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟件支持。由于沒能提供用戶真正期望

47、的開放環(huán)境,C/S結構的軟件需要針對不同的操作系統開發(fā)不同版本的軟件,加之產品的更新換代快,已經很難適應百臺電腦以上局域網用戶同時使用。而且代價高,效率低。</p><p>  目前,C/S 結構的基本原則是將計算機任務分解成多個子任務,由多臺計算機分工完成,即采用“功能分布”原則??蛻舳送瓿蓴祿幚恚瑪祿硎疽约坝脩艚涌诠δ?;服務器端完成DBMS的核心功能。這種客戶請求服務、服務器提供服務的處理方式是一種新型的

48、計算機應用模式。</p><p>  C/S結構的優(yōu)點是能充分發(fā)揮出客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務器。對應的優(yōu)點就是客戶端響應速度非???。缺點主要反映以下3個方面: </p><p>  1.只適用于局域網。而隨著互聯網的飛速發(fā)展,移動辦公和分布式辦公越來越普及,這需要我們的系統具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分布式

49、的數據。 </p><p>  2.客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。</p><p>  3.對客戶端的操作系統一般也會有限制??赡苓m應于Win98, 但不能用于wi

50、n2000或Windows XP?;蛘卟贿m用于微軟新的操作系統等等,更不用說Linux、Unix等。</p><p>  2.3 應用的相關技術</p><p>  本系統應用的相關技術主要有QT的圖形界面的開發(fā)、數據庫的SQLITE的應用、還有運用到了TCP/IP協議。</p><p>  2.3.1 QT圖形界面</p><p>  1.

51、Qt概念:Qt是諾基亞開發(fā)的一個跨平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發(fā)者建立藝術級的圖形用戶界面所需的所用功能。QT是完全面向對象的,很容易擴展,并且允許真正地組件編程。所以說QT的進步發(fā)展將會推進諾基亞桌面等方面的大幅度進步。</p><p>  2.Qt的特點:Qt是一款面向對象的圖形界面開發(fā)工具。Qt 的良好封裝機制使得Qt的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常 方便

52、的。Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件之間的協同工作變得十分簡單。它具有豐富的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共同構成的 Qt SDK,包含了開發(fā)跨

54、平臺應用程序所需的全部功能。</p><p>  Qt Creator是一個用于Qt開發(fā)的輕量級跨平臺集成開發(fā)環(huán)境。Qt Creator可帶來兩大關鍵益處:提供首個專為支持跨平臺開發(fā)而設計的集成開發(fā)環(huán)境 (IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。</p><p>  Qt Creator包含了一套用于創(chuàng)建和測試基于Qt應用程序的高效工具,包括:一個高級的C++代碼編輯器

55、 上下文感知幫助系統 可視化調試器 源代碼管理 項目和構建管理工具。</p><p>  2.3.2 SQLite數據庫</p><p>  SQLite,是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等

56、等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月,至今已經有10個年頭,SQLite也迎來了一個版本 SQLite 3已經發(fā)布。SQLite的具有以下特性:</p><p>  1.ACID事務;  &

57、lt;/p><p>  2.零配置–無需安裝和管理配置;  </p><p>  3.儲存在單一磁盤文件中的一個完整的數據庫;   </p><p>  4.數據庫文件可以在不同字節(jié)順序的機器間自由的共享;  </p><p>  5.支持數據庫大小至2TB;   </p><p>  6.足夠小,大致3萬行C代碼, 25

58、0K;  </p><p>  7.比一些流行的數據庫在大部分普通數據庫操作要快;   </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有諸多特性,我在設計該點菜系統時應用的數據庫選擇了它,它雖然很小巧,但是支持的SQL語句

60、不會遜色于其他開源數據庫,同時還支持事務處理功能等待。</p><p>  2.3.3 Linux系統支配的TCP/IP協議</p><p>  TCP/IP 是一個網絡協議族的名字,協議是所有軟件產品必須遵守的、能夠保證各種軟件產品能夠正確通訊的規(guī)則。協議還定義了每一部分數據塊怎樣管理所傳輸的數據。精確一點說,一個協議定義了兩個應用程序或是計算機之間能夠進行互相通訊,對于其中的每一個(應

61、用程序或計算機)都保證使用同樣的標準。</p><p>  TCP/IP 代表傳輸控制協議/網絡協議,它是做為軟件的網絡組成部件而設計的。每個TCP/IP 的協議都有他專門的工作,比如萬維網(WWW),發(fā)送電子郵件(E-mail),傳輸文件(Ftp),提供遠程登陸服務等。從協議分層模型方面來講,TCP/IP由四個層次組成:網絡接口層、網絡層、傳輸層、應用層。   TCP/IP協議并不完全符合OSI的七層參考模型。

62、OSI是傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。由于ARPNET的設計者注重的是網絡互聯,允許通信子網(網絡接口層)采用已有的或是將來有的各種協議,所以這個層次中沒有提供專門

63、的協議。實際上,TCP/IP協議可以通過網絡接口層連接到任何網絡上,例如X.25交換網或IEEE802局域網。TCP/IP協議的具有以下3個特點:</p><p>  1.對數據可靠性的要求:對數據要求高可靠性的應用需選擇TCP協議,如驗證、密碼字段的傳送都是不允許出錯的,而對數據的可靠性要求不那么高的應用可選擇UDP傳送。</p><p>  2.應用的實時性:TCP協議在傳送過程中要使

64、用三次握手、重傳確認等手段來保證數據傳輸的可靠性。使用TCP協議會有較大的時延,因此不適合對實時性要求較高的應用,如VOIP、視頻監(jiān)控等。相反,UDP協議則在這些應用中能發(fā)揮很好的作用。</p><p>  3.網絡的可靠性:由于TCP協議的提出主要是解決網絡的可靠性問題,它通過各種機制來減少錯誤發(fā)生的概率。因此,在網絡狀況不是很好的情況下需選用TCP協議(如在廣域網等),但是若在網絡狀況很好的情況下(如局域網等

65、)就不需要再采用TCP協議,而建議選擇UDP協議來減少網絡負荷。</p><p>  TCP/IP協議的運作機制是IP層負責接收由更低層(網絡接口層例如以太網設備驅動程序)發(fā)來的數據包,并把該數據包發(fā)送到更高層---TCP層,相反,IP層也把從TCP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP并沒有做任何事情來確認數據包是按順序發(fā)送的或者沒有被破壞。IP數據包中含有發(fā)送它的主機的地址(源地址)和接

66、收它的主機的地址(目的地址)。</p><p>  高層的TCP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發(fā)送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最后一個系統傳遞過來的,而不

67、是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。許多依靠IP源地址做確認的服務將產生問題并且會被非法入侵。</p><p>  TCP是面向連接的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的所以只能用于點對點的通訊。TCP提供的是一種可靠的數據流服務,采用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還采用一種稱為“滑動窗口

68、”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發(fā)送方的發(fā)送速度。   </p><p>  如果IP數據包中有已經封好的TCP數據包,那么IP將把它們向上傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送

69、回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最后到接收方。面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數據庫),但使用UDP傳送有關單個主機的信息。</p><p>  基于TCP/IP有諸多特點,它的數據可靠性剛好符合本系統設計的要求數據的安全性,同時它具有很好

70、的網絡的安全性,保證餐廳點菜系統能夠很好的運行,所以我在設計該系統的時候選擇了該協議來實現通信。</p><p>  TCP/IP協議的實現的流程圖如下圖2-1所示。</p><p>  圖 2-1 TCP/IP協議流程圖 </p><p><b>  2.4本章小結</b></p><p>  本章主要詳細介紹了該點菜

71、系統應用的相關的技術,主要介紹了開發(fā)的系統環(huán)境Linux系統和用到的數據庫SQLITE3,運用到的圖形界面開發(fā)工具QT,運用到的網絡技術TCP/IP協議等概念,并且介紹了相關技術的特點。</p><p>  第3章 系統分析及設計</p><p><b>  3.1系統需求分析</b></p><p>  隨著局域網技術與電子商務的深入發(fā)展,餐

72、廳自助點菜系統也在國內外蓬勃發(fā)展,并日益深入到人們的生活當中。餐廳自助自助點菜在國外早已成為一種時尚。餐廳每日消費人數的巨大,自助點菜是一種必不可少的工具,而國內的點菜系統還不成熟 ,所以本課題將設計實現一個餐廳自助點菜系統。本系統根據一般餐廳的需要,分析本系統的業(yè)務流程如下:</p><p>  1.服務器負責前臺、廚房、數據庫管理、點菜終端的通信;</p><p>  2.點菜終端從數

73、據庫獲取菜品信息;</p><p>  3.前臺負責查詢餐臺的空閑狀態(tài)和結賬并打印賬單;</p><p>  4.顧客點菜,并填入數據庫;</p><p>  5.服務器接受點菜信息并發(fā)送給后廚;</p><p>  6.后廚開始按照菜單信息做菜;</p><p>  7.用戶到前臺結賬;</p><

74、;p>  8.結果被顯示給用戶,顧客結賬。</p><p><b>  3.1.1功能需求</b></p><p>  用戶在客戶端點菜,通過局域網傳送到服務器,后廚接受從服務器接受到菜單信息,客戶在前臺結賬。同時有個數據庫管理界面可以實現菜品信息的管理。根據系統功能的需求,分析了所需要的系統總功能結構如表3-1所示。</p><p> 

75、 表 3-1 功能需求</p><p><b>  3.1.2性能需求</b></p><p>  本系統性能要求主要是以下5個方面。</p><p>  1.系統處理的準確性和及時性:系統處理的準確性和及時性是系統的必要性能。在系統設計和開發(fā)過程中,要充分考慮系統當前和將來可能承受的工作量,使系統的處理能力和響應時間能夠滿足信息處理的需求。&

76、lt;/p><p>  由于餐廳自助點菜系統客戶端的點菜對于整個系統的功能和性能完成舉足輕重。作為客戶自助點菜的模塊,其準確性很大程度上決定了系統的成敗。在系開發(fā)過程中,必須保證系統的準確性。</p><p>  2.系統的開放性和系統的可擴充性:餐廳自助點菜系統在開發(fā)過程中,應該充分考慮以后的可擴充性。例如新增菜品,會員充值等。所有這些,都要求系統提供足夠的手段進行功能的調整和擴充。而要實現

77、這一點,應通過系統的開放性來完成。</p><p>  3.系統的易用性:餐廳自助點菜系統是直接面對用戶的,而用戶往往對計算機并不是非常熟悉。這就要求系統能夠提供良好的用戶接口,易用的人機交互界面。要實現這一點,就要求系統應該盡量使用用戶熟悉的術語和中文信息的界面。</p><p>  4.系統的標準性:系統在設計開發(fā)使用過程中都要涉及到很多計算機硬件、軟件。所有這些都要符合主流國際、國家

78、和行業(yè)標準。例如在開發(fā)中使用的操作系統、網絡系統、開發(fā)工具都必須符合通用標準。如規(guī)范的數據庫操縱界面、作為業(yè)界標準的TCP/IP網絡協議及ISO9002標準所要求的質量規(guī)范等;同時,在自主開發(fā)本系統時,要進行良好的設計工作,制訂行之有效的軟件工程規(guī)范,保證代碼的易讀性、可操作性和可移植性。</p><p>  5.系統的先進性:目前計算系統的技術發(fā)展相當快,做為餐廳管理系統工程,應該在系統的生命周期盡量做到系統的

79、先進。這一方面通過系統的開放性和可擴充性,不斷改善系統的功能完成。另一方面,在系統設計和開發(fā)的過程中,應在考慮成本的基礎上盡量采用當前主流并先進且有良好發(fā)展前途的工具。</p><p><b>  3.2系統開發(fā)環(huán)境</b></p><p>  本系統是基于Linux系統中Qt來設計前臺應用系統的可視化界面,而后臺部分數據庫的實現采用SQLite3來構建。Linux系

80、統采用了可視化的程序設計,具有面向對象的可視化設計工具,結構化的程序設計語言,提供了易學易用的應用程序集成開發(fā)環(huán)境,支持多種數據庫系統的訪問,Linux系統中的Qt提供了可視化的界面。用QtCreator可以動態(tài)的調整用戶風格圖形界面,直到滿意為止。</p><p>  3.3系統總體功能模塊</p><p>  根據對餐廳點菜系統需要實現的功能進行需求分析,將本系統的前臺劃分為前臺管理,

81、點菜管理,后廚管理,數據庫管理,服務器五個功能模塊;系統功能模塊如圖3-1所示。查詢</p><p>  圖3-1 系統總功能模塊</p><p>  餐廳點菜系統的功能模塊概要描述如表3-2所示。</p><p>  表3-2 功能模塊描述表</p><p>  1.服務器功能:服務器功能是整個系統的傳輸通道,是系統的重中之重。當顧客點菜客

82、戶端與服務器連接后,可通過此將點菜信息發(fā)送到后廚。后廚和服務器連接后,可以將做完的菜發(fā)送到服務器,服務器將信息發(fā)送到點菜客戶端和前臺。</p><p>  2.前臺終端管理:前臺是本系統重要組成部分之一。本模塊可以查詢當前餐臺的空閑信息、接收服務器發(fā)送過來顧客點菜的消費菜單信息,并打印菜單給客戶。細分的功能模塊如圖3-2。</p><p>  圖3-2 前臺終端模塊</p>

83、<p>  3.點菜終端:點菜終端是本系統給顧客的使用的,是本系統的重要組成部分。本模塊將用戶點菜單菜肴發(fā)送到服務器,并將數據信息添加到數據庫。細分的功能模塊如圖3-3所示。</p><p>  選擇菜肴功能是將用戶選擇的菜肴存與表中,用戶可以添加與刪除。</p><p>  點菜信息發(fā)送功能是將用戶點菜信息以結構體的形式發(fā)送到服務器,并添加到相應的數據庫中。</p>

84、<p>  圖3-3 點菜終端模塊</p><p>  4.后廚終端:后廚終端從服務器接收到顧客點的菜肴,可以繼續(xù)接受顧客加菜的菜單、按照菜單做菜,并可以詢問菜是否需要退菜。細分功能如圖3-4所示。</p><p>  圖3-4 后廚終端模塊</p><p>  5.數據庫管理:數據庫管理管理菜單數據庫信息,包括刪除菜單列表、添加菜單列表,查詢菜單等功

85、能。細分數據庫管理功能模塊如圖3-5所示。</p><p>  刪除菜單列表功能是將刪除不做的菜肴信息。</p><p>  添加菜單列表功能是允許可以添加新的菜肴信息。</p><p>  查詢菜單功能是查詢是否有哪道菜肴信息。</p><p>  圖3-5 數據庫管理模塊</p><p>  3. 4數據庫結構設計

86、 </p><p>  根據對本系統數據的分析,系統的數據庫設計了一個表:菜肴信息表。該表用于存放菜肴的信息,包括菜肴的名字、菜肴的類別、菜肴的價格、菜肴的描述。</p><p><b>  3.5本章小結</b></p><p>  本章主要對該系統設計進行了需求分析、功能分析,最后做出詳細設計方案。設計中主要將餐廳點菜系統分為五個模塊

87、,每個模塊的需求和實現的功能進行了闡述和詳細設計過程分析。</p><p><b>  第4章 軟件設計</b></p><p>  軟件采用面向對像的設計方法,考慮到對計算效率的要求,采用C++編程語言,開發(fā)環(huán)境為Linux RedHat 企業(yè)版5,服務器編譯工具為gcc,其余編程工具為g++編譯器,采用C++標準庫函數和QT類庫。</p><p

88、>  4.1 數據庫表結構設計</p><p>  本系統數據庫中建立了一張菜單信息表,該表詳細結構如圖表4-1所示。</p><p>  表4-1 菜單信息表</p><p>  4.2 各功能模塊的詳細設計</p><p>  本系統有五個模塊組成,分別為server(服務器),前臺管理模塊,顧客點菜管理模塊,后廚管理模塊,數據庫管

89、理模塊等。</p><p>  4.2.1 服務器管理模塊</p><p>  服務器模塊主要是用C語言編寫的,主要是為其他模塊間的通信。其中主要運用到TCP/IP協議通信的。運用到了TCP/IP協議函數,首先socket()函數獲得套接字描述符,然后用bind()函數將描述符捆綁到IP上,監(jiān)聽listen()函數,其中可以設置客戶端的個數。然后就是等待客戶端的請求連接用accept()函

90、數,其中運用到了線程,創(chuàng)建線程函數pthread_create()用來處理客戶的的請求。主要實現代碼如下: </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>  /* 服務器端填充 sockaddr_in結構 */</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>  /* 設置允許連接的最大客戶端數 */</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>  /* 服務器阻塞,等待

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>  /*服務器主程序返回繼續(xù)等待下一次客戶端連接*/</p><p><b&

100、gt;  }</b></p><p>  close(sockfd);</p><p>  4.2.2 前臺管理模塊 </p><p>  前臺管理模塊主要查看餐臺空閑信息,和打印賬單兩部分組成。餐臺空閑信息主要是根據Button組件文本顯示判斷的是否是空閑狀態(tài),空閑時,當顧客來時如空閑點擊按鈕就connect()觸發(fā)了槽函數table1(),其中槽

101、函數中用到Button類的成員函數setText(),將button的文本信息設置為“1號有人”。同樣,當顧客結賬時點擊按鈕觸發(fā)槽函數打印賬單給顧客查看,同時將Button的文本信息設置為“2人桌”,賬單是用QListWidget類來顯示。</p><p><b>  主要實現代碼如下:</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//結帳</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("菜名 價格 數量"));</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>  //添加當前時間到賬單</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(&lt));</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> ?。?lt;/b></p><p>  4.2.3 顧客點菜端管理模塊</p><p>  點菜端是顧客從前臺獲知該餐桌空閑,則開臺,并開始點菜,點菜界面可以根據菜譜信息點擊選擇按鈕,如果需要刪除可以點擊刪除按鈕,當確認后點擊提交按鈕就將顧客點菜信息發(fā)送到服務器,服務器并發(fā)送到后廚。</p><p> 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論