網(wǎng)上訂餐課程設(shè)計--網(wǎng)上訂餐管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  網(wǎng)上訂餐管理系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b>  摘 要</b></p><p>  今年來,隨著人們生活壓力的持續(xù)增加,大部分人們都忙于工作,沒多余的時間去自己做飯,進而促進了網(wǎng)上訂餐行業(yè)的興起。網(wǎng)上訂餐為工薪階層提供了方便、快捷的就餐方式,只需動動鼠標(biāo)、鍵盤,可口的的飯菜就等送到嘴邊!對于餐飲行業(yè),有一個好的網(wǎng)上訂餐管理系統(tǒng),不

2、僅能方便的管理餐飲,還能吸引不少顧客。由此可見,一個好的網(wǎng)上訂餐管理系統(tǒng)已經(jīng)成為一個餐飲公司發(fā)展好壞的一個決定性因素,在此類公司中占據(jù)著日趨重要的低位。</p><p>  通過分析網(wǎng)上訂餐管理的內(nèi)容及特點,提出了網(wǎng)上訂餐管理系統(tǒng)的解決方案。系統(tǒng)采用ASP,SQLServer2005作為主開發(fā)工具進行開發(fā)。系統(tǒng)由管理員登錄,注冊模塊,餐飲信息查詢模塊,會員信息管理模塊,訂單信息管理模塊,會員登錄模塊,會員基本信息

3、、訂單、修改信息模塊和訂餐模塊等組成。</p><p>  文章以需求分析,概要設(shè)計,模塊詳細設(shè)計,系統(tǒng)運行和測試,系統(tǒng)說明等為主線,詳細介紹了網(wǎng)上訂餐管理系統(tǒng)。首先,根據(jù)網(wǎng)上訂餐管理的內(nèi)容及會員特點對系統(tǒng)作為需求分析,其次根據(jù)系統(tǒng)的實現(xiàn)功能和使用進行規(guī)劃,最后完成了模塊的劃分和數(shù)據(jù)庫的設(shè)計與實現(xiàn),并對系統(tǒng)進行了測試。</p><p>  關(guān)鍵詞:ASP,模塊,數(shù)據(jù)庫,網(wǎng)上訂餐管理<

4、/p><p><b>  目 錄</b></p><p><b>  1 緒論1 </b></p><p>  1.1 研究背景1</p><p>  1.2 開發(fā)意義1</p><p>  1.3 本文的組織結(jié)構(gòu)1</p><p>  2

5、 系統(tǒng)需求分析2</p><p>  2.1 系統(tǒng)功能分析2</p><p>  2.2 設(shè)計目標(biāo)2</p><p>  2.3 開發(fā)及運行環(huán)境2</p><p>  3 系統(tǒng)概要設(shè)計3</p><p>  3.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計3</p><p>  3.1.1 數(shù)據(jù)

6、庫概念結(jié)構(gòu)設(shè)計3</p><p>  3.1.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計4</p><p>  3.1.3 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計4</p><p>  3.2 系統(tǒng)功能設(shè)計7</p><p>  3.2.1 數(shù)據(jù)庫功能設(shè)計7</p><p>  3.2.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計10</p>&

7、lt;p>  3.3 數(shù)據(jù)庫的連接10</p><p>  4 系統(tǒng)模塊詳細設(shè)計11</p><p>  4.1 登錄模塊11</p><p>  4.2 會員注冊模塊12</p><p>  4.3 會員密碼修改模塊13</p><p>  4.4 會員找回密碼模塊14</p>

8、;<p>  4.5 系統(tǒng)主模塊15</p><p>  4.6 新聞內(nèi)容顯示模塊18</p><p>  4.7 用戶主頁模塊18</p><p>  4.8 管理員登陸模塊21</p><p>  4.9 管理員注冊模塊22</p><p>  4.10 管理員找回密碼模塊23

9、</p><p>  4.11 管理員修改密碼模塊24</p><p>  4.12 管理員管理模塊25</p><p>  4.12.1 餐飲管理模塊25</p><p>  4.12.2 添加餐飲模塊26</p><p>  4.12.3 新聞管理模塊27</p><p>

10、;  4.12.4 發(fā)布、編輯新聞模塊28</p><p>  4.12.5 會員管理模塊29</p><p>  4.12.6 訂單管理模塊30</p><p>  5 系統(tǒng)運行與測試32</p><p>  5.1 系統(tǒng)調(diào)試32</p><p>  5.2 測試與運行33</p>

11、<p>  5.2.1 測試的目的33</p><p>  5.2.2 測試的原則33</p><p>  5.2.3 測試的內(nèi)容34</p><p>  5.2.4 測試用例35</p><p>  5.3 測試結(jié)論36</p><p>  6 系統(tǒng)的使用說明與安裝37</

12、p><p>  6.1 運行環(huán)境要求37</p><p>  6.2 安裝設(shè)置37</p><p>  6.3 源程序用戶名和密碼37</p><p><b>  結(jié)論38</b></p><p><b>  參考資料39</b></p><p

