
第9章网上购书系统设计与实现 9.1网上购书系统整体规划 网上期书系统分为图书分类、期书、将实的书皮数量放入期物、结账等模块。本不 丰要介购书过程的实, 放入物 显示物 图-1网上购书系线功能图 9.2网上购书系统的数据库设计 表9-1 Category1的结构
1 本章主要介绍网上购书系统的整体规划和实现,包括系统数据库的设计、程序流程、购 书模块的页面实现方法。另外对网上购书系统的几个技术关键点进行了介绍。 9.1 网上购书系统整体规划 网上购书系统是 INTERNET 上应用比较广泛的系统之一,以其快捷、方便等诸多优点受 到人们青睐。本章将介绍一个网上购书系统的具体设计和实现过程。 网上购书系统分为图书分类、购书、将购买的书及数量放入购物篮、结账等模块。本章 主要介绍购书过程的实现。 图 9-1 网上购书系统功能图 9.2 网上购书系统的数据库设计 根据网上购书系统功能的分析,建立两个数据库 gouwu.mdb 和 book.mdb,在 gouwu.mdb 中我们建立 3 个数据表,字段及属性分别如下表所示: 表 9-1 Category1 的结构

2:表 回☒ 表9-2 Category2的结料 有《无数 A 表9-3 jimhuika的结构
2 表 9-2 Category2 的结构 表 9-3 jinhuika 的结构

