freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

最新基于linux嵌入式點(diǎn)菜系統(tǒng)的設(shè)計(jì)(編輯修改稿)

2025-07-16 13:33 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 RPNET的設(shè)計(jì)者注重的是網(wǎng)絡(luò)互聯(lián),允許通信子網(wǎng)(網(wǎng)絡(luò)接口層)采用已有的或是將來(lái)有的各種協(xié)議,所以這個(gè)層次中沒(méi)有提供專門(mén)的協(xié)議。實(shí)際上,TCP/IP協(xié)議可以通過(guò)網(wǎng)絡(luò)接口層連接到任何網(wǎng)絡(luò)上。TCP/IP協(xié)議的具有以下3個(gè)特點(diǎn)::對(duì)數(shù)據(jù)要求高可靠性的應(yīng)用需選擇TCP協(xié)議,如驗(yàn)證、密碼字段的傳送都是不允許出錯(cuò)的,而對(duì)數(shù)據(jù)的可靠性要求不那么高的應(yīng)用可選擇UDP傳送。:TCP協(xié)議在傳送過(guò)程中要使用三次握手、重傳確認(rèn)等手段來(lái)保證數(shù)據(jù)傳輸?shù)目煽啃?。使用TCP協(xié)議會(huì)有較大的時(shí)延,因此不適合對(duì)實(shí)時(shí)性要求較高的應(yīng)用,如VOIP、視頻監(jiān)控等。相反,UDP協(xié)議則在這些應(yīng)用中能發(fā)揮很好的作用。:由于TCP協(xié)議的提出主要是解決網(wǎng)絡(luò)的可靠性問(wèn)題,它通過(guò)各種機(jī)制來(lái)減少錯(cuò)誤發(fā)生的概率。因此,在網(wǎng)絡(luò)狀況不是很好的情況下需選用TCP協(xié)議(如在廣域網(wǎng)等),但是若在網(wǎng)絡(luò)狀況很好的情況下(如局域網(wǎng)等)就不需要再采用TCP協(xié)議,而建議選擇UDP協(xié)議來(lái)減少網(wǎng)絡(luò)負(fù)荷。TCP/IP協(xié)議的運(yùn)作機(jī)制是IP層負(fù)責(zé)接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來(lái)的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層TCP層,相反,IP層也把從TCP層接收來(lái)的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒(méi)有做任何事情來(lái)確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒(méi)有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。高層的TCP服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說(shuō),IP地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個(gè)有效的主機(jī)發(fā)送來(lái)的。IP確認(rèn)包含一個(gè)選項(xiàng),叫作IP source routing,可以用來(lái)指定一條源地址和目的地址之間的直接路徑。對(duì)于一些TCP和UDP的服務(wù)來(lái)說(shuō),使用了該選項(xiàng)的IP包好像是從路徑上的最后一個(gè)系統(tǒng)傳遞過(guò)來(lái)的,而不是來(lái)自于它的真實(shí)地點(diǎn)。這個(gè)選項(xiàng)是為了測(cè)試而存在的,說(shuō)明了它可以被用來(lái)欺騙系統(tǒng)來(lái)進(jìn)行平常是被禁止的連接。許多依靠IP源地址做確認(rèn)的服務(wù)將產(chǎn)生問(wèn)題并且會(huì)被非法入侵。TCP是面向連接的通信協(xié)議,通過(guò)三次握手建立連接,通訊完成時(shí)要拆除連接,由于TCP是面向連接的所以只能用于點(diǎn)對(duì)點(diǎn)的通訊。TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來(lái)實(shí)現(xiàn)傳輸?shù)目煽啃?。TCP還采用一種稱為“滑動(dòng)窗口”的方式進(jìn)行流量控制,所謂窗口實(shí)際表示接收能力,用以限制發(fā)送方的發(fā)送速度。   如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向上傳送到TCP層。TCP將包排序并進(jìn)行錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫(kù)),但使用UDP傳送有關(guān)單個(gè)主機(jī)的信息?;赥CP/IP有諸多特點(diǎn),它的數(shù)據(jù)可靠性剛好符合本系統(tǒng)設(shè)計(jì)的要求數(shù)據(jù)的安全性,同時(shí)它具有很好的網(wǎng)絡(luò)的安全性,保證餐廳點(diǎn)菜系統(tǒng)能夠很好的運(yùn)行,所以我在設(shè)計(jì)該系統(tǒng)的時(shí)候選擇了該協(xié)議來(lái)實(shí)現(xiàn)通信。TCP/IP協(xié)議的實(shí)現(xiàn)的流程圖如下圖21所示??蛻舳朔?wù)器端socketsocketrecv/recvfromsend/sendtoclosesend/sendtoclosebindlistenacceptconnectrecv/recvfrom圖 21 TCP/IP協(xié)議流程圖 本章主要詳細(xì)介紹了該點(diǎn)菜系統(tǒng)應(yīng)用的相關(guān)的技術(shù),主要介紹了開(kāi)發(fā)的系統(tǒng)環(huán)境Linux系統(tǒng)和用到的數(shù)據(jù)庫(kù)SQLITE3,運(yùn)用到的圖形界面開(kāi)發(fā)工具QT,運(yùn)用到的網(wǎng)絡(luò)技術(shù)TCP/IP協(xié)議等概念,并且介紹了相關(guān)技術(shù)的特點(diǎn)。第3章 系統(tǒng)分析及設(shè)計(jì)隨著局域網(wǎng)技術(shù)與電子商務(wù)的深入發(fā)展,餐廳自助點(diǎn)菜系統(tǒng)也在國(guó)內(nèi)外蓬勃發(fā)展,并日益深入到人們的生活當(dāng)中。餐廳自助自助點(diǎn)菜在國(guó)外早已成為一種時(shí)尚。餐廳每日消費(fèi)人數(shù)的巨大,自助點(diǎn)菜是一種必不可少的工具,而國(guó)內(nèi)的點(diǎn)菜系統(tǒng)還不成熟 ,所以本課題將設(shè)計(jì)實(shí)現(xiàn)一個(gè)餐廳自助點(diǎn)菜系統(tǒng)。本系統(tǒng)根據(jù)一般餐廳的需要,分析本系統(tǒng)的業(yè)務(wù)流程如下:、廚房、數(shù)據(jù)庫(kù)管理、點(diǎn)菜終端的通信;;;,并填入數(shù)據(jù)庫(kù);;;;,顧客結(jié)賬。用戶在客戶端點(diǎn)菜,通過(guò)局域網(wǎng)傳送到服務(wù)器,后廚接受從服務(wù)器接受到菜單信息,客戶在前臺(tái)結(jié)賬。同時(shí)有個(gè)數(shù)據(jù)庫(kù)管理界面可以實(shí)現(xiàn)菜品信息的管理。根據(jù)系統(tǒng)功能的需求,分析了所需要的系統(tǒng)總功能結(jié)構(gòu)如表31所示。表 31 功能需求名稱功能客戶端 設(shè)置基礎(chǔ)信息,更新菜譜,點(diǎn)菜,結(jié)賬,打印賬單;服務(wù)器 負(fù)責(zé)各終端間的通信;本系統(tǒng)性能要求主要是以下5個(gè)方面。1.系統(tǒng)處理的準(zhǔn)確性和及時(shí)性:系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,要充分考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足信息處理的需求。由于餐廳自助點(diǎn)菜系統(tǒng)客戶端的點(diǎn)菜對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重。作為客戶自助點(diǎn)菜的模塊,其準(zhǔn)確性很大程度上決定了系統(tǒng)的成敗。在系開(kāi)發(fā)過(guò)程中,必須保證系統(tǒng)的準(zhǔn)確性。2.系統(tǒng)的開(kāi)放性和系統(tǒng)的可擴(kuò)充性:餐廳自助點(diǎn)菜系統(tǒng)在開(kāi)發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如新增菜品,會(huì)員充值等。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過(guò)系統(tǒng)的開(kāi)放性來(lái)完成。3.系統(tǒng)的易用性:餐廳自助點(diǎn)菜系統(tǒng)是直接面對(duì)用戶的,而用戶往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)和中文信息的界面。4.系統(tǒng)的標(biāo)準(zhǔn)性:系統(tǒng)在設(shè)計(jì)開(kāi)發(fā)使用過(guò)程中都要涉及到很多計(jì)算機(jī)硬件、軟件。所有這些都要符合主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。例如在開(kāi)發(fā)中使用的操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、開(kāi)發(fā)工具都必須符合通用標(biāo)準(zhǔn)。如規(guī)范的數(shù)據(jù)庫(kù)操縱界面、作為業(yè)界標(biāo)準(zhǔn)的TCP/IP網(wǎng)絡(luò)協(xié)議及ISO9002標(biāo)準(zhǔn)所要求的質(zhì)量規(guī)范等;同時(shí),在自主開(kāi)發(fā)本系統(tǒng)時(shí),要進(jìn)行良好的設(shè)計(jì)工作,制訂行之有效的軟件工程規(guī)范,保證代碼的易讀性、可操作性和可移植性。5.系統(tǒng)的先進(jìn)性:目前計(jì)算系統(tǒng)的技術(shù)發(fā)展相當(dāng)快,做為餐廳管理系統(tǒng)工程,應(yīng)該在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進(jìn)。這一方面通過(guò)系統(tǒng)的開(kāi)放性和可擴(kuò)充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的過(guò)程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當(dāng)前主流并先進(jìn)且有良好發(fā)展前途的工具。本系統(tǒng)是基于Linux系統(tǒng)中Qt來(lái)設(shè)計(jì)前臺(tái)應(yīng)用系統(tǒng)的可視化界面,而后臺(tái)部分?jǐn)?shù)據(jù)庫(kù)的實(shí)現(xiàn)采用SQLite3來(lái)構(gòu)建。Linux系統(tǒng)采用了可視化的程序設(shè)計(jì),具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具,結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,提供了易學(xué)易用的應(yīng)用程序集成開(kāi)發(fā)環(huán)境,支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn),Linux系統(tǒng)中的Qt提供了可視化的界面。用QtCreator可以動(dòng)態(tài)的調(diào)整用戶風(fēng)格圖形界面,直到滿意為止。根據(jù)對(duì)餐廳點(diǎn)菜系統(tǒng)需要實(shí)現(xiàn)的功能進(jìn)行需求分析,將本系統(tǒng)的前臺(tái)劃分為前臺(tái)管理,點(diǎn)菜管理,后廚管理,數(shù)據(jù)庫(kù)管理,服務(wù)器五個(gè)功能模塊;系統(tǒng)功能模塊如圖31所示。查詢查詢餐臺(tái)信息結(jié)賬打印賬單前臺(tái)管理模塊服務(wù)器后廚管理模塊刪菜詢問(wèn)接收菜單做完顧客點(diǎn)菜模塊點(diǎn)菜加菜退菜開(kāi)始 圖31 系統(tǒng)總功能模塊餐廳點(diǎn)菜系統(tǒng)的功能模塊概要描述如表32所示。表32 功能模塊描述表名稱功能服務(wù)器負(fù)責(zé)前臺(tái),點(diǎn)菜終端,后廚終端間的通信;前臺(tái)終端負(fù)責(zé)查詢餐臺(tái)空閑信息,顧客結(jié)賬,并打印賬單信息;點(diǎn)菜終端設(shè)置基礎(chǔ)信息,更新菜譜,點(diǎn)菜,加菜,刪菜;后廚終端接收顧客點(diǎn)菜的菜單信息進(jìn)行做菜;數(shù)據(jù)庫(kù)管理負(fù)責(zé)管理數(shù)據(jù)庫(kù)的菜菜品信息;1.服務(wù)器功能:服務(wù)器功能是整個(gè)系統(tǒng)的傳輸通道,是系統(tǒng)的重中之重。當(dāng)顧客點(diǎn)菜客戶端與服務(wù)器連接后,可通過(guò)此將點(diǎn)菜信息發(fā)送到后廚。后廚和服務(wù)器連接后,可以將做完的菜發(fā)送到服務(wù)器,服務(wù)器將信息發(fā)送到點(diǎn)菜客戶端和前臺(tái)。2.前臺(tái)終端管理:前臺(tái)是本系統(tǒng)重要組成部分之一。本模塊可以查詢當(dāng)前餐臺(tái)的空閑信息、接收服務(wù)器發(fā)送過(guò)來(lái)顧客點(diǎn)菜的消費(fèi)菜單信息,并打印菜單給客戶。細(xì)分的功能模塊如圖32。結(jié)賬前臺(tái)管理模塊查詢餐臺(tái)信息打印賬單圖32 前臺(tái)終端模塊3.點(diǎn)菜終端:點(diǎn)菜終端是本系統(tǒng)給顧客的使用的,是本系統(tǒng)的重要組成部分。本模塊將用戶點(diǎn)菜單菜肴發(fā)送到服務(wù)器,并將數(shù)據(jù)信息添加到數(shù)據(jù)庫(kù)。細(xì)分的功能模塊如圖33所示。選擇菜肴功能是將用戶選擇的菜肴存與表中,用戶可以添加與刪除。點(diǎn)菜信息發(fā)送功能是將用戶點(diǎn)菜信息以結(jié)構(gòu)體的形式發(fā)送到服務(wù)器,并添加到相應(yīng)的數(shù)據(jù)庫(kù)中。點(diǎn) 菜點(diǎn)菜信息發(fā)送點(diǎn)菜終端選擇菜肴刪 菜加 菜圖33 點(diǎn)菜終端模塊4.后廚終端:后廚終端從服務(wù)器接收到顧客點(diǎn)的菜肴,可以繼續(xù)接受顧客加菜的菜單、按照菜單做菜,并可以詢問(wèn)菜是否需要退菜。細(xì)分功能如圖34所示。詢問(wèn)刪菜做完接收菜單后廚管理模塊圖34 后廚終端模塊5.?dāng)?shù)據(jù)庫(kù)管理:數(shù)據(jù)庫(kù)管理管理菜單數(shù)據(jù)庫(kù)信息,包括刪除菜單列表、添加菜單列表,查詢菜單等功能。細(xì)分?jǐn)?shù)據(jù)庫(kù)管理功能模塊如圖35所示。刪除菜單列表功能是將刪除不做的菜肴信息。添加菜單列表功能是允許可以添加新的菜肴信息。查詢菜單功能是查詢是否有哪道菜肴信息。數(shù)據(jù)庫(kù)管理模塊查詢菜譜信息添加菜譜信息刪除菜譜信息圖35 數(shù)據(jù)庫(kù)管理模塊3. 4數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 根據(jù)對(duì)本系統(tǒng)數(shù)據(jù)的分析,系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)了一個(gè)表:菜肴信息表。該表用于存放菜肴的信息,包括菜肴的名字、菜肴的類別、菜肴的價(jià)格、菜肴的描述。本章主要對(duì)該系統(tǒng)設(shè)計(jì)進(jìn)行了需求分析、功能分析,最后做出詳細(xì)設(shè)計(jì)方案。設(shè)計(jì)中主要將餐廳點(diǎn)菜系統(tǒng)分為五個(gè)模塊,每個(gè)模塊的需求和實(shí)現(xiàn)的功能進(jìn)行了闡述和詳細(xì)設(shè)計(jì)過(guò)程分析。第4章 軟件設(shè)計(jì)軟件采用面向?qū)ο竦脑O(shè)計(jì)方法,考慮到對(duì)計(jì)算效率的要求,采用C++編程語(yǔ)言,開(kāi)發(fā)環(huán)境為L(zhǎng)inux RedHat 企業(yè)版5,服務(wù)器編譯工具為gcc,其余編程工具為g++編譯器,采用C++標(biāo)準(zhǔn)庫(kù)函數(shù)和QT類庫(kù)。 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫(kù)中建立了一張菜單信息表,該表詳細(xì)結(jié)構(gòu)如圖表41所示。表41 菜單信息表名稱類型(長(zhǎng)度)空屬性Idvarchar(20)nouniqueIddvarchar(20)yesNamevarchar(20)yesPricevarchar(20)yesImagepathvarchar(20)yesAboutvarchar(20)yes 各功能模塊的詳細(xì)設(shè)計(jì)本系統(tǒng)有五個(gè)模塊組成,分別為server(服務(wù)器),前臺(tái)管理模塊,顧客點(diǎn)菜管理模塊,后廚管理模塊,數(shù)據(jù)庫(kù)管理模塊等。 服務(wù)器管理模塊服務(wù)器模塊主要是用C語(yǔ)言編寫(xiě)的,主要是為其他模塊間的通信。其中主要運(yùn)用到TCP/IP協(xié)議通信的。運(yùn)用到了TCP/IP協(xié)議函數(shù),首先socket()函數(shù)獲得套接字描述符,然后用bind()函數(shù)將描述符捆綁到IP上,監(jiān)聽(tīng)listen()函數(shù),其中可以設(shè)置客戶端的個(gè)數(shù)。然后就是等待客戶端的請(qǐng)求連接用accept()函數(shù),其中運(yùn)用到了線程,創(chuàng)建線程函數(shù)pthread_create()用來(lái)處理客戶的的請(qǐng)求。主要實(shí)現(xiàn)代碼如下: if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == 1){perror(Socket error!)。exit(0)。}/* 服務(wù)器端填充 sockaddr_in結(jié)構(gòu) */bzero(amp。server_addr,sizeof(server_addr))。 = AF_INET。 = inet_addr()。 = htons(portnumber)。/* 捆綁sockfd描述符到IP地址 */if(bind(sockfd,(struct sockaddr*)amp。server_addr,sizeof(server_addr)) == 1){perror(Bind error!)。exit(0)。}/* 設(shè)置允許連接的最大客戶端數(shù) */if(listen(sockfd,10) == 1){perror(Listen error!)。exit(0)。}address_size = sizeof(client_addr)。while(1){int i=0。/* 服務(wù)器阻塞,等待客戶程序建立連接 */if((accefd = accept(sockfd,(struct sockaddr*)amp。client_addr,amp。address_size)) == 1){perror(Accept error!)。exit(0)。}sock_accept[i] =accefd。i++。/*創(chuàng)建線程,處理客戶端請(qǐng)求*/pthread_t tid。pthread_cre
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1