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

正文內(nèi)容

基于android手機的酒店點菜系統(tǒng)的設(shè)計與實現(xiàn)-資料下載頁

2024-12-06 02:31本頁面
  

【正文】 顧客姓名、桌位號、價格 D2 顯示的申請信息包括:顧客姓名、桌位號、價格、日期等信息 補充約束 非功能需求 可擴展性:目前的支付方式只有現(xiàn)金 支付,可預(yù)見的變化時以后考慮通過銀行卡或支付寶進行網(wǎng)上支付 待解決的問題 (暫無) 相關(guān)圖 (暫無) 當(dāng)顧客在酒店用完餐后,需要到吧臺進行結(jié)賬,吧臺的服務(wù)員根據(jù)顧客在酒店的消費,從系統(tǒng)中查詢出顧客消費的賬單,然后打印出賬單,顧客根據(jù)賬單進行結(jié)賬。具體的支付過程如表 35 支付用例文檔所示。 武漢工程大學(xué) 畢業(yè)論文 24 數(shù)據(jù)庫的設(shè)計 數(shù)據(jù)庫對于一個應(yīng)用程序來說非常重要,特別是有大量數(shù)據(jù)需要處理和存儲的應(yīng)用程序,它可以實行數(shù)據(jù)的結(jié)構(gòu)化和統(tǒng)一化處理,數(shù)據(jù)的共享性高,同時冗余度較低。無線點餐系統(tǒng)有了數(shù)據(jù)庫的支持,便可 以方便和高效的存儲和處理數(shù)據(jù)。整個無線點餐系統(tǒng)分為兩塊, Android 客戶端和服務(wù)器端,它們之間進行數(shù)據(jù)的交互,則就需要良好的數(shù)據(jù)庫的支持,一個好的數(shù)據(jù)庫的設(shè)計也會給應(yīng)用程序帶來很好的支持,用戶用過應(yīng)用程序能夠快速準(zhǔn)確到找到自己想要的信息。 基于 Android 的無線點餐系統(tǒng)的客戶端,即 Android 端采用的是 Android 操作系統(tǒng)自帶的 SQLite 數(shù)據(jù)庫, SQLite 數(shù)據(jù)庫還大多數(shù)的關(guān)系型數(shù)據(jù)庫一樣,能夠?qū)崿F(xiàn)數(shù)據(jù)的增、刪、改、查等功能,將一些數(shù)據(jù)保存在 Android 操作系統(tǒng)自帶的 SQLite 數(shù)據(jù)庫中,這樣可 以一定的提高應(yīng)用程序訪問數(shù)據(jù)庫的時間,從而可以提高應(yīng)用程序的運行效率。而對于服務(wù)器端,采用的則是 MySQL 數(shù)據(jù)庫, MySQL 也是一種關(guān)系型數(shù)據(jù)庫。服務(wù)器端通過 JDBC 連接 MySQL 數(shù)據(jù)庫,系統(tǒng)的主要數(shù)據(jù)如菜品、菜品的價格等信息是存放在MySQL 數(shù)據(jù)庫中的。當(dāng) Android 客戶端發(fā)出請求時,通過 Http 協(xié)議,服務(wù)器端接收到到請求,然后服務(wù)器端在和 MySQL 數(shù)據(jù)庫進行數(shù)據(jù)的交互,最后服務(wù)器端把數(shù)據(jù)在傳輸?shù)?Android 手機上,用戶通過 Android 客戶端看到自己想要的數(shù)據(jù)。 桌 位桌 號I D 編 號描 述標(biāo) 志服 務(wù)服 務(wù) 人 員用 戶 密 碼用 戶 名 稱I D 編 號1n 圖 服務(wù)人員 桌位關(guān)系圖 武漢工程大學(xué) 畢業(yè)論文 25 菜 名圖 片標(biāo) 號菜 品 類 型價 格包 含訂 單 明 細數(shù) 量備 注I D 編 號1n描 述對 應(yīng)訂 單是 否 結(jié) 賬客 戶桌 號時 間I D 編 號人 數(shù)備 注n1 圖 菜品 訂單 訂單明細關(guān)系圖 下面介紹根據(jù)系統(tǒng)的需求設(shè)計的幾張表: ( 1) 用戶表,用戶表是供用戶登錄系統(tǒng)所使用的表,表的結(jié)構(gòu)以及相關(guān)說明如表36 所示: 表 36 用戶表 序號 字段名稱 字段含義 類型 大小 說明 1 id 主鍵 Int 10 自動增加 2 account 登陸賬號 Varchar 20 3 password 登錄密碼 Varchar 20 4 name 姓名 Varchar 20 5 permission 權(quán)限 Int 10 14 代表不同 6 remark 備注信息 Varchar 100 用戶如果登陸的時候,輸入的賬號和密碼不能與數(shù)據(jù)庫中的信息所匹配的話,那么用戶將登陸失敗,無法進入系統(tǒng)界面。在權(quán)限一欄, 1 代表經(jīng)理, 2 代表顧客, 3 代表廚師, 4 代表服務(wù)員。 ( 2) 菜譜的分類表,不同的菜品都有屬于自己的分類,例如涼菜、熱菜、酒水等等,表的結(jié)構(gòu)和相關(guān)說明如表 37 所示: 武漢工程大學(xué) 畢業(yè)論文 26 表 37 菜譜分類表 序號 字段名稱 字段含義 類型 大小 說明 1 id 主鍵 Int 10 自動增加 2 name 分類名字 varchar 20 菜品的分類 ( 3) 菜譜表,菜譜表存放的是菜品的信息,比如菜品的名稱、菜品的價格、菜品所屬的分類等。表的結(jié)構(gòu)和相關(guān)說明如表 38 所示: 表 38 菜譜表 序號 字段名稱 字段含義 類型 大小 說明 1 id 主鍵 Int 10 自動增加 2 typeID 菜的類型 Int 10 外鍵 3 name 名稱 Varchar 20 4 price 價格 Int 10 5 pic 圖片路徑 Varchar 100 6 remark 備注 Varchar 100 ( 4) 餐桌表,餐桌表記錄的是餐桌的信息,具體指的是餐桌是否有顧客就座。表的結(jié)構(gòu)和相關(guān)說明如表 39 所示: 表 39 餐桌表 序號 字段名稱 字段含義 類型 大小 說明 1 id 主鍵 Int 10 自動增加 2 num 桌號 Int 10 3 flag 餐桌狀態(tài) Int 2 0:空, 1:有 4 description 描述 Varchar 100 Flag 是一個標(biāo)志位,用來記錄桌子是否有顧客, 0 表示這個 桌子現(xiàn)在沒有顧客就餐,1 表示這個桌子現(xiàn)有有顧客就餐。 ( 5) 訂單表,訂單表示顧客點完菜單后,提交給服務(wù)器是生成的信息,它記錄了顧客訂單的時間、人數(shù)、桌號等等。表的結(jié)構(gòu)和相關(guān)說明如表 310 所示: 武漢工程大學(xué) 畢業(yè)論文 27 表 310 訂單表 序號 字段名稱 字段含義 類型 大小 說明 1 id 主鍵 Int 10 自動增加 2 orderTime 下單時間 Varchar 20 3 userID 下單用戶 Int 10 4 tableID 桌號 Int 10 外鍵 5 personNum 人數(shù) Int 10 6 isPay 是否結(jié)算 Int 2 7 remark 備注 Varchar 100 表中的 tableID 外鍵引用桌號 ID, isPay 一欄表示的是顧客是否結(jié)算賬單,如果結(jié)算了,則用‘ 1’表示,未結(jié)算就用‘ 0’表示。 ( 6) 訂單明細表,訂單明細表也是顧客點完菜單后生產(chǎn)的信息,一桌客人可以有多個訂單明細表,即點了多次菜,所以客人和訂單明細表示一對多的關(guān)系。表的結(jié)構(gòu)和相關(guān)說明如表 311 所示: 表 311 訂單明細表 序號 字段名稱 字段含義 類型 大小 說明 1 id 主鍵 Int 10 自動增加 2 orderId 訂單號 Int 10 引用訂單 id 3 menuId 菜單號 Int 10 引用菜譜 id 4 num 數(shù)量 Int 10 5 remark 備注 Varchar 100 訂單明細表儲存的是顧客點的菜品的種類、名字和數(shù)量,這個表中有兩個外鍵,分別和訂單表、菜譜表關(guān)聯(lián), remark 一欄可以供用戶備注一些與訂單有關(guān)的信息,靈活的處理一些突發(fā)狀況。 武漢工程大學(xué) 畢業(yè)論文 28 武漢工程大學(xué) 畢業(yè)論文 29 第四章 詳細設(shè)計 本章的內(nèi)容主要是對代碼實現(xiàn)部分的具體分析。整個系統(tǒng)的功能包括用戶登錄、顧客點餐、顧客修改點餐信息、顧客提交點 餐信息、修改菜譜、結(jié)賬等功能。本章將對這些功能是怎樣實現(xiàn)的有具體的分析。系統(tǒng)整體分為客戶端與服務(wù)器端,客戶端與服務(wù)器端進行數(shù)據(jù)的交互,服務(wù)器端進行對數(shù)據(jù)庫的訪問,然后將訪問到的信息再發(fā)給客戶端,最后用戶通過客戶端可以看到具體的數(shù)據(jù)信息。 登錄的實現(xiàn) 登錄是系統(tǒng)所有的功能的開始,當(dāng)用戶想進入系統(tǒng)時,首先便得進行系統(tǒng)登錄的操作。首先在工程的 res\layout 的目錄下,創(chuàng)建一個名詞為“ 的布局文件。布局文件整體上使用的是一個 LinerLayout 的布局,內(nèi)層嵌套一個 TableLayout 的布局。外面的 LinerLayout 選擇排列方向 orientation 是 vertical,即選擇的是垂直排列,對于它的 width 寬度屬性和 height 高度屬性,這里都選擇 fillparent 設(shè)置,就是充滿整個屏幕的意思,而它的背景 background 屬性把它設(shè)置成自已放在 res\drawablehdpi 中的 login 圖片,設(shè)置的代碼為 android:background=“ @drawable/login”,這樣背景的顏色就是我們自定義的圖片了。對于內(nèi)嵌的 TableLayout 布局,寬度和高 度也設(shè)置為 fillparent。TableLayout 中有一個屬性叫 stretchColumns,它影響了子對象的布局,通過這個屬性的設(shè)置可以標(biāo)記某些列為拉伸列,標(biāo)記為拉伸列后,列寬可以拉伸以占用多余的空間。登陸界面中的 xml 中的 TableLayout 的 stretchColumns 設(shè)置的是 1,它的意思是將所在行的第二列設(shè)置為擴展列。 TableLayout 中定義了兩個 TextView 用來顯示用戶名稱和密碼、兩個 EditText 用來輸入用戶名稱和密碼,兩個 Button 用來登錄系統(tǒng)和取消登錄。 在 文件中,在類的頂部聲明用到的 EditText 和 Button 組件,在onCreate() 方法中調(diào)用 setContentView() 方 法設(shè)置布局視 圖為。通過 findViewById()方法實例化 EditText 和 Button 對象,然后為取消按鈕和登錄按鈕設(shè)置監(jiān)聽器,在它們的監(jiān)聽器中重寫對應(yīng)的 onClick()方法。在取消按鈕的 onClick()方法中調(diào)用 finish()方法,當(dāng)用戶按下取消按鈕的時候,登錄操作就會取消 ,然后退出系統(tǒng)。在登錄按鈕的 onClick()方法中首先用 if 語句判斷調(diào)用 validate()方法,這個方法的作用是對用戶所填寫的登錄名稱和登錄密碼進行非空驗證,如果用戶輸入的登錄名稱和登錄密碼有一個是空值的話,那么系統(tǒng)就會彈出一個對話框,告訴用戶這兩項其中有一項沒有填,需要填寫。如果用戶填寫的用戶名稱和用戶密碼都不是空值的話,就會調(diào)用 login()方法。而在 login()方法中,調(diào)用了 saveUserMsg()方法將用戶信息保存到配置文件中,該方法又調(diào)用了 query()方法, query()方法的功能是想服 務(wù)器發(fā)送用戶填寫的登錄名稱和登錄密碼,然后由服務(wù)器返回查詢結(jié)果,如果查詢無誤,就會從LoginActivity 傳遞一個 intent 消息給 MainMenuActivity,最后進入了主菜單界面。 為了實現(xiàn)登錄功能, Android 需要通過網(wǎng)絡(luò)訪問后臺的數(shù)據(jù)庫進行數(shù)據(jù)查詢操作。武漢工程大學(xué) 畢業(yè)論文 30 Android 訪問網(wǎng)絡(luò)的實現(xiàn)方法有很多,如 Web Service、 HTTP、直接使用 WebView 瀏覽器。 Android 集成了 Apache 的 Http Client 模塊,這樣使得用 HTTP 訪問網(wǎng)絡(luò)數(shù)據(jù)成為;了一種可能。在這個無線點餐系統(tǒng)中,我 使用的是 HTTP 訪問網(wǎng)絡(luò)。 HTTP 是請求 /相應(yīng)的一種機制,代碼中定義了一個工具類 HttpUtil 來獲得 HttpRequest 對象和 HttpResponse對象,以及發(fā)送 get 和 post 請求獲得返回的 response 信息的方法。對于 Android 應(yīng)用程序,想要讓程序能夠訪問網(wǎng)絡(luò)資源,則需要要配置文件中賦予應(yīng)用程序訪問網(wǎng)絡(luò)的權(quán)限。配置的代碼如下: android:name= ,將此段代碼寫在 中。 定義了基礎(chǔ)的 URL 為 BASE_URL=在客戶端的 query()方法中設(shè)置的 url 為 : // 根據(jù)用戶名稱密碼查詢 private String query(String account,String password){ // 查詢參數(shù) String queryString = account=+account+amp。password=+password。 // url String url = +servlet/LoginServlet?+queryString。 // 查詢返回結(jié)果 return (url)。 } 對于 get()方法和 post()方法來說,它們之間是有一定的區(qū)別和聯(lián)系的。 Http 定義了與服務(wù)器交互的不同方法,最基本的方法有 4 中, get(), post(), put(), delete()。 get()是從服務(wù)器上獲取數(shù)據(jù), post()是向服務(wù)器傳送數(shù)據(jù)。 get()安全性非常低, post()安全性較高,但 是執(zhí)行效率卻比 post()方法好。 后臺的服務(wù)器實現(xiàn)采用的是 JDBC 訪問后臺數(shù)據(jù)庫, Servlet 響應(yīng) HttpRequest 請求,并返回響應(yīng)的結(jié)果。因為這個程序訪問的是 MySQL 數(shù)據(jù)庫,所以要添加 MySQL 的驅(qū)動包“ ” 。 把 這 個 jar 文件放置在工程WEBContent\WEBINF\lib 目錄下。創(chuàng)建一個訪問數(shù)據(jù)庫的工具類,該類的主要功能是打開和關(guān)閉數(shù)據(jù)庫的連接,我們把配置信息把存到文件當(dāng)中,這樣可以在不修改程序的前提下移植數(shù)據(jù)庫。 需要 在配置文件 中進行如下的配置: driver= url=jdbc
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1