用ASP设计购物推车程序

程序|设计

  什么是购物推车?
   你一定去过超级市场吧。在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账。
    那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车"。电子推车是超级市场推车的电子化。在网上商店里,这种电子推车又称为"购物推车",英文是Shopping Cart。 
  购物推车的设计目标
   从程序员的观点来看,购物推车是维护购物者商品选购、允许察看、允许修改的一个对象。购物推车本身是一个非常简单的程序,但开发者要考虑它将连接到商品目录子系统、订单子系统、客户账号子系统、站点管理子系统等等,形成功能完整的网上商店。
  
  下面是购物推车的设计目标:
  1、 持续性:购物推车应该从它的前一次会话中记住其内容。
  2、 购物推车和客户相关,而不是和客户的电脑相关。客户可以从另外的电脑或浏览器来访问购物推车。
  3、 当新的商品被加入推车或者从推车去掉时,推车的内容可以被显示给用户。
  4、 推车可以容纳很多甚至无限的商品。
  系统设计/流程设计
    在编写我们的购物推车之前,我们看看它的系统架构和流程。请看下图:
  
   如果客户从商品目录中选择了一件商品,这时我们传递客户的请求到proxy.asp,同时传递的是动作变量"增加商品"。Proxy.asp读取这个变量,并决定执行购物推车的哪个动作。这些动作包括:增加商品、更新商品数量、移除商品或者察看购物推车。
    有些动作被作为内部调用。如创建推车之前,我们需要检查推车是否已经存在(CheckCart)。在增加、删除或者更新商品及其数量时,我们要确认此商品是否已经存在于我们的购物推车之中(CheckItem)。下面我们将为购物推车设计8个方法,分别是:
  ViewItem 察看推车
  CheckCart 检查推车
  CreateCart 创建推车
  AddItem(ID, Qty), 增加商品
  RemoveItem(ID) 删除商品
  UpdateItem(ID, Qty), 更新数量
  RemoveAll 全部清空
  CheckItem(ID) 商品检查
  
  购物推车的设计
   购物推车需要三个要素:一个VBScript 5的类class CartKit,一个多维数组mudCart,一个session变量Session("Cart")。
   这个VBScript 类,我们称为CartKit,包含了8个方法,如上表所示。在本文我们只用了ID和Qty,分别表示商品编号和数量。
    这样我们就可以用一个二维数组来表达这个推车,象下面这样:
  商品编号 商品数量
  ID-1 23
  ID-3 10
  ID-23 6
  ID-2 1
  然后我们把这个二维数组保存到session变量中就可以了。
  购物推车类CartKit的设计
  请下载:CartKit.asp
  CreateCart设计:
  请看程序代码:
  Class CartKit REM 开始类CartKit的定义
  Sub CreateCart()
   IF IsArray(Session("Cart")) = false THEN
    Dim mudCart(19,1)
    Session("Cart") = mudCart
   END IF
  End Sub
  其中:Session("Cart")保存的就是推车的内容。如果推车不存在,我们就定义一个二维数组mudCart来表达推车,并将它保存到session("Cart")中。
  CheckCart设计:
  本函数判断Cart是否已经创建。比较简单。
  Function CheckCart()
  IF IsArray(Session("Cart")) THEN
    CheckCart=True
   ELSE
    CheckCart=False
   END IF
  End Function
  CheckItem设计:
  请看代码:
  Function CheckItem(ID)
  IF CheckCart=True THEN
    varMudCart = Session("Cart")
    FOR i = LBound(varMudCart)TO UBound(varMudCart)
   IF varMudCart(i,0) = ID THEN
    CheckItem=TRUE
   Exit Function
   ELSEIF varMudCart(i,0) <> ID THEN
    CheckItem=FALSE
   END IF
    NEXT
   END IF
  End Function
  首先判断推车是否存在。然后将商品的编号ID和购物推车中的商品编号逐一比较。如果有相等的,返回真。否则为假。
  AddItem(ID,Qty)设计:
  请参考本文的附件CartKit.asp,这里介绍的函数我们把它们封装到一个名为CartKit的class中。下面的代码段首先创建了一个CartKit对象,然后检查推车是否已经存在。如果不存在,就创建推车并新增商品;否则,检查商品编号是否已经存在于Cart中。如果是,就更新数量;否则,新增商品。
  Function AddItem(ID, Qty)
  Set CartObj = New CartKit
  varCartStatus = CartObj.CheckCart
   IF varCartStatus=false THEN
    CartObj.CreateCart
    mudCart=Session("Cart")
    mudCart(0,0)=ID
    mudCart(0,1)=Qty
    Session("Cart")=mudCart
     Exit Function
   ELSEIF varCartStatus=true THEN
   IF CartObj.CheckItem(ID) = true THEN
    CartObj.UpdateItem ID,Qty
   ELSEIF cartObj.CheckItem(ID) = false THEN
    mudCart = Session("Cart")
   FOR i = LBound(mudCart) TO UBound(mudCart)
   IF mudCart(i,0) = "" THEN
    mudCart(i,0) = ID
    mudCart(i,1) = Qty
    Session("Cart") = mudCart
   Exit Function
   END IF
   NEXT
   END IF
   END IF
  End Function
  UpdateItem设计:
  Function UpdateItem(ID, Qty)
  mudCart = Session("Cart")
  
   FOR i = LBound(mudCart) TO UBound(mudCart)
    IF mudCart(i,0) = ID THEN
     mudCart(i,1) = Qty
     Session("cart")=mudCart
     Exit Function
    END IF
   NEXT
  End Function
  ViewItem设计:
  Function ViewItem()
  mudCart=Session("Cart")
  IF isArray(mudCart) THEN
  %>
  <table>
  <tr>
  <td>Item Name</td>
  <td>Item Quantity</td>
  <td></td>
  </tr>
  <%
  FOR i = LBound(mudCart) TO UBound(mudCart)
  IF mudCart(i,0) <> "" THEN
  %>
  <tr>
  <td><%=%></td>
  <%
  Response.Write "Item ID: " & mudCart(i,0) & "<--"
  Response.Write "<BR>"
  Response.Write "Item Qty: " & mudCart(i,1) & "<--"
  Response.Write "<BR>"
  END IF
  NEXT
  ELSEIF isArray(mudCart) = False THEN
  Response.Write "No item in your cart!"
  Response.Write "<BR>"
  Response.Write "Y don’t you do shop!"
  END IF
  End Function
  RemoveItem(ID)设计:
  Function RemoveItem(ID)
  mudCart=Session("Cart")
  ’Find the Postion / Index of given ID.
  For i = LBound(mudCart) TO Ubound(mudCart)
   IF mudCart(i,0) = ID THEN
    Pos=i
   Exit For
  END IF
  Next
  ’Delete Process...
   FOR i = Pos TO UBound(mudCart) - 1
    IF Not mudCart(i,0) = "" THEN
    mudCart(i,0) = mudCart(i+1,0)
   END IF
   Next
   End Function
  End Class REM 结束类CartKit的定义