13、><b>  1 緒論</b></p><p><b>  1.1 研究背景</b></p><p>  “民以食為天”,餐飲業(yè)系百業(yè)之首。我國餐飲業(yè)已形成了高中低檔多層次,東西南北菜系多樣化,中西餐相互補充的格局。目前,網(wǎng)絡(luò)熱潮正沖擊著我們生活的方方面面。具體到餐飲業(yè)網(wǎng)絡(luò)營銷,網(wǎng)上訂餐是一種主要的形式。本系統(tǒng)實現(xiàn)通過網(wǎng)上訂餐,由餐飲公

14、司負責(zé)送貨上門業(yè)務(wù),促進餐飲業(yè)的蓬勃發(fā)展。</p><p><b>  1.2 開發(fā)意義</b></p><p>  網(wǎng)上訂餐業(yè)務(wù)的興起,折射出餐飲業(yè)善抓機遇、搶占利潤第二落點的經(jīng)營理念,同時也顯示出消費者在日常所需中,運用網(wǎng)絡(luò)觀念的意識正逐漸增強。但比起如今火爆的網(wǎng)上購物,網(wǎng)上訂酒店住宿等服務(wù),網(wǎng)上訂餐服務(wù)在一些餐飲業(yè)中仍未引起足夠的重視,對于消費者來說,許多人對

15、這一新興業(yè)務(wù)尚缺乏了解。但因這種消費方式響應(yīng)了當(dāng)前社會的快捷、便利等趨勢,網(wǎng)上訂餐仍存在著廣闊的發(fā)展空間。網(wǎng)上訂餐的發(fā)展也將給餐飲業(yè)帶來勃勃生機。</p><p>  1.3 本文的組織結(jié)構(gòu)</p><p>  第一章:緒論。本章主要介紹研究背景,開發(fā)意義。</p><p>  第二章:需求分析。本章主要介紹數(shù)據(jù)庫需求分析,系統(tǒng)功能分析等。</p>

16、<p>  第三章:系統(tǒng)概要設(shè)計。本章主要介紹系統(tǒng)概要設(shè)計,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,數(shù)據(jù)庫的連接。</p><p>  第四章:系統(tǒng)詳細設(shè)計。本章主要介紹用戶管理,對數(shù)據(jù)庫的增刪改查操作。</p><p>  第五章:系統(tǒng)運行與測試。本章主要介紹本系統(tǒng)的運行環(huán)境與測試。</p><p>  第六章:系統(tǒng)的使用說明與安裝。</p><p>&

17、lt;b>  2 系統(tǒng)需求分析</b></p><p>  系統(tǒng)的需求分析中根據(jù)網(wǎng)上訂餐管理的一般流程,分析了系統(tǒng)的具體功能,對系統(tǒng)作了總體的規(guī)劃,提出了系統(tǒng)的設(shè)計目標(biāo),介紹了系統(tǒng)的開發(fā)及運行的環(huán)境。</p><p>  2.1 系統(tǒng)功能分析</p><p>  經(jīng)過調(diào)查、分析,本系統(tǒng)具有以下功能:</p><p>  

18、(1)提供會員登錄、注冊、修改密碼以及基本資料。</p><p> ?。?)提供管理員登陸,注冊,修改密碼以及基本資料。 </p><p> ?。?)提供對會員基本信息的查詢。</p><p>  (4)提供管理員對餐飲、會員、訂單、新聞、數(shù)據(jù)庫的管理。</p><p> ?。?)提供會員對新聞、餐飲信息的瀏覽以及訂購餐飲的功能。</p

19、><p><b>  2.2 設(shè)計目標(biāo)</b></p><p>  通過分析,主要實現(xiàn)如下目標(biāo):</p><p>  (1)編寫登錄模塊,設(shè)置登錄用戶的用戶名和密碼。</p><p> ?。?)編寫主模塊,設(shè)置通過菜單選項進入系統(tǒng)不同的子模塊。</p><p> ?。?)編寫對會員基本信息操作模塊。

20、</p><p> ?。?)編寫管理員登錄、注冊、修改密碼模塊。</p><p> ?。?)編寫管理員對餐飲、會員、訂單、新聞、數(shù)據(jù)庫管理模塊。</p><p>  2.3 開發(fā)及運行環(huán)境</p><p><b>  1、硬件平臺:</b></p><p>  (1)CPU:P41.8GHz。&

21、lt;/p><p> ?。?)內(nèi)存:256MB以上。</p><p><b>  2、軟件平臺:</b></p><p> ?。?)操作系統(tǒng):Windows XP/ Windows 2000。</p><p> ?。?)數(shù)據(jù)庫:SQL Server 2005</p><p> ?。?)開發(fā)工具:ASP

