網上訂餐系統(tǒng)畢業(yè)設計3_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  網</b></p><p><b>  上</b></p><p><b>  定</b></p><p><b>  餐</b></p><p><b>  系</b></p><p

2、><b>  統(tǒng)</b></p><p><b>  網上訂餐系統(tǒng)</b></p><p><b>  系統(tǒng)概述</b></p><p>  本系統(tǒng)在開發(fā)設計中,采用B/S(Browser/Server)結構,這種結構使得數據只有結果集合在瀏覽器中顯示,數據的處理在服務器進行,用戶不用安裝客戶端

3、,而且由于通過服務器端統(tǒng)一管理數據,易于保證數據的一致性。數據庫方面,推薦業(yè)界具有領導地位的關系數據庫管理系統(tǒng)Microsoft SQL sever2000,使系統(tǒng)安全性能更高。同時采用當前正在流行的JSP(Java Server Pages)編程,用戶界面更友好。</p><p>  在開發(fā)中選擇了JSP+JavaBean+SQL2000的模式,實現(xiàn)了應用程序邏輯和頁面顯示分離,界面設計更簡單。JavaBean

4、可重用的軟件組件滿足小型應用,同時使編程人員投入量精力便可重用組件,在簡單的應用中可以充分考慮</p><p><b>  二.需求分析</b></p><p>  網上訂餐管理系統(tǒng)無論是在應用的深度還是廣度都是一個逐步發(fā)展的過程。在開發(fā)一個局部系統(tǒng)時要充分考慮到局部系統(tǒng)和整個目標系統(tǒng)之間的相容性和完整性,以利于今后整個系統(tǒng)的建立。進貨訂單管理系統(tǒng)從總體上把握系統(tǒng)的設

5、計,在具體的設計實現(xiàn)上我們圍繞著三個方面的需求展開,即管理者、系統(tǒng)使用者、系統(tǒng)維護者。</p><p><b>  2.1性能需求分析</b></p><p>  該系統(tǒng)在性能功能上應達到如下需求:</p><p>  ◆ 操作簡單、界面友好: 完全控件式的頁面布局,使得菜品,資訊,座位等信息的錄入工作更簡便,許多選項包括餐廳信息,桌位,包房信

6、息等只需要點擊鼠標就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時清楚自己的操作情況。對常見的類似網站的管理的各個方面:基本信息錄入、瀏覽、刪除、修改、搜索等方面都大體實現(xiàn),顧客對菜品的預定及支付方式;</p><p>  ◆ 即時可見:對客戶預定餐飲信息的處理(包括錄入、刪除)將立即在主頁的對應欄目顯示出來,達到“即時發(fā)布、即時見效”的功能;</p><p>  ◆ 系統(tǒng)運行應該快速、穩(wěn)

7、定、高效和可靠;</p><p>  ◆ 在結構上應具有很好的可擴展性,便于將來的功能擴展和維護。</p><p>  2.2產品質量需求分析</p><p><b>  2.3 可行性分析</b></p><p>  隨著經濟的快速發(fā)展,B2C電子商務越來越受到人們的關注。網上訂餐類網站,已經如雨后春筍般的出現(xiàn)在了個大

8、城市。特別在公司,企業(yè)內部,團體訂餐已經成為了趨勢。同時,隨著全國人民的精神、物質和文化生活高度的提高,人們已經不在僅僅停留在吃飽的程度,不但要吃飽,還要吃好,而且口味也越來越挑刺,正因為如此網絡訂餐業(yè)務的出現(xiàn),正迎合了這些人的口味,他們不但省去了自己做飯的麻煩,而且也能尋找和發(fā)現(xiàn)新的菜品,品嘗不同風格的菜品,網絡訂餐業(yè)務在中國有著極大的發(fā)展空間以及良好的背景。而當代大學生,白領工作人士作為社會中的重要群體,他們對飲食的要求都在不斷提高