时间: 2024-11-01 11:52:23

用ASP设计购物推车程序的相关文章

开发分析实例:用ASP设计购物推车

设计 什么是购物推车? 你一定去过超级市场吧.在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账. 那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车".电子推车是超级市场推车的电子化.在网上商店里,这种电子推车又称为"购物推车",英文是Shopping Cart. 购物推车的设计目标 从程序员的观点来看,购物推车是维护购物者商品选购.允许察看.允许修改的一个对象.购物推车本身是一个非常简

实例代码解析:用ASP设计购物推车

设计 什么是购物推车? 你一定去过超级市场吧.在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账. 那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车".电子推车是超级市场推车的电子化.在网上商店里,这种电子推车又称为"购物推车",英文是Shopping Cart. 购物推车的设计目标 从程序员的观点来看,购物推车是维护购物者商品选购.允许察看.允许修改的一个对象.购物推车本身是一个非常简

用ASP设计购物推车

设计     你一定去过超级市场吧.在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账. 那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车".电子推车是超级市场推车的电子化.在网上商店里,这种电子推车又称为"购物推车",英文是Shopping Cart.购物推车的设计目标 从程序员的观点来看,购物推车是维护购物者商品选购.允许察看.允许修改的一个对象.购物推车本身是一个非常简单的程序,但

