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

正文內容

餐廳點菜系統(tǒng)畢業(yè)設計論文(參考版)

2024-12-07 15:41本頁面
  

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