基于Web的鲜花销售系统的设计和实现 -_第1页
基于Web的鲜花销售系统的设计和实现 -_第2页
基于Web的鲜花销售系统的设计和实现 -_第3页
基于Web的鲜花销售系统的设计和实现 -_第4页
基于Web的鲜花销售系统的设计和实现 -_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【标题】基于Web的鲜花销售系统的设计和实现 【作者】朱婧红 【关键词】鲜花销售  销售系统  ASP.NET  【指导老师】程冰 【专业】计算机科学与技术 【正文】界面的设计用于顾客浏览各种鲜花,如鲜花的价格、花语等以达成购置意向,当鼠标指向各种鲜花时,会显示鲜花的花语,以便购置者根据自己的需要选择不同的花束。鲜花的价格分为非会员价格和会员价格,以不同身份登录系统时,所要支付的货款也时不同的。然后放入购物车,并填写订单,提交订单及确认订单等操作。收货人信息界面中的每一个文本框的输入都有验证,内容不能为空,并校对输入的内容是否正确,如果没有正确的输入,系

2、统将会提示操作失败,以便重新添加正确的内容,然后确认订单并提交。其样式如5-2图。5.3蛋糕页面的设计同鲜花页面功能类似,顾客浏览各种蛋糕,以确定适应购置的需要。然后放入购物车,并填写订单,提交订单及确认订单等操作。当鼠标指向各种蛋糕时,会显示蛋糕的含义,以便购置者根据自己的需要选择不同的货物。蛋糕的价格也分为非会员价格和会员价格,当以不同身份登录系统时,所要支付的货款也是不同的。收货人信息界面中的每一个文本框的输入都有验证,内容不能为空,并校对输入的内容是否正确,如果没有正确的输入,系统将会提示操作失败,以便重新添加正确的内容,然后确认订单并提交。5.4水果页面的设计如同前两个页面,顾客浏览

3、各样蛋糕,然后确定购置。填写订单、确认订单及提交订单。其样式结构如图5-3所示。        图5-3水果界面                                  

4、        图5-4会员界面5.5会员页面的设计我的账户页面在这个页面里会员可以修改自己的密码。其样式结构如图5-4所示。购物车页面购物车页面用于实现购物车管理模块的功能要求,页面采用了一个datagrid控件来显示购物车中的商品信息,并将它的“数量列设为flowerbox列,允许客户修改商品的数量,同时将“删除列设为checkbox列,允许删除所购置的鲜花。会员可以查看自己购物车里所购的商品,选择继续购置或删除商品,然后提交订单、确认订单。5.6管理界面的设计商品管理管理员可以查看那商品信息,对商品添加,商品

5、信息修改及删除过期商品。其样式图如图5-5所示。订单管理订单管理页可以查看已发货订单、未发货订单、未完成订单及已完成订单。完成订单与否即判断货物是否发出,是否收到。发货、收货物与否都由管理员操作,随时更新订单信息。样式图如图5-6所示。会员管理查看会员的详细信息,如账号、密码、姓名、性别等,还可以删除会员信息。公告管理对公告进行添加公告、修改,删除过期公告等。并可以决定是否显示在首页,假设是较为重要的公告,那么将其显示在首页,以引起顾客的注意。购物车管理对已发货或者没有生成订单的购物车进行及时管理去除,以减少数据库的信息,使其访问速度更高。管理员信息修改主要用于管理员修改自己的密码。 

6、;          图5-5商品管理界面                                  图5-6订单管理界面6 代码实现界面设计

7、是系统的外在表现,而功能那么由后台代码来实现。在代码实现过程中,采用类的封装,来实现对所有数据的操作。封装的过程中,对所有的方法以静态方式封装,以保证在后续的使用中不用实例化,直接通过类来调用,以提高代码的使用效率。基于Web的鲜花销售系统的核心代码主要是对商品的不同性质的操作,例如浏览商品、选择商品、购置商品及为商品付款等操作。下面针对一些比拟难以理解的代码给与适当的解释,以便更清楚的了解系统的实现原理。6.1购物车类实现购物车是指当用户在浏览商品的过程中,发现自己需要的商品后,够通过操作将该商品放入其中。购物车针对不同身份的用户进行不同的存储。当用户尚未登录时,购物车中存储的是该商品的普通

8、价格;当用户登录之后,进行添加操作的时候那么存储的是会员价格的商品。在设计的过程中,采用一张名为ShoppingCart的表来存储相关信息。该表的购物车编号数据类型为Varchar,在添加的时候利用System.GuidClass产生一组随机GUID(全局唯一标识符)来标示的。这样做的好处是能够确保任何时候不同的用户的购物车都是唯一标示的。然后在将该字符串保存在用户机器的cookies中。购物车页面的后台支持类是ShoppingCartAccess.cs,它负责对页面的事件进行处理。购物车分为两种,一种是已经登录过的用户的购物车,在购物车编号中可以看到一个为具体数字的编号,购物车的ID等于用户

9、ID另外一中是未登录过的用户的购物车,在购物车编号中可以看到一个字符串,该字符串保存在cookies,是利用System.GuidClass产生一个随机GUID(全局唯一标识符),回写到客户端指定的cookies中,同时返回TempCartId作为购物车的编号。购物车页面的后台支持类是ShoppingCartAccess.cs,它负责对页面的事件进行处理。首先,定义shopoingcart类,继承了System.Web.UI.Page系统类:public partial class ShoppingCart : System.Web.UI.Page在页面的Page_Load()事件中

10、,对datalist控件的数据绑定方法进行调用。代码如下:    protected void Page_Load(object sender,EventArgs e)购物车编号生成的源码如下: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订单列表页面实现订单是在用户选择了需要的商品之后,在购物车页面通过生成订单操作进入订单界面。当用户填写相关信息之后,点击提交便生成了一份订单。订单页面的后台支持类是orderlist.aspx.cs,它负责对页面的事件进行处理。在页面的的Page_Load()事件中,首先判断是否是已登陆的会员,如果已登陆那么获取已经登录的客户的UserID,然后利用这个UserID的值调用类中的方法,返回指定的某一个订单的详细信息,并在控件上显示。订单列表页面的后台支持类是orderlist.aspx.cs,它负责对页面的事件进行处理。首先定义orderlist类,继承了System.Web.U

24、I.Page系统类。public partial class Submitmanag : System.Web.UI.Page在页面的的page_load()事件中,首先利用ASP.Net内建的User对象的属性,获取已经登录的客户的UserID,然后利用这个UserID的值调用类中的方法,返回指定的某一个订单的详细信息,并在控件上显示。代码如下: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("订单不存在,请重新选定!", "Default.aspx");     &

34、#160;                  6.3验证码的实现验证码负责对页面的验证输入局部进行处理,只有当用户输入与系统显示的验证图片上的字符后,才能正确登录到系统相关页面,如会员登录和管理员登录。它继承了System.Web.UI.Page系统类。public partial class CheckCode : System.Web.UI.Page在页面的事件中,调用了GenerateCheckCod

35、e()方法     protected void Page_Load(object sender, EventArgs e)                 CreateCheckCodeImage(GenerateCheckCode();        在验证码的获取中,其主要代码如下: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;                / 创立验证码图片,并将其写入内存流中          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; /生成随机生成器                Random random = new Random();                /清空图片背景色         

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);                /画图片的前景噪音点             

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 软件测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。任何软件都有缺陷,这些缺陷,可能是以下几个方面造成的: 1交流不够、交流上有误解或者根本不进行交流 2软件复杂性   &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论