基于Web的鮮花銷售系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) -_第1頁(yè)
基于Web的鮮花銷售系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) -_第2頁(yè)
基于Web的鮮花銷售系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) -_第3頁(yè)
基于Web的鮮花銷售系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) -_第4頁(yè)
基于Web的鮮花銷售系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) -_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、【標(biāo)題】基于Web的鮮花銷售系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) 【作者】朱婧紅 【關(guān)鍵詞】鮮花銷售  銷售系統(tǒng)  ASP.NET  【指導(dǎo)老師】程冰 【專業(yè)】計(jì)算機(jī)科學(xué)與技術(shù) 【正文】界面的設(shè)計(jì)用于顧客瀏覽各種鮮花,如鮮花的價(jià)格、花語(yǔ)等以達(dá)成購(gòu)置意向,當(dāng)鼠標(biāo)指向各種鮮花時(shí),會(huì)顯示鮮花的花語(yǔ),以便購(gòu)置者根據(jù)自己的需要選擇不同的花束。鮮花的價(jià)格分為非會(huì)員價(jià)格和會(huì)員價(jià)格,以不同身份登錄系統(tǒng)時(shí),所要支付的貨款也時(shí)不同的。然后放入購(gòu)物車,并填寫訂單,提交訂單及確認(rèn)訂單等操作。收貨人信息界面中的每一個(gè)文本框的輸入都有驗(yàn)證,內(nèi)容不能為空,并校對(duì)輸入的內(nèi)容是否正確,如果沒有正確的輸入,系

2、統(tǒng)將會(huì)提示操作失敗,以便重新添加正確的內(nèi)容,然后確認(rèn)訂單并提交。其樣式如5-2圖。5.3蛋糕頁(yè)面的設(shè)計(jì)同鮮花頁(yè)面功能類似,顧客瀏覽各種蛋糕,以確定適應(yīng)購(gòu)置的需要。然后放入購(gòu)物車,并填寫訂單,提交訂單及確認(rèn)訂單等操作。當(dāng)鼠標(biāo)指向各種蛋糕時(shí),會(huì)顯示蛋糕的含義,以便購(gòu)置者根據(jù)自己的需要選擇不同的貨物。蛋糕的價(jià)格也分為非會(huì)員價(jià)格和會(huì)員價(jià)格,當(dāng)以不同身份登錄系統(tǒng)時(shí),所要支付的貨款也是不同的。收貨人信息界面中的每一個(gè)文本框的輸入都有驗(yàn)證,內(nèi)容不能為空,并校對(duì)輸入的內(nèi)容是否正確,如果沒有正確的輸入,系統(tǒng)將會(huì)提示操作失敗,以便重新添加正確的內(nèi)容,然后確認(rèn)訂單并提交。5.4水果頁(yè)面的設(shè)計(jì)如同前兩個(gè)頁(yè)面,顧客瀏覽

3、各樣蛋糕,然后確定購(gòu)置。填寫訂單、確認(rèn)訂單及提交訂單。其樣式結(jié)構(gòu)如圖5-3所示。        圖5-3水果界面                                  

4、        圖5-4會(huì)員界面5.5會(huì)員頁(yè)面的設(shè)計(jì)我的賬戶頁(yè)面在這個(gè)頁(yè)面里會(huì)員可以修改自己的密碼。其樣式結(jié)構(gòu)如圖5-4所示。購(gòu)物車頁(yè)面購(gòu)物車頁(yè)面用于實(shí)現(xiàn)購(gòu)物車管理模塊的功能要求,頁(yè)面采用了一個(gè)datagrid控件來(lái)顯示購(gòu)物車中的商品信息,并將它的“數(shù)量列設(shè)為flowerbox列,允許客戶修改商品的數(shù)量,同時(shí)將“刪除列設(shè)為checkbox列,允許刪除所購(gòu)置的鮮花。會(huì)員可以查看自己購(gòu)物車?yán)锼?gòu)的商品,選擇繼續(xù)購(gòu)置或刪除商品,然后提交訂單、確認(rèn)訂單。5.6管理界面的設(shè)計(jì)商品管理管理員可以查看那商品信息,對(duì)商品添加,商品

