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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文—基于linux系統(tǒng)下開發(fā)的餐廳點(diǎn)菜系統(tǒng)(參考版)

2024-08-31 09:18本頁(yè)面
  

【正文】 結(jié)賬功能代碼實(shí)現(xiàn)如下: void diancaiDialog::on_listPayButton_clicked() //結(jié)帳 { if(pro==true) {。 pro=false。m++) ipric+=SeleteList[m].pric*SeleteList[m].num。 for(m=0。 } //計(jì)算消費(fèi)金額 int m。ii++) printf(%s%d\n,additem[ii].addnam,additem[ii].addnum)。 for(ii=0。 send(sockfd,additem,sizeof(additem),0)。 } //將添加的菜發(fā)送至服務(wù)器 else if(pro==false) { additem[0].bufer[0]=5。 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 19 SeleteList[0].buffer[1]=tableNumber。 主要代碼實(shí)現(xiàn)如下: void diancaiDialog::on_listOkButton_clicked() //提交 { QTextCodec::setCodecForTr(QTextCodec::codecForName(utf8))。 } } else //del==false {。 39。m6。 additem[0].addnum=1。 additem[0].bufer[0]=4。 QByteArray ba=()。m++) ipric+=SeleteList[m].pric*SeleteList[m].num。 for(m=0。 } //提交后刪菜 if(pro==false) { int m。 SeleteList[cou].num=0。f++) { SeleteList[f]=SeleteList[f+1]。 for(f=courow1。 delete item。 int row =okListcurrentRow()。 if(del==true) 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 18 { QString text =okListcurrentItem()text()。 主要實(shí)現(xiàn)代碼如下: void diancaiDialog::slotDelete() //刪除 { if(okListcount()==0) del=false。 ss++。 additem[ss].addpric=MenuBook[j].Price。 strcpy(additem[ss].addnam,())。 printf(add: %s \n,SeleteList[s].nam)。 SeleteList[s].num=()。j++) { if(listText==MenuBook[j].Name) { QByteArray ba=MenuBook[j].()。 //遍歷 MenuBook,查找與宣傳顯示相同名稱的菜,并將其信息存入 SeleteList 或 additem for(int j=0。 okListsetCurrentRow(0)。 okListinsertItem(n,text)。 text +=\t。 QString text。 QString listText1 =im1Labeltext()。 主要代碼實(shí)現(xiàn)如下: void diancaiDialog::slotImButton() //選擇 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 17 { static int n=0。 (select *from menubook)。 //指明數(shù)據(jù)庫(kù)名稱 //打開數(shù)據(jù)庫(kù) if(!()) { QMessageBox::critical(0, QObject::tr(Datebase error), ().text())。 主要實(shí)現(xiàn)代碼如下: QSqlDatabase data = QSqlDatabase::addDatabase(QSQLITE)。 } else {。 send(sockfd,SeleteList,sizeof(SeleteList),0)。 SeleteList[0].buffer[0]=1。 diancaiDialog *dianc = new diancaiDialog。點(diǎn)擊主要實(shí)現(xiàn)代碼如下: void weleDialog::slotOkButton() //開臺(tái) { if(star==true) { QString st=numberComboBoxcurrentText()。server_addr, sizeof(struct sockaddr)) == 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ù)。 = htons(portnumber)。 = AF_INET。 主要代碼實(shí)現(xiàn)如下: /* 客戶程序建立 sockfd 描述符 */ if((sockfd=socket(AF_INET,SOCK_STREAM,0)) == 1) /* 客戶程序填充服務(wù)端的資料 */ 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 16 bzero(amp。 } 顧客點(diǎn)菜端管理模塊 點(diǎn)菜端是顧客從前臺(tái)獲知該餐桌空閑,則開臺(tái),并開始點(diǎn)菜,點(diǎn)菜界面可以根據(jù)菜譜信息點(diǎn)擊選擇按鈕,如果需要 刪除可以點(diǎn)擊刪除按鈕,當(dāng)確認(rèn)后點(diǎn)擊提交按鈕就將顧客點(diǎn)菜信息發(fā)送到服務(wù)器,服務(wù)器并發(fā)送到后廚。 button1setText(tr(1 號(hào) (2 人桌 )))。lt))。 memset(aa,0,sizeof(aa))。 lt =time(NULL)。 listshow()。 QString str2 = QString(tr(桌號(hào): )+tr(af)+tr(共計(jì) ))。 sprintf(af,%d,menu1[0].buff[1])。 } QString a。 sum+=menu1[i].price*menu1[i].num。 sprintf(a,%d %d ,menu1[i].price,menu1[i].num)。 while(menu1[i].num!=0) { char a[50]。 QString str1 = QString(tr(菜名 價(jià)格 數(shù)量 ))。 double sum=0。 } else//結(jié)帳 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 15 { shou()。 if(a) { button1setText(tr(1 號(hào)有人 ))。 主要實(shí)現(xiàn)代碼如下: void foregroundDialog::table1() { QTextCodec::setCodecForTr(QTextCodec::codecForName(utf8))。餐臺(tái)空閑信息主要是根據(jù) Button 組件文本顯示判斷的是否是空閑狀態(tài),空閑時(shí),當(dāng)顧客來時(shí)如空閑點(diǎn)擊按鈕就connect()觸發(fā)了槽函數(shù) table1(),其中槽函數(shù)中用到 Button 類的成員函數(shù) setText(),將 button的文本信息設(shè)置為“ 1 號(hào)有人”。 /*服務(wù)器主程序返回繼續(xù)等待下一次客戶端連接 */ } close(sockfd)。tid,0,run,amp。 /*創(chuàng)建線程,處理客戶端請(qǐng)求 */ pthread_t tid。 } sock_accept[i] =accefd。address_size)) == 1) { perror(Accept error!)。 /* 服務(wù)器阻塞 ,等待客戶程序建立連接 */ if((accefd = accept(sockfd,(struct sockaddr*)amp。 } address_size = sizeof(client_addr)。 } /* 設(shè)置允許連接的最大客戶端數(shù) */ if(listen(sockfd,10) == 1) { perror(Listen error!)。server_addr,sizeof(server_addr)) == 1) { perror(Bind error!)。 = htons(portnumber)。 = AF_INET。 } /* 服務(wù)器端填充 sockaddr_in 結(jié)構(gòu) */ bzero(amp。主要 實(shí)現(xiàn)代碼如下 : if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == 1) { perror(Socket error!)。運(yùn)用到了 TCP/IP 協(xié)議函數(shù),首先 socket()函數(shù)獲得套接字描述符,然后用 bind()函數(shù)將描述符捆綁到 IP 上,監(jiān)聽 listen()函數(shù),其中可以設(shè)置客戶端的個(gè)數(shù)。 服務(wù)器管理模塊 服務(wù)器模塊主要是用 C 語(yǔ)言編寫的,主要是為其他模塊間的通信。 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)數(shù)據(jù)庫(kù)中建立了一張 菜單信息 表,該表詳細(xì)結(jié)構(gòu)如圖表 41 所示。設(shè)計(jì)中主要將餐廳點(diǎn)菜系統(tǒng)分為五個(gè)模塊,每個(gè)模塊 的需求和實(shí)現(xiàn)的功能進(jìn)行了闡述和詳細(xì)設(shè)計(jì)過程分析。該表用于存放菜肴的信息,包括菜肴的名字、菜肴的類別、菜肴的價(jià)格、菜肴的描述。 查詢菜單功能是查詢是否有哪道菜肴信息。 刪除菜單列表功能是將刪除不做的菜肴信息。 圖 34 后廚終端模塊 5. 數(shù)據(jù)庫(kù)管理:數(shù)據(jù)庫(kù)管理管理菜單數(shù)據(jù)庫(kù)信息, 包括刪除菜單列表、添加菜單列表,查詢菜單等功能。 圖 33 點(diǎn)菜終端模塊 4.后廚終端: 后廚終端從服務(wù)器接收到顧客點(diǎn)的菜肴,可以繼續(xù)接受顧客加菜的菜查詢餐臺(tái) 信息 結(jié)賬 打印賬單 前臺(tái)管理模塊 點(diǎn) 菜 點(diǎn)菜信息發(fā)送 點(diǎn)菜終端 選擇菜肴 刪 菜 加 菜 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 12 單、按照菜單做菜,并可以詢問菜是否需要退菜。 選擇菜肴功能是將用戶選擇的菜肴存與表中,用戶可以添加與刪除。本模塊將用戶點(diǎn)菜單菜肴發(fā)送到服務(wù)器,并將數(shù)據(jù)信息添加到數(shù)據(jù)庫(kù)。細(xì)分的功能模塊如圖 32。 2.前臺(tái)終端管理:前臺(tái)是本系統(tǒng)重要組成部分之一。當(dāng)顧客點(diǎn)菜 客戶端與服務(wù)器連接后,可通過此將點(diǎn)菜信息發(fā)送到后廚。 查詢 圖 31 系統(tǒng)總功能模塊 查詢 餐 臺(tái)信息 結(jié)賬 打印賬單 前臺(tái)管理模塊 服務(wù)器 后廚管理模塊 刪菜詢問 接收菜單 做完 顧客點(diǎn)菜模塊 點(diǎn)菜 加菜 退菜 開始 哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 11 餐廳點(diǎn)菜系統(tǒng)的功能模塊概要描述如表 32 所示。用 QtCreator 可以動(dòng)態(tài)的調(diào)整用戶風(fēng)格圖形界面,直到滿意為止。 系統(tǒng)開發(fā)環(huán)境 本系統(tǒng) 是基于 Linux 系統(tǒng)中 Qt 來設(shè)計(jì) 前臺(tái)應(yīng)用系統(tǒng) 的可視化界面 , 而后臺(tái)部分?jǐn)?shù)據(jù)庫(kù)的實(shí)現(xiàn)采用 SQLite3 來構(gòu)建。這一方面通過系統(tǒng)的開放性和可擴(kuò)充性,不斷改善系統(tǒng)的功能完成。如規(guī)范的數(shù)據(jù)庫(kù)操縱界面、作為業(yè)界標(biāo) 準(zhǔn)的 TCP/IP 網(wǎng)絡(luò)協(xié)議及 ISO9002 標(biāo)準(zhǔn)所要求的質(zhì)量規(guī)范等;同時(shí),在自主開發(fā)本系統(tǒng)時(shí),要進(jìn)行良好的設(shè)計(jì)工作,制訂行之有效的軟件工程規(guī)范,保證代碼的易讀性、可操作性和可移植性。哈爾濱遠(yuǎn)東理工學(xué)院學(xué)士學(xué)位論文 10 所有這些都要符合主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)和中文信息的界面。 3.系統(tǒng)的易用性: 餐廳自助點(diǎn)菜系統(tǒng)是直接面對(duì)用戶的,而用戶往往對(duì)計(jì)算機(jī)并不是非常熟悉。所有這些,都要求 系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。 2.系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性: 餐廳自助點(diǎn)菜系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴(kuò)充性。作為客戶自助點(diǎn)菜的模塊,其準(zhǔn)確性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)設(shè)計(jì)和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足信息處理的需求。 表 31 功能需求 名稱 功能 客戶端 設(shè)置基礎(chǔ)信息,更新菜譜, 點(diǎn)菜,結(jié)賬,打印賬單; 服務(wù)器 負(fù)責(zé)各終端間的通信; 性能需求 本系統(tǒng)性能要求主要 是以下 5 個(gè)方面。同時(shí)有個(gè)數(shù)據(jù)庫(kù)管理界面可以實(shí)現(xiàn)菜品信息的管理。本
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1