9、,飲食在他們生活中起著重要作用。因此,面向大學生和都市白領人士的網絡訂餐網站的設計有著良好的現(xiàn)實意義。</p><p>  2.4 總體設計原則</p><p>  開放性、可擴充性、可靠性原則</p><p>  開放系統(tǒng)是生產各種計算機產品普遍遵循的原則,遵循這種標準的產品都符合一些公共的、可以相互操作的標準,能夠融洽的在一起工作。開放系統(tǒng)使得各種類型的網絡和系

10、統(tǒng)互連簡單、標準統(tǒng)一,容易擴展升級。從而適應廣大用戶需求的多變性和產品的更新?lián)Q代。</p><p>  2、良好的用戶操作界面</p><p>  用戶操作界面美觀、方便、實用,使用戶能在較短的時間內掌握其使用方法。</p><p><b>  3、實用性原則</b></p><p>  任何系統(tǒng)的設計都要考慮其實用性,

11、系統(tǒng)開發(fā)的目的是為了實現(xiàn)業(yè)務處理自動化、規(guī)范化,提高工作效率,減輕工作人員的勞動強度,減少開支。</p><p>  4、工作平臺設計原則</p><p>  能適應不同的操作平臺,不同的網絡。</p><p><b>  總體設計</b></p><p><b>  3.1系統(tǒng)流程分析</b>&l

12、t;/p><p>  3.1.1業(yè)務流程分析</p><p>  1、 瀏覽與選擇餐飲信息:顧客進入網站即刻自動提供購物車,不需身份確認就可以在網站上隨意瀏覽,登錄系統(tǒng)后則可挑選餐飲(可增加、刪除、修改購物車上餐飲的類型),網站提供餐飲信息列表,最先添加的餐飲信息優(yōu)先列表給顧客作為選購時的參考;</p><p>  2、 判斷:顧客確定所購餐飲信息后,系統(tǒng)將判斷該顧客是

13、否注冊,如果是,則可直接填寫訂單;否則,提示顧客登記注冊;</p><p>  3、 提交訂單:已選購的餐飲信息需填寫訂單細節(jié)。</p><p>  4、 注冊:顧客可在公司的網站上注冊后提交申請;</p><p>  5、 確認:后臺管理將實時得到顧客的注冊信息,通過電話及其他方式確認,當確認后,系統(tǒng)管理員可對該顧客提交的預定信息進行審核。</p>

14、<p>  6、送貨與付款:網上的每一份訂單都將實時存入后臺數據庫,后臺操作人員通過電話及其他方式確認,確認后將及時實施審核該訂單:向顧客送貨,貨到付款,完成網上交易。</p><p>  3.1.2數據流程分析</p><p>  該系統(tǒng)數據流程比較簡單,管理員可以添加餐廳信息(包括餐桌,包房等),餐飲信息(包括菜品名等信息),資訊信息等,然而這些信息顧客是可以瀏覽的,但是顧客

15、沒有權限對這些信息進行修改,這些信息對于顧客而言是單向的。對于預定信息,管理員可以查看及審核預定信息,顧客可以增刪改預定信息,并將預定信息提交給管理員等待審核,因此預定信息對于顧客和管理員而言都是雙向的。</p><p>  3.1.2.1數據流圖</p><p>  數據流圖簡稱DFD,是SA方法中用于表示系統(tǒng)邏輯模型的一種工具。它以圖形的方式描述數據在系統(tǒng)中流動和處理的過程,由于它只反

16、映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。系統(tǒng)的數據流圖如下所示:</p><p><b>  系統(tǒng)DFD圖</b></p><p>  3.2系統(tǒng)數據庫設計</p><p>  3.2.1 數據庫E-R圖</p><p>  3.2.2數據庫表設計</p><p>  系統(tǒng)關鍵數據表如下:

17、其關系見E-R圖</p><p>  1.用戶表(users):用戶登錄是需要用戶名和密碼,所以用戶數據表中必須包含用戶名(uname)、密碼(upass)兩個信息,還有些其他的用戶信息,比如power指的是用戶權限(管理員還是非管理員)。從功能上數據庫表設計如表3.1。</p><p><b>  表 3.1 用戶表</b></p><p>