5、信息修改及刪除過(guò)期商品。其樣式圖如圖5-5所示。訂單管理訂單管理頁(yè)可以查看已發(fā)貨訂單、未發(fā)貨訂單、未完成訂單及已完成訂單。完成訂單與否即判斷貨物是否發(fā)出,是否收到。發(fā)貨、收貨物與否都由管理員操作,隨時(shí)更新訂單信息。樣式圖如圖5-6所示。會(huì)員管理查看會(huì)員的詳細(xì)信息,如賬號(hào)、密碼、姓名、性別等,還可以刪除會(huì)員信息。公告管理對(duì)公告進(jìn)行添加公告、修改,刪除過(guò)期公告等。并可以決定是否顯示在首頁(yè),假設(shè)是較為重要的公告,那么將其顯示在首頁(yè),以引起顧客的注意。購(gòu)物車管理對(duì)已發(fā)貨或者沒有生成訂單的購(gòu)物車進(jìn)行及時(shí)管理去除,以減少數(shù)據(jù)庫(kù)的信息,使其訪問速度更高。管理員信息修改主要用于管理員修改自己的密碼。 

6、;          圖5-5商品管理界面                                  圖5-6訂單管理界面6 代碼實(shí)現(xiàn)界面設(shè)計(jì)

7、是系統(tǒng)的外在表現(xiàn),而功能那么由后臺(tái)代碼來(lái)實(shí)現(xiàn)。在代碼實(shí)現(xiàn)過(guò)程中,采用類的封裝,來(lái)實(shí)現(xiàn)對(duì)所有數(shù)據(jù)的操作。封裝的過(guò)程中,對(duì)所有的方法以靜態(tài)方式封裝,以保證在后續(xù)的使用中不用實(shí)例化,直接通過(guò)類來(lái)調(diào)用,以提高代碼的使用效率?;赪eb的鮮花銷售系統(tǒng)的核心代碼主要是對(duì)商品的不同性質(zhì)的操作,例如瀏覽商品、選擇商品、購(gòu)置商品及為商品付款等操作。下面針對(duì)一些比擬難以理解的代碼給與適當(dāng)?shù)慕忉專员愀宄牧私庀到y(tǒng)的實(shí)現(xiàn)原理。6.1購(gòu)物車類實(shí)現(xiàn)購(gòu)物車是指當(dāng)用戶在瀏覽商品的過(guò)程中,發(fā)現(xiàn)自己需要的商品后,夠通過(guò)操作將該商品放入其中。購(gòu)物車針對(duì)不同身份的用戶進(jìn)行不同的存儲(chǔ)。當(dāng)用戶尚未登錄時(shí),購(gòu)物車中存儲(chǔ)的是該商品的普通

8、價(jià)格;當(dāng)用戶登錄之后,進(jìn)行添加操作的時(shí)候那么存儲(chǔ)的是會(huì)員價(jià)格的商品。在設(shè)計(jì)的過(guò)程中,采用一張名為ShoppingCart的表來(lái)存儲(chǔ)相關(guān)信息。該表的購(gòu)物車編號(hào)數(shù)據(jù)類型為Varchar,在添加的時(shí)候利用System.GuidClass產(chǎn)生一組隨機(jī)GUID(全局唯一標(biāo)識(shí)符)來(lái)標(biāo)示的。這樣做的好處是能夠確保任何時(shí)候不同的用戶的購(gòu)物車都是唯一標(biāo)示的。然后在將該字符串保存在用戶機(jī)器的cookies中。購(gòu)物車頁(yè)面的后臺(tái)支持類是ShoppingCartAccess.cs,它負(fù)責(zé)對(duì)頁(yè)面的事件進(jìn)行處理。購(gòu)物車分為兩種,一種是已經(jīng)登錄過(guò)的用戶的購(gòu)物車,在購(gòu)物車編號(hào)中可以看到一個(gè)為具體數(shù)字的編號(hào),購(gòu)物車的ID等于用戶

9、ID另外一中是未登錄過(guò)的用戶的購(gòu)物車,在購(gòu)物車編號(hào)中可以看到一個(gè)字符串,該字符串保存在cookies,是利用System.GuidClass產(chǎn)生一個(gè)隨機(jī)GUID(全局唯一標(biāo)識(shí)符),回寫到客戶端指定的cookies中,同時(shí)返回TempCartId作為購(gòu)物車的編號(hào)。購(gòu)物車頁(yè)面的后臺(tái)支持類是ShoppingCartAccess.cs,它負(fù)責(zé)對(duì)頁(yè)面的事件進(jìn)行處理。首先,定義shopoingcart類,繼承了System.Web.UI.Page系統(tǒng)類:public partial class ShoppingCart : System.Web.UI.Page在頁(yè)面的Page_Load()事件中

