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

正文內(nèi)容

最新基于linux嵌入式點(diǎn)菜系統(tǒng)的設(shè)計(jì)-閱讀頁

2025-07-04 13:33本頁面
  

【正文】 模塊主要查看餐臺(tái)空閑信息,和打印賬單兩部分組成。同樣,當(dāng)顧客結(jié)賬時(shí)點(diǎn)擊按鈕觸發(fā)槽函數(shù)打印賬單給顧客查看,同時(shí)將Button的文本信息設(shè)置為“2人桌”,賬單是用QListWidget類來顯示。static bool a = true。a = false。int i=0。//將客人消費(fèi)情況添加到賬單列表QListWidget *list = new QListWidget。listinsertItem(0,str1)。memset(a,0,sizeof(a))。listinsertItem(i+1,QString(tr(menu1[i].name)+tr( )+tr(a)))。i++。char af[10]。(QString(%1).arg(sum))。listinsertItem(i+1,str2+a)。//添加當(dāng)前時(shí)間到賬單time_t lt。char aa[80]。sprintf(aa,%s,ctime(amp。listinsertItem(i+2,QString(tr(aa)))。a = true。首先創(chuàng)建套接字描述符Socket()函數(shù),然后連接服務(wù)器connect()。server_addr,sizeof(server_addr))。 = inet_addr()。/* 客戶程序發(fā)起連接請(qǐng)求 */if(connect(sockfd,(struct sockaddr *)amp。再send()將開臺(tái)信息發(fā)送到服務(wù)器。 tableNumber=()。 diancshow()。 SeleteList[0].buffer[1]=tableNumber。 star=false。}}菜單列表是從數(shù)據(jù)庫列表中獲取的,首先用QSqlDatabase類中的addDatabase()成員函數(shù)加載數(shù)據(jù)庫驅(qū)動(dòng),然后用setDatabaseName()成員函數(shù)指明的數(shù)據(jù)庫名稱,在用open()成員函數(shù)打開并獲取菜單信息用QLable類組件顯示。//加載數(shù)據(jù)庫驅(qū)動(dòng) (database)。}QSqlQuery query。點(diǎn)菜功能實(shí)現(xiàn)主要是當(dāng)選擇按鈕按下時(shí),觸發(fā)的槽函數(shù)slotImButton(),實(shí)現(xiàn)菜品選擇功能,將選擇菜的信息添加入已選列表,并存入SeleteList中,分為提交前選菜和提交后加菜兩部分。 QString listText =imLabeltext()。 QString listText2=spinBoxtext()。 text =listText1+listText。 text +=listText2。 spinBoxsetValue(1)。 int s =okListcount()1。jm。 strcpy(SeleteList[s].nam,())。 SeleteList[s].pric=MenuBook[j].Price。 if(pro==false) //加菜 { static int ss=0。 additem[ss].addnum=()。 printf(name:%s num: %d \n,additem[ss].addnam,additem[ss].addnum)。 } } }}當(dāng)刪除按鈕按下時(shí),觸發(fā)的槽函數(shù)slotDelete(),實(shí)現(xiàn)提交前從已選列表及SeleteList中刪除,提交后刪菜功能。 else del=true。 int cou =okListcount()。 //獲取當(dāng)前選擇項(xiàng)目,并將其從已選列表和SeleteList中刪除 QListWidgetItem *item =okListtakeItem(okListcurrentRow())。 int f。fcou。 memset(SeleteList[cou].nam,0,sizeof(SeleteList[cou].nam))。 ipric=SeleteList[cou].num*SeleteList[cou].pric。 ipric=0。mokListcount()。 printf(ipric:%d \n,ipric)。 strcpy(additem[0].addnam,())。 additem[0].bufer[1]=tableNumber。 for(m=0。m++) additem[0].addnam[m]=39。 send(sockfd,additem,sizeof(additem),0)。}}當(dāng)提交按鈕按下時(shí),觸發(fā)的槽函數(shù)on_listOkButton_clicked(),實(shí)現(xiàn)將選擇的菜品信息seletelist結(jié)構(gòu)體send()發(fā)送至服務(wù)器的功能。 //將選擇的菜發(fā)送至服務(wù)器 if(pro==true) { SeleteList[0].buffer[0]=2。 send(sockfd,SeleteList,sizeof(SeleteList),0)。 additem[0].bufer[1]=tableNumber。 int ii=0。additem[ii].addnum!=0。 memset(additem,0,sizeof(additem))。 ipric=0。mokListcount()。 QMessageBox::about(this,ok,tr(提交完成))。}當(dāng)結(jié)賬按鈕按下時(shí),觸發(fā)此槽函數(shù)on_listPayButton_clicked(),結(jié)算清單,send()發(fā)送至服務(wù)器。}else{//建立消息框QDialog *dlg = new QDialog。QString str。str=tr(RMB:)+str+tr(元)。labelsetText(str)。QVBoxLayout *layout = new QVBoxLayout(dlg)。layoutaddWidget(btn)。dlgshow()。//添加桌號(hào)、消費(fèi)金額SeleteList[0].buffer[0]=3。SeleteList[0].buffer[2]=ipric。}} 后廚管理系統(tǒng)后廚首先連接服務(wù)器,同樣連接服務(wù)器函數(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ù)。btnLayout addWidget(rec)。btnLayout addWidget(finishButton)。btnLayout addWidget(btn)。listLayoutaddWidget(list)。QVBoxLayout *layout = new QVBoxLayout(this)。layoutaddLayout(btnLayout)。connect(btn,SIGNAL(clicked()),this,SLOT(close()))。connect(clearButton,SIGNAL(clicked()),this,SLOT(on_clearButton_clicked()))。client()。首先用QT中的QSqlTableModel類中的成員函數(shù)setTable(),setEditStrategy(),select(),連數(shù)據(jù)庫列表,用QTableView類組件中的setMode()成員函數(shù)將數(shù)據(jù)庫列表顯示出來。modelsetTable(menubook)。modelselect()。當(dāng)需要?jiǎng)h除某一菜肴時(shí),當(dāng)選擇某一行時(shí)可以根據(jù)QTableView類中的currentIndex().row()成員函數(shù)得知,用QSqlTableModel中的revertAll()成員函數(shù)將其刪除,并且刪除時(shí)給出QMessageBox提示框提示。modelremoveRow(curRow)。 if(ok==QMessageBox::No)modelrevertAll()。}當(dāng)需要添加菜肴信息時(shí),用QSqlTableModel類中的insertRow()成員函數(shù)添加信息,同時(shí)用setData()成員函數(shù)添加菜肴信息數(shù)據(jù)。//獲得表的行數(shù)int id=10。//添加一行modelsetData(modelindex(rowNum,0),id)。主要代碼實(shí)現(xiàn)如下:void Widget::on_put_inButton_clicked() { modeldatabase().transaction()。 //提交else{ modeldatabase().rollback()。}}本章主要介紹本系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn),每個(gè)模塊的實(shí)現(xiàn)方法流程,同時(shí)給出每個(gè)模塊實(shí)現(xiàn)中用到的函數(shù),給出了代碼的實(shí)現(xiàn)。系統(tǒng)測(cè)試是針對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測(cè)試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。從實(shí)際情況來說,滿足實(shí)際項(xiàng)目需要,黑盒測(cè)試具有以下5個(gè)優(yōu)點(diǎn)。 ,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能。 測(cè)試基本原則 在開發(fā)項(xiàng)目系統(tǒng)中,進(jìn)行系統(tǒng)測(cè)試時(shí)要遵循的以下5個(gè)基本原則。,不僅包括確定的輸入數(shù)據(jù),還包括從系統(tǒng)功能出發(fā)預(yù)期的測(cè)試結(jié)果,從而避免將一些似是而非的結(jié)果當(dāng)成正確結(jié)果。例如,在該輸入日期的地方輸入字母或數(shù)字,此時(shí)如果軟件不能做出適當(dāng)?shù)姆从扯Э?,就不能說明軟件是可靠的。最初的測(cè)試通常把焦點(diǎn)放在單個(gè)程序模塊上,進(jìn)一步測(cè)試的焦點(diǎn)則轉(zhuǎn)向在集成的模塊簇中尋找錯(cuò)誤,最后在整個(gè)系統(tǒng)中尋找錯(cuò)誤。即使是一個(gè)大小適度的程序,其路徑排列的數(shù)量也非常大。然而,充分覆蓋程序邏輯,并確保程序設(shè)計(jì)中使用的所有條件是有可能的。下面分別對(duì)這五個(gè)模塊的基本功能測(cè)試。:顧客到餐廳通過前臺(tái)招待得知2號(hào)桌空閑,顧客可以去2號(hào)桌開臺(tái)。圖 51 前臺(tái)模塊圖3. 點(diǎn)菜模塊:顧客到達(dá)2號(hào)桌可以看到點(diǎn)菜系統(tǒng)的界面,選擇桌號(hào)和人數(shù),點(diǎn)擊開臺(tái),就開臺(tái)成功進(jìn)入點(diǎn)菜界面。圖52 開臺(tái)界面圖顧客進(jìn)入點(diǎn)菜界面,這里只對(duì)顧客點(diǎn)菜功能測(cè)試,顧客可以查看菜單列表中的菜單,當(dāng)需要點(diǎn)該菜時(shí)點(diǎn)擊選擇,就將菜肴添加到已選菜單列表中,當(dāng)點(diǎn)完菜時(shí),點(diǎn)擊提交按鈕,就將點(diǎn)菜菜單發(fā)送到服務(wù)器。顧客點(diǎn)菜界面圖如圖53所示。后廚界面圖如圖53所示;圖53 后廚界面圖,點(diǎn)擊點(diǎn)菜界面的結(jié)賬按鈕,顧客到前臺(tái)買單,前臺(tái)營(yíng)業(yè)員點(diǎn)擊該桌代表的按鈕就會(huì)將菜單信息打印,顧客買單;菜單界面圖54所示。數(shù)據(jù)庫管理界面圖如圖55所示。在這里沒有實(shí)現(xiàn)無線通信,主要局限于局域網(wǎng),沒有移植到ARM版測(cè)試,待以后繼續(xù)完成軟件功能測(cè)試。主要工作如下:,Linux系統(tǒng)下的軟件的的選擇,主要包括Linux系統(tǒng)下的數(shù)據(jù)庫、Linux系統(tǒng)下的圖形界面的開發(fā)、Linux系統(tǒng)下的通信協(xié)議等相關(guān)知識(shí)及使用。,本系統(tǒng)運(yùn)用服務(wù)器/客戶端開發(fā)模式,幾個(gè)模塊間的通信都是通過服務(wù)連接通信,采用Linux下的TCP/IP協(xié)議通信可以保證通信的安全可靠性。致 謝本課題及論文是在***老師的悉心指導(dǎo)和幫助下完成的,在設(shè)計(jì)期間老師幫助我收集文獻(xiàn)資料,理清設(shè)計(jì)思路,指導(dǎo)操作方法,并對(duì)我所做的課題提出有效的改進(jìn)方案。本次畢業(yè)設(shè)計(jì)大概持續(xù)了半年的時(shí)間,現(xiàn)在終于到結(jié)尾了。經(jīng)過這次畢業(yè)設(shè)計(jì),我的能力有了很大的提高,比如操作能力、分析問題的能力、合作精神、嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)等方方面面都進(jìn)步了。對(duì)于學(xué)校和老師為我的畢業(yè)設(shè)計(jì)所提供的極大幫助和關(guān)心,在此我致以衷心的感謝!最后,感謝同學(xué)們對(duì)于我生活、學(xué)習(xí)上的幫助,以及畢業(yè)設(shè)計(jì)論文寫作過程中的指導(dǎo)和意見。參考文獻(xiàn)[1] [J].華南理工大學(xué)學(xué)報(bào),:2134.[2] [M].北京:中國(guó)紡織出版社, :3435[3] [M].北京:人民郵社,:123137.[4](英)馬修,(英)斯通斯編著,陳健,宋健建翻譯.《Linux程序設(shè)計(jì)》.:6678.[5] [J].網(wǎng)絡(luò)與信息,1998:5051.[6] 周小松,[J].軟件導(dǎo)刊,:2021.[7] Johan Thelin. Foundations of Qt Development[M].Exper’s Voice in Open Source,2007,8:255257.[8] Matthias Dalheimer,Programming with Qt O’Reilly Media[J].Linux Device Driver,2002,6:123235. [9] [美]Grant Allen,Mike Owens 著 楊謙,劉義宣,謝志強(qiáng) 譯.《SQLite權(quán)威指南(第二版)》.:149234.[10] [J].化工管理,:2.[11] [M].北京:機(jī)械工業(yè)出版社,:422.[12] KURE [M].北京:北京科海電子出版社,:5254.[13] [M].Charles River Media,2008,4:225256. [14] 加(Jasmin Blanchette).《
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1