22、.NET</p><p><b>  3 系統(tǒng)概要設(shè)計</b></p><p>  系統(tǒng)概要設(shè)計首先對數(shù)據(jù)庫的編碼進行設(shè)計,方便數(shù)據(jù)信息的處理,其次是根據(jù)需求分析,對數(shù)據(jù)庫的結(jié)構(gòu)進行設(shè)計,建立相關(guān)的數(shù)據(jù)表,最后構(gòu)畫出系統(tǒng)功能的結(jié)構(gòu)圖。</p><p>  3.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p>  3.1.1 數(shù)

23、據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p>  根據(jù)軟件工程所學(xué)知識和以上對本次課程設(shè)計系統(tǒng)的分析,最終畫出系統(tǒng)的實體關(guān)系圖 (E-R圖)如圖3.1所示。</p><p>  3.1.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p>  由3.1.1的實體關(guān)系圖可以得到系統(tǒng)的關(guān)系模式為:</p><p>  餐飲信息(餐飲id,餐飲名,原料,簡介,圖片,價格

24、,訂購數(shù),已發(fā)貨量)</p><p>  管理員信息(管理員id,姓名,密碼,聯(lián)系方式)</p><p>  會員信息(會員id,密碼,姓名,性別,地址,聯(lián)系方式)</p><p>  訂單信息(訂單id,會員id,所訂餐飲id,訂購數(shù)量,訂購時間,用餐時間)</p><p>  新聞信息(新聞id,標(biāo)題,內(nèi)容,發(fā)布人,發(fā)布時間,點擊次數(shù))&

25、lt;/p><p>  3.1.3 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計</p><p><b>  1、數(shù)據(jù)庫的設(shè)計</b></p><p>  CREATE DATABASE WSDC </p><p>  ON PRIMARY </p><p>  ( NAME = WSDC, </p><

26、;p>  FILENAME = D:\網(wǎng)上訂餐管理系統(tǒng)(課程設(shè)計)\User\App_Data\WSDC.mdf , </p><p>  SIZE = 3072KB , </p><p>  MAXSIZE = UNLIMITED, </p><p>  FILEGROWTH = 1024KB )</p><p><b> 

27、 LOG ON </b></p><p>  ( NAME = WSDC_log, </p><p>  FILENAME = D:\網(wǎng)上訂餐管理系統(tǒng)(課程設(shè)計)\User\App_Data\WSDC_log.ldf ,</p><p>  SIZE = 1024KB </p><p>  MAXSIZE = 2048GB ,&l

28、t;/p><p>  FILEGROWTH = 10%)</p><p><b>  2、表的設(shè)計</b></p><p> ?。?)CY(餐飲表)</p><p>  餐飲id(Cid)為主鍵,不允許空,餐飲名Cname不允許空,其余字段允許為空,Cdnum設(shè)置觸發(fā)器,當(dāng)往訂單表中插入新數(shù)據(jù)時,自動更新餐飲表中的訂購數(shù)量C

29、dnum</p><p>  CY(餐飲表)如圖3.2所示。</p><p>  圖3.2 CY表的結(jié)構(gòu)</p><p>  CREATE TABLE CY</p><p>  (Cid int IDENTITY(1,1) NOT NULL primary key,</p><p>  Cname char(20)

30、 NOT NULL,</p><p>  Cdnum int,</p><p><b>  Cfh int,</b></p><p>  Cyl char(100),</p><p>  Cprice float check(Cprice>0),</p><p>  Cima varchar

31、(50),</p><p>  Cintroduce char(1000))</p><p> ?。?)HY(會員信息表)</p><p>  會員id(Hid)為主鍵,不允許空,其余字段允許空,性別(Hsex)設(shè)置check約束,只允許填寫“男”“女”</p><p>  HY(會員信息表)如圖3.3</p><p>

32、;  圖3.3 HY的結(jié)構(gòu)</p><p>  CREATE TABLE HY</p><p>  (Hid char(10) NOT NULL primary key,</p><p>  Hname char(10),</p><p>  Hadd char(100),</p><p>  Hpwd char(

33、10),</p><p>  Hphone char(15),</p><p>  Hsex nchar(10) check(Hsex in (‘男’,’女’)))</p><p> ?。?)GLY(管理員信息表)</p><p>  管理員id(Gid)為主鍵,Gid和密碼Gpwd不允許空。</p><p>  GL

34、Y(管理員信息表)圖3.4</p><p>  圖3.4 GLY表的結(jié)構(gòu)</p><p>  CREATE TABLE GLY</p><p>  (Gid char(10) NOT NULL PRIMARY KEY,</p><p>  Gname char(10),</p><p>  Gpwd nchar(1

35、0) NOT NULL,</p><p>  Gphone char(12))</p><p> ?。?)DD(訂單信息表)</p><p>  訂單號為主鍵且以1為單位自增,本表所有字段均不允許為空。</p><p>  DD(訂單信息表) 如圖3.5</p><p>  圖3.5 DD表的結(jié)構(gòu)</p>

