APP下载

基于Hashtable简易购物车的实现

2016-08-11

淮北职业技术学院学报 2016年4期
关键词:集合

冯 菁

(淮北职业技术学院 计算机科学技术系,安徽 淮北 235000)



基于Hashtable简易购物车的实现

冯菁

(淮北职业技术学院 计算机科学技术系,安徽 淮北235000)

摘要:.NET FrameWork 提供了众多类库,其中Hashtable集合维护很多对Key-Value键值对,对于集合中任一元素的查找、定位,都是基于找到对应的Key和Value值,应用在处理动态添加、删除数据时很方便。以电子商务购物车为例,使用ASP.NET技术、语言VB.NET和Hashtable类的方法、属性、遍历等来实现一简易购物车。

关键词:HashTable;ASP.NET;集合

购物车是电子商务网站的重要功能之一,功能大致有将商品添加进购物车,显示购物车,删除修改所选商品,修改数量,计算总价等.这些功能操作可以采用数据读取、修改的案例。本例选择.NET提供的解决方案,ASP.NET提供了WEB编程新技术,并支持多种语言,配套有功能强大的集成开发环境Visual Studio.Net,本文案例用的是VB.NET语言。开发一个成功的购物车系统,对于今后开发同类项目非常有益。

一、HashTable集合类型

ASP.NET是当前流行的WEB程序开发技术之一,是建立在通用语言上的程序构架,适用于多种开发语言,能被用于建立强大的WEB应用程序.编程语言可支持Visual C#,VC++,Visual Basic.Net,Jscript.Net。

集合是把一群可变长的对象类型的元素组合在一起,它们的数据紧密相关,能够安全有效地处理这些紧密相关的数据。这些类在System.Collections命名空间。[1]

.NET work提供一种Hashtable集合类型。Hashtable也是System.Collections命名空间提供的一个容器。每个元素通过一个键(Key)和一个值(Value)来组织的。其中key区分大小写,可用来快速查找;Value用于存储对应于Key的值。Hashtable中Key/Value键值对均为object类型,所以Hashtable可以支持任何类型的Key/Value键值对。[2]

定义哈希表Dim Hash as Hashtable

Hashtable的主要属性有:

1.Hash.Count:获取Hashtable中的键/值对的数目。

2.Hash.Item:获取或设置与指定的键相关联的值。

3.Hash.Keys:获取Hashtable中的键。

4.Hash.Values:获取Hashtable中的值。

Hashtable的主要方法有:

1.Add(Object key,Object value):将指定键/值添加到Hashtable中。

2.Clear():从Hashtable中移除所有元素。

3.Contains(Object key):确定Hashtable是否包含特定键。

4.Remove(Object key):从Hashtable中移除带有指定键的元素。[1]

Hashtable集合类似于数组,又不像数组可以用索引访问,即不可以用下标访问某一元素。Hashtable通过关键字来访问元素,来删除元素.它的遍历使用foreach语句。

使用hashtable类必须引入该命名空间,C#语言:using system.collections;

VB.NET语言:Imports System.Collections

二、购物车功能演示

在开发Web应用程序中, B2C电子商务网上购物车这一功能很普及,因此购物车程序的编写就显得非常重要。购物车的技术核心功能有添加商品、修改商品、删除商品、检查购物车、确认定单等。本文只演示查看购物车商品,计算总价代码。这是一个最简易的购物车,完成的功能也简单,大家可在此基础上根据需要继续扩充其它功能。

例如某企业网站中的在线定购模块,一个B/S结构的B-C电子商城系统购物车子系统的用例图如图1所示。

图1 购物车子系统的用例图

每个子用例对应着添加商品,删除商品,确认下单等。

三、购物车HashTable代码编写

购物车的版本,一是目前流行的个性化服务界面(如淘宝购物),支持匿名用户;二是使用数据库,但是程序编写量大,难支持匿名用户;三是登录结合ASP内置对象sessin使用。我们只考虑最简单实现购物功能。

在购物的时候会多次对各类商品进行挑选,增删改的方式频繁。每次购物都要进行数据库操作,会增加服务器的负担,如果将选择的物品信息存在客户端,在最后下单的时候统一存储数据,建议使用HashTable来实现物品的增删操作,利用Session或者Cookie保存已选的物品,这样会减少与服务器的通信,节省数据库的读写操作,提高了效率。

以下是部分代码,其中数据库连接对象Conn、数据库中表的命名,字段命名等命名都是沿用多数人的习惯命名的。如shop指数据库名称,shopprice指商品单价, shopnum指商品数量等。

1.使用hashtable类引入命名空间。

Imports System.Collections

2.连接数据库shop,使用数据库中的表。

Dim Provider=”Provider=Microsoft.jet.OLEDB.4.0”

Dim Database=”Data Source=” & Server.MapPath(“shop.mdb”)

3.查看购物车商品,初始化购物车。

If Hash.Count=0 Then Msg.Text=”现在购物车是空的!”

……

Dim ArrKey(Hash.Count-1) As String

DimArrVal(Hash.Count-1) As Integer

Dim Products As String

Hash.Keys.CopyTo(ArrKey,0)

Hash.Values.CopyTo(ArrVal,0)

Products=”(‘” &Join(ArrKey,”’,’”)&”’)”

……

Conn=New OleDbConnection(Provider & “;”&Database)

……

4.读出哈希表数据,赋值DataSet实例,并添加新数据列。

Dim X As String

For Each X in Hash.Keys

Table1.Rows.Find(X).Item(“shopnum”)=Hash.Item(X)

Next

Table1.Columns.Add(“allprice”,GetType(Long),”shopprice*shopnum”))

……

遍历一个哈希表Hashtable,只能用for each语句进行遍历。统计商品数目并计算总价。Hashtable中的元素是一个键值对的集合,不能够使用索引访问。

四、总结

ASP.NET是Microsoft公司推出用于编写动态网页的强大新技术,支持以可视化的方式建立企业级网站,可生成安全稳定的应用程序。.NET框架中提供了功能多而强大的类库进行编程,如本文简述的Hashtable类,并可使用VB.NET、C#、Jscript.NET等编程语言来开发。本文中代码完全可以用C#或其它编程语言进行改写。

电子商务网站普及到老百姓的日常生活、网上商店、书店、订餐、售票,等等,这些都需要WEB站点开发,并设有网上购物这一功能模块,所以购物车程序的编写就显得非常重要。可在此购物车基础上开发更安全,质量更高,更有效,功能更完善的购物系统。

参考文献:

[1]杨树林,胡洁萍.ASP.NET程序设计案例教程[M].北京:人民邮电出版社,2012:62-64.

[2]朱印宏.Asp.NET2.0基础与实例教程:基于VB.C#[M].北京:中国电力出版社,2007:421-422.

[3]王少锋.面向对象技术UML教程[M].北京:清华大学出版社,2008.

[4]王有礼.ASP.NET2.0完全开发指南[M].北京:北京科海电子出版社,2008.

责任编辑:净草

收稿日期:2016-05-26

基金项目:本文系安徽省自然科学基金项目“基于数据挖掘技术的商砼企业ERP的开发与成本控制应用研究”(编号:KJ2013Z289) 阶段性研究成果。

作者简介:冯菁(1974-),女,上海人,高级工程师,硕士,研究方向为数据挖掘。

中图分类号:TP311

文献标识码:A

文章编号:1671-8275(2016)04-0129-02

猜你喜欢

集合
论述高中数学中集合的类型及基本运算
一道数学填空题引发对细节的思考
解读《集合》