在ak.db巾,建立一个数据表bo0k,字段及属性如下表所示: a:表 托挥 小 1小 本 保性 城直风 相球 箱人方理式 翰人e 后置 家山应 看物性纸用 窗桂十 滑郑暴女可阳引财个半物(模宿今6】:复刀等可 是线于位 夏有其微8有内 光计空请津 社:名赠 以t以品,列确日指,1 表9-4b00k的结构 表9-1和92是图书一级分类和二级分类信息表,表9-3是用户用来结帐的银行卡信息 表,表9-4是图书的具体信息,用字段categid和categid2与表91、9-2进行关联,这样 在修政图书分类信息时,就不用修政表9-3了。 9.3程序流程图 购书模块的程序流程图如图91所示,主要包括显示图书信息,用户城写图书购买信息, 提交购书信息,结帐操作等环节。 花分米品示图书们 府应购买图书 平新图书购买领 继续购买 no 结能 ☒91购书模块的程序流程图
3 在 book.mdb 中,建立一个数据表 book, 字段及属性如下表所示: 表 9-4 book 的结构 表 9-1 和 9-2 是图书一级分类和二级分类信息表,表 9-3 是用户用来结帐的银行卡信息 表,表 9-4 是图书的具体信息,用字段 categid 和 categid2 与表 9-1、9-2 进行关联,这样 在修改图书分类信息时,就不用修改表 9-3 了。 9.3 程序流程图 购书模块的程序流程图如图 9-1 所示,主要包括显示图书信息,用户填写图书购买信息, 提交购书信息,结帐操作等环节。 yes no 图 9-1 购书模块的程序流程图 按分类显示图书信 息 确定购买图书 更新图书购买数 量 继续购买 结帐

9.4功能的实现 9.41网页的组成 网上购书系统页面设计采用框架结构,左边是图书分类区,右边是针对左边不问的操作 显示的页面,底部是两个按纽,一个是“购物篮”按钮,一个是“结账”按纽。印显示 图书分类,点击不同的分类名,将打开相应图书的详细信息。执行vw文件,显示图书 分类情况,点击分类名后,共行kbuy.as即,显示分类图书的详细信息,点击图书名,执行 adN.ap,然后执行addtoboxas即:将所买图节放入购物笸:bookbuffer.sp文件显示购物篮的 买书情况,对物篮可以别除所选图书,也可以修政购买图书的数量,分划执行dee,甲和 update..asp。 网页程序调用关系如图9-2所示。 剧除所选图书 Delete.asp 欢迎项面 Righthtm 修改即书数量 购物篮 Update.asp 购书首页 购物管,结紫图标 Bookbuffer.asp (index_aspl Botlom.htm 结账 Jiezhang.asp 精花感线见 用南实基构 饭闲样分药 一绿周书分划 分类酒评翔何息 Left.asp vicw.asp bookbuy.asp 用书年阳信么 源到肉物蓝 ndd.asp od dobos.asp 图9-2网页组成 9.4.2几个技术点 1,图书分类信息的显示 页面左侧是一个图书分类显示,点击一级分类名后,可以打开二级分类名。如图93所 示。当点击一级分类名时,展开二级分类名,如点击“军事”一级分类名时,会展开“军事 相关的二级分类名。这个图书分类列表是从数常库里调用的动态数据,使用了Ck对象。 Ckes对象是页面之问传运参数的好方法. 读取图书一级分类名,然后马入Cookies对象中 rsData open "Select*From category1',objConnection,-1.3 while not rsdata eof param='categID-'&rsdato("categID)/取记录集rsdata的字段"categID"值 param=param &"&categname="&server.urlencode(rsdata("categname")) /设置超级链接所用参数值
4 9.4 功能的实现 网上购书系统页面设计采用框架结构,左边是图书分类区,右边是针对左边不同的操作 显示的页面,底部是两个按钮,一个是“购物篮”按钮,一个是“结账”按钮。left.asp 显示 图书分类,点击不同的分类名,将打开相应图书的详细信息。执行 view.asp 文件,显示图书 分类情况,点击分类名后,执行 bookbuy.asp,显示分类图书的详细信息,点击图书名,执行 add.asp,然后执行 addtobox.asp,将所买图书放入购物篮;bookbuffer.asp 文件显示购物篮的 买书情况,对购物篮可以删除所选图书,也可以修改购买图书的数量,分别执行 delete.asp 和 update.asp。 网页程序调用关系如图 9-2 所示。 图 9-2 网页组成 1.图书分类信息的显示 页面左侧是一个图书分类显示,点击一级分类名后,可以打开二级分类名。如图 9-3 所 示。当点击一级分类名时,展开二级分类名,如点击“军事”一级分类名时,会展开“军事” 相关的二级分类名。这个图书分类列表是从数据库里调用的动态数据,使用了 Cookies 对象。 Cookies 对象是页面之间传递参数的好方法。 ‘读取图书一级分类名,然后写入 Cookies 对象中 rsData.open "Select * From category1" ,objConnection,-1,3 while not rsdata.eof param="categID="&rsdata("categID") //取记录集 rsdata 的字段"categID"值 param=param & "&categname=" & server.urlencode(rsdata("categname")) //设置超级链接所用参数值

link"a href-view.asp"&Pram&'>"&"+"&"有>"/∥vicw,as即是二级分类信息显 示文件 count=count+l response.cookies'categorylink"&count)=link&rsdata("categname") /用带参数的超级链接为cookies(“categorylink"&cunt)赋值,超级链接文字为一领 分类表中的category字段值 response.cookies以"categorylinks'=count∥一级图书分类数 rsdata movenext wend rs对ata.movefirst 学物理·判力当州中 三的。适nu11)·t南·心+3州唐4时 相书分测 领我行克 二划宿5为为 爆母举到网生章点选陶择狮 华5月 图-3 “读出Cookics对象的值,显示一级图书分类伯息。 c% for i-1 to request.cookies("categorylinks") response.write"cfont color-blues" response.write request.cookies("categorylink"i)&"cbe>" rsdata movenext next response.write"request.cookies ("bookbuffer"&i) 5
5 link="" & "+" & "" // view.asp 是二级分类信息显 示文件 count=count+1 response.cookies("categorylink" & count)=link& rsdata("categname") //用带参数的超级链接为 cookies("categorylink"&count)赋值,超级链接文字为一级 分类表中的 category 字段值 response.cookies("categorylinks")=count //一级图书分类数 rsdata.movenext wend rsdata.movefirst 图 9-3 ‘读出 Cookies 对象的值,显示一级图书分类信息。 " response.write request.cookies("categorylink"& i) & "" rsdata.movenext next response.write"" %> 2.购物篮的设计 购物篮书网上购书系统的重要组成部分。由于每一个上网者所购买的图书及数量都不相 同,所以采用 Cookies 对象来存放所购买的图书。通过双重循环,对购买的书籍进行匹配, 显示书籍的详细信息。代码如下: request.cookies("bookbuffer"&i)