36、<p>  CREATE TABLE DD</p><p>  (Did int IDENTITY(1,1) NOT NULL,</p><p>  Hid char(10) NOT NULL,</p><p>  Cid int NOT NULL,</p><p>  Dnum int NOT NULL DEFAULT (

37、(1)),</p><p>  Ddate datetime NOT NULL,</p><p>  Ydate datetime NOT NULL)</p><p> ?。?)NEWS(新聞信息表)</p><p>  新聞id(NewsId)為主鍵,不允許空,其余字段均允許空。</p><p>  NEWS(新聞信

38、息表)圖3.6 </p><p>  圖3.6 NEWS表的結(jié)構(gòu)</p><p>  CREATE TABLE NEWS</p><p>  (NewsId int IDENTITY(1,1) NOT NULL,</p><p>  title char(100),</p><p>  content tex

39、t,</p><p>  NewsUser char(10),</p><p>  NewsDate datetime)</p><p><b>  系統(tǒng)功能設(shè)計</b></p><p>  3.2.1 數(shù)據(jù)庫功能設(shè)計</p><p><b> ?。?)視圖</b><

40、/p><p>  視圖是一個虛擬表,其內(nèi)容由詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。視圖通常用來集中、簡化和自定義每個用戶對數(shù)據(jù)庫的不同認(rèn)識。視圖可用作安全機制,方法是允許用戶通過視圖訪問數(shù)據(jù),而不授予用戶直接訪問視圖基礎(chǔ)表的權(quán)限。通過視圖可以檢索基表中的數(shù)據(jù),也可以通過視圖來修改基表中的數(shù)據(jù)。</p><p><b>  (1)餐飲信息視圖</b>&

41、lt;/p><p><b>  use WSDC</b></p><p><b>  go</b></p><p>  create view Cintroduce</p><p><b>  as </b></p><p>  select * from

42、CY</p><p>  (2)餐飲顯示信息視圖</p><p><b>  Use WSDC</b></p><p>  CREATE view cyInformation </p><p><b>  as </b></p><p>  select Cyl,Cid,Cn

43、ame,Cprice,Cima,Cintroduce from CY</p><p>  (3)餐飲管理信息視圖</p><p><b>  use WSDC</b></p><p><b>  go</b></p><p>  create view CYmanage</p><

44、;p><b>  as </b></p><p>  select * from CY</p><p><b>  (4)新聞信息視圖</b></p><p><b>  use WSDC</b></p><p><b>  go</b></p

45、><p>  create view newsInformation</p><p><b>  as </b></p><p>  select * from NEWS</p><p><b>  (2)存儲過程</b></p><p>  存儲過程存儲在數(shù)據(jù)庫內(nèi),可由應(yīng)用程序

46、通過一個調(diào)用執(zhí)行,而且允許用戶聲明變量、有條件執(zhí)行以及其他強大的編程功能。存儲過程可以使得數(shù)據(jù)庫的管理、顯示關(guān)于數(shù)據(jù)庫及其用戶信息的工作容易得多。存儲過程包含程序流、邏輯以及對數(shù)據(jù)庫的查詢。它們可以接受參數(shù)、輸出參數(shù)、返回單個或多個結(jié)果集以及返回值。存儲過程具有以下優(yōu)點:1、可以在單個存儲過程中執(zhí)行一系列SQL語句,2、可以從自己的存儲過程內(nèi)引用其他存儲過程,3、存儲過程在創(chuàng)建時即在服務(wù)器上進行編譯,所以執(zhí)行起來比單個SQL語句快,且能

47、減少網(wǎng)絡(luò)通信的負擔(dān)。</p><p><b>  USE WSDC</b></p><p><b>  GO</b></p><p>  create proc sa @a char(10)</p><p><b>  as</b></p><p>  

48、select * from cyinformation where cname=@a</p><p> ?。?)本系統(tǒng)所創(chuàng)建的觸發(fā)器</p><p>  觸發(fā)器在INSERT、UPDATE或DELETE語句對表或視圖進行修改時會被自動執(zhí)行。觸發(fā)器可以查詢其他表,并可以包含復(fù)雜的T-SQL語句。一個表可以有多個觸發(fā)器。觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實現(xiàn)級聯(lián)更改,但是,通過級聯(lián)引用完整性約束可以

49、更有效地執(zhí)行這些更改;也可以強制比用CHECK約束定義的約束更為復(fù)雜的約束;也可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策。一個表中多個同類觸發(fā)器允許采取多個不同的對策,以響應(yīng)同一個修改語句;觸發(fā)器也可確保數(shù)據(jù)規(guī)范化。使用觸發(fā)器可以維護非正規(guī)化數(shù)據(jù)庫環(huán)境中的記錄級數(shù)據(jù)的完整性。</p><p><b>  (1)餐飲表觸發(fā)器</b></p><p>  此觸發(fā)器

50、實現(xiàn)當(dāng)從餐飲表中刪除一項餐飲信息后,自動刪除訂單表中與此餐飲相關(guān)的所有信息</p><p><b>  USE WSDC</b></p><p>  create trigger DD_update</p><p>  on CY after delete</p><p><b>  as</b>&