10、,對(duì)datalist控件的數(shù)據(jù)綁定方法進(jìn)行調(diào)用。代碼如下:    protected void Page_Load(object sender,EventArgs e)購(gòu)物車編號(hào)生成的源碼如下:private static string CartId   get                 HttpContext context = HttpContext.Current;

11、           string ShoppingCartId = ""           object cartIdSession=context.Session"FlowerShop_CartID"           if

12、0;(cartIdSession != null)                ShoppingCartId = cartIdSession.ToString();           if (ShoppingCartId != "")   

13、60;            return ShoppingCartId;           else                        

14、;    if (context.Request.Cookies"FlowerShop_CartID" != null)                                  &

15、#160; ShoppingCartId = context.Request.Cookies"FlowerShop_CartID".Value;                    context.Session"FlowerShop_CartID" = ShoppingCartId;     &

16、#160;              return ShoppingCartId;                                else

17、60;                                ShoppingCartId = Guid.NewGuid().ToString();          &#

18、160;      HttpCookie  cookie = new HttpCookie("FlowerShop_CartID",ShoppingCartId.ToString();                 int howManyDays = FlowerShopKeyField.CartPersistDays; &#

19、160;               DateTime currentDate = DateTime.Now;                 TimeSpan timeSpan = new TimeSpan(howManyDays,0,0,0);  

20、0;              DateTime expirationDate = currentDate.Add(timeSpan);                 cookie.Expires = expirationDate;    

21、0;            context.Response.Cookies.Add(cookie);                 context.Session"FlowerShop_CartID" = ShoppingCartId;     

22、            return ShoppingCartId.ToString();                                 &#

23、160;6.2訂單列表頁(yè)面實(shí)現(xiàn)訂單是在用戶選擇了需要的商品之后,在購(gòu)物車頁(yè)面通過(guò)生成訂單操作進(jìn)入訂單界面。當(dāng)用戶填寫相關(guān)信息之后,點(diǎn)擊提交便生成了一份訂單。訂單頁(yè)面的后臺(tái)支持類是orderlist.aspx.cs,它負(fù)責(zé)對(duì)頁(yè)面的事件進(jìn)行處理。在頁(yè)面的的Page_Load()事件中,首先判斷是否是已登陸的會(huì)員,如果已登陸那么獲取已經(jīng)登錄的客戶的UserID,然后利用這個(gè)UserID的值調(diào)用類中的方法,返回指定的某一個(gè)訂單的詳細(xì)信息,并在控件上顯示。訂單列表頁(yè)面的后臺(tái)支持類是orderlist.aspx.cs,它負(fù)責(zé)對(duì)頁(yè)面的事件進(jìn)行處理。首先定義orderlist類,繼承了System.Web.U

24、I.Page系統(tǒng)類。public partial class Submitmanag : System.Web.UI.Page在頁(yè)面的的page_load()事件中,首先利用ASP.Net內(nèi)建的User對(duì)象的屬性,獲取已經(jīng)登錄的客戶的UserID,然后利用這個(gè)UserID的值調(diào)用類中的方法,返回指定的某一個(gè)訂單的詳細(xì)信息,并在控件上顯示。代碼如下:protected void Page_Load(object sender, EventArgs e)           &#

25、160; if (Session"Admin" = null)            CatalogAccess.WebMessageBox("您尚未登陸!", "Admin_login.aspx");        if (Request.QueryString"submitId" !=

26、 null)                    string submitId = Request.QueryString"submitId".ToString();            Submit submit = ShoppingCartAcces

27、s.GetSubmit(submitId);            if (submit.Email != "")                           &

28、#160;   Payee.Text = submit.Payee;                Addr.Text = submit.Addr;                Email.Text = submit.Email; 

29、60;              TelDh.Text = submit.TelDh;                TelSj.Text = submit.TelSj;           

30、;     PostalCode.Text = submit.PostalCode;                Remarks.Text = submit.Remarks;                decimal totalAmo

31、unt;                SubmitProductslist.DataSource = ShoppingCartAccess.GetProductsInSubmit(submitId, out totalAmount);                SubmitProdu

32、ctslist.DataBind();                TotalAmount.Text = string.Format("0:c", totalAmount);                    &#

33、160;   else                            CatalogAccess.WebMessageBox("訂單不存在,請(qǐng)重新選定!", "Default.aspx");     &

34、#160;                  6.3驗(yàn)證碼的實(shí)現(xiàn)驗(yàn)證碼負(fù)責(zé)對(duì)頁(yè)面的驗(yàn)證輸入局部進(jìn)行處理,只有當(dāng)用戶輸入與系統(tǒng)顯示的驗(yàn)證圖片上的字符后,才能正確登錄到系統(tǒng)相關(guān)頁(yè)面,如會(huì)員登錄和管理員登錄。它繼承了System.Web.UI.Page系統(tǒng)類。public partial class CheckCode : System.Web.UI.Page在頁(yè)面的事件中,調(diào)用了GenerateCheckCod

35、e()方法     protected void Page_Load(object sender, EventArgs e)                 CreateCheckCodeImage(GenerateCheckCode();        在驗(yàn)證碼的獲取中,其主要代碼如下:private string

36、GenerateCheckCode()          int number;         char code;         string strCheckCode = String.Empty;         System.Random rand

37、om = new Random();         for (int iCount = 0; iCount < 5; iCount+)                            number

38、 = random.Next();                if (number % 2 = 0)                         

39、60;          code = (char)('0' + (char)(number % 10);                            &

40、#160;   else                                    code = (char)('A' + (char)(number 

41、% 26);                                strCheckCode += code.ToString();           

42、0;            /Response.Cookies.Add(new HttpCookie("checkcode",strCheckCode);             Session"CheckCode" = strCheckCode;     &

43、#160;      return strCheckCode;                / 創(chuàng)立驗(yàn)證碼圖片,并將其寫入內(nèi)存流中          private void CreateCheckCodeImage(string CheckCode)   

44、                 if (CheckCode = null | CheckCode.Trim() = String.Empty)                     &#

45、160;      return;                        Bitmap img = new Bitmap(int)Math.Ceiling(CheckCode.Length * 10.5), 22);      &#

46、160;     Graphics g = Graphics.FromImage(img);            try                          

47、60; /生成隨機(jī)生成器                Random random = new Random();                /清空?qǐng)D片背景色         

48、       g.Clear(Color.White);                /畫圖片的背景噪音線                for (int iCount = 0; iCount &l

49、t; 25; iCount+)                                    int x1 = random.Next(img.Width);      &

50、#160;             int x2 = random.Next(img.Width);                    int y1 = random.Next(img.Height);     &#

51、160;              int y2 = random.Next(img.Height);                    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);  &#