18、  2.菜品信息表(food):菜品信息表主要描述菜品信息,如:菜品ID號(foodid),此ID號為系統(tǒng)自動生成;菜品名稱(fname);菜品價格(price);所屬分類ID(categoryId);圖片信息(images)。商品信息表詳細描述如表3.2</p><p><b>  表3.2菜品信息表</b></p><p>  3.訂座菜單表(st):客戶訂餐的一

19、些相關信息,如stId指的訂餐ID號,此ID和是系統(tǒng)自動生成的;菜品名稱(fname);訂購數量(num);價格(price);座位編號(seatId)等,具體描述表3.3</p><p><b>  表3.3供應商表</b></p><p>  4.訂單表(orders): 訂單表有一下描述信息。訂單ID(ordersId),訂購人姓名(name),地址(addre

20、ss),聯(lián)系電話(tel),價格(price),備注信息(context)等,具體描述如表3.4所示:</p><p><b>  表3.4訂單表</b></p><p>  5.訂單菜單表(Shop)具體描述如表3.5所示:</p><p><b>  表3.5訂單菜單表</b></p><p>

21、  6.訂座表(Seat)具體描述如表3.6所示:</p><p><b>  表3.6訂座表</b></p><p><b>  3.3系統(tǒng)結構設計</b></p><p>  網上訂餐系統(tǒng)的模型結構如下圖所示:</p><p>  從前面的需求分析中得知,可以將功能分為前臺和后臺兩類,因此模塊也

22、分為兩大類:前臺模塊和后臺模塊。</p><p>  下圖為系統(tǒng)模塊總圖:</p><p><b>  系統(tǒng)模塊總圖</b></p><p>  3.4 核心算法實現(xiàn)——分頁顯示算法</p><p><b>  int i;</b></p><p>  一頁顯示的記

23、錄數 = 10;</p><p><b>  取得待顯示頁碼</b></p><p>  PageSet : strPage = page;</p><p>  if(strPage==null)//page參數為空時,此時顯示第一頁數據{</p><p>  待顯示頁碼