51、lt;/p><p><b>  begin</b></p><p>  declare @cid int</p><p>  if exists (select cid from deleted)</p><p>  select @cid=(select cid from deleted)</p><p

52、>  delete from DD where cid=@cid </p><p><b>  end</b></p><p><b> ?。?)訂單表觸發(fā)器</b></p><p>  此觸發(fā)器實現(xiàn)當(dāng)有新訂單生成時,自動更新餐飲表中餐飲訂購數(shù)量。</p><p><b>  US

53、E WSDC</b></p><p>  create trigger CY_update</p><p>  on DD after insert</p><p><b>  as</b></p><p><b>  begin</b></p><p>  de

54、clare @Cid int,@Dnum int</p><p>  if exists (select cid from inserted)</p><p>  select @Cid=(select cid from inserted)</p><p>  select @Dnum=(select Dnum from inserted)</p>&

55、lt;p>  update CY set Cdnum=Cdnum+@Dnum where Cid=@Cid</p><p><b>  end</b></p><p> ?。?)本系統(tǒng)所使用的索引</p><p>  索引和書的目錄類似,它提供了指向表中行的指針,是到達數(shù)據(jù)的直接路徑。索引是為了加速檢索而創(chuàng)建的一種存儲結(jié)構(gòu)。索引是針對一個

56、表而建立的。它是由除存放表的數(shù)據(jù)頁面以外的索引頁面組成的。每個索引頁面中的行都包含邏輯指針,通過該指針可以直接檢索到數(shù)據(jù),這就會加速物理數(shù)據(jù)的檢索。索引有下述優(yōu)點:1、提高了查詢的速度,2、提高連接,3、查詢優(yōu)化器依靠索引起作用,4、強制實施行的唯一性。</p><p><b>  (1)餐飲索引</b></p><p>  CREATE NONCLUSTERED I

57、NDEX Cy_ind </p><p><b>  ON CY </b></p><p><b>  (Cid ASC)</b></p><p><b> ?。?)會員索引</b></p><p>  CREATE NONCLUSTERED INDEX HY_ind <

58、/p><p><b>  ON HY </b></p><p><b>  (Hid ASC)</b></p><p><b>  (3)新聞索引</b></p><p>  CREATE NONCLUSTERED INDEX news_ind </p><p&

59、gt;<b>  ON NEWS </b></p><p>  ( NewsId ASC,</p><p>  title ASC)</p><p><b> ?。?)訂單索引</b></p><p>  CREATE NONCLUSTERED INDEX DD_ind </p>&

60、lt;p><b>  ON DD </b></p><p>  (Did ASC,</p><p><b>  Hid ASC)</b></p><p>  (5)本系統(tǒng)所使用的函數(shù)</p><p>  用戶在編程時常常需要將一個多多個T-SQL語句組成子程序,以便反復(fù)調(diào)用。SQL Serv

61、er 2005允許用戶根據(jù)需要自己定義函數(shù)。根據(jù)定義函數(shù)返回值類型,可將函數(shù)分為兩個類別:標(biāo)量函數(shù)和表值函數(shù)。標(biāo)量函數(shù)返回值是標(biāo)量值。表值函數(shù)返回值為整個表。</p><p>  按餐飲價格范圍查找餐飲信息函數(shù)代碼如下:</p><p><b>  USE WSDC</b></p><p>  create function searchbyp

62、rice(@p1 float,@p2 float)</p><p>  returns table</p><p><b>  as</b></p><p><b>  return</b></p><p>  ( select * from CY where Cprice between @p1

63、 and @p2 )</p><p>  3.2.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計</p><p>  根據(jù)需求分析和數(shù)據(jù)庫的設(shè)計,構(gòu)畫出網(wǎng)上訂餐系統(tǒng)功能結(jié)構(gòu)圖,如圖3.7所示。</p><p>  圖3.7 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  3.3 數(shù)據(jù)庫的連接</p><p>  本設(shè)計是通過ADO.NET和數(shù)據(jù)庫建立

64、連接并訪問數(shù)據(jù)庫的,代碼如下:</p><p>  (connectionStrings)</p><p>  (add name="conn" connectionString="Data Source=.;Initial Catalog=WSDC;Integrated Security=SSPI;"/)</p><p> 

65、 (/connectionStrings)</p><p><b>  4 系統(tǒng)詳細設(shè)計</b></p><p>  本章主要介紹本系統(tǒng)各界面所實現(xiàn)的功能以及用到的一些技術(shù),是讀者對本系統(tǒng)有個全面的認(rèn)識。</p><p><b>  4.1 登錄模塊</b></p><p>  登錄模塊是為保證

66、信息的安全,只允許由用戶名和密碼的用戶進入對系統(tǒng)進行相關(guān)的操作,當(dāng)輸入正確時即可進入系統(tǒng)。并提供會員注冊和修改、找回密碼鏈接。</p><p>  登入界面Login.aspx,效果如圖4.1所示。</p><p><b>  圖4.1 登錄界面</b></p><p>  會員登錄模塊的主要代碼為:</p><p> 

