版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要中國(guó)是舉世聞名的美食大國(guó),擁有五千年的飲食文化和巨大的餐飲市場(chǎng)。隨著人民生活水平和生活方式的轉(zhuǎn)變,漸漸的人們發(fā)現(xiàn)餐飲業(yè)具有巨大的投資市場(chǎng)。中國(guó)市場(chǎng)的競(jìng)爭(zhēng)尤為劇烈,而且隨著餐飲業(yè)的迅速擴(kuò)展,其中所暴露的問(wèn)題也是不容無(wú)視的,如餐飲業(yè)管理人才的專業(yè)化程度不夠?qū)е聝?nèi)供缺乏,餐廳缺少一套現(xiàn)代企業(yè)制度和監(jiān)督管理體制,效勞管理應(yīng)變能力差,缺乏先進(jìn)的信息工具等。所以,餐飲業(yè)管理從觀念意識(shí)、經(jīng)營(yíng)思想和管理水平還有待專業(yè)化。因此,開發(fā)實(shí)用型點(diǎn)菜系統(tǒng)是餐飲業(yè)開展的必然趨勢(shì)。本系統(tǒng)是基于Linux系統(tǒng)下開發(fā)的餐廳點(diǎn)菜系統(tǒng),運(yùn)用效勞器/客戶端開發(fā)模式,采用的是RedHat企業(yè)版5,圖形界面功能由QT類開發(fā),后臺(tái)數(shù)據(jù)庫(kù)采用SQLITE3,網(wǎng)絡(luò)編程使用的協(xié)議是Linux支配的SocketTCP/IP協(xié)議。前臺(tái)劃分為前臺(tái)管理,點(diǎn)菜管理,后廚管理,數(shù)據(jù)庫(kù)管理,效勞器五個(gè)功能模塊。本系統(tǒng)的主要作業(yè)流程,從顧客在前臺(tái)查看餐桌空閑空閑狀態(tài),入桌點(diǎn)菜,可以加菜、刪菜等,提交菜單,后廚按照菜單做菜,顧客到前臺(tái)結(jié)賬,前臺(tái)打印賬單,顧客結(jié)賬,實(shí)現(xiàn)了開臺(tái)、點(diǎn)菜、加菜、刪菜等系統(tǒng)設(shè)計(jì)功能。關(guān)鍵詞:餐廳點(diǎn)菜系統(tǒng);Linux;QT;SQLITE3AbstractChinaisworld-famouscatebigcountry,withfivethousandyearsofdietcultureandgreatfoodmarket.Asthepeople'slivingstandardandlifetransitions,graduallypeoplefoundrestaurantindustryhasgreatinvestmentmarket.Chinawasparticularlyintensemarketcompetition,andwiththerapidexpansionofcateringindustry,whichisexposedtotheproblemisalsonotallowtoignore,suchascateringmanagementpersonnelofprofessionalenoughtoleadtointernalforshortage,lackofarestaurantmodernenterprisesystemandsupervisionandmanagementsystem,servicemanagementstrainabilityispoor,lackofadvancedinformationtoolsetc.So,cateringmanagementfromtheideaconsciousness,managementthoughtandmanagementlevelremainstobeprofessional.Therefore,thedevelopmentofpracticalordersystemisaninevitabletrendinthedevelopmentofcateringindustry.ThissystemisbasedonLinuxsystemofdevelopmentordersystemrestaurant,usingserver/clientdevelopmentmode,useisRedHatenterpriseversion5,graphicinterfacefunctionsbyQTkindofdevelopment,thebackenddatabaseusingSQLITE3,networkprogramminguseagreementisLinuxdominateSocketoftheTCP/IPprotocol.Thefrontdeskisdividedintothefrontdeskmanagement,ordermanagement,managementafterhutch,databasemanagement,serverfivefunctionmodule.Thesystem'smainoperationprocess,fromthecustomerinthefrontdeskchecktablefreeidlestate,intothetabletoorder,canaddfood,deletevegetablesetc,submitthemenu,kitchenaccordingtomenuaftercooking,thecustomertofrontdeskcheck,frontdeskprintbill,customercheckout,realizethefounding,order,andfood,deletevegetablesetcsystemdesignfunctions.Keywords:Restaurantordersystem;Linux;QT;SQLITE3目錄摘要 IAbstract II第1章緒論 11.1選題目的和意義 11.2國(guó)內(nèi)外綜述 11.3論文研究?jī)?nèi)容 2第2章相關(guān)知識(shí)概述 32.1系統(tǒng)開發(fā)環(huán)境 32.2系統(tǒng)的結(jié)構(gòu) 42.3應(yīng)用的相關(guān)技術(shù) 52.3.1QT圖形界面 52.3.2SQLite數(shù)據(jù)庫(kù) 52.3.3Linux系統(tǒng)支配的TCP/IP協(xié)議 6本章小結(jié) 8第3章系統(tǒng)分析及設(shè)計(jì) 9系統(tǒng)需求分析 9功能需求 9性能需求 9系統(tǒng)開發(fā)環(huán)境 10系統(tǒng)總體功能模塊 103.4數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 12本章小結(jié) 12第4章軟件設(shè)計(jì) 13數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì) 13各功能模塊的詳細(xì)設(shè)計(jì) 13效勞器管理模塊 134.2.2前臺(tái)管理模塊 144.2.3顧客點(diǎn)菜端管理模塊 154.2.4后廚管理系統(tǒng) 20數(shù)據(jù)庫(kù)管理模塊 20本章小結(jié) 22第5章系統(tǒng)測(cè)試 23測(cè)試方法與原那么 235.1.1黑盒測(cè)試 235.1.2測(cè)試根本原那么 235.2系統(tǒng)測(cè)試 235.3測(cè)試小結(jié) 26結(jié)論 27致謝 28參考文獻(xiàn) 29附錄A 30附錄B 35第1章緒論1.1選題目的和意義面對(duì)餐飲業(yè)多元化的經(jīng)營(yíng)現(xiàn)狀,經(jīng)營(yíng)的特色、規(guī)模、出品這些因素的不同,帶給餐飲企業(yè)的那么是不同的標(biāo)準(zhǔn)和工作流程和方法,面對(duì)著這解決方法不一的情況,對(duì)人才的專業(yè)化程度的要求也相應(yīng)地提高了,然而在國(guó)內(nèi)市場(chǎng)上,餐飲業(yè)人才供給缺乏,在這樣的兩難情況下,信息系統(tǒng)得出現(xiàn)暫緩了這一緊張局面。首先,餐飲管理信息系統(tǒng)不是單純的用于結(jié)帳計(jì)算的工具,它有著科學(xué)的、標(biāo)準(zhǔn)的管理體系,它是通過(guò)對(duì)目前餐飲市場(chǎng)的具體情況科學(xué)的調(diào)研分析后設(shè)計(jì)而成的,它能夠針對(duì)中餐因其菜品的多樣化和特色化的效勞很難實(shí)現(xiàn)標(biāo)準(zhǔn)化管理,使中餐企業(yè)的本錢控制很難實(shí)現(xiàn)這些問(wèn)題給與解決。其次,餐飲管理信息系統(tǒng)能夠給出具體的相應(yīng)的符合企業(yè)自身要求的較科學(xué)的標(biāo)準(zhǔn)化管理流程,這暫時(shí)緩解了專業(yè)人才的需求,通過(guò)使用該系統(tǒng)就能完成專業(yè)人員所要做的事。最后,餐飲管理信息系統(tǒng)可以針對(duì)企業(yè)的經(jīng)營(yíng)現(xiàn)狀而做出科學(xué)的分析,使得企業(yè)對(duì)市場(chǎng)的應(yīng)變能力得到了提高,從而通過(guò)餐飲管理信息系統(tǒng)來(lái)實(shí)現(xiàn)強(qiáng)化管理、降低本錢、堵漏節(jié)流等作用。更好的完善企業(yè)的經(jīng)營(yíng)管理,提高企業(yè)自身的競(jìng)爭(zhēng)實(shí)力。另一方面,基于ARM和Linux的嵌入式系統(tǒng),具有成熟的嵌入式硬件結(jié)構(gòu)和豐富的開放軟件資源,優(yōu)良的性能和廣泛的市場(chǎng)定位,這無(wú)疑對(duì)開發(fā)工作和學(xué)習(xí)研究是一個(gè)重大幫助;在GUI〔圖形用戶界面〕的選用上,使用基于C++語(yǔ)言面向?qū)ο缶幊痰膽?yīng)用程序開發(fā)軟件庫(kù)Qt,它聚集了豐富的C++類提供開發(fā)應(yīng)用程序用戶界面所需要的全部?jī)?nèi)容,具有優(yōu)良的跨平臺(tái)性能和豐富的API函數(shù)及開發(fā)文檔。另外,當(dāng)前量產(chǎn)的普通PDA和PC機(jī)硬件上已經(jīng)根本滿足點(diǎn)菜需求,使自行研究的專用硬件設(shè)備不再具有明顯的本錢優(yōu)勢(shì),為此,本課題集合嵌入式Linux和Qt開發(fā)應(yīng)用等技術(shù),以程序軟件的通用性和易用性為方向,構(gòu)造能夠方便移植的軟件。提高餐飲業(yè)的效勞質(zhì)量,并為自身研究學(xué)習(xí)嵌入式系統(tǒng)和GUI應(yīng)用開發(fā)提供一個(gè)良好的平臺(tái)。國(guó)內(nèi)外綜述餐廳點(diǎn)菜系統(tǒng)代表著當(dāng)今餐飲業(yè)解決方案中最尖端的領(lǐng)先科技,它集網(wǎng)絡(luò)通信技術(shù)與移動(dòng)電腦終端技術(shù)與一身,此高端技術(shù)應(yīng)用在餐飲行業(yè)中,即使在美國(guó)也是2001年才在洛杉磯的一家高檔餐廳中誕生;國(guó)內(nèi)于2002年3月份方有一例高檔的餐館在上海露面,開中國(guó)餐飲管理真正數(shù)字化之先河,在餐飲業(yè)轟動(dòng)一時(shí)。自此,點(diǎn)菜系統(tǒng)市場(chǎng)上豪杰并起,全面促進(jìn)了餐飲業(yè)信息化管理的普及和開展。目前,國(guó)內(nèi)已經(jīng)有不少公司開發(fā)出電子點(diǎn)菜系統(tǒng),例如上海工理電子的點(diǎn)菜通、餐飲通等,北京辰森計(jì)算機(jī)系統(tǒng)的手持點(diǎn)菜寶等。有些大型的餐飲企業(yè)已經(jīng)采用了這兩個(gè)公司的產(chǎn)品,例如,花雨大酒店、上海美林閣等采用了上海工理電子的點(diǎn)菜通或餐飲通;向陽(yáng)漁港集團(tuán)、中國(guó)全聚集團(tuán)、四川文杏大酒樓那么采用了北京辰森計(jì)算機(jī)系統(tǒng)的手持點(diǎn)菜系統(tǒng)。但是由于本錢等原因使電子點(diǎn)菜系統(tǒng)的餐館還比擬少,市場(chǎng)需求很大。隨著技術(shù)的進(jìn)步及餐飲業(yè)的劇烈競(jìng)爭(zhēng),電子點(diǎn)菜系統(tǒng)將會(huì)越來(lái)越普遍,并越做越好。市場(chǎng)上出現(xiàn)的點(diǎn)菜系統(tǒng)都是作為餐廳信息化管理系統(tǒng)的一局部出現(xiàn)的,它們除了實(shí)現(xiàn)根本的點(diǎn)菜功能外,為了便于客戶及管理者的使用,還添加了許多其他的功能,例如,查詢當(dāng)前餐館的資源使用情況,記錄營(yíng)業(yè)歷史,當(dāng)前工作狀態(tài)等。由此可見,開發(fā)餐廳點(diǎn)菜系統(tǒng)具有重大的意義。首先,提高運(yùn)營(yíng)效率與降低運(yùn)營(yíng)本錢,使用餐廳點(diǎn)菜系統(tǒng)可以加快點(diǎn)菜速度,減少人力資源的投入,防止跑、冒、漏;其次,提升餐廳品牌與形象,餐廳點(diǎn)菜系統(tǒng)是一個(gè)高科技產(chǎn)品,它代替?zhèn)鹘y(tǒng)的紙筆式點(diǎn)菜方式給人一種高貴的感覺(jué);最后,營(yíng)造一個(gè)安靜、舒服的就餐環(huán)境,傳統(tǒng)的餐廳點(diǎn)菜方式在某些環(huán)節(jié)中出現(xiàn)大聲喧嘩的場(chǎng)面,餐廳點(diǎn)菜系統(tǒng)那么可以防止這類情況的發(fā)生。如今開源的嵌入式Linux操作系統(tǒng)已經(jīng)開展的非常成熟,其性能并不亞于很多商業(yè)操作系統(tǒng),而且,它支持的上層軟件非常多,數(shù)據(jù)庫(kù)方面的有MySQL、Sqlite等,用戶圖形界面系統(tǒng)有Qt、MiniGUI和Microwindows等。因此,構(gòu)造一個(gè)基于嵌入式Linux的點(diǎn)菜系統(tǒng)在技術(shù)上來(lái)說(shuō)已經(jīng)不是困難的事。論文研究?jī)?nèi)容本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)功能簡(jiǎn)單的餐廳點(diǎn)菜系統(tǒng),基于該系統(tǒng)可以容易過(guò)渡到實(shí)用的點(diǎn)菜系統(tǒng)。在該系統(tǒng)的實(shí)現(xiàn)過(guò)程中設(shè)計(jì)到許多技術(shù),其中主要有嵌入式技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、用戶圖形界面編程技術(shù)等。餐廳點(diǎn)菜系統(tǒng)一般都涉及很多數(shù)據(jù),而且還要對(duì)數(shù)據(jù)進(jìn)行各種處理,因而絕大局部餐廳點(diǎn)菜系統(tǒng)都用數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)管理數(shù)據(jù)。數(shù)據(jù)庫(kù)管理系統(tǒng)一般依賴與某種操作系統(tǒng),因此,也要選擇一個(gè)適宜的操作系統(tǒng)。另外,為了方便用戶的使用,還要設(shè)計(jì)一個(gè)人性化的圖形界面。餐廳點(diǎn)菜系統(tǒng)中,管理數(shù)據(jù)的地方與使用數(shù)據(jù)的地方往往不在同一個(gè)站點(diǎn)上,需要用到計(jì)算機(jī)網(wǎng)絡(luò)將二者聯(lián)系起來(lái)。在本文設(shè)計(jì)的系統(tǒng)中使用了MySQL來(lái)管理數(shù)據(jù),操作系統(tǒng)選用了Linux,用戶圖形界面引入了Qt。本課題通過(guò)研究現(xiàn)有的電子點(diǎn)菜系統(tǒng)的解決方案,以當(dāng)代廣泛應(yīng)用的Linux系統(tǒng)、Qt圖形界面、SQLite數(shù)據(jù)庫(kù)、系統(tǒng)支持的TCP/IP網(wǎng)絡(luò)通信協(xié)議來(lái)實(shí)現(xiàn)的點(diǎn)菜系統(tǒng)的終端。具體包括以下內(nèi)容:1.Linux系統(tǒng)開發(fā)平臺(tái)的構(gòu)建:使用是全球應(yīng)用最廣泛的RedHatLinux,建立根本的開發(fā)環(huán)境,建立編譯工具,安裝用于程序開發(fā)的Qt,用于數(shù)據(jù)管理的SQLite3。2.點(diǎn)菜終端程序設(shè)計(jì):首先利用Qt設(shè)計(jì)器規(guī)劃點(diǎn)菜終端的程序的大致界面,然后遵循Qt編程一般規(guī)那么編寫代碼,主要為主窗口類的實(shí)現(xiàn),實(shí)現(xiàn)開臺(tái)、點(diǎn)菜、加菜、刪菜等功能,并在主程序中添加國(guó)際化和中文支持,編譯后進(jìn)行測(cè)試。3.?dāng)?shù)據(jù)庫(kù)的設(shè)計(jì):首先利用Qt設(shè)計(jì)器規(guī)劃數(shù)據(jù)庫(kù)管理程序的大致界面,然后遵循Qt編程一般規(guī)那么編寫代碼,主要為主窗口類的實(shí)現(xiàn),數(shù)據(jù)庫(kù)的管理功能,包括刪除菜單列表、添加菜單列表,查詢菜單等功能,并在主程序中添加中文支持。第2章相關(guān)知識(shí)概述本系統(tǒng)主要運(yùn)用到的開發(fā)系統(tǒng)環(huán)境是Linux系統(tǒng),選擇的是RedHat企業(yè)版5,該系統(tǒng)是采用C/S〔客戶端/效勞器〕架構(gòu)開發(fā)的,其中運(yùn)用到的技術(shù)有QT圖形界面的開發(fā)、SQLITE3數(shù)據(jù)庫(kù)的開發(fā)及socket編程。系統(tǒng)開發(fā)環(huán)境Linux是一種自由和開放源碼的類Unix操作系統(tǒng)。目前存在著許多不同的Linux,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,從、平板電腦、路由器和視頻游戲控制臺(tái),到臺(tái)式計(jì)算機(jī)、大型機(jī)和超級(jí)計(jì)算機(jī)。Linux是一個(gè)領(lǐng)先的操作系統(tǒng),世界上運(yùn)算最快的10臺(tái)超級(jí)計(jì)算機(jī)運(yùn)行的都是Linux操作系統(tǒng)。嚴(yán)格來(lái)講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但實(shí)際上人們已經(jīng)習(xí)慣了用Linux來(lái)形容整個(gè)基于Linux內(nèi)核,并且使用GNU工程各種工具和數(shù)據(jù)庫(kù)的操作系統(tǒng)。:Linux操作系統(tǒng)是UNIX操作系統(tǒng)的一種克隆系統(tǒng)。Linux于1991年8月在Usenet新聞組上正式發(fā)布〔Freeminx-likekernelsourcesfor386-AT〕。其創(chuàng)始人是林納斯·本納第克特·托瓦茲〔LinesBenedictTornados〕,出生于芬蘭赫爾辛基市。他畢業(yè)于赫爾辛基大學(xué)計(jì)算機(jī)科學(xué)系。早期的版本內(nèi)核發(fā)布于1994年3月14日,兩年之后版本發(fā)布,此時(shí),Linux功能已經(jīng)非常強(qiáng)大,只是界面設(shè)計(jì)不是很理想。Linux被群眾所關(guān)注是在1998年3月,當(dāng)Netscape承諾在GNU方案的GPL〔GeneralPublicLicense,通用公共許可證〕的一個(gè)修訂版本的根底上公開NetscapeCommunicatorInternet套件的源代碼的時(shí)候。同年7月,世界上最大的兩家關(guān)系數(shù)據(jù)庫(kù)廠商Informix和Oracle宣布把他們的數(shù)據(jù)庫(kù)產(chǎn)品移植到了Linux上。一個(gè)月后,Intel和Netscape公司購(gòu)置了Linux發(fā)布商中的領(lǐng)頭羊RedHat公司的少量股票,專項(xiàng)資金投入了Linux世界。次年,Linux成為了IT市場(chǎng)的年青分子,隨著RedHat和Valium成為上市的Linux公司,Linux得到了軟硬件廠商的投資支持,很快便眾所周知,公眾對(duì)Linux的興趣與日俱增,相關(guān)的群眾媒體也蜂擁而至,幾乎每周都有與Linux相關(guān)的消息發(fā)布,此時(shí)的Linux已經(jīng)不僅僅是愛(ài)好者的玩具了。如今Linux已經(jīng)是軟件開發(fā)人員的首選開發(fā)環(huán)境,其發(fā)行版超過(guò)了三百個(gè),最普遍被使用的發(fā)行版有大約十二個(gè),例如Bantu,RedHat,Defiant,F(xiàn)edora等。通常來(lái)講,一個(gè)Linux發(fā)行版包括Linux內(nèi)核,將整個(gè)軟件安裝到電腦上的一套安裝工具,各種GNU軟件,其他的一些自由軟件,在一些特定的Linux發(fā)行版中也有一些專有軟件。發(fā)行版為許多不同的目的而制作,包括對(duì)不同計(jì)算機(jī)結(jié)構(gòu)的支持,對(duì)一個(gè)具體區(qū)域或語(yǔ)言的本地化,實(shí)時(shí)應(yīng)用,和嵌入式系統(tǒng)。Linux主要作為L(zhǎng)inux發(fā)行版〔通常被稱為"distort"〕的一局部而使用2.Linux操作系統(tǒng)特點(diǎn):Linux是一款開放源代碼的操作系統(tǒng)。用戶可以通過(guò)任何途徑免費(fèi)獲得它的源代碼,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。由于它的開放性使無(wú)數(shù)程序員積極的參與了Linux的修改、編寫工作,使得Linux吸收了無(wú)數(shù)程序員在根據(jù)自己的興趣和靈感對(duì)其所做的精華改變,并不斷壯大。Linux支持多任務(wù)、多用戶。多任務(wù)使得Linux可以同時(shí)獨(dú)立運(yùn)行多個(gè)程序而互不影響,為大型的多任務(wù)工程提供保障。多用戶使得各個(gè)用戶對(duì)于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。Linux同時(shí)具有字符界面和圖形界面。在字符界面用戶可以通過(guò)鍵盤輸入相應(yīng)的指令來(lái)進(jìn)行操作。它同時(shí)也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對(duì)其進(jìn)行操作。在X-Window環(huán)境中就和在Windows中相似,可以說(shuō)是一個(gè)Linux版的Windows。Linux提供了先進(jìn)的網(wǎng)絡(luò)支持。它的網(wǎng)絡(luò)功能和其內(nèi)核緊密相連,用戶可以輕松實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽、文件傳輸、遠(yuǎn)程登陸等網(wǎng)絡(luò)工作。并且可以作為效勞器提供WWW、FTP、E-Mail等效勞。Linux完全運(yùn)行于保護(hù)模式,其中有對(duì)讀、寫進(jìn)行權(quán)限控制、審計(jì)跟蹤、核心授權(quán)等技術(shù)。Linux以它較高的穩(wěn)定性在網(wǎng)絡(luò)效勞器上利于不敗之地。Linux可以運(yùn)行在多種硬件平臺(tái)上,如具有x86、680x0、SPARC、Alpha等處理器的平臺(tái)。此外Linux還是一種嵌入式操作系統(tǒng),業(yè)界歸納為什么Linux嵌入式操作系統(tǒng)開展如此之快的三大原因是:第一,Linux在嵌入式系統(tǒng)所需的實(shí)時(shí)性、電源管理等核心技術(shù)不斷開展,成熟可期。第二,國(guó)際標(biāo)準(zhǔn)組織OSDL、CELF等,持續(xù)建立嵌入式Linux相關(guān)標(biāo)準(zhǔn),有效解決版本分歧與兼容性問(wèn)題。第三,業(yè)界主導(dǎo)組織、開發(fā)廠商等不斷推出嵌入式Linux相關(guān)開發(fā)工具、維護(hù)系統(tǒng)。2001年1月份發(fā)布的Linux2.4版內(nèi)核已經(jīng)能夠完全支持Intel64位芯片架構(gòu)。同時(shí)Linux也支持多處理器技術(shù)。多個(gè)處理器同時(shí)工作,使系統(tǒng)性能大大提高。Linux支持?jǐn)?shù)十種文件系統(tǒng)格式。普通文件,純文本文件,二進(jìn)制文件,數(shù)據(jù)格式文件,目錄,連接文件,設(shè)備與設(shè)備文件,塊設(shè)備文件,字符設(shè)備文件,套接字和管道等。采用先進(jìn)的內(nèi)存管理機(jī)制,更加有效的利用物理內(nèi)存。主要有頁(yè)面、連續(xù)內(nèi)存區(qū)管理和非連續(xù)存儲(chǔ)區(qū)管理機(jī)制。inux的根本思想:Linux的根本思想有兩點(diǎn),第一,一切都是文件;第二,每個(gè)軟件都有確定的用途。其中第一條詳細(xì)來(lái)講就是系統(tǒng)中的所有都?xì)w結(jié)為一個(gè)文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對(duì)于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的文件。至于說(shuō)Linux是基于Unix的,很大程度上也是因?yàn)檫@兩者的根本思想十分相近。2.2系統(tǒng)的結(jié)構(gòu)傳統(tǒng)的C/S體系結(jié)構(gòu)常采用的是開放模式,但這只是系統(tǒng)開發(fā)一級(jí)的開放性,在特定的應(yīng)用中無(wú)論是Client端還是Server端都還需要特定的軟件支持。由于沒(méi)能提供用戶真正期望的開放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)用戶同時(shí)使用。而且代價(jià)高,效率低。目前,C/S結(jié)構(gòu)的根本原那么是將計(jì)算機(jī)任務(wù)分解成多個(gè)子任務(wù),由多臺(tái)計(jì)算機(jī)分工完成,即采用“功能分布〞原那么??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;效勞器端完成DBMS的核心功能。這種客戶請(qǐng)求效勞、效勞器提供效勞的處理方式是一種新型的計(jì)算機(jī)應(yīng)用模式。C/S結(jié)構(gòu)的優(yōu)點(diǎn)是能充分發(fā)揮出客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給效勞器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶端響應(yīng)速度非常快。缺點(diǎn)主要反映以下3個(gè)方面:1.只適用于局域網(wǎng)。而隨著互聯(lián)網(wǎng)的飛速開展,移動(dòng)辦公和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。這種方式遠(yuǎn)程訪問(wèn)需要專門的技術(shù),同時(shí)要對(duì)系統(tǒng)進(jìn)行專門的設(shè)計(jì)來(lái)處理分布式的數(shù)據(jù)。2.客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺(tái)電腦出問(wèn)題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù)。特別是有很多分部或?qū)Yu店的情況,不是工作量的問(wèn)題,而是路程的問(wèn)題。還有,系統(tǒng)軟件升級(jí)時(shí),每一臺(tái)客戶機(jī)需要重新安裝,其維護(hù)和升級(jí)本錢非常高。3.對(duì)客戶端的操作系統(tǒng)一般也會(huì)有限制??赡苓m應(yīng)于Win98,但不能用于win2000或WindowsXP?;蛘卟贿m用于微軟新的操作系統(tǒng)等等,更不用說(shuō)Linux、Unix等。2.3應(yīng)用的相關(guān)技術(shù)本系統(tǒng)應(yīng)用的相關(guān)技術(shù)主要有QT的圖形界面的開發(fā)、數(shù)據(jù)庫(kù)的SQLITE的應(yīng)用、還有運(yùn)用到了TCP/IP協(xié)議。2.3.1QT圖形界面1.Qt概念:Qt是諾基亞開發(fā)的一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級(jí)的圖形用戶界面所需的所用功能。QT是完全面向?qū)ο蟮?,很容易擴(kuò)展,并且允許真正地組件編程。所以說(shuō)QT的進(jìn)步開展將會(huì)推進(jìn)諾基亞桌面等方面的大幅度進(jìn)步。2.Qt的特點(diǎn):Qt是一款面向?qū)ο蟮膱D形界面開發(fā)工具。Qt的良好封裝機(jī)制使得Qt的模塊化程度非常高,可重用性較好,對(duì)于用戶開發(fā)來(lái)說(shuō)是非常方便的。Qt提供了一種稱為signals/slots的平安類型來(lái)替代callback,這使得各個(gè)元件之間的協(xié)同工作變得十分簡(jiǎn)單。它具有豐富的API。Qt包括多達(dá)250個(gè)以上的C++類,還提供基于模板的collections,serialization,file,I/Odevice,directorymanagement,date/time類。甚至還包括正那么表達(dá)式的處理功能。Qt支持2D/3D圖形渲染,支持OpenGL。真正使得Qt在自由軟件界的眾多Widgets(如Lesstif,Gtk,EZWGL,Xforms,fltk等等)中脫穎而出的還是基于Qt的重量級(jí)軟件KDE。3.QtCreator:在發(fā)布Qt4.6的同時(shí),作為Qt開發(fā)跨平臺(tái)IDE的QtCreator也發(fā)布了更新版本。QtCreator1.3和Qt4.6共同構(gòu)成的QtSDK,包含了開發(fā)跨平臺(tái)應(yīng)用程序所需的全部功能。QtCreator是一個(gè)用于Qt開發(fā)的輕量級(jí)跨平臺(tái)集成開發(fā)環(huán)境。QtCreator可帶來(lái)兩大關(guān)鍵益處:提供首個(gè)專為支持跨平臺(tái)開發(fā)而設(shè)計(jì)的集成開發(fā)環(huán)境(IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。QtCreator包含了一套用于創(chuàng)立和測(cè)試基于Qt應(yīng)用程序的高效工具,包括:一個(gè)高級(jí)的C++代碼編輯器上下文感知幫助系統(tǒng)可視化調(diào)試器源代碼管理工程和構(gòu)建管理工具。2.3.2SQLite數(shù)據(jù)庫(kù)SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比方Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月,至今已經(jīng)有10個(gè)年頭,SQLite也迎來(lái)了一個(gè)版本SQLite3已經(jīng)發(fā)布。SQLite的具有以下特性:1.ACID事務(wù);–無(wú)需安裝和管理配置;3.儲(chǔ)存在單一磁盤文件中的一個(gè)完整的數(shù)據(jù)庫(kù);4.數(shù)據(jù)庫(kù)文件可以在不同字節(jié)順序的機(jī)器間自由的共享;5.支持?jǐn)?shù)據(jù)庫(kù)大小至2TB;6.足夠小,大致3萬(wàn)行C代碼,250K;7.比一些流行的數(shù)據(jù)庫(kù)在大局部普通數(shù)據(jù)庫(kù)操作要快;8.簡(jiǎn)單,輕松的API;9.包含TCL綁定,同時(shí)通過(guò)Wrapper支持其他語(yǔ)言的綁定。;10.良好注釋的源代碼,并且有著90%以上的測(cè)試覆蓋率;11.獨(dú)立:沒(méi)有額外依賴;12.Source完全的Open,你可以用于任何用途,包括出售它;13.支持多種開發(fā)語(yǔ)言,C,PHP,Perl,Java,C#,Python?;赟QLITE有諸多特性,我在設(shè)計(jì)該點(diǎn)菜系統(tǒng)時(shí)應(yīng)用的數(shù)據(jù)庫(kù)選擇了它,它雖然很小巧,但是支持的SQL語(yǔ)句不會(huì)遜色于其他開源數(shù)據(jù)庫(kù),同時(shí)還支持事務(wù)處理功能等待。2.3.3Linux系統(tǒng)支配的TCP/IP協(xié)議TCP/IP是一個(gè)網(wǎng)絡(luò)協(xié)議族的名字,協(xié)議是所有軟件產(chǎn)品必須遵守的、能夠保證各種軟件產(chǎn)品能夠正確通訊的規(guī)那么。協(xié)議還定義了每一局部數(shù)據(jù)塊怎樣管理所傳輸?shù)臄?shù)據(jù)。精確一點(diǎn)說(shuō),一個(gè)協(xié)議定義了兩個(gè)應(yīng)用程序或是計(jì)算機(jī)之間能夠進(jìn)行互相通訊,對(duì)于其中的每一個(gè)〔應(yīng)用程序或計(jì)算機(jī)〕都保證使用同樣的標(biāo)準(zhǔn)。TCP/IP代表傳輸控制協(xié)議/網(wǎng)絡(luò)協(xié)議,它是做為軟件的網(wǎng)絡(luò)組成部件而設(shè)計(jì)的。每個(gè)TCP/IP的協(xié)議都有他專門的工作,比方萬(wàn)維網(wǎng)〔WWW〕,發(fā)送電子郵件〔E-mail〕,傳輸文件〔Ftp〕,提供遠(yuǎn)程登陸效勞等。從協(xié)議分層模型方面來(lái)講,TCP/IP由四個(gè)層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。TCP/IP協(xié)議并不完全符合OSI的七層參考模型。OSI是傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來(lái)完成自己的需求。由于ARPNET的設(shè)計(jì)者注重的是網(wǎng)絡(luò)互聯(lián),允許通信子網(wǎng)〔網(wǎng)絡(luò)接口層〕采用已有的或是將來(lái)有的各種協(xié)議,所以這個(gè)層次中沒(méi)有提供專門的協(xié)議。實(shí)際上,TCP/IP協(xié)議可以通過(guò)網(wǎng)絡(luò)接口層連接到任何網(wǎng)絡(luò)上,例如X.25交換網(wǎng)或IEEE802局域網(wǎng)。TCP/IP協(xié)議的具有以下3個(gè)特點(diǎn):1.對(duì)數(shù)據(jù)可靠性的要求:對(duì)數(shù)據(jù)要求高可靠性的應(yīng)用需選擇TCP協(xié)議,如驗(yàn)證、密碼字段的傳送都是不允許出錯(cuò)的,而對(duì)數(shù)據(jù)的可靠性要求不那么高的應(yīng)用可選擇UDP傳送。2.應(yīng)用的實(shí)時(shí)性:TCP協(xié)議在傳送過(guò)程中要使用三次握手、重傳確認(rèn)等手段來(lái)保證數(shù)據(jù)傳輸?shù)目煽啃浴J褂肨CP協(xié)議會(huì)有較大的時(shí)延,因此不適合對(duì)實(shí)時(shí)性要求較高的應(yīng)用,如VOIP、視頻監(jiān)控等。相反,UDP協(xié)議那么在這些應(yīng)用中能發(fā)揮很好的作用。3.網(wǎng)絡(luò)的可靠性:由于TCP協(xié)議的提出主要是解決網(wǎng)絡(luò)的可靠性問(wèn)題,它通過(guò)各種機(jī)制來(lái)減少錯(cuò)誤發(fā)生的概率。因此,在網(wǎng)絡(luò)狀況不是很好的情況下需選用TCP協(xié)議〔如在廣域網(wǎng)等〕,但是假設(shè)在網(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效勞在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說(shuō),IP地址形成了許多效勞的認(rèn)證根底,這些效勞相信數(shù)據(jù)包是從一個(gè)有效的主機(jī)發(fā)送來(lái)的。IP確認(rèn)包含一個(gè)選項(xiàng),叫作IPsourcerouting,可以用來(lái)指定一條源地址和目的地址之間的直接路徑。對(duì)于一些TCP和UDP的效勞來(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)的效勞將產(chǎn)生問(wèn)題并且會(huì)被非法入侵。TCP是面向連接的通信協(xié)議,通過(guò)三次握手建立連接,通訊完成時(shí)要撤除連接,由于TCP是面向連接的所以只能用于點(diǎn)對(duì)點(diǎn)的通訊。TCP提供的是一種可靠的數(shù)據(jù)流效勞,采用“帶重傳的肯定確認(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的效勞程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。面向連接的效勞〔例如Telnet、FTP、rlogin、XWindows和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)的流程圖如下列圖2-1所示。客戶端客戶端效勞器端socketsocketrecv/recvfromsend/sendtoclosesend/sendtoclosebindlistenacceptconnectrecv/recvfrom圖2-1TCP/IP協(xié)議流程圖本章小結(jié)本章主要詳細(xì)介紹了該點(diǎn)菜系統(tǒng)應(yīng)用的相關(guān)的技術(shù),主要介紹了開發(fā)的系統(tǒng)環(huán)境Linux系統(tǒng)和用到的數(shù)據(jù)庫(kù)SQLITE3,運(yùn)用到的圖形界面開發(fā)工具QT,運(yùn)用到的網(wǎng)絡(luò)技術(shù)TCP/IP協(xié)議等概念,并且介紹了相關(guān)技術(shù)的特點(diǎn)。第3章系統(tǒng)分析及設(shè)計(jì)系統(tǒng)需求分析隨著局域網(wǎng)技術(shù)與電子商務(wù)的深入開展,餐廳自助點(diǎn)菜系統(tǒng)也在國(guó)內(nèi)外蓬勃開展,并日益深入到人們的生活當(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ù)流程如下:1.效勞器負(fù)責(zé)前臺(tái)、廚房、數(shù)據(jù)庫(kù)管理、點(diǎn)菜終端的通信;2.點(diǎn)菜終端從數(shù)據(jù)庫(kù)獲取菜品信息;3.前臺(tái)負(fù)責(zé)查詢餐臺(tái)的空閑狀態(tài)和結(jié)賬并打印賬單;4.顧客點(diǎn)菜,并填入數(shù)據(jù)庫(kù);5.效勞器接受點(diǎn)菜信息并發(fā)送給后廚;6.后廚開始按照菜單信息做菜;7.用戶到前臺(tái)結(jié)賬;8.結(jié)果被顯示給用戶,顧客結(jié)賬。功能需求用戶在客戶端點(diǎn)菜,通過(guò)局域網(wǎng)傳送到效勞器,后廚接受從效勞器接受到菜單信息,客戶在前臺(tái)結(jié)賬。同時(shí)有個(gè)數(shù)據(jù)庫(kù)管理界面可以實(shí)現(xiàn)菜品信息的管理。根據(jù)系統(tǒng)功能的需求,分析了所需要的系統(tǒng)總功能結(jié)構(gòu)如表3-1所示。表3-1功能需求名稱功能客戶端設(shè)置根底信息,更新菜譜,點(diǎn)菜,結(jié)賬,打印賬單;效勞器負(fù)責(zé)各終端間的通信;性能需求本系統(tǒng)性能要求主要是以下5個(gè)方面。1.系統(tǒng)處理的準(zhǔn)確性和及時(shí)性:系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(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)的成敗。在系開發(fā)過(guò)程中,必須保證系統(tǒng)的準(zhǔn)確性。2.系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性:餐廳自助點(diǎn)菜系統(tǒng)在開發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如新增菜品,會(huì)員充值等。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過(guò)系統(tǒng)的開放性來(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ì)開發(fā)使用過(guò)程中都要涉及到很多計(jì)算機(jī)硬件、軟件。所有這些都要符合主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。例如在開發(fā)中使用的操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、開發(fā)工具都必須符合通用標(biāo)準(zhǔn)。如標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)操縱界面、作為業(yè)界標(biāo)準(zhǔn)的TCP/IP網(wǎng)絡(luò)協(xié)議及ISO9002標(biāo)準(zhǔn)所要求的質(zhì)量標(biāo)準(zhǔn)等;同時(shí),在自主開發(fā)本系統(tǒng)時(shí),要進(jìn)行良好的設(shè)計(jì)工作,制訂行之有效的軟件工程標(biāo)準(zhǔn),保證代碼的易讀性、可操作性和可移植性。5.系統(tǒng)的先進(jìn)性:目前計(jì)算系統(tǒng)的技術(shù)開展相當(dāng)快,做為餐廳管理系統(tǒng)工程,應(yīng)該在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進(jìn)。這一方面通過(guò)系統(tǒng)的開放性和可擴(kuò)充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計(jì)和開發(fā)的過(guò)程中,應(yīng)在考慮本錢的根底上盡量采用當(dāng)前主流并先進(jìn)且有良好開展前途的工具。系統(tǒng)開發(fā)環(huán)境本系統(tǒng)是基于Linux系統(tǒng)中Qt來(lái)設(shè)計(jì)前臺(tái)應(yīng)用系統(tǒng)的可視化界面,而后臺(tái)局部數(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)用程序集成開發(fā)環(huán)境,支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn),Linux系統(tǒng)中的Qt提供了可視化的界面。用QtCreator可以動(dòng)態(tài)的調(diào)整用戶風(fēng)格圖形界面,直到滿意為止。系統(tǒng)總體功能模塊根據(jù)對(duì)餐廳點(diǎn)菜系統(tǒng)需要實(shí)現(xiàn)的功能進(jìn)行需求分析,將本系統(tǒng)的前臺(tái)劃分為前臺(tái)管理,點(diǎn)菜管理,后廚管理,數(shù)據(jù)庫(kù)管理,效勞器五個(gè)功能模塊;系統(tǒng)功能模塊如圖3-1所示。查詢查詢餐臺(tái)信息結(jié)賬查詢餐臺(tái)信息結(jié)賬打印賬單前臺(tái)管理模塊效勞器后廚管理模塊刪菜詢問(wèn)接收菜單做完顧客點(diǎn)菜模塊點(diǎn)菜加菜退菜開始圖3-1系統(tǒng)總功能模塊餐廳點(diǎn)菜系統(tǒng)的功能模塊概要描述如表3-2所示。表3-2功能模塊描述表名稱功能效勞器負(fù)責(zé)前臺(tái),點(diǎn)菜終端,后廚終端間的通信;前臺(tái)終端負(fù)責(zé)查詢餐臺(tái)空閑信息,顧客結(jié)賬,并打印賬單信息;點(diǎn)菜終端設(shè)置根底信息,更新菜譜,點(diǎn)菜,加菜,刪菜;后廚終端接收顧客點(diǎn)菜的菜單信息進(jìn)行做菜;數(shù)據(jù)庫(kù)管理負(fù)責(zé)管理數(shù)據(jù)庫(kù)的菜菜品信息;1.效勞器功能:效勞器功能是整個(gè)系統(tǒng)的傳輸通道,是系統(tǒng)的重中之重。當(dāng)顧客點(diǎn)菜客戶端與效勞器連接后,可通過(guò)此將點(diǎn)菜信息發(fā)送到后廚。后廚和效勞器連接后,可以將做完的菜發(fā)送到效勞器,效勞器將信息發(fā)送到點(diǎn)菜客戶端和前臺(tái)。2.前臺(tái)終端管理:前臺(tái)是本系統(tǒng)重要組成局部之一。本模塊可以查詢當(dāng)前餐臺(tái)的空閑信息、接收效勞器發(fā)送過(guò)來(lái)顧客點(diǎn)菜的消費(fèi)菜單信息,并打印菜單給客戶。細(xì)分的功能模塊如圖3-2。結(jié)賬前臺(tái)管理模塊結(jié)賬前臺(tái)管理模塊查詢餐臺(tái)信息打印賬單查詢餐臺(tái)信息打印賬單圖3-2前臺(tái)終端模塊3.點(diǎn)菜終端:點(diǎn)菜終端是本系統(tǒng)給顧客的使用的,是本系統(tǒng)的重要組成局部。本模塊將用戶點(diǎn)菜單菜肴發(fā)送到效勞器,并將數(shù)據(jù)信息添加到數(shù)據(jù)庫(kù)。細(xì)分的功能模塊如圖3-3所示。選擇菜肴功能是將用戶選擇的菜肴存與表中,用戶可以添加與刪除。點(diǎn)菜信息發(fā)送功能是將用戶點(diǎn)菜信息以結(jié)構(gòu)體的形式發(fā)送到效勞器,并添加到相應(yīng)的數(shù)據(jù)庫(kù)中。點(diǎn)菜點(diǎn)菜點(diǎn)菜信息發(fā)送點(diǎn)菜終端選擇菜肴刪菜加菜圖3-3點(diǎn)菜終端模塊4.后廚終端:后廚終端從效勞器接收到顧客點(diǎn)的菜肴,可以繼續(xù)接受顧客加菜的菜單、按照菜單做菜,并可以詢問(wèn)菜是否需要退菜。細(xì)分功能如圖3-4所示。詢問(wèn)刪菜詢問(wèn)刪菜做完接收菜單后廚管理模塊圖3-4后廚終端模塊5.?dāng)?shù)據(jù)庫(kù)管理:數(shù)據(jù)庫(kù)管理管理菜單數(shù)據(jù)庫(kù)信息,包括刪除菜單列表、添加菜單列表,查詢菜單等功能。細(xì)分?jǐn)?shù)據(jù)庫(kù)管理功能模塊如圖3-5所示。刪除菜單列表功能是將刪除不做的菜肴信息。添加菜單列表功能是允許可以添加新的菜肴信息。查詢菜單功能是查詢是否有哪道菜肴信息。數(shù)據(jù)庫(kù)管理模塊查詢菜譜信息添加菜譜信息刪除菜譜信息數(shù)據(jù)庫(kù)管理模塊查詢菜譜信息添加菜譜信息刪除菜譜信息圖3-5數(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à)格、菜肴的描述。本章小結(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ǔ)言,開發(fā)環(huán)境為L(zhǎng)inuxRedHat企業(yè)版5,效勞器編譯工具為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)如圖表4-1所示。表4-1菜單信息表名稱類型(長(zhǎng)度)空屬性Idvarchar(20)nouniqueIddvarchar(20)yesNamevarchar(20)yesPricevarchar(20)yesImagepathvarchar(20)yesAboutvarchar(20)yes各功能模塊的詳細(xì)設(shè)計(jì)本系統(tǒng)有五個(gè)模塊組成,分別為server〔效勞器〕,前臺(tái)管理模塊,顧客點(diǎn)菜管理模塊,后廚管理模塊,數(shù)據(jù)庫(kù)管理模塊等。效勞器管理模塊效勞器模塊主要是用C語(yǔ)言編寫的,主要是為其他模塊間的通信。其中主要運(yùn)用到TCP/IP協(xié)議通信的。運(yùn)用到了TCP/IP協(xié)議函數(shù),首先socket()函數(shù)獲得套接字描述符,然后用bind()函數(shù)將描述符捆綁到IP上,監(jiān)聽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("Socketerror!");exit(0);}/*效勞器端填充sockaddr_in結(jié)構(gòu)*/bzero(&server_addr,sizeof(server_addr));server_addr.sin_family=AF_INET;server_addr.sin_addr.s_addr=inet_addr("");server_addr.sin_port=htons(portnumber);/*捆綁sockfd描述符到IP地址*/if(bind(sockfd,(structsockaddr*)&server_addr,sizeof(server_addr))==-1){perror("Binderror!");exit(0);}/*設(shè)置允許連接的最大客戶端數(shù)*/if(listen(sockfd,10)==-1){perror("Listenerror!");exit(0);}address_size=sizeof(client_addr);while(1){inti=0;/*效勞器阻塞,等待客戶程序建立連接*/if((accefd=accept(sockfd,(structsockaddr*)&client_addr,&address_size))==-1){perror("Accepterror!");exit(0);}sock_accept[i]=accefd;i++;/*創(chuàng)立線程,處理客戶端請(qǐng)求*/pthread_ttid;pthread_create(&tid,0,run,&accefd);/*效勞器主程序返回繼續(xù)等待下一次客戶端連接*/}close(sockfd);4.2.2前臺(tái)管理模塊前臺(tái)管理模塊主要查看餐臺(tái)空閑信息,和打印賬單兩局部組成。餐臺(tái)空閑信息主要是根據(jù)Button組件文本顯示判斷的是否是空閑狀態(tài),空閑時(shí),當(dāng)顧客來(lái)時(shí)如空閑點(diǎn)擊按鈕就connect()觸發(fā)了槽函數(shù)table1(),其中槽函數(shù)中用到Button類的成員函數(shù)setText(),將button的文本信息設(shè)置為“1號(hào)有人〞。同樣,當(dāng)顧客結(jié)賬時(shí)點(diǎn)擊按鈕觸發(fā)槽函數(shù)打印賬單給顧客查看,同時(shí)將Button的文本信息設(shè)置為“2人桌〞,賬單是用QListWidget類來(lái)顯示。主要實(shí)現(xiàn)代碼如下:voidforegroundDialog::table1(){ QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));staticboola=true;if(a){button1->setText(tr("1號(hào)有人"));a=false;}else//結(jié)帳{shou();inti=0;doublesum=0;//將客人消費(fèi)情況添加到賬單列表QListWidget*list=newQListWidget;QStringstr1=QString(tr("菜名價(jià)格數(shù)量"));list->insertItem(0,str1);while(menu1[i].num!=0){chara[50];memset(a,0,sizeof(a));sprintf(a,"%d%d",menu1[i].price,menu1[i].num);list->insertItem(i+1,QString(tr(menu1[i].name)+tr("")+tr(a)));sum+=menu1[i].price*menu1[i].num;i++;}QStringa;charaf[10];sprintf(af,"%d",menu1[0].buff[1]);a.append(QString("%1").arg(sum));QStringstr2=QString(tr("桌號(hào):")+tr(af)+tr("共計(jì)"));list->insertItem(i+1,str2+a);list->show();//添加當(dāng)前時(shí)間到賬單time_tlt;lt=time(NULL);charaa[80];memset(aa,0,sizeof(aa));sprintf(aa,"%s",ctime(<));list->insertItem(i+2,QString(tr(aa)));button1->setText(tr("1號(hào)(2人桌)"));a=true;}4.2.3顧客點(diǎn)菜端管理模塊點(diǎn)菜端是顧客從前臺(tái)獲知該餐桌空閑,那么開臺(tái),并開始點(diǎn)菜,點(diǎn)菜界面可以根據(jù)菜譜信息點(diǎn)擊選擇按鈕,如果需要?jiǎng)h除可以點(diǎn)擊刪除按鈕,當(dāng)確認(rèn)后點(diǎn)擊提交按鈕就將顧客點(diǎn)菜信息發(fā)送到效勞器,效勞器并發(fā)送到后廚。首先創(chuàng)立套接字描述符Socket()函數(shù),然后連接效勞器connect()。主要代碼實(shí)現(xiàn)如下:/*客戶程序建立sockfd描述符*/if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)/*客戶程序填充效勞端的資料*/bzero(&server_addr,sizeof(server_addr));server_addr.sin_family=AF_INET;server_addr.sin_addr.s_addr=inet_addr("");server_addr.sin_port=htons(portnumber);/*客戶程序發(fā)起連接請(qǐng)求*/if(connect(sockfd,(structsockaddr*)&server_addr,sizeof(structsockaddr))==-1)開臺(tái)界面有兩個(gè)選擇都是用QComboBox類,可以選擇現(xiàn)在是幾號(hào)桌和人數(shù),點(diǎn)擊開臺(tái)Button同樣觸發(fā)槽函數(shù)slotOkButton()的發(fā)生,會(huì)讓點(diǎn)菜界面顯示用到QWidget類中的成員show()函數(shù)。再send()將開臺(tái)信息發(fā)送到效勞器。點(diǎn)擊主要實(shí)現(xiàn)代碼如下:voidwelcomeDialog::slotOkButton()//開臺(tái){ if(star==true) { QStringst=numberComboBox->currentText(); tableNumber=st.toInt(); diancaiDialog*dianc=newdiancaiDialog; dianc->show(); SeleteList[0].buffer[0]=1; SeleteList[0].buffer[1]=tableNumber; send(sockfd,SeleteList,sizeof(SeleteList),0); star=false; } else {;}}菜單列表是從數(shù)據(jù)庫(kù)列表中獲取的,首先用QSqlDatabase類中的addDatabase()成員函數(shù)加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),然后用setDatabaseName()成員函數(shù)指明的數(shù)據(jù)庫(kù)名稱,在用open()成員函數(shù)翻開并獲取菜單信息用QLable類組件顯示。主要實(shí)現(xiàn)代碼如下:QSqlDatabasedata=QSqlDatabase::addDatabase("QSQLITE");//加載數(shù)據(jù)庫(kù)驅(qū)動(dòng) data.setDatabaseName("database");//指明數(shù)據(jù)庫(kù)名稱 //翻開數(shù)據(jù)庫(kù)if(!data.open()){ QMessageBox::critical(0,QObject::tr("Datebaseerror"), data.lastError().text());}QSqlQueryquery;query.exec("select*frommenubook");點(diǎn)菜功能實(shí)現(xiàn)主要是中選擇按鈕按下時(shí),觸發(fā)的槽函數(shù)slotImButton(),實(shí)現(xiàn)菜品選擇功能,將選擇菜的信息添參加已選列表,并存入SeleteList中,分為提交前選菜和提交后加菜兩局部。主要代碼實(shí)現(xiàn)如下:voiddiancaiDialog::slotImButton()//選擇{ staticintn=0; QStringlistText=imLabel->text(); QStringlistText1=im1Label->text(); QStringlistText2=spinBox->text(); QStringtext; text=listText1+listText; text+="\t"; text+=listText2; okList->insertItem(n,text); spinBox->setValue(1); okList->setCurrentRow(0); ints=okList->count()-1; //遍歷MenuBook,查找與宣傳顯示相同名稱的菜,并將其信息存入SeleteList或additem for(intj=0;j<m;j++) { if(listText==MenuBook[j].Name) { QByteArrayba=MenuBook[j].Name.toUtf8(); strcpy(SeleteList[s].nam,ba.data()); SeleteList[s].num=listText2.toInt(); SeleteList[s].pric=MenuBook[j].Price; printf("add:%s\n",SeleteList[s].nam); if(pro==false)//加菜 { staticintss=0; strcpy(additem[ss].addnam,ba.data()); additem[ss].addnum=listText2.toInt(); additem[ss].addpric=MenuBook[j].Price; printf("name:%snum:%d\n",additem[ss].addnam,additem[ss].addnum); ss++; } } }}當(dāng)刪除按鈕按下時(shí),觸發(fā)的槽函數(shù)slotDelete(),實(shí)現(xiàn)提交前從已選列表及SeleteList中刪除,提交后刪菜功能。主要實(shí)現(xiàn)代碼如下:voiddiancaiDialog::slotDelete()//刪除{ if(okList->count()==0) del=false; else del=true; if(del==true) { QStringtext=okList->currentItem()->text(); intcou=okList->count(); introw=okList->currentRow(); //獲取當(dāng)前選擇工程,并將其從已選列表和SeleteList中刪除QListWidgetItem*item=okList->takeItem(okList->currentRow()); deleteitem; intf; for(f=cou-row-1;f<cou;f++) { SeleteList[f]=SeleteList[f+1]; memset(SeleteList[cou].nam,0,sizeof(SeleteList[cou].nam)); SeleteList[cou].num=0; ipric-=SeleteList[cou].num*SeleteList[cou].pric; } //提交后刪菜 if(pro==false) { intm; ipric=0; for(m=0;m<okList->count();m++) ipric+=SeleteList[m].pric*SeleteList[m].num; printf("ipric:%d\n",ipric); QByteArrayba=text.toUtf8(); strcpy(additem[0].addnam,ba.data()); additem[0].bufer[0]=4; additem[0].bufer[1]=tableNumber; additem[0].addnum=1; for(m=0;m<6;m++) additem[0].addnam[m]=''; send(sockfd,additem,sizeof(additem),0); } } else//del==false {;}}當(dāng)提交按鈕按下時(shí),觸發(fā)的槽函數(shù)on_listOkButton_clicked(),實(shí)現(xiàn)將選擇的菜品信息seletelist結(jié)構(gòu)體send()發(fā)送至效勞器的功能。主要代碼實(shí)現(xiàn)如下:voiddiancaiDialog::on_listOkButton_clicked()//提交{ QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); //將選擇的菜發(fā)送至效勞器 if(pro==true) { SeleteList[0].buffer[0]=2; SeleteList[0].buffer[1]=tableNumber; send(sockfd,SeleteList,sizeof(SeleteList),0); } //將添加的菜發(fā)送至效勞器 elseif(pro==false) { additem[0].bufer[0]=5; additem[0].bufer[1]=tableNumber; send(sockfd,additem,sizeof(additem),0); intii=0; for(ii=0;additem[ii].addnum!=0;ii++) printf("%s%d\n",additem[ii].addnam,additem[ii].addnum); memset(additem,0,sizeof(additem)); } //計(jì)算消費(fèi)金額 intm; ipric=0; for(m=0;m<okList->count();m++) ipric+=SeleteList[m].pric*SeleteList[m].num; QMessageBox::about(this,"ok",tr("提交完成")); pro=false;}當(dāng)結(jié)賬按鈕按下時(shí),觸發(fā)此槽函數(shù)on_listPayButton_clicked(),結(jié)算清單,send()發(fā)送至效勞器。結(jié)賬功能代碼實(shí)現(xiàn)如下:voiddiancaiDialog::on_listPayButton_clicked()//結(jié)帳{if(pro==true){;}else{//建立消息框QDialog*dlg= newQDialog;dlg->setWindowTitle(tr("消費(fèi)金額"));QStringstr;str.append(QString("%1").arg(ipric));str=tr("RMB:")+str+tr("元");QLabel*label=newQLabel;label->setText(str);QPushButton*btn=newQPushButton(tr("確定"));QVBoxLayout*layout=newQVBoxLayout(dlg);layout->addWidget(label);layout->addWidget(btn);connect(btn,SIGNAL(clicked()),dlg,SLOT(close()));dlg->show();quitButton->show();//添加桌號(hào)、消費(fèi)金額SeleteList[0].buffer[0]=3;SeleteList[0].buffer[1]=tableNumber;SeleteList[0].buffer[2]=ipric;send(sockfd,SeleteList,sizeof(SeleteList),0);}}后廚管理系統(tǒng)后廚首先連接效勞器,同樣連接效勞器函數(shù)socket(),connect(),廚師點(diǎn)擊接受Button觸發(fā)槽函數(shù)slotrec(),槽函數(shù)中用TCP/IP協(xié)議中的recv()函數(shù)將顧客點(diǎn)菜信息接收到并用QListWidget類中insertItem()成員函數(shù)將菜單顯示出,其中用到time_t類將時(shí)間顯示出并按照其做菜,當(dāng)做完一個(gè)菜時(shí)點(diǎn)擊做完按鈕時(shí)將菜單信息刪除該做完了菜用QListWidgetItem類中takeItem()成員函數(shù)delete刪除一行,并將其添加到做完菜單列表中用QListWidget類中的insertItem()成員函數(shù)。主要實(shí)現(xiàn)如下:hhDialog::hhDialog(QWidget*parent,Qt::WindowFlagsf):QDialog(parent,f){QHBoxLayout*btnLayout=newQHBoxLayout;btnLayout->addWidget(rec);btnLayout->addWidget(recDel);btnLayout->addWidget(finishButton);btnLayout->addWidget(clearButton);btnLayout->addWidget(btn);QHBoxLayout*listLayout=newQHBoxLayout;listLayout->addWidget(list);listLayout->addWidget(finishList);QVBoxLayout*layout=newQVBoxLayout(this);layout->addLayout(listLayout);layout->addLayout(btnLayout);connect(rec,SIGNAL(clicked()),this,SLOT(slotrec()));connect(btn,SIGNAL(clicked()),this,SLOT(close()));connect(finishButton,SIGNAL(clicked()),this,SLOT(on_finishButton_clicked()));connect(clearButton,SIGNAL(clicked()),this,SLOT(on_clearButton_clicked()));connect(recDel,SIGNAL(clicked()),this,SLOT(on_recDelButton_clicked()));client();}數(shù)據(jù)庫(kù)管理模塊數(shù)據(jù)庫(kù)管理模塊主要是管理菜單信息的,可以添加菜品信息有添加Button、刪除菜品信息有刪除Button、并能夠查詢菜品有查詢Button。首先用QT中的QSqlTableModel類中的成員函數(shù)setTable(),setEditStrategy(),select(),連數(shù)據(jù)庫(kù)列表,用QTableView類組件中的setMode()成員函數(shù)將數(shù)據(jù)庫(kù)列表顯示出來(lái)。主要實(shí)現(xiàn)代碼如下:model=newQSqlTableModel(view);model->setTable("menubook");model->setEditStrategy(QSqlTableModel::OnManualSubmit);model->select();view->setModel(model);當(dāng)需要?jiǎng)h除某一菜肴時(shí),中選擇某一行時(shí)可以根據(jù)QTableView類中的currentIndex().row()成員函數(shù)得知,用QSqlTableModel中的revertAll()成員函數(shù)將其刪除,并且刪除時(shí)給出QMessageBox提示框提示。主要實(shí)現(xiàn)代碼如下:voidWidget::on_deleteButton_clicked(){ intcurRow=view->currentIndex().row();model->removeRow(curRow);//獲取當(dāng)前行 //刪除當(dāng)前行intok=QMessageBox::warning(this,tr("刪除當(dāng)前行內(nèi)容!"),tr("確定刪除?"),QMessageBox::Yes,QMessageBox::No);if(ok==QMessageBox::No)model->revertAll();elsemodel->submitAll();}當(dāng)需要添加菜肴信息時(shí),用QSqlTableModel類中的insertRow()成員函數(shù)添加信息,同時(shí)用setData()成員函數(shù)添加菜肴信息數(shù)據(jù)。主要實(shí)現(xiàn)代碼如下:voidWidget::on_addButton_clicked(){introwNum=model->rowCount();//獲得表的行數(shù)intid=10;model->insertRow(rowNum);//添加一行model->setData(model->index(rowNum,0),id);//參加數(shù)據(jù)}當(dāng)刪除、修改數(shù)據(jù)庫(kù)內(nèi)容完后,需要點(diǎn)擊提交修改Button,才難保存到數(shù)據(jù)中,主要用到QSqlTableModel類中的database()mit()成員函數(shù)。主要代碼實(shí)現(xiàn)如下:voidWidget::on_put_inButton_clicked(){model->database().transaction();//開始事務(wù)操作if(model->submitAll()) //提交所有更改model->database()mit(); //提交else{model->database().rollback()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年電信工安全帶項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年雙立柱堆垛起重機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 2024年男西裝架項(xiàng)目可行性研究報(bào)告
- 2024年平板琉璃瓦項(xiàng)目可行性研究報(bào)告
- 2024至2030年中國(guó)激光腰線水平儀數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024【中國(guó)深圳對(duì)外貿(mào)易貨物進(jìn)口合同】深圳對(duì)外貿(mào)易
- 2024抵押擔(dān)保合同注意事項(xiàng)
- 2024平地機(jī)的租賃合同范文
- 大理石買賣雙方權(quán)利義務(wù)明確協(xié)議版
- 2024年蛋糕店全職員工聘用協(xié)議模板版
- GB/T 43617.4-2024滾動(dòng)軸承滾動(dòng)軸承潤(rùn)滑脂噪聲測(cè)試第4部分:測(cè)試和評(píng)估方法NQ
- 養(yǎng)殖水面出租合同模板
- 7.2 共建美好集體(課件)-2024-2025學(xué)年七年級(jí)道德與法治上冊(cè) 統(tǒng)編版
- 2023-2024學(xué)年全國(guó)初中八年級(jí)上歷史人教版期中考試試卷(含答案解析)
- 實(shí)驗(yàn)活動(dòng)8 搭建球棍模型認(rèn)識(shí)有機(jī)化合物分子結(jié)構(gòu)的特點(diǎn)(教學(xué)設(shè)計(jì))2023-2024學(xué)年高一化學(xué)同步教學(xué)教學(xué)設(shè)計(jì)+習(xí)題(人教版2019必修第二冊(cè))
- 2025年上海市數(shù)學(xué)高考一輪復(fù)習(xí):立體幾何(Ⅰ)(考點(diǎn)練+模擬練)含詳解
- 2023-2024學(xué)年北京西城區(qū)三十五中高一(上)期中化學(xué)試題及答案
- 2023-2024學(xué)年北京東城區(qū)二中初三(上)期中道法試題及答案
- 廣東省深圳市(2024年-2025年小學(xué)三年級(jí)語(yǔ)文)統(tǒng)編版質(zhì)量測(cè)試(上學(xué)期)試卷(含答案)
- 兒童青少年視力普查規(guī)范
- 2024年全國(guó)職業(yè)院校技能大賽高職組(藥學(xué)技能賽項(xiàng))考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論