用ASP设计购物推车_ASP基础

什么是购物推车? 你一定去过超级市场吧.在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账. 那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车".电子推车是超级市场推车的电子化.在网上商店里,这种电子推车又称为"购物推车",英文是shopping cart. 购物推车的设计目标 从程序员的观点来看,购物推车是维护购物者商品选购.允许察看.允许修改的一个对象.购物推车本身是一个非常简单的程

[ASP.NET开发系列] 购物推车程序设计——购物车类

asp.net|程序|购物车|设计 Web应用程序开发中,大多数的电子商务网站都有网上购物这一功能模块,所以购物车程序的编写就显得非常重要. 购物车的作用不外就是实现这些功能:添加物件.修改物件.删除物件.检查推车.查看推车等.在本文就讲解"添加物件"."删除物件"和"查看推车"这三个功能.当然,这里只不过是一个简单的购物车类,完成的功能也不多,还不够完善,需要大家在这个基础做扩展使它的功能更加完善. C#是一种完全的OOP(Object Ori

ASP.NET开发购物推车之购物车类

asp.net|购物车 Web应用程序开发中,大多数的电子商务网站都有网上购物这一功能模块,所以购物车程序的编写就显得非常重要. 购物车的作用不外就是实现这些功能:添加物件.修改物件.删除物件.检查推车.查看推车等.在本文就讲解"添加物件"."删除物件"和"查看推车"这三个功能.当然,这里只不过是一个简单的购物车类,完成的功能也不多,还不够完善,需要大家在这个基础做扩展使它的功能更加完善. C#是一种完全的OOP(Object Oriented

设计一个小程序,将已有的asp程序转换为jsp程序

问题描述 设计一个小程序,将已有的asp程序转换为jsp程序 设计一个小程序,将已有的asp程序转换为jsp程序.运用java与web应用 解决方案 说得轻巧,"设计一个小程序",还"运用java与web应用".这是两种不同的技术,不但语言不同,而且类库也不同,就算用到"编译原理"也无济于事. 解决方案二: 这个跨度可有点大了. 解决方案三: 可以参考: <设计一个小程序,将windows转换为国有操作系统> 解决方案四: 这个比较麻

IIS6下部署ASP.NET MVC应用程序

通常在IIS6下部署ASP.NET MVC应用程序的时候,都是直接设置把所有请求都交由ASP.NET的ISAPI处理.MVC是基于ASP.NET的,框架默认对于任何请求都会优先检查物理路径是否存在物理文件,如果存在的话就不通过MVC的路由机制,否则才走路由. 因此,如果在不考虑控制静态资源权限的情况下,可以设置静态资源不通过ASP.NET的ISAPI,而直接由IIS处理,通过这种方式提升一些性能.本文围绕这个主题,详解部署过程. 0.在设计MVC网站的时候,把静态资源统一放在一个文件夹下,建议目

使用Project Velocity增强ASP.NET MVC应用程序

本动手实验基于 PlanMyNight 演示,使用了以下技术:MVC 2 Framework.Visual Studio 2010..Net Framework 4.0.Project Velocity 和 ASP.NET AJAX. 在整个实验中,您将了解如何使用 Project Velocity 增强 ASP.NET MVC 应用程序,如何使用 MVC Areas 设计其结构. 本动手实验假设开发人员具有 HTML.JavaScript.ASP.NET MVC Framework 和 Pro