67、 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)</p><p>  { string sql = "select count(*) from HY where Hid='" + TextBox1.Text + "'and Hpwd='" + TextBo

68、x2.Text + "'";</p><p>  int r = Int32.Parse(DBUtility.DbHelperSQL.GetSingle(sql).ToString());</p><p><b>  if (r> 0)</b></p><p>  { HttpCookie cookie =

69、 new HttpCookie("name");</p><p>  cookie.Value =TextBox1.Text;</p><p>  Response.Cookies.Add(cookie);</p><p>  Response.Redirect("main.aspx"); }</p><

70、p><b>  else</b></p><p>  { Label5.Text = "用戶名或密碼錯誤";</p><p>  TextBox1.Text = "";</p><p>  TextBox2.Text = "";</p><p>  Te

71、xtBox1.Focus(); }</p><p><b>  4.2會員注冊模塊</b></p><p>  會員注冊模塊的功能是注冊新的會員,通過該模塊可將會員信息插入數(shù)據(jù)庫中,下次登陸時便可用此會員的用戶名和密碼登陸。</p><p>  用戶注冊界面Hadd.aspx,效果如圖4.2所示。</p><p> 

72、 圖4.2 用戶注冊頁面</p><p>  該模塊的主要代碼為:</p><p>  protected void ImageButton1_Click(object sender, ImageClickEventArgs e)</p><p>  { string sql = "select count(*) from HY where Hid

73、='" + TextBox1.Text + "' and Hpwd='"+TextBox2.Text+"'";</p><p>  int r = Int32.Parse(DBUtility.DbHelperSQL.GetSingle(sql).ToString());</p><p><b>  

74、if (r>0)</b></p><p>  { Label13.Text = "用戶名已存在!"; }</p><p><b>  else</b></p><p>  { string sql1 = "insert into HY(Hid,Hpwd,Hname,Hadd,Hph

75、one) values(@userId,@userPwd,@userName,@userAddress,@userPhone)";</p><p>  SqlParameter[] pars = new SqlParameter[5];</p><p>  pars[0] = new SqlParameter("@userId", SqlDbType.Var

76、Char);</p><p>  pars[0].Value = TextBox1.Text;</p><p>  pars[1] = new SqlParameter("@userPwd", SqlDbType.VarChar);</p><p>  pars[1].Value = TextBox2.Text;</p><p

77、>  pars[2] = new SqlParameter("@userName", SqlDbType.VarChar);</p><p>  pars[2].Value = TextBox4.Text;</p><p>  pars[3] = new SqlParameter("@userAddress", SqlDbType.VarCha

78、r);</p><p>  pars[3].Value = TextBox5.Text;</p><p>  pars[4] = new SqlParameter("@userPhone", SqlDbType.VarChar);</p><p>  pars[4].Value = TextBox6.Text;</p><p&

79、gt;  int s = DBUtility.DbHelperSQL.ExecuteSql(sql1, pars);</p><p>  string sql2 = "select count(*) from HY where Hid='" + TextBox1.Text + "' and Hpwd='" + TextBox2.Text + &quo

80、t;'";</p><p>  int i=Int32.Parse( DBUtility.DbHelperSQL.GetSingle(sql2).ToString());</p><p><b>  if (i> 0)</b></p><p>  { Label13.Text = "添加成功!";

81、 }</p><p><b>  else</b></p><p>  { Label13.Text = "添加失?。?quot;; }}}</p><p>  4.3 會員密碼修改模塊</p><p>  此模塊的功能是修改會員密碼,修改后會員可用新的密碼登陸。</p><p> 

82、 用戶修改密碼界面Changepwd.aspx,效果如圖4.3所示。</p><p>  圖4.3 用戶修改密碼頁面</p><p>  會員修改模塊的主要代碼為:</p><p>  protected void Button1_Click(object sender, EventArgs e)</p><p>  { string s

83、ql = "select count(*) from HY where Hid='" + TextBox1.Text + "' and Hname='" + TextBox2.Text + "' and Hphone='" + TextBox3.Text + "'";</p><p>

84、  int j = Int32.Parse(DBUtility.DbHelperSQL.GetSingle(sql).ToString());</p><p><b>  if (j> 0)</b></p><p>  { string sql1 = "update HY set Hpwd='"+TextBox4.Text+"

85、;' where Hid='" + TextBox1.Text + "' and Hname='" + TextBox2.Text + "' and Hphone='" + TextBox3.Text + "'";</p><p>  int i=DBUtility.DbHelperSQL

86、.ExecuteSql(sql1);</p><p><b>  if (i>0)</b></p><p>  { Label14.Text = "密碼修改成功!" ; } }</p><p><b>  else</b></p><p>  { Label14.Tex

87、t = "用戶信息填寫錯誤!"; } }</p><p>  protected void Button2_Click(object sender, EventArgs e)</p><p>  { Response.Redirect("Login.aspx"); }</p><p>  protected void Butt

88、on3_Click(object sender, EventArgs e)</p><p>  { TextBox1.Text = "";</p><p>  TextBox2.Text = "";</p><p>  TextBox3.Text = "";</p><p>  

89、TextBox4.Text = "";</p><p>  TextBox5.Text = "";}</p><p><b>  找回密碼模塊</b></p><p>  用戶通過此模塊,填寫正確的信息即可在頁面顯示出正確的密碼。</p><p>  用戶找回密碼界面FindPwd

90、.aspx,效果如圖4.4所示。</p><p>  圖4.4 用戶找回密碼頁面</p><p>  找回密碼模塊的主要代碼:</p><p>  protected void Button1_Click(object sender, EventArgs e)</p><p>  { string sql = "select

91、 Hpwd from HY where Hid=@id and Hname=@name and Hphone=@ph";</p><p>  string sql1 = "select count(*) from HY where Hid=@id and Hname=@name and Hphone=@ph";</p><p>  SqlParameter[]

92、 par = new SqlParameter[3];</p><p>  par[0] = new SqlParameter("@id",TextBox1.Text);</p><p>  par[1] = new SqlParameter("@name",TextBox2.Text);</p><p>  par[2] =

93、 new SqlParameter("@ph", TextBox3.Text);</p><p>  int i = Int32.Parse(DBUtility.DbHelperSQL.GetSingle(sql1,par).ToString());</p><p><b>  if (i> 0)</b></p><p&g

94、t;  { string pwd = DBUtility.DbHelperSQL.GetSingle(sql,par).ToString();</p><p>  Label7.Text="您的密碼時:"+pwd; }</p><p><b>  else</b></p><p>  { Label8.Text=&quo

95、t;用戶信息填寫錯誤!"; } }</p><p>  protected void Button2_Click(object sender, EventArgs e)</p><p>  { Response.Redirect("Login.aspx"); }</p><p>  protected void Button3_C

96、lick(object sender, EventArgs e)</p><p>  { TextBox1.Text="";</p><p>  TextBox2.Text = "";</p><p>  TextBox3.Text = ""; }</p><p>  4.5

97、 系統(tǒng)主模塊</p><p>  系統(tǒng)主模塊顯示餐飲信息和新聞信息,實現(xiàn)按名稱、價格范圍查找餐飲,訂購餐飲、瀏覽餐飲新聞以及鏈接到會員詳細信息界面等功能。本模塊通過新聞視圖、餐飲視圖查詢新聞、餐飲信息并顯示,通過存儲過程實現(xiàn)餐飲按名稱精確查找,通過函數(shù)實現(xiàn)餐飲按價格范圍查找。</p><p>  訂餐主界面main.aspx,效果如圖4.5所示。</p><p> 

98、 圖4.5 系統(tǒng)主模塊</p><p><b>  主模塊的主要代碼:</b></p><p>  public partial class main : System.Web.UI.Page</p><p>  { string s;</p><p>  protected void Page_Load(obje

99、ct sender, EventArgs e)</p><p>  { if (!Page.IsPostBack)</p><p>  { AllowPage1.ControlID = "Repeater1";</p><p>  AllowPage1.ControlType = 2;</p><p>  Allo

100、wPage1.PageSize =5;</p><p>  AllowPage1.SQL = "select * from newsInformation order by NewsDate desc";</p><p>  AllowPage2.ControlID = "Repeater2";</p><p>  Allow

101、Page2.ControlType = 2;</p><p>  AllowPage2.PageSize = 5;</p><p>  AllowPage2.SQL = "select * from cyInformation order by cprice ";</p><p>  if (Request.Cookies["name&

102、quot;]!= null)</p><p>  { denglu.Visible = false;</p><p>  zhuce.Visible = false;</p><p>  mypage.Visible = true;</p><p>  tuichu.Visible = true;</p><p>

103、  s = Request.Cookies["name"].Value;</p><p>  Label1.Text = s + ",歡迎您回來!";</p><p>  if (!Page.IsPostBack)</p><p>  { BindToRepeater();</p><p>  Bi

104、ndToRepeater2(); } }</p><p><b>  else</b></p><p>  { denglu.Visible = true;</p><p>  zhuce.Visible = true;</p><p>  BindToRepeater();</p><p&g

105、t;  BindToRepeater2(); } } }</p><p>  public void BindToRepeater()</p><p>  { AllowPage1.DataTbl = DBUtility.DbHelperSQL.Query(AllowPage1.SQL).Tables[0];</p><p>  PagedDataSour

106、ce pds = AllowPage1.GetPagedDataSource(0);</p><p>  Repeater1.DataSource = pds;</p><p>  Repeater1.DataBind(); }</p><p>  public void BindToRepeater2()</p><p>  { Allo

107、wPage2.DataTbl = DBUtility.DbHelperSQL.Query(AllowPage2.SQL).Tables[0];</p><p>  PagedDataSource pds1 = AllowPage2.GetPagedDataSource(0);</p><p>  Repeater2.DataSource = pds1;</p><p&g

108、t;  Repeater2.DataBind(); }</p><p>  public string subTitle(object obj)</p><p>  { string title = obj.ToString();</p><p>  if (title.Length ) 10)</p><p>  { return

109、 title.Substring(0, 10) + "..."; }</p><p><b>  else</b></p><p>  { return title; } }</p><p>  public string getDate(object obj)</p><p>  { r

110、eturn DateTime.Parse(obj.ToString()).ToShortDateString(); }</p><p>  protected void Button1_Click(object sender, EventArgs e)</p><p>  { if (Request.Cookies["name"] != null)</p>

111、;<p>  { if (Request.Form["selectOne"] == null)</p><p>  { Response.Write("<script>alert('請先勾選!')</script>"); }</p><p><b>  else</b>&l

112、t;/p><p>  { string a = Request.Form["selectOne"].ToString();</p><p>  string[] s1 = a.Split(',');</p><p>  for (int j = 0; j(s1.Length; j++)</p><p>  {

113、string sql1 = "select count(*) from DD where Hid='" + Request.Cookies["name"].Value + "' and Cid=" + s1[j]; </p><p>  int i = Int32.Parse(DBUtility.DbHe

114、lperSQL.GetSingle(sql1).ToString());</p><p>  if (i > 0)</p><p>  { Response.Write("<script>alert('此餐飲,數(shù)量已加1!')</script>");</p><p>  string sql2 =

115、"update DD set Dnum=Dnum+1 where Cid="+s1[j];</p><p>  DBUtility.DbHelperSQL.ExecuteSql(sql2); }</p><p><b>  else</b></p><p>  { string sql3 = "insert int

116、o DD(Hid,Cid,Dnum,Ddate,Ydate) values('" + Request.Cookies["name"].Value + "','" + s1[j] + "',1,'" + DateTime.Now + "','"+TextBox1.Text+"'

117、)";</p><p>  DBUtility.DbHelperSQL.ExecuteSql(sql3); } } } }</p><p><b>  else</b></p><p>  { Response.Redirect("Login.aspx");} }</p><p>  pro

118、tected void Button2_Click(object sender, EventArgs e)</p><p>  { if (Request.Cookies["name"] != null)</p><p>  { if (Request.Form["selectOne"] == null)</p><p>

119、  { Response.Write("<script>alert('請先勾選!')</script>"); }</p><p><b>  else</b></p><p>  { string a = Request.Form["selectOne"].ToString();<

120、;/p><p>  string[] s1 = a.Split(',');</p><p>  for (int j = 0; j ( s1.Length; j++)</p><p>  { string sql1 = "delete from DD where Cid=" + s1[j];</p><p>

121、  int i = DBUtility.DbHelperSQL.ExecuteSql(sql1);</p><p><b>  if (i>0)</b></p><p>  {Response.Write("<script>alert('取消成功!')</script>");}</p>&

122、lt;p><b>  else</b></p><p>  {Response.Write("<script>alert('刪除失敗,請重新嘗試!)</script>");} } } }</p><p><b>  else</b></p><p>  { Re

123、sponse.Redirect("Login.aspx"); } }</p><p>  protected void byname_Click(object sender, EventArgs e)</p><p>  { if (cname.Text!= "")</p><p>  { string sql2 = &q

124、uot;sa";</p><p>  IDataParameter[] par = new SqlParameter[1];</p><p>  par[0] = new SqlParameter("@a", cname.Text);</p><p>  DataSet ds = DBUtility.DbHelperSQL.RunPro

125、cedure(sql2,par,"ta");</p><p>  DataTable dt = ds.Tables["ta"];</p><p>  Repeater2.DataSource = dt;</p><p>  Repeater2.DataBind(); }</p><p><b>

126、;  else</b></p><p>  { Label3.Text = "請輸入要查詢的餐飲名稱!"; }}</p><p>  protected void byprice_Click(object sender, EventArgs e)</p><p>  { if (cp1.Text != ""&

127、;&cp2.Text!="")</p><p>  { string sql3 = "select * from searchbyprice("+cp1.Text+","+cp2.Text+")";</p><p>  DataTable dt3 = DBUtility.DbHelperSQL.Qu

128、ery(sql3).Tables[0];</p><p>  Repeater2.DataSource = dt3;</p><p>  Repeater2.DataBind(); }</p><p><b>  else</b></p><p>  { Label4.Text = "請輸入價格范圍!&quo

129、t;; } } }</p><p><b>  新聞內(nèi)容顯示模塊</b></p><p>  此模塊顯示新聞具體內(nèi)容以及發(fā)布人、發(fā)布時間、點擊次數(shù).</p><p>  新聞顯示界面ShowNews.aspx,效果如圖4.6所示。</p><p>  圖4.6 新聞顯示界面</p><p>

130、  顯示新聞頁面代碼如下:</p><p>  public partial class ShowNews : System.Web.UI.Page</p><p>  { protected void Page_Load(object sender, EventArgs e)</p><p>  { if (!Page.IsPostBack)</p>

溫馨提示

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

評論

0/150

提交評論