52、160;                             Font font = new Font("Arial", 11, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic);&#

53、160;               System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Blue, Color.DarkRed, 1.2f, true);   

54、60;            g.DrawString(CheckCode, font, brush, 2, 2);                /畫圖片的前景噪音點(diǎn)             

55、60;  for (int i = 0; i < 100; i+)                                    int x = random.Next(img.Widt

56、h);                    int y = random.Next(img.Height);                    img.SetPixel(x, y, Color.FromA

57、rgb(random.Next();                                /畫圖片的邊框線             

58、0;  g.DrawRectangle(new Pen(Color.Silver), 0, 0, img.Width - 1, img.Height - 1);                System.IO.MemoryStream ms = new System.IO.MemoryStream();        

59、0;       img.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);                Response.ClearContent();                Re

60、sponse.ContentType = "image/Gif"                Response.BinaryWrite(ms.ToArray();                    

61、60;   catch (Exception exp)                            throw exp;              &

62、#160;         finally                            g.Dispose();          

63、0;     img.Dispose();                         7 軟件測(cè)試軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。任何軟件都有缺陷,這些缺陷,可能是以下幾個(gè)方面造成的: 1交流不夠、交流上有誤解或者根本不進(jìn)行交流 2軟件復(fù)雜性   &

溫馨提示

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

評(píng)論

0/150

提交評(píng)論