![Android無線點餐系統(tǒng)-服務器端的實現及Android無線點餐系統(tǒng)-數據庫的設計_第1頁](http://file4.renrendoc.com/view/5f5666dfb25898cb46570dec8a25fcb6/5f5666dfb25898cb46570dec8a25fcb61.gif)
![Android無線點餐系統(tǒng)-服務器端的實現及Android無線點餐系統(tǒng)-數據庫的設計_第2頁](http://file4.renrendoc.com/view/5f5666dfb25898cb46570dec8a25fcb6/5f5666dfb25898cb46570dec8a25fcb62.gif)
![Android無線點餐系統(tǒng)-服務器端的實現及Android無線點餐系統(tǒng)-數據庫的設計_第3頁](http://file4.renrendoc.com/view/5f5666dfb25898cb46570dec8a25fcb6/5f5666dfb25898cb46570dec8a25fcb63.gif)
![Android無線點餐系統(tǒng)-服務器端的實現及Android無線點餐系統(tǒng)-數據庫的設計_第4頁](http://file4.renrendoc.com/view/5f5666dfb25898cb46570dec8a25fcb6/5f5666dfb25898cb46570dec8a25fcb64.gif)
![Android無線點餐系統(tǒng)-服務器端的實現及Android無線點餐系統(tǒng)-數據庫的設計_第5頁](http://file4.renrendoc.com/view/5f5666dfb25898cb46570dec8a25fcb6/5f5666dfb25898cb46570dec8a25fcb65.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Android無線點餐系統(tǒng)——服務器端的實現學院:計算機與信息工程學院班級:10軟件技術1班姓名:學號:同組者:指導教師:服務器端的實現服務器端功能主控計算機處理各無線終端發(fā)送過來的數據信息并進行處理、加工(必要的情況下還進行信息回饋)以及發(fā)送,從而進行控制、結算、統(tǒng)計、結賬打印以及管理等一系列職能操作。服務端主要是數據庫操作,針對無線終端各模塊而設置響應相應功能的服務器小程序。主要包括:響應登錄的Servlet、響應訂單的Servlet、響應開桌的Servlet、響應并臺的Servlet、響應轉臺的Servlet、響應查臺的Servlet、響應更新桌號的Servlet、響應更新菜譜的Servlet、響應結算的Servlet、響應訂單信息的Servlet等。當操作員點結賬的時候另一個Servlet啟動,其作用就是講該訂單的標志位修改,并且將該桌子的狀態(tài)設置成沒人,其實就是根據訂單號查詢到桌子號,將該桌子的falg位置設置為0。響應登錄的Servlet響應轉臺的Servlet響應登錄的Servlet響應轉臺的Servlet響應結算的Servlet響應詳細訂單的Servlet響應開桌的Servlet響應點菜的Servlet服務器端響應更新桌號的Servlet響應結算的Servlet響應詳細訂單的Servlet響應開桌的Servlet響應點菜的Servlet服務器端響應更新桌號的Servlet響應更新菜譜的Servlet響應查臺的Servlet響應并臺的Servlet圖1服務器功能圖服務器各模塊設計2.1登錄當服務器訪問loginservlet的時候,服務器得到用戶的登錄名和密碼,該servlet的任務就是通過查詢數據庫,如果沒有該用戶或者密碼不對返回0;如果有,并且密碼正確,則返回一段有規(guī)則的字符串,包括用戶id和名字。publicclassLoginServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html"); PrintWriterout=response.getWriter(); UserDaodao=newUserDaoImpl(); //獲得客戶端請求參數 Stringusername=request.getParameter("account"); Stringpassword=request.getParameter("password"); Useru=dao.login(username,password); if(u!=null){ //響應客戶端內容,登錄成功 out.print(build(u)); }else{ //響應客戶端內容,登錄失敗 out.print("0"); } out.flush(); out.close(); } privateStringbuild(Useru){ StringuserMsg=""; userMsg+="id="+u.getId(); userMsg+=";"; userMsg+="name="+u.getName(); returnuserMsg; }publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } publicvoidinit()throwsServletException{ } publicLoginServlet(){ super(); }publicvoiddestroy(){ super.destroy(); }}2.2更新更新的Servlet主要有兩個,一個是更新菜譜,另一個是更新桌子。主要是考慮到飯店的菜譜和桌子不可能一成不變,將軟件的擴展性增強。當飯店的菜譜或者桌子更新的時候,操作員就可以將手機的數據庫SQLITE和服務器的數據庫的數據同步。這兩個Servlet的工作原理就是查詢table表和menu表組成一個xml文件并且返回給客戶端。publicclassUpdateServletextendsHttpServlet{ //構造方法 publicUpdateServlet(){ super(); } //銷毀方法 publicvoiddestroy(){ super.destroy(); } //響應Get請求publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/xml"); PrintWriterout=response.getWriter(); //實例化dao UpdateDaodao=newUpdateDaoImpl(); //獲得菜譜列表 Listlist=dao.getMenuList(); //拼XML格式數據 out.println("<?xmlversion='1.0'encoding='UTF-8'?>"); //根節(jié)點 out.println("<menulist>"); for(inti=0;i<list.size();i++){ Menum=(Menu)list.get(i); out.println("<menu>"); //菜譜編號 out.print("<id>"); out.print(m.getId()); out.println("</id>"); //分類 out.print("<typeId>"); out.print(m.getTypeId()); out.println("</typeId>"); //名稱 out.print("<name>"); out.print(m.getName()); out.println("</name>"); //圖片路徑 out.print("<pic>"); out.print(m.getPic()); out.println("</pic>"); //價格 out.print("<price>"); out.print(m.getPrice()); out.println("</price>"); //備注 out.print("<remark>"); out.print(m.getRemark()); out.println("</remark>"); out.println("</menu>"); } out.println("</menulist>"); out.flush(); out.close(); } //響應Post請求publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } //初始化方法 publicvoidinit()throwsServletException{ }}2.3結賬結賬的Servlet有兩個,一個是當操作員發(fā)來order編號的時候,改Servlet查詢訂單表,拼成一個網頁發(fā)送到手機,這樣的好處就是手機不能修改訂單信息。當操作員點結賬的時候另一個Servlet啟動,其作用就是講該訂單的標志位修改,并且將該桌子的狀態(tài)設置成沒人,其實就是根據訂單號查詢到桌子號,將該桌子的falg位置設置為0。PayServlet比較復雜,核心代碼如下:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=utf-8");PrintWriterout=response.getWriter();//實例化DAOPayDaodao=newPayDaoImpl();//獲得訂單IDStringid=request.getParameter("id");//查詢訂單信息QueryOrderqo=dao.getOrderById(Integer.parseInt(id));//查詢訂單詳細列表Listlist=dao.getOrderDetailList(Integer.parseInt(id));//拼HTML頁面展示out.println("<!DOCTYPEHTMLPUBLIC\"-//W3C//DTDHTML4.01Transitional//EN\">");out.println("<HTML>");out.println("<HEAD></HEAD>");out.println("<BODY>");out.print("<table>");out.print("<tr>");out.print("<th>");out.print("訂單編號");out.print("</th>");out.print("<th>");out.print("下單時間");out.print("</th>");out.print("<th>");out.print("服務員"); out.print("</th>");out.print("<th>");out.print("人數");out.print("</th>");out.print("<th>");out.print("桌號");out.print("</th>");out.print("</tr>");out.print("<tr>");out.print("<td>");out.print(id);out.print("</td>");out.print("<td>");out.print(qo.getOrderTime());out.print("</td>");out.print("<td>");out.print(qo.getName());out.print("</td>");out.print("<td>");out.print(qo.getPersonNum());out.print("</td>");out.print("<td>");out.print(qo.getTableId());out.print("</td>");out.print("</tr>");out.print("<tr>");out.print("<th>");out.print("菜名");out.print("</th>");out.print("<th>");out.print("價格");out.print("</th>");out.print("<th>");out.print("數量");out.print("</th>");out.print("<th>");out.print("總計");out.print("</th>");out.print("<th>");out.print("備注");out.print("</th>");out.print("</tr>");for(inti=0;i<list.size();i++){ QueryOrderDetailqod=(QueryOrderDetail)list.get(i); Stringname=qod.getName(); intprice=qod.getPrice(); intnum=qod.getNum(); inttotal=qod.getTotal(); Stringremark=qod.getRemark(); out.print("<tr>"); out.print("<td>"); out.print(name==null?"":name); out.print("</td>"); out.print("<td>"); out.print(price==0?"":price+""); out.print("</td>"); out.print("<td>"); out.print(num==0?"":num+""); out.print("</td>"); out.print("<td>"); out.print(total); out.print("</td>");out.print("<td>"); out.print(remark==null?"":remark); out.print("</td>"); out.print("</tr>"); } out.print("</table>"); out.println("</BODY>"); out.println("</HTML>"); out.flush(); out.close();Android無線點餐系統(tǒng)——數據庫的設計學院:計算機與信息工程學院班級:10軟件技術1班姓名:學號:同組者:指導教師:數據庫結構的設計數據庫設計(DatabaseDesign)是指根據用戶的需求,在某一具體的數據庫管理系統(tǒng)上,設計數據庫的結構和建立數據庫的過程。就是規(guī)劃和結構化數據庫中的數據對象以及這些數據對象之間關系的過程。數據庫的設計過程大致可分為5個步驟:需求分析調查和分析用戶的業(yè)務活動和數據的使用情況,弄清所用數據的種類、范圍、數量以及它們在業(yè)務活動中交流的情況,確定用戶對數據庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。概念設計對用戶要求描述的現實世界(可能是一個工廠、一個商場或者一個學校等),通過對其中住處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數據庫在計算機上的具體實現細節(jié),用一種抽象的形式表示出來。以擴充的實體—(E-R模型)聯系模型方法為例,第一步先明確現實世界各部門所含的各種實體及其屬性、實體間的聯系以及對信息的制約條件等,從而給出各部門內所用信息的局部描述(在數據庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現實世界的概念數據模型。邏輯設計主要工作是將現實世界的概念數據模型設計成數據庫的一種邏輯模式,即適應于某種特定數據庫管理系統(tǒng)所支持的邏輯數據模式。與此同時,可能還需為各種數據處理應用領域產生相應的邏輯子模式。這一步設計的結果就是所謂“邏輯數據庫。物理設計根據特定數據庫管理系統(tǒng)所提供的多種存儲結構和存取方法等依賴于具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(包括文件類型、索引結構和數據的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設計的結果就是所謂“物理數據庫”。驗證設計在上述設計的基礎上,收集數據并具體建立一個數據庫,運行一些典型的應用任務來驗證數據庫設計的正確性和合理性。一般,一個大型數據庫的設計過程往往需要經過多次循環(huán)反復。當設計的某步發(fā)現問題時,可能就需要返回到前面去進行修改。因此,在做上述數據庫設計時就應考慮到今后修改設計的可能性和方便性。運行與維護設計在數據庫系統(tǒng)正式投入運行的過程中,必須不斷地對其進行評調整與修改。至今,數據庫設計的很多工作仍需要人工來做,除了關系型數據庫已有一套較完整的數據范式理論可用來部分地指導數據庫設計之外,尚缺乏一套完善的數據庫設計理論、方法和工具,以實現數據庫設計的自動化或交互式的半自動化設計。所以數據庫設計今后的研究發(fā)展方向是研究數據庫設計理論,尋求能夠更有效地表達語義關系的數據模型,為各階段的設計提供自動或半自動的設計工具和集成化的開發(fā)環(huán)境,使數據庫的設計更加工程化、更加規(guī)范化和更加方便易行,使得在數據庫的設計中充分體現軟件工程的先進思想和方法??偣矂?chuàng)建了三張表分別是:訂單詳細表(orderdetailtbl)、訂單表(ordertbl)、桌號表(tabletbl)。訂單詳細表:列出了顧客所點的菜的種類與數量,還有對菜的備注要求。訂單表:列出訂單用戶,所在桌號,客人幾位,是否結算等。桌號表:對桌位進行編號并標注其狀態(tài)時有人還是空。數據庫設計2.1數據庫需求分析無線點餐系統(tǒng)以酒店服務信息為主體,因此在這個系統(tǒng)中必須要有一個保存菜單信息的表。所以用編號做主鍵。負責登錄終端系統(tǒng)的服務人員應該有保存服務人員信息的表,這個表中也是包括一些基本信息。并且以服務人員的編號作為主鍵。在一個點餐系統(tǒng)中,不可避免的要有桌位的編號。這樣的話就必須有一個桌號表,該表保存桌位信息。顧客可以按照自己的喜好,在酒店
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 13《我能行》(說課稿)-2023-2024學年統(tǒng)編版道德與法治二年級下冊
- Unit 6 How do you feel Part B Read and Write(說課稿)-2024-2025學年人教PEP版英語六年級上冊
- 6《一封信》說課稿-2024-2025學年統(tǒng)編版語文二年級上冊
- 12 低碳生活每一天 第二課時 說課稿-2023-2024學年道德與法治四年級上冊統(tǒng)編版001
- 2025城市房屋拆遷安置補償合同
- 公司轉讓工程合同范本
- 6《探訪古代文明》說課稿-2023-2024學年道德與法治六年級下冊統(tǒng)編版
- 鋁合金踢腳線施工方案
- 項目租車方案
- 住建部 認購合同范例
- Unit 6 Beautiful landscapes Integration說課稿 - 2024-2025學年譯林版英語七年級下冊
- 新版人教版七年級下冊數學全冊教案教學設計含教學反思
- 北京市東城區(qū)2023-2024學年高二下學期期末英語試題 含解析
- 中國食物成分表2020年權威完整改進版
- 2024年金屬非金屬礦山(地下礦山)安全管理人員考試練習題(100題)附答案
- 快消品銷售團隊薪酬方案
- 測繪學基礎知識單選題100道及答案解析
- 2024年國家焊工職業(yè)技能理論考試題庫(含答案)
- PDCA降低I類切口感染發(fā)生率
- 工業(yè)企業(yè)現場監(jiān)測工況核查表
- 沉淀池及排水溝清理記錄表
評論
0/150
提交評論