24、60;= 1;</p><p><b>  }</b></p><p>  else{ 待顯示頁碼 = Integer.parseInt(strPage); //將字符串轉換成整型if(待顯示頁碼<1) 待顯示頁碼 = 1;</p><p><b>  }</

25、b></p><p>  執(zhí)行SQL語句并獲取結果集</p><p>  ResultSet rs = sqlStmt.executeQuery("SQL”);獲取記錄總數rs.last();記錄總數 = rs.getRow();</p><p><b>  記算總頁數</b><

26、;/p><p>  總頁數 = (記錄總數+設置一頁顯示的記錄數-1) / 一頁顯示的記錄數;</p><p><b>  調整待顯示的頁碼</b></p><p>  if(待顯示頁碼>總頁數) 待顯示頁碼 = 總頁數;// 分頁情況分類  

27、;</p><p><b>  //選擇向上翻</b></p><p>  if(待顯示頁碼>1)</p><p><b>  {</b></p><p>  選擇向上翻一頁傳遞參數pageda=待顯示頁碼-1 goto PageSet;</p><p><b&g

28、t;  }</b></p><p><b>  //選擇向下翻</b></p><p>  if(待顯示頁碼<總頁數){</p><p>  選擇向下翻一頁傳遞參數pageda=待顯示頁碼+1 goto PageSet;}</p><p><b>  If(選擇到尾頁)</b>

29、</p><p><b>  {</b></p><p>  選擇到尾頁傳遞參數pageda=總頁數 goto PageSet;</p><p><b>  }</b></p><p>  頁次=待顯示頁碼 / 總頁數頁 ;  </p><p>

30、  if(總頁數>0){</p><p>  將記錄指針定位到結果集的第一條記錄上((待顯示頁碼-1) * 一頁顯示的記錄數 + 1);</p><p><b>  i = 0;</b></p><p>  while(i<一頁顯示的記錄數 &&&

31、#160;數據庫指針不在結果集尾部){</p><p>  輸出要分頁顯示的數據庫中的內容;</p><p>  將數據庫指針移動到當前行的下一行;</p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  }

32、</b></p><p>  3.5 數據庫編程基礎及語法</p><p>  Java 數據庫連接 (JDBC) 是一個標準 SQL(Structured Query Language,結構化查詢語言)數據庫訪問接口, 可以為多種關系數據庫提供統(tǒng)一訪問。JDBC(Java DataBase Connection,Java 數據庫連接) 也提供一種基準,據此可以構建更高級的工具

33、和接口。 目前的 JDK(Java Development Kit,Java 開發(fā)工具包)軟件捆綁包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,開放式數據庫連接)橋。你可以從http://java。sun。com/products/JDK/CurrentRelease 找到最新版。 </p><p><b>  安裝驅動程序。</b></p&

34、gt;<p>  裝載驅動程序只需要非常簡單的一行代碼。例如,你想要使用 JDBC-ODBC 橋驅動程序, 可以用下列代碼裝載它: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  如果是JDBC Driver裝載: Class.forName("jdbc.driver_class_name");

35、各種數據庫驅動見附錄。</p><p>  建立連接  第二步就是用適當的驅動程序類與 DBMS 建立一個連接。下列代碼是一般的做法:</p><p>  Connection con = DriverManager.getConnection(url, " myLogin ", " myPassword ");</p><p&

36、gt;  這個步驟也非常簡單,最難的是怎么提供 url。如果你正在使用 JDBC-ODBC 橋, JDBC URL 將以 jdbc:odbc 開始:余下 URL 通常是你的數據源名字或數據庫系統(tǒng)。因此,假設你正在使用 ODBC 存取一個叫 "webmail" 的 ODBC 數據源,你的 JDBC URL 是 jdbc:odbc:webmail 。把 "sa" 及空格替換為你登陸 DBMS 的用戶名

37、及口令。如果你登陸數據庫系統(tǒng)的用戶名為 "webmail" 口令為空,只需下面的 2 行代碼就可以建立一個連接: </p><p>  String url = "jdbc:odbc:webmail";Connection con = DriverManager.getConnection(url,"webmail","");<

38、;/p><p>  如果你使用的是第三方開發(fā)了的 JDBC驅動程序,文檔將告訴你該使用什么 subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如, 如果驅動程序開發(fā)者注冊了 acme 作為 subprotocol, JDBC URL 的第一和第二部分將是 jdbc:acme。驅動程序文檔也會告訴你余下 JDBC URL 的格式。JDBC URL 最后一部分提供了定位數據庫的信息。如果

39、配置了連接池則要使用下面幾行代碼就可以建立一個連接:</p><p>  Context ctx;</p><p>  DataSource ds;</p><p>  ctx = new InitialContext();</p><p>  ds = (DataSource)ctx.lookup("java:comp/env/j

40、dbc/webmail");</p><p>  connection 接口是JSP數據庫編程使用多的接口之一,在connection接口中經常使用到一個方法close();要注意在連接用完后必須關閉,否則連接會繼續(xù)保持,直到超時。</p><p>  創(chuàng)建 JDBC Statements 對象 Statement 對象用于把 SQL 語句發(fā)送到數據庫 。你只須簡單地創(chuàng)建

41、一個 Statement 對象并且然后執(zhí)行它,使用適當的方法執(zhí)行你發(fā)送的 SQL 語句。對 SELECT 語句來說,可以使用 executeQuery。要創(chuàng)建或修改表的語句,使用的方法是 executeUpdate?! ⌒枰粋€活躍的連接的來創(chuàng)建 Statement 對象的實例。在下面的例子中,使用的 Connection 對象 con 創(chuàng)建 Statement 對象 stmt:Statement stmt = con.create

42、Statement(int resultSetType,int resultSetConcurrency);</p><p>  ResultSet rs=Stmt.executeUpdate(SQL);SQL為數據庫查詢語句</p><p>  Con.createStatement()方法包含兩參數:resultSetType和resultSetConcurrency</p>

43、;<p>  1. resultSetType參數:</p><p>  用來設定ResultSet對象中的光標是否能夠上下自由移動,它的值只能有3種,TYPE_FORWARD_ONLY、TYPE_SCROLL_SENSITIVE或TYPE_SCROLL_INSENSITEVE。若設為第一種,表示ResultSet對象中的光標能夠隨心所欲的上下移動,不過他們兩者最大的差別在于:當ResultSet對

44、象中的值有變時,TYPE_SCROLL_SENSITIVE能夠取得改變后的值,而TYPE_SCROLL_INSENSITIVE不能。</p><p>  2. resultSetConcurrency參數:</p><p>  主要設定ResultSet對象是只讀(read-only)還是可以改變的(updatable),他的值有兩種,CONCUR_READ_ONLY和CONCUR_UPD

45、ATABLE。若設為CONCUR_READ_ONLY,則ResultSet對象和JDBC 1.0的功能一樣;若為CONCUR_UPDATABLE,那么表示ResultSet對象可以直接執(zhí)行數據庫的新增、修改和移除功能。</p><p>  在statement執(zhí)行SQL語句是,有時會返回ResultSet結果集。該結果集往往包含的是查詢的記錄集。通過ResultSet.next()方法把當前的指針向下移動一位,隨

46、著每次調用next導致指針向下移動,按照從上到下的次序獲取ResultSe行。</p><p>  Java.sql.ResultSet提供了檢索不同的類型字段,其常用的的方法如下:</p><p>  getString():獲得數據庫里的varchar、char數據類型。</p><p>  getFloat():獲得數據庫里的Float數據類型。</p&

47、gt;<p>  getDouble():獲得數據庫里的Double Precision數據類型。</p><p>  getBoolean():獲得數據庫里Boolean數據類型。</p><p>  getObject():該方法用于在SQL中無對應類型,可以獲得系列化對象。</p><p>  getClob():獲得數據庫里的Clob(字符串大

48、型對象)數據類型的對象。</p><p>  getBolb():獲得數據庫里的Blob(二進制大型對象)數據類型的對象。</p><p>  3.6 本系統(tǒng)中的連接方式</p><p>  在本TOMCAT中配置了連接池,連接程序用JavaBean方法封裝,放在WEB-INF\ classse目錄下。</p><p>  import ja

49、va.sql.*;</p><p>  import javax.sql.*;</p><p>  import javax.naming.*;</p><p>  public class Db {</p><p>  public Connection con;</p><p>  public Statement

50、 stmt;</p><p>  public ResultSet rs;</p><p>  public PreparedStatement pstmt;</p><p>  public static int error=0;</p><p>  public static synchronized Connection getCon(

51、)throws Exception{</p><p>  Context ctx;</p><p>  DataSource ds;</p><p><b>  try{</b></p><p>  ctx = new InitialContext();</p><p>  ds = (DataS

52、ource)ctx.lookup("java:comp/env/jdbc/webmail");</p><p>  System.Err.println();</p><p>  System.err.println("數據連接+"+(++error));</p><p>  return ds.getConnection()

53、;</p><p>  }catch(SQLException e){</p><p>  System.out.print(e);</p><p><b>  throw e;</b></p><p><b>  }</b></p><p>  catch(NamingEx

54、ception e){</p><p>  System.out.print(e);</p><p><b>  throw e;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public

55、Statement getStmtread(){</p><p><b>  try{</b></p><p>  con=getCon();</p><p>  stmt=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE</p><p>  j

56、ava.sql.ResultSet.CONCUR_READ_ONLY);</p><p>  }catch(Exception e){</p><p>  System.out.println("getStmtread");</p><p>  System.out.println(e.getMessage());</p><

57、p><b>  }</b></p><p>  return stmt;</p><p><b>  }</b></p><p><b>  結 論</b></p><p>  這次實訓中,積累了數據庫編程和網站開發(fā)的基本經驗和一些基本技巧。對大型系統(tǒng)開發(fā)有了實質性、操

58、作性的認識,同時對運用JSP技術有了很大的提高,對以前學到的書本知識也是個很好的鞏固,同時這次設計讓我意識到自己的許多的不足,鍛煉了自己獨立發(fā)現(xiàn)問題,思考問題,解決問題的能力,也掌握了一些編程的思想和技巧,使自己的編程能力也有了很大的提高。</p><p>  本文講述了Java/JSP/Struts在WEB應用的一些基本知識,并通過網上訂餐的程序對JSP的運用進行了深化,從本文中可看出JSP與Struts框架結

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論