rsdata.novenext wend 》 /td> td》(=rsdata("price')%> > '"> (蛋 rsdata.novefirst next 》 在图书详细信么显示页面,单击图书名称便链接到图书购买页面,用户在该页面可项入 期买该本图书的数量,提交后用户可查看所要购买图书的具体信息,然后进入购物蓝贞面, 能够进行更改、利除等操作。 网上购书系统的核心技术是“购物篮”功能,该“购物篮”类似于超市实际的购物车, 项客可以把想购买的商品放入购物车,也可把已经放入购物车中的商品拿掉。网上购书的“购 物蓝”功能有不同的实现方法,这里采用ASP的000KIES对象,用C00球IES变量存储图书购 买信息,当用户在不同页面之间洗转时,这些①0球IES变量始终存在。这样购书信息就会被 保存起来。用户能对其进行修改、副除等操作。 实验9网上购书程序设计实例 系统的首页使用框架结构拱建,主要分为3个部分,左上侧是图书分类信息显示区,左 下部是购物篮和结帐区,右部是期买图书相应株作区。下面介绍框架结构搭建的过程, 1.首界面设计(inde%.asp) 首先创建一个ASP页面,名称存为ieL.4sp。在页面中插入一个框架集,拖动竖线调 整布局如图9-2、图93所示: 6
6 rsdata.movenext wend %> value=> '"> 在图书详细信息显示页面,单击图书名称便链接到图书购买页面,用户在该页面可填入 购买该本图书的数量,提交后用户可查看所要购买图书的具体信息,然后进入购物篮页面, 能够进行更改、删除等操作。 网上购书系统的核心技术是“购物篮”功能,该“购物篮”类似于超市实际的购物车, 顾客可以把想购买的商品放入购物车,也可把已经放入购物车中的商品拿掉。网上购书的“购 物篮”功能有不同的实现方法,这里采用 ASP 的 COOKIES 对象,用 COOKIES 变量存储图书购 买信息,当用户在不同页面之间跳转时,这些 COOKIES 变量始终存在。这样购书信息就会被 保存起来。用户能对其进行修改、删除等操作。 实验 9 网上购书程序设计实例 系统的首页使用框架结构搭建,主要分为 3 个部分,左上侧是图书分类信息显示区,左 下部是购物篮和结帐区,右部是购买图书相应操作区。下面介绍框架结构搭建的过程。 1. 首界面设计(index.asp) 首先创建一个 ASP 页面,名称存为 index.asp。在页面中插入一个框架集,拖动竖线调 整布局如图 9-2、图 9-3 所示:

令1saa年a 1H回 时41古粉人4的w妙口1物的 2明5线9写号竖触 EiLt E出 Eirt-uHt 空不具山 9当雪幻B 石然1 济上座① 送律 11不下进①0 11数 T灵警U 时酸0D 左成上联馨四 卡果是 左凯设方量餐 者级方世些 m自轮G 子有图性4) 上要T方 确容性忙酸 上方及左舍C到 日4G) 上容要老程 号法器线包长可 有 平课幻 灯 州都 果· 足吧时农G 43象砂 下其秀 44H用, 用有字带” ”理 情取父不流本心 便票标内爱② 平信平程 大 后编语程 可 行士南分4常#:了国m-, ●r4d卡新+ 转◆8西知 图9-2插入一个框梁集 多ILa PEERANNARer 8 a回☒ 文作2041去香分入家面本◆年气4口1 过的+》题4一2快妹.C ·用甲年 日当帝h8¥中An athtindbaane-CLILEL ”样 回 49s■ 上, 网轻 验有环后 增0 图93洞整布局 然后分别设置三个框架的属性,如图4、图95、图95所示: 7
7 图 9-2 插入一个框架集 图 9-3 调整布局 然后分别设置三个框架的属性,如图 9-4、图 9-5、图 9-6 所示:

◆a1nhh4y年 P0人h四四四 ,艺4线程 运脚5民种叶了标地是之 边当这0色¥nnn m出 丽5合类 n-1-4715 月黑2 开+年 回小 3现 图9-4设置左上框架属性 2古tERANVIPEE8-区6 tetishiiies.里D 回3 解)着0植人D餐2父年)家5回户更附@ :足明序 网5出国计规方西 层e雕.C :后范福 白含■0B¥%0nn , 10EtaG.p2aE0裙ow-w3a3。 a:saise'id'leftft rtE上tL▣tHo士EoPW 西书分美 I4=,k》U4d因as a9m·5w■-15 日弹素红样1as O口gw 口不心调大小 , 边度 图9-5设置左下框架属性
8 图 9-4 设置左上框架属性 图 9-5 设置左下框架属性

Toorosrtio Dreearemer E-Cw与h4式heAm:理B厘可 ex U科D要专的人D帽20年守户聊将0 :2员年 旦网S恐回计置规文石 :程签艺播 凸8B0B¥6日nn 卡华 13 在art cala',Y) rEE,课世军B 图5会失 欢迎到网上书店胸 r映》e经4D达M有斤4) a90✉6m-41登 目四装2红件五室 这e, 边5是空 图9-6设置右框架属性 inex.asp的主要代码如下: Chtnl> Untitled Docunent Kneta http-equiv="Content-Type"content="text/html:charset=gb2312"> (frameset rows="*,80"franeborder="NO"border="0"franespacing="0"> (nofranes> (化ody bgcolor="FFFFFF”text="000000"> 《ody> (/noframes》
9 图 9-6 设置右框架属性 index.asp 的主要代码如下: Untitled Document

从上述代玛可以看到,页面中框架用到了三个文件:botton.htn、riht.htn、left.asp。 bottom.htn设计页面中插入了两个热点链接,一个是bookbuffer.asp,一个是 jiezhang.asp。主要代码如下: Untitled Doxcunent ody bgcolor="#FFFFFF“text=“000000> (table width="100°border="0°) (pne-"Nap”> Knap name="Nap2"> 设计界面如图97: 10
10 从上述代码可以看到,页面中框架用到了三个文件:bottom.htm、right.htm、left.asp。 bottom.htm 设计页面中插入了两个热点链接,一个是 bookbuffer.asp,一个是 jiezhang.asp。主要代码如下: Untitled Document 设计界面如图 9-7: