可行性研究说明书开发背景早期(1998年)国内网上商店在网络开始盛行的时期并没有得到很快的发展,但是国外已经有许多人从事网上购物了,而我们国家一些人已经开始尝试。例如当时世界上就有著名的ebay,国内有8848,随着1999年易趣网在国内的开通,许多网上商店已经陆续建立了,著名的如“阿里巴巴”、“当当网”、“卓越网”、“淘宝”等等。2001年以来中国陆续出现了更多的小型的网上商店,这说明人们已经逐渐接受网上商店这个概念,并且正在得到普及了。
我是个“网站迷”,陆续建立的网站也有十几个,但是我平时喜欢网上购物,于是产生了“自己开店,网上卖东西”的想法。于是我参阅了大量书籍以及网上的信息,结合自己已经掌握的知识想建立一个“网上商店系统”。
林林总总的网上商店与日益加强的网上安全措施使得网店的开设越来越普及,我和我的指导老师说了我的想法后,我的指导老师非常赞同我的想法,并对我的制作过程给予的充分的指导,在此我向我的老师彭鲁青表示感谢。
开发构想网上商城是建立在网络世界中的虚拟商城﹐与传统超市及百货公司不同的是:到网上商城消费的顾客不必出门﹐而是在家中透过计算机的联机选购。而传统商城的老板也不用将笨重的商品搬到店铺中等着您上门﹐而是将商品的照片及影像以多媒体的方式透过万维网 (World Wide Web) 呈现在消费者的计算机画面前。透过网上商城虚拟实境的逛街购物方式﹐消费者无须浪费时间在拥挤的车阵中﹐即可在家中透过网络选购日常用品﹐等着快递公司为您送货到府。
总的说来,一个完整的网上商城由购物部分、商家管理部分、支付部分和送货部分组成。
首先网上商城应该能够提供一个供用户购物的场所,而这通常是以一个独立站点的形式出现。此外商家必须具备相当的工具(基于Internet)来独立维护自己的商品(包括增加、删除、修改商品),或者其他一些活动(如打折优惠、广告发布等等)。由于一个商城可以有不止一家商店,所以商城还必须有管理各个商店、维护商厦的工具(如增加、删除商店等等)。
网上购物最大的特点就是快捷方便,所以购物后的支付一定要做到网上支付,网上商城也就必须提供与银行的网关接口,让用户能够方便安全地进行支付。安全性一直是国内网上购物面临的主要问题之一,目前流行的保密措施主要有SSL加密和SET协议等等。
只要用户在网上选购到中意的物品,并且确认了支付后,就只剩送货的问题了。电子商城或者商家应该建立完整的送货体系,以确保用户订购的商品能及时送到.
网上商城所销售的商品可以分成三类:实体商品 (Hard goods)、信息与媒体商品 (Soft goods)、线上服务(On-line Service) (见表一)。在网络上销售实体化的商品与传统的型录购物相似﹐只是将型录的表达方式改为网络的首页(Hoe page)。而数字化的商品则是非常的适合透过互联网来行销﹐因为互联网本身即具有传输多媒体信息的能力。从目前国内外许多报纸与杂志纷纷提供网络版的趋势来看﹐未来在纸张价格昂贵及环保考量的因素下﹐数字化的信息将会成为未来的出版主流。
对于透过互联网提供线上服务的商品 (如房屋中介、代订机票或音乐会入场卷)﹐则是令许多中介人员 (intermediary) 寝食难安的应用。因为﹐未来透过互联网我们几乎再也不需要靠中介人员的媒介﹐即可获取所需的信息与服务。
经营型态
销售卖点
销售商品
实体商品
线上型录浏览
送货到府
日用品(餐饮、衣服)
计算机、外围硬件消费性电子产品
信息与媒体商品
(数字化商品)
信息提供
数据库检索
数字化电子新闻电子书、电子杂志研究报告、论文
软件销售
计算机游戏
Java 软件软件包
线上提供服务
情报销售
法律、医药查询
股市行情分析银行、金融咨询服务
网络预约服务
航空订位、订票
电影票、音乐会入场卷预约饭店、餐馆医院预约挂号
交互式服务
网络交友
计算机游戏法律、医药谘商
表1-1网店的经营型态可行性分析技术可行性
ASP即Active?Server?Page的缩写。它是一种包含了使用VB?Script或Jscript脚本程序代码的网页。当浏览器浏览ASP网页时,?Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的?就是动态生成的网页。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。ASP的网页文件的格式是.ASP。
ASP包含三方面含义:
1、Active:ASP使用了Microsoft的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。
2、Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和?JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。
3、Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。
由此我们可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。
已经掌握了编程语言VisualBasic 和数据库知识,总而言之Asp技术是可行的。
经济可行性首先编制程序无须太多花费,网上自备了一台,服务器学校提供了。学校图书馆里有许多asp参考书以及数据库书籍,学校的服务器和机房为“商城”的实验提供了便利条件。宿迁信息港与易网络给予了硬件和网站空间的支持。为顺利完成论文提供了便利。因此经济上是可行的。
开发技术方案根据现有的技术,网上商城基本可以采用如下几种形式制作:
方案一:ASP+ACCESS
方案二:ASP+SQL
方案三:PHP+SQL
方案四:PHP+ACCESS
方案五:JSP+数据库方案六:ASP.NET+数据库当然目前开发方式与方案远远不止上面所列举的这些。但是我们应当了解它们的一些特点,从而有所取舍。
ASP,PHP,JSP三者都提供在?HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成?Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP?、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的?HTML页面只依赖于Web服务器,而ASP?、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP?、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
ASP.NET是Microsoft公司推出的用于编写动态网站的又一功能强大的技术是ASP.技术和.NET技术的结合。VISUAL STUDIO.NET是开发ASP.NET的最理想的工具。
不难看出,最佳的方案并不是方案一。
数据库:Access数据库功能全面,实现方式稳定可靠,但是无法面对庞大的数据库。
SQL数据库可以轻松实现庞大的数据库,但是面对小型的数据功能上显得烦琐。
我们鉴于实现的可行性和技术的可行性,我们采用了方案一:ASP+Access技术。
总体开发计划可行性分析周期:10天需求分析:7天总体设计:10天详细设计:30天测试与代码:20天程序安装与调试:7天论文初稿编写:15天论文定稿:15天
需求分析说明书
功能需求网上商城所实现的基本功能是:通过网络进行购物,并且在网络购物的过程中实现快乐购物与得到安全保障。
从管理者角度,网络购物最重要的环节就是便于管理和维护,如何面对日益增长的商品销售量,以及如何保证每个客户得到他们的产品,如何保证应收款项到位。
这些就是本商城所要首先实现的功能。
用户需求用户就是我们的“上帝”,他们光临我的网站就是对我网站的一种肯定。作为网上商店,它必须有一定的可观赏性和一定数量的商品。拥有漂亮的界面才能吸引很多的用户,拥有丰富的商品才能满足不同口味客户的需求。
这就需要具备一定的界面设计水准。
另外注册用户的使用界面必须简单流畅,保证客户视觉冲击的同时做到快捷、安全。
管理需求从管理者角度,网络购物最重要的环节就是便于管理和维护,面对日益增长的商品销售量,以及保证每个客户可以买到他们的产品,保证应收款项到位。
安全有效的管理,定期发布新的商品和广告,让这些工作变得轻松易行。
数据流图数据库是整个网站的存储器,每一项插件和功能的实现都不能离开数据库的支持。
数据字典登陆=(会员名|密码|验证码)
注册=(会员名|姓名|密码|地址|电话|Email)
购物=(商品类别|是否新货|价格|购物车|付款方式|配送方式|收银台)
最新公告|友情广告|商品搜索|销售排行|商城动态商品信息=(评分星级|品名|精介|单位|商品状态|所属类别|商品说明|注)
网友评论=(主题|作者|详细内容)
超级管理员=(用户名|密码|验证码)
控制面板=(日常信息管理|产品管理|商品专题管理|会员管理|系统信息管理)
日常信息管理=(查看反馈|公告设置|添加新闻|新闻修/删|管理投票|注销登陆|修改管理密码)
产品管理=(大类管理|小类管理|添加新商品|查看/修改|管理订单|管理评论|字段名称管理)
商品专题管理=(添加新专题|查看/修改)
会员管理=(所有注册用户|后台用户)
系统信息管理=(网站信息设置|系统参数设置|网站广告设置|送货/邮编|浮动价设置|送货/汇款|其它信息设置|css修改设置|合作伙伴)
第三章 开发环境与开发工具本设计由单机仿真出的网络环境中进行动态网页的开发工作。因为这样一来,不但节省硬件的成本,开发者更不需要在两台计算机间来回奔波。而单机仿真环境的建构基本上很容易,主要的概念就是在一台计算机上同时安装浏览器与WEB服务器,这样一台计算机便可同时扮演服务器与客户端的角色。
第一节 开发环境硬件环境:
800MHZ或更高的中央处理器、128M RAM-ROM驱动器、
16位增强色、1024*768分辨率显示器(推荐使用更高的分辨率和颜色深度)
500M硬盘空间、调制解调器(MODEM)(非单机环境才需要)/网卡(局域网)
软件环境:
WINDOWS2000/XP/2003、FRONPAGE2003与DreamweareMX(动态网页开发工具)、ACCESS数据库软件(数据库设计工具)、PWS个人服务器/IIS服务器、ODBC DRIVER、TCP/IP协议、FLASHMX(动态网页开发工具)
第二节 开发工具的介绍一、用FRONPAGE2003与DreamweareMX作为动态网页开发工具的目的:
FRONPAGE2003是MICROSOFT公司推出的网页制作工具,DreamweareMX是MacroMedia公司的网页制作工具它们功能强大、操作方便,易学易用,是目前最为流行的网页制作与站点管理工具。它采用图形化的界面以及“所见即所得(WYSIWYG)”的方式编写网页,大大提高了专业网页制作人员的工作效率,使得开发WEB更加轻松自如。
★ 强大的编辑功能:以图形化的形式对网页进行编辑,通过“所见即所得”的方式使网页的编辑变得非常简单,几乎可以实现HTML的所有功能。
★ 强大的管理功能:不仅可以新建一个WEB站点,还可以导入、复制、删除、发布一个WEB站点;另外,还具有对各种WEB站点内部内容进行管理的功能,包括文件夹管理功能、报表管理功能、超链接管理功能、导航管理功能、任务管理功能。
★ 强大的辅助功能:可以帮助开发人员实现一些比较难以实现的功能,如可以很简单地在WEB站点中建立一个搜索表单等。
★ WEB数据库发布功能:使用FRONTPAGE2003可以非常容易地建立一个ASP文件,通过该文件可以实现一些简单的WEB数据库发布功能。
二、用FLASH MX开发多姿多彩、互动的、极富个性、包含动画的个人主页:
FLASH也是MACROMEDIA公司出品的,用在互联网上动态的、可互动的SHOCKWAVE。FLASH可生成动画,也可在网页中加入声音。它最突出的特点是能在生成多媒体图形和界面的同时,而使文件的体积保持很小。而且它可以边下载边播放(一种流式文件),这样就避免了用户长时间的等待。FLASH是一种完全基于矢量的动画处理技术。只要用少量数据就可以描述一个复杂的对象,而占用的存储空间只是位图的几千分之一,非常适合在网络上使用。同时,矢量图像右以做到真正的无级放大,这样,无论用户的浏览器使用多大的窗口,图像始终可以完全显示,并且不会降低画面质量。
库结构的设计,
三、ASP技术
ACTIVE SERVER PAGE程序是在服务器工作,并且通过服务器端的编译动态地送出HTML文件给客户端,而不像一般SCRIPT(JAVASCRIPT或VBSCRIPT)是在客户端通过浏览器执行,因而产生各家浏览器并不完全支持某种脚本语言而造成执行错误的现象;当客户端浏览器向服务器端要求一个.asp的文件(ASP文件的后缀名为,ASP)时,SEVER会将把这个ASP文件重头到尾给它读一遍,并加以编译执行(利用核心程序ASP.DLL的编译),最后送出标准的HTML格式文件给客户端,由于送给客户端的是标准的HTML文件,所以可以克服浏览器不兼容的问题。
ACTIVE SETVER PAGES开发WEB应用程序的特点:?
◆ 完全嵌入HTML,与HTML、SCRIPT语言完美结合。
◆ 无须手动编译或链接程序。
◆ 面向对象,并可扩展ACTIVE SERVER组件功能。
◆ 使用脚本语言(JAVASCRIPT、VBSCRIPT或PERL)编写。
◆ 存取数据库轻松容易(使用ADO组件)。
◆ 可使用任何语言编写自己的ACTIVEX SERVER组件。
◆ 无浏览器兼容问题。
◆ 程序代码隐藏,在客户端仅可看到由ASP输出的动态HTML文件。
◆ 编写容易,缩短WEB程序开发时间。
第四章 系统结构及库结构的设计第一节 网站目录与各网页及其功 能
/ 网站主目录
├admin0 后台管理目录
├bbs--data 数据库目录
│├pd.mdb 文本记数器的数据文件
│├yys7.mdb 主数据库,及时进行备份,可防下载
│└shop.asa 活动服务器文档
├bookpic 产品的图片
├guanggao 广告的图片
├images 系统程序图片文件夹
├skin 系统程序“皮肤”的文件夹
├about.htm 关于本站
├about.asp 个人头像,可按顺序添加
├bookorder.asp 论坛个性图片
├checkuserlogin.asp EM贴图
├class.asp 友情链接里LOGO的指定文件夹
├conn.asp 用户短信相关的图片和文件
├cookies.asp 默认的网站SKIN图片文件夹
├copyright.asp 网站版权
├css.css 网站大量小图片及公用图片文件夹
├dingdan.aspr 用户星级图片
├dongtai.asp UBB相关的图片
├edit.js 调查相关的图片
├Email.asp 网站背景图片
├fenleiinfo.asp 背景线图片
├fk.asp 网站背景2图片
├funtion1.asp
├getpwd2.asp 网站CSS配置文件
├gonggaoinfo.asp 鼠标文件
├gouwu.asp 用户登陆信息背景图
├lgouwucheinfo.asp
├help.asp
├history.asp ├hotinfo.asp
├index.asp 网站的主页
├jifen.asp 会员的积分
├jingpininfo.asp
├jszx.asp
├list.asp
├login.asp 登陆
├logout.asp
├ md5.asp
├ news.asp
├ newsinfo.asp
├ pinglun.asp
├ pinglunll.asp
├ pingpaiinfo.asp
├ qkgwc.asp
├ ram.ram 音乐
├ reg.asp
├ research.asp
├ savedingdan.asp
│└ logo.gif 网站左上角的标志图
├back_common.asp 配置备份文件
├webconfig.asp 配置文件
├conn.asp 主数据库连接文件
├conn_ip.asp IP数据库连接文件
├functions.asp 公共函数模块
├jk_md5.asp MD5加密模块
│├jk_ubb.asp 网站UBB支持模块
│├onlogin.asp 后台相关模块
│├skin.asp 网站主SKIN文件
│└其它..,config_栏目标识.asp为相关栏目的配置模块
├admin_login.asp 登陆后台入口
├prg 下载栏文件目录,可更名
├style 存放网站JS脚本
├upload 网站上传文件目录,可更名
├index.asp 空间首页
├main.asp 网站首页文件
├login.asp 登陆及注册文件
├help.asp 帮助信息文件
├links.asp 友情链接文件
└其它..,各栏目文件等第二节 系统结构、站点结构设计:
1.框架主页 Index.asp 访问数据库
进入购物商场:浏览、订购、放入购物车、修改购物车
检查商品、查询商品、清空商品、购物车中没有数据时显示的网页
2.库结构列举电子词典商品的分类储存于shop_anclass数据表中。
shop_anclass表字段名称
数据类型
长度
意义
anclassid
数字
0
分类编号
anclass
文本
50
分类名称
anclassidorder
文本
50
排列次序
fudongjia
文本
50
浮动价
电子词典的详细数据则储存于shop_books数据表中。
shop_books表字段名称
数据类型
长度
意义
bookid
数字
0
商品分类编号
bookname
文本
50
商品名称
pp
文本
50
商品厂商
jj
文本
50
单位
tp
文本
50
商品图片
jj
文本
50
商品价格
adddate
日期
商品发布日期
isbn1
文本
50
精介
isbn
文本
50
商品性能
pinpai
文本
50
品牌
liulancount
数字
0
浏览量
其他…
对于一笔订单数据我们必须分成两个部分来看,一个部分是订单基本数据,见shop_anclass表;另一部分是订单明细数据,见shop_books表。为什么要这样区别呢?因为订单基本数据是一张订单仅有一笔的数据,像订购者的姓名、订购的时间等数据,它们在一张订单中仅有一个值。而所谓的订单明细数据则是指订单中所订购产品的数据,我们知道在一张订单中,所订购的产品应不止一种,所以这类数据将不止一笔,如:订购产品名称、订购数据、单价等。这个时候必须利用两个数据表来分别储存这两类数据,然后在储存订单明细数据的数据表中,建立一个字段储存所属订单基本数据的编号。通过这个字段值的对比,便可串连出一笔完整的订单数据。
shop_his表字段名称
数据类型
长度
意义
ID
文本
50
订单编号
ltime
文本
50
订购时间
username
文本
50
订购者姓名
userid
数字
0
用户编号
bookid
数字
0
商品编号
searchkey
文本
200
搜索关键字
lx
数字
0
订购数量
第五章 系统实现的原理、思想和关键技术一.网上购物的一般过程网上购物与传统购物的过程有很大区别,这种区别表现在购物的各个阶段。网上购物的主要阶段如图所示,主要包括:网上浏览、选择网上商店;浏览网上商店,查询商品信息,订购网上商品;选择网上支付方式(电子或非电子)并付费;商家通过一定的发送渠道将购买的商品送到顾客手中。
由于购买的商品不同或网上商店提供的服务不同,上述过程的一些细节可能有所区别,但选择商店以及挑选商品的过程都是在网上实现的,这一点是相同的。调查表明,消费者现阶段选择在网上购物的主要原因依次是:便利(足不出户就可以随时购物,而且能方便检索自己所需要的商品);商品选择余地大(可以到很多网上商店买到平时难以买到的东西);特殊的服务(如商品定制、充分的信息等);时髦;价格便宜等。
二.网上购物系统的机制对于一个网上商店的建立,主要的核心技术有三个,
一是商品的展示,二是存放选购产品的购物车,三是交易数据的储存。
(一) 商品的展示整个网上购物系统主画面将被分割为两大部分,一是网上商品分类展示区,二是详细网上商品展示与订购列表区。在分类选择区中,将显示各种网上商品的分类,当您点选某个分类时,网上商品列表区就会显示出该分类的详细网上商品信息。而显示于这两个区的数据均储存于数据库中,当用户浏览网页时,便将从数据库中取得相关数据,并加于显示。
1,网上商品分类展示区的实现:
在class.asp 网页中,将利用RSTCATEGORY对象打开一记录集,然后从数据库中取得shop_anclass数据表的数据摘自class.asp网页文件
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from shop_gg",conn,1,1
dada=trim(rs("458"))
dadaurl=trim(rs("458url"))
xiao1=trim(rs("2541"))
xiao1url=trim(rs("2541url"))
xiao2=trim(rs("2542"))
xiao2url=trim(rs("2542url"))
xiao3=trim(rs("2543"))
xiao3url=trim(rs("2543url"))
tx1=trim(rs("1441"))
tx1url=trim(rs("1441url"))
tx2=trim(rs("1442"))
tx2url=trim(rs("1442url"))
tx3=trim(rs("1443"))
tx3url=trim(rs("1443url"))
接着,利用DOLOOP循环取得记录集中的网上商品分类数据,再利用这些数据建立,可控制详细网上商品展示区中显示某分类网上商品的超级链接。这些超级链接控制网上部件展示区显示特定分类网上商品的机制,主要是将欲显示之网上分类编号通过超级链接传递给bookorder.asp文件。该文件将依据接收到的分类编号输出该分类的网上商品。由于超级链接的TARGET属性被设定为shop_books,因此显示bookorder.asp文件的目标窗口为shop_books子窗口。
摘自bookorder.asp网页文件
<%dim anclassid,rs2,xx
anclassid=request.QueryString("id")
set rs=server.CreateObject("adodb.recordset")
set rs2=server.CreateObject("adodb.recordset")
if anclassid=0 or anclassid="" then
rs.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books order by chengjiaocount desc",conn,1,1
rs2.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books order by liulancount desc",conn,1,1
else
'yaosxia
if Not isChkInteger(anclassid) then
%>
<script language=javascript>
alert("参数错误!");
window.close();
</script>
<%
response.end
end if
rs.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books where anclassid="&anclassid&" order by chengjiaocount desc",conn,1,1
rs2.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books where anclassid="&anclassid&" order by liulancount desc",conn,1,1
end if
if rs.eof and rs.bof then
response.write "<div align=center>目前还没有任何商品</div>"
'response.End
else
dim i
i=0
%>
2,详细网上商品展示与订购列表区的实现:
CLASS.ASP文件除了可以显示某特定分类网上部件的数据外,当某网上部件已经被选取至购物车时,则该部件的挑选栏与数量栏中的控件将会被设定为无效,这样当用户从其它部件分类画面又回到曾经来过的分类画面时,将可辨别出哪些部件已经被订购,而被设定为无效状态的控件在窗体送出数据时,也不会再传出值。
当执行CLASS.ASP时,必须先取得两种数据,一是欲浏览的网上商品分类数据,另一则是已经订购的数据。见如下语句:
摘自dingdan.asp网页文件
rs.open "select shop_books.bookid,shop_books.bookname,shop_books.shichangjia,shop_books.huiyuanjia,shop_action.actiondate,shop_action.shousex,shop_action.danjia,shop_action.feiyong,shop_action.fapiao,shop_action.userzhenshiname,shop_action.shouhuoname,shop_action.dingdan,shop_action.youbian,shop_action.liuyan,shop_action.zhifufangshi,shop_action.songhuofangshi,shop_action.zhuangtai,shop_action.zonger,shop_action.useremail,shop_action.usertel,shop_action.shouhuodizhi,shop_action.bookcount from shop_books inner join shop_action on shop_books.bookid=shop_action.bookid where shop_action.username='"&request.Cookies("snsn")("username")&"' and dingdan='"&dingdan&"' ",conn,1,1
if rs.eof and rs.bof then
response.write "<center>此订单中有商品已被管理员删除,无法进行正确计算。<br>订单取消,请通知管理员或重新下订单!</center>"
response.End
假若这两个数据有其中之一未正常取得时,则用如下语句建立一记录集,然后从数据库的shop_books数据表中自行取得分类编号与分类名称并显示之。
摘自COMPONENTSLIST.ASP网页文件
set cnndb=server.createobject("adodb.connection")?
cnndb.open "dsn=store;uid=;pwd="?
if categoryid=empty or category =empty then?
set rstcategory =server.createobject("adodb.recordset")?
rstcategory.open "select * from category",cnndb?
category=rstcategory("category")?
categoryid=rstcategory("id")?
rstcategory.close?
set rstcategory=nothing?
end if?
当dongtai.asp文件取得欲显示之分类编号后,便以该编号建立SQL语句,并利用shop_books对象执行语句,并取得记录集。其中利用DOLOOP循环将这些欲显示的网上商品数据建立为表格的方式。在输出的过程中,将判断每一笔商品记录的编号值是否已存在于LIST变量中,是则代表该商品已被选取,应把挑选栏与数量栏中控件的状态设定为无效,并利用被选商品的编号从SESSION对象中取得订购数量,且设定为数量栏的VALUE属性。见如下ASP语句:
摘自dongtai.asp网页文件
Response.Write(" 页次:" & page & "/" & pageCount & "页" & vbCrLf)
Response.Write(" 共有" & iCount & "种商品" & vbCrLf)
Response.Write(" 转到" & "<INPUT TYEP=TEXT NAME=page SIZE=1 Maxlength=5 VALUE=" & page & ">" & "页" & vbCrLf & "<INPUT type=submit style=""font-size,9pt"" value=GO class=b2>")
Response.Write("</TD>" & vbCrLf )
Response.Write("</TR></form>" & vbCrLf )
Response.Write("</table>" & vbCrLf )
(二)存放选购商品的购物车当用户在分类展示区中看到欲购买的网上商品时,只要点选该网上商品前挑选栏中的复选框,接着按下“放入购物车”按钮,便可将该商品放在购物车中。至于被选取至购物车的网上商品,将储存于shop_his对象中。
购物车就像是你逛超级市场时所推的手推车,购物者可以将欲选购的商品从展示架上拿下放入购物中,也可能把商品从购物车中再放回展示架上。所以,放进购物车中的网上商品仅用于暂存购物数据,方便使用者在各个商品的展示网页间闲逛时,能够储存欲购买的商品。
既然是暂存的数据,在用户浏览网页时,就不急着把它们写入数据库中,因为放入购物车中的商品,最后并不一定被购买。由于欲采购网上商品之数据是属于各联机的数据,所以,这些数据只要储存于shop_his对象中即可。
购物车中需要储存的数据主要有两种,一是选购的商品,二是选购的数量。在本软件中,我们将所有欲选购网上商品的部件编号以“,”串成个字符串,并利用shop_books对象的kucun 变量储存。换言之,当想要知道有哪些商品被选购时,只要判断kucun 变量中的值即可得知。
至于某网上部件的订购数量,则是储存shop_his对象中与该编号同名的变量。所以,当想要知道所有选取商品的订购数量时,必须先从bookid变量取得被选取网上部件的编号,然后以这些网上部件编号为变量名称,从shop_books对象中取得订购数量。见如下ASP语句:
摘自GOUWU.ASP网页文件
if kucun<=0 then
response.write "<script language=javascript>alert('你选购的商品“"&bookname&"”暂时缺货不能放到购物车里,请选购其它商品!');window.close();</script>"
response.end
end if
set rs=server.CreateObject("adodb.recordset")
rs.open "select bookid,username,bookcount,zonger from shop_action where username='"&checkFFSQLStr(username)&"' and bookid="&bookid&" and zhuangtai=7",conn,1,3
if rs.recordcount=1 then
if kucun<(rs("bookcount")+1) then
response.write "<script language=javascript>alert('你选购的商品“"&bookname&"”暂时缺货不能放到购物车里,请选购其它商品!');window.close();</script>"
response.end
end if
rs("zonger")=(rs("bookcount")+1)*danjia
rs("bookcount")=rs("bookcount")+1
(三)交易数据的储存当用户完成欲选购的网上商品后,接下来要做的就是送出订单。送出订单的动作主要包含了两个主要的动作,一是取得订购者基本数据,二是将订购者基本数据与欲订购网上商品写入数据库。
对于一笔订单数据我们必须分成两个部分来看,一个部分是订单基本数据,另一个是订单明细数据。为什么要这样区别呢?这是因为订单基本数据是一张订单仅有一笔的数据,像订购者的姓名、订购的时间等数据,它们在一张订单中仅有一个值。而所谓的订单明细数据则是指订单中所订购产品的数据,我们知道在一张订单中,所订购的产品应不止一种,所以这类数据将不止一笔,如:订购商品名称、订购数量、单价等。这个时候必须利用两个数据表来分别储存这两类数据,然后在储存订单明细数据的数据表中,建立一个字段储存所属订单基本数据的编号。通过这个字段值的对比,便可串连出一笔完整的订单数据。
首先,用jszx.asp网页完成用户基本数据的输入完成确认后请填写您的基本数据收货人姓名:
性 别,
详细地址:
邮编:
(我们将按邮政编码划分送货区域,请您正确填写!)
电话:
电子邮件:
然后,用jszx.asp网页处理用户基本数据与订购数据的储存。
(四)选择FLASH MX制作首网页动画
FLASHMX 是MACROMEDIA 公司最新推出的矢量动画制作与发布软件。FLASH诞生于1996年,受限于网络技术和网络的普及,FLASH1和FLASH2都未得到应有的重视。1998年 MACROMEDIA公司推出了FLASH3,人们好像突然发现它对于网页可能产生的巨大影响。事实上,它已经采用了流式播放技术,所制作的动画播放文件大小只有同类软件的几分之一甚至十几分之一,对于网页的正常浏览几乎毫无影响,而且能够制作出眩目的动画效果。就这样,它逐渐成为交互式矢量动画的标准,也是网页制作引用动画的标准。标题变形字文字块淡入淡出(遮罩技术)
制作提要:
1,让标题由鼠标移动形成颜色渐变成。
2,让文字块“产生移动渐变”(Create Motion Tween),由下往上跑。以文字当做会移动的“遮色片”。(text层)
3,利用渐层色来当做“显示遮色片”(shadow层)使得往上跑的文字显露出渐渐融入背景的颜色。
4,电影的背景颜色(此处使用淡绿色)必须与“显示遮色片” 里的淡绿色完全相符,才能不露破绽的呈现出此文字淡出的效果。
关键操作:
一,变形字动画设计:
关键将第1帧七彩圆,按窗口-->面板-->帧-->变化-->图形;设计文字单击第30帧输入文字,然后修改-->打散-->分别设置颜色(框字变色)。
二、文字块淡入淡出
1,制作渐层的“显示遮色片”:(shadow层)
(1) 新增一元件(Ctrl+F8),指定元件名为balloon属性为图像(graphic)。
(2) 键入“文字框框”,破除此框的群组关系,执行“执行/打散”(Modify/Break Apart) 。调配渐层色彩:利用“油漆桶”工具调配一个由淡绿渐渐变成深蓝色的直线渐层,并且让背景与淡出文字100%相融,记取背景淡绿色的RGB的数值。
(3) 编辑“显示遮色片”的渐层方向、中心点:使用“编辑渐层”工具,拖动线条上小圆圈旋转,使得渐层的变化方向是由上往下渐变,由淡绿变成深蓝的渐进色彩。然后调整绿色、深蓝的多寡比例。
2,安排“遮色片”层(text层)
(1)新增text图层,从图库拉进text元件,在100帧处指定关键帧,右键单击第1帧,做出“产生移动渐变”
(2)产生“遮色片”效果:单击text图层,按下鼠标右键选择遮蔽(Mask)选项,使用权得图层text成为遮色片。至于下面的图层Shadow会自动成为“显示遮色片”。
第六章 系统运行效果及改进意见系统运行效果,自我总体评价,测试结果在系统的开发过程中,使用FRONPAGE2000进行设计,使用PWS个人服务器和IE浏览器进行测试、实时调试。使用ACCESS进行数据库的修改和设计。充分体现了WEB开发网络数据库管理系统的方便和直观性。通过INTERNET上实际应用和测试,总结出以下的运行效果。
1,用户端要求比较简单,只要求有IE浏览器,能登陆主机就能使用,而且与软件无关,系统的所有设计,数据,程序,调试均在服务器端完成。
2,用户使用容易,简单快上手,用户只要掌握基本的上网知识,在通过简单的示范便可轻松应用。
3,系统运行稳定,当设计阶段的调试通过后,基本上就可连上网站使用,服务器端的后台数据库的运行,网站的运行,用户的WEB响应都能很好的运行。
4,数据的安全性较高,所有的数据均放在服务器端。
5,系统的网络动作性能高,使用高性能的服务器就能流畅的完成整个系统的中央枢纽管理工作,客户端的使用十分流畅。
6,系统的可维护性、可扩展性很好,由于WEB应用系统是解释语言,因此根据系统要求的不断变化,都能轻松的通过修改、添加网页来完成,使系统具有较长的使用寿命。
改进意见:
由于毕业设计时间关系,系统的其它功能还来不及实现,界面的美观性有待改进,商品直观性较差。特别遗憾的是由于各方面技术问题(特别是银行还没建立网络银行,实现电子货币功能)的关系不能实现付款方式的电子化。
结束语经过二个多月的艰苦努力,网上商城的设计工作圆满结束,并取得了理想成绩和效果。但是,回想这段日子,我们是在充满压力、面对许多困难中挺过来的。首先,本系统采用ASP对象技术、JAVASCRIPT脚本语言、HTML标识语言及ACCESS数据技术综合开发出来的网上网上销售系统,而此之前我只学过有关的网络知识,对于ASP对象技术、JAVASCRIPT脚本语言、HTML标识语言及ACCESS数据技术的知识我是完全陌生的;其次,开发网上网上销售系统首先要熟悉FrontPage、Dreamweare、Asp工作原理,和要解决的Web页面与数据库的连接,而这些东西对于我们来说亦是相当生疏的,甚至是一窍不通的;最后,我们还要在白天8小时的繁重工作之后,上完其他考试课程的时间里彻夜继续奋斗四、五个小时,有时达6、7个小时,基本上每天只得5、6个小时睡眠时间,但是,在压力和困难面前我并没有低头,没有退缩和逃避,我积极查找有关资料,购买有用的工具书,从头开始学习ASP对象技术、VBSCRIPT脚本语言、HTML标识语言及ACCESS数据技术等有关知识和编程技巧,熟悉FRONPAGE2000、ACCESS、PWS、FLASHMX、DREAMWEAVERMX等开发工具的使用和操作,同时也从头开始学习网络知识,掌握基于Web的数据库开发的工作流程,理解各种网络专业术语,遇到不能解决的问题采取多查资料、上机调试,请教老师和同学等多种途径解决。经过这次毕业设计后,使我掌握了FRONPAGE2000、ACCESS、PWS、FLASHMX、DREAMWEAVERMX的使用和上机操作,学会了HTML标识语言如何结合Asp对象、VBSCRIPT脚本语言、ODBC技术进行动态网页的制作。总之,经过本次毕业设计,培养了自己不怕苦不怕劳,勇往直前的精神,大大提高了自己的自学能力和解决问题的能力,大大丰富了自己的专业知识和专业技能。
声明:网上商店系统中所用到的如下名称TOYI、www.toyi.com、GUOLAN、宿迁信息技术服务中心、QQ38857676、以及所出现的电话号码和Email地址均为本人所经常使用的,并非他人名称。
致谢:
参考文献:
《ASP 网站开发四“酷”全书:新闻、论坛、电子商城、博客——网站开发专家,作者:万峰科技 出版社:电子工业出版社 出版日期:2005-8-1
《ASP+Access组建动态网站实例精讲,作者:龙马工作室 出版社:人民邮电出版社 出版日期:2005-6-1
《动态网站开发教程(第二版),作者:陈建伟李美军施建强 等编 出版社:清华大学出版社 出版日期:2005-1-1
《ASP数据库开发实例精粹——开发专家之数据库,作者:郭瑞军 李杰 初晓璐 等编 出版社:电子工业出版社 出版日期:2005-2-1
《ASP与网络数据库技术,作者:邓文渊 陈惠贞 陈俊荣 等编 出版社:中国铁道出版社 出版日期:2004-1-1
《Access数据库系统项目开发实践》作者:苏瑞 等编 出版社:科学出版社出版日期:2005-5-1
《Access数据库设计基础,作者:桂思强 编 出版社:中国铁道出版社 出版日期:2003-9-1
我是个“网站迷”,陆续建立的网站也有十几个,但是我平时喜欢网上购物,于是产生了“自己开店,网上卖东西”的想法。于是我参阅了大量书籍以及网上的信息,结合自己已经掌握的知识想建立一个“网上商店系统”。
林林总总的网上商店与日益加强的网上安全措施使得网店的开设越来越普及,我和我的指导老师说了我的想法后,我的指导老师非常赞同我的想法,并对我的制作过程给予的充分的指导,在此我向我的老师彭鲁青表示感谢。
开发构想网上商城是建立在网络世界中的虚拟商城﹐与传统超市及百货公司不同的是:到网上商城消费的顾客不必出门﹐而是在家中透过计算机的联机选购。而传统商城的老板也不用将笨重的商品搬到店铺中等着您上门﹐而是将商品的照片及影像以多媒体的方式透过万维网 (World Wide Web) 呈现在消费者的计算机画面前。透过网上商城虚拟实境的逛街购物方式﹐消费者无须浪费时间在拥挤的车阵中﹐即可在家中透过网络选购日常用品﹐等着快递公司为您送货到府。
总的说来,一个完整的网上商城由购物部分、商家管理部分、支付部分和送货部分组成。
首先网上商城应该能够提供一个供用户购物的场所,而这通常是以一个独立站点的形式出现。此外商家必须具备相当的工具(基于Internet)来独立维护自己的商品(包括增加、删除、修改商品),或者其他一些活动(如打折优惠、广告发布等等)。由于一个商城可以有不止一家商店,所以商城还必须有管理各个商店、维护商厦的工具(如增加、删除商店等等)。
网上购物最大的特点就是快捷方便,所以购物后的支付一定要做到网上支付,网上商城也就必须提供与银行的网关接口,让用户能够方便安全地进行支付。安全性一直是国内网上购物面临的主要问题之一,目前流行的保密措施主要有SSL加密和SET协议等等。
只要用户在网上选购到中意的物品,并且确认了支付后,就只剩送货的问题了。电子商城或者商家应该建立完整的送货体系,以确保用户订购的商品能及时送到.
网上商城所销售的商品可以分成三类:实体商品 (Hard goods)、信息与媒体商品 (Soft goods)、线上服务(On-line Service) (见表一)。在网络上销售实体化的商品与传统的型录购物相似﹐只是将型录的表达方式改为网络的首页(Hoe page)。而数字化的商品则是非常的适合透过互联网来行销﹐因为互联网本身即具有传输多媒体信息的能力。从目前国内外许多报纸与杂志纷纷提供网络版的趋势来看﹐未来在纸张价格昂贵及环保考量的因素下﹐数字化的信息将会成为未来的出版主流。
对于透过互联网提供线上服务的商品 (如房屋中介、代订机票或音乐会入场卷)﹐则是令许多中介人员 (intermediary) 寝食难安的应用。因为﹐未来透过互联网我们几乎再也不需要靠中介人员的媒介﹐即可获取所需的信息与服务。
经营型态
销售卖点
销售商品
实体商品
线上型录浏览
送货到府
日用品(餐饮、衣服)
计算机、外围硬件消费性电子产品
信息与媒体商品
(数字化商品)
信息提供
数据库检索
数字化电子新闻电子书、电子杂志研究报告、论文
软件销售
计算机游戏
Java 软件软件包
线上提供服务
情报销售
法律、医药查询
股市行情分析银行、金融咨询服务
网络预约服务
航空订位、订票
电影票、音乐会入场卷预约饭店、餐馆医院预约挂号
交互式服务
网络交友
计算机游戏法律、医药谘商
表1-1网店的经营型态可行性分析技术可行性
ASP即Active?Server?Page的缩写。它是一种包含了使用VB?Script或Jscript脚本程序代码的网页。当浏览器浏览ASP网页时,?Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的?就是动态生成的网页。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。ASP的网页文件的格式是.ASP。
ASP包含三方面含义:
1、Active:ASP使用了Microsoft的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。
2、Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和?JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。
3、Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。
由此我们可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。
已经掌握了编程语言VisualBasic 和数据库知识,总而言之Asp技术是可行的。
经济可行性首先编制程序无须太多花费,网上自备了一台,服务器学校提供了。学校图书馆里有许多asp参考书以及数据库书籍,学校的服务器和机房为“商城”的实验提供了便利条件。宿迁信息港与易网络给予了硬件和网站空间的支持。为顺利完成论文提供了便利。因此经济上是可行的。
开发技术方案根据现有的技术,网上商城基本可以采用如下几种形式制作:
方案一:ASP+ACCESS
方案二:ASP+SQL
方案三:PHP+SQL
方案四:PHP+ACCESS
方案五:JSP+数据库方案六:ASP.NET+数据库当然目前开发方式与方案远远不止上面所列举的这些。但是我们应当了解它们的一些特点,从而有所取舍。
ASP,PHP,JSP三者都提供在?HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成?Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP?、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的?HTML页面只依赖于Web服务器,而ASP?、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP?、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
ASP.NET是Microsoft公司推出的用于编写动态网站的又一功能强大的技术是ASP.技术和.NET技术的结合。VISUAL STUDIO.NET是开发ASP.NET的最理想的工具。
不难看出,最佳的方案并不是方案一。
数据库:Access数据库功能全面,实现方式稳定可靠,但是无法面对庞大的数据库。
SQL数据库可以轻松实现庞大的数据库,但是面对小型的数据功能上显得烦琐。
我们鉴于实现的可行性和技术的可行性,我们采用了方案一:ASP+Access技术。
总体开发计划可行性分析周期:10天需求分析:7天总体设计:10天详细设计:30天测试与代码:20天程序安装与调试:7天论文初稿编写:15天论文定稿:15天
需求分析说明书
功能需求网上商城所实现的基本功能是:通过网络进行购物,并且在网络购物的过程中实现快乐购物与得到安全保障。
从管理者角度,网络购物最重要的环节就是便于管理和维护,如何面对日益增长的商品销售量,以及如何保证每个客户得到他们的产品,如何保证应收款项到位。
这些就是本商城所要首先实现的功能。
用户需求用户就是我们的“上帝”,他们光临我的网站就是对我网站的一种肯定。作为网上商店,它必须有一定的可观赏性和一定数量的商品。拥有漂亮的界面才能吸引很多的用户,拥有丰富的商品才能满足不同口味客户的需求。
这就需要具备一定的界面设计水准。
另外注册用户的使用界面必须简单流畅,保证客户视觉冲击的同时做到快捷、安全。
管理需求从管理者角度,网络购物最重要的环节就是便于管理和维护,面对日益增长的商品销售量,以及保证每个客户可以买到他们的产品,保证应收款项到位。
安全有效的管理,定期发布新的商品和广告,让这些工作变得轻松易行。
数据流图数据库是整个网站的存储器,每一项插件和功能的实现都不能离开数据库的支持。
数据字典登陆=(会员名|密码|验证码)
注册=(会员名|姓名|密码|地址|电话|Email)
购物=(商品类别|是否新货|价格|购物车|付款方式|配送方式|收银台)
最新公告|友情广告|商品搜索|销售排行|商城动态商品信息=(评分星级|品名|精介|单位|商品状态|所属类别|商品说明|注)
网友评论=(主题|作者|详细内容)
超级管理员=(用户名|密码|验证码)
控制面板=(日常信息管理|产品管理|商品专题管理|会员管理|系统信息管理)
日常信息管理=(查看反馈|公告设置|添加新闻|新闻修/删|管理投票|注销登陆|修改管理密码)
产品管理=(大类管理|小类管理|添加新商品|查看/修改|管理订单|管理评论|字段名称管理)
商品专题管理=(添加新专题|查看/修改)
会员管理=(所有注册用户|后台用户)
系统信息管理=(网站信息设置|系统参数设置|网站广告设置|送货/邮编|浮动价设置|送货/汇款|其它信息设置|css修改设置|合作伙伴)
第三章 开发环境与开发工具本设计由单机仿真出的网络环境中进行动态网页的开发工作。因为这样一来,不但节省硬件的成本,开发者更不需要在两台计算机间来回奔波。而单机仿真环境的建构基本上很容易,主要的概念就是在一台计算机上同时安装浏览器与WEB服务器,这样一台计算机便可同时扮演服务器与客户端的角色。
第一节 开发环境硬件环境:
800MHZ或更高的中央处理器、128M RAM-ROM驱动器、
16位增强色、1024*768分辨率显示器(推荐使用更高的分辨率和颜色深度)
500M硬盘空间、调制解调器(MODEM)(非单机环境才需要)/网卡(局域网)
软件环境:
WINDOWS2000/XP/2003、FRONPAGE2003与DreamweareMX(动态网页开发工具)、ACCESS数据库软件(数据库设计工具)、PWS个人服务器/IIS服务器、ODBC DRIVER、TCP/IP协议、FLASHMX(动态网页开发工具)
第二节 开发工具的介绍一、用FRONPAGE2003与DreamweareMX作为动态网页开发工具的目的:
FRONPAGE2003是MICROSOFT公司推出的网页制作工具,DreamweareMX是MacroMedia公司的网页制作工具它们功能强大、操作方便,易学易用,是目前最为流行的网页制作与站点管理工具。它采用图形化的界面以及“所见即所得(WYSIWYG)”的方式编写网页,大大提高了专业网页制作人员的工作效率,使得开发WEB更加轻松自如。
★ 强大的编辑功能:以图形化的形式对网页进行编辑,通过“所见即所得”的方式使网页的编辑变得非常简单,几乎可以实现HTML的所有功能。
★ 强大的管理功能:不仅可以新建一个WEB站点,还可以导入、复制、删除、发布一个WEB站点;另外,还具有对各种WEB站点内部内容进行管理的功能,包括文件夹管理功能、报表管理功能、超链接管理功能、导航管理功能、任务管理功能。
★ 强大的辅助功能:可以帮助开发人员实现一些比较难以实现的功能,如可以很简单地在WEB站点中建立一个搜索表单等。
★ WEB数据库发布功能:使用FRONTPAGE2003可以非常容易地建立一个ASP文件,通过该文件可以实现一些简单的WEB数据库发布功能。
二、用FLASH MX开发多姿多彩、互动的、极富个性、包含动画的个人主页:
FLASH也是MACROMEDIA公司出品的,用在互联网上动态的、可互动的SHOCKWAVE。FLASH可生成动画,也可在网页中加入声音。它最突出的特点是能在生成多媒体图形和界面的同时,而使文件的体积保持很小。而且它可以边下载边播放(一种流式文件),这样就避免了用户长时间的等待。FLASH是一种完全基于矢量的动画处理技术。只要用少量数据就可以描述一个复杂的对象,而占用的存储空间只是位图的几千分之一,非常适合在网络上使用。同时,矢量图像右以做到真正的无级放大,这样,无论用户的浏览器使用多大的窗口,图像始终可以完全显示,并且不会降低画面质量。
库结构的设计,
三、ASP技术
ACTIVE SERVER PAGE程序是在服务器工作,并且通过服务器端的编译动态地送出HTML文件给客户端,而不像一般SCRIPT(JAVASCRIPT或VBSCRIPT)是在客户端通过浏览器执行,因而产生各家浏览器并不完全支持某种脚本语言而造成执行错误的现象;当客户端浏览器向服务器端要求一个.asp的文件(ASP文件的后缀名为,ASP)时,SEVER会将把这个ASP文件重头到尾给它读一遍,并加以编译执行(利用核心程序ASP.DLL的编译),最后送出标准的HTML格式文件给客户端,由于送给客户端的是标准的HTML文件,所以可以克服浏览器不兼容的问题。
ACTIVE SETVER PAGES开发WEB应用程序的特点:?
◆ 完全嵌入HTML,与HTML、SCRIPT语言完美结合。
◆ 无须手动编译或链接程序。
◆ 面向对象,并可扩展ACTIVE SERVER组件功能。
◆ 使用脚本语言(JAVASCRIPT、VBSCRIPT或PERL)编写。
◆ 存取数据库轻松容易(使用ADO组件)。
◆ 可使用任何语言编写自己的ACTIVEX SERVER组件。
◆ 无浏览器兼容问题。
◆ 程序代码隐藏,在客户端仅可看到由ASP输出的动态HTML文件。
◆ 编写容易,缩短WEB程序开发时间。
第四章 系统结构及库结构的设计第一节 网站目录与各网页及其功 能
/ 网站主目录
├admin0 后台管理目录
├bbs--data 数据库目录
│├pd.mdb 文本记数器的数据文件
│├yys7.mdb 主数据库,及时进行备份,可防下载
│└shop.asa 活动服务器文档
├bookpic 产品的图片
├guanggao 广告的图片
├images 系统程序图片文件夹
├skin 系统程序“皮肤”的文件夹
├about.htm 关于本站
├about.asp 个人头像,可按顺序添加
├bookorder.asp 论坛个性图片
├checkuserlogin.asp EM贴图
├class.asp 友情链接里LOGO的指定文件夹
├conn.asp 用户短信相关的图片和文件
├cookies.asp 默认的网站SKIN图片文件夹
├copyright.asp 网站版权
├css.css 网站大量小图片及公用图片文件夹
├dingdan.aspr 用户星级图片
├dongtai.asp UBB相关的图片
├edit.js 调查相关的图片
├Email.asp 网站背景图片
├fenleiinfo.asp 背景线图片
├fk.asp 网站背景2图片
├funtion1.asp
├getpwd2.asp 网站CSS配置文件
├gonggaoinfo.asp 鼠标文件
├gouwu.asp 用户登陆信息背景图
├lgouwucheinfo.asp
├help.asp
├history.asp ├hotinfo.asp
├index.asp 网站的主页
├jifen.asp 会员的积分
├jingpininfo.asp
├jszx.asp
├list.asp
├login.asp 登陆
├logout.asp
├ md5.asp
├ news.asp
├ newsinfo.asp
├ pinglun.asp
├ pinglunll.asp
├ pingpaiinfo.asp
├ qkgwc.asp
├ ram.ram 音乐
├ reg.asp
├ research.asp
├ savedingdan.asp
│└ logo.gif 网站左上角的标志图
├back_common.asp 配置备份文件
├webconfig.asp 配置文件
├conn.asp 主数据库连接文件
├conn_ip.asp IP数据库连接文件
├functions.asp 公共函数模块
├jk_md5.asp MD5加密模块
│├jk_ubb.asp 网站UBB支持模块
│├onlogin.asp 后台相关模块
│├skin.asp 网站主SKIN文件
│└其它..,config_栏目标识.asp为相关栏目的配置模块
├admin_login.asp 登陆后台入口
├prg 下载栏文件目录,可更名
├style 存放网站JS脚本
├upload 网站上传文件目录,可更名
├index.asp 空间首页
├main.asp 网站首页文件
├login.asp 登陆及注册文件
├help.asp 帮助信息文件
├links.asp 友情链接文件
└其它..,各栏目文件等第二节 系统结构、站点结构设计:
1.框架主页 Index.asp 访问数据库
进入购物商场:浏览、订购、放入购物车、修改购物车
检查商品、查询商品、清空商品、购物车中没有数据时显示的网页
2.库结构列举电子词典商品的分类储存于shop_anclass数据表中。
shop_anclass表字段名称
数据类型
长度
意义
anclassid
数字
0
分类编号
anclass
文本
50
分类名称
anclassidorder
文本
50
排列次序
fudongjia
文本
50
浮动价
电子词典的详细数据则储存于shop_books数据表中。
shop_books表字段名称
数据类型
长度
意义
bookid
数字
0
商品分类编号
bookname
文本
50
商品名称
pp
文本
50
商品厂商
jj
文本
50
单位
tp
文本
50
商品图片
jj
文本
50
商品价格
adddate
日期
商品发布日期
isbn1
文本
50
精介
isbn
文本
50
商品性能
pinpai
文本
50
品牌
liulancount
数字
0
浏览量
其他…
对于一笔订单数据我们必须分成两个部分来看,一个部分是订单基本数据,见shop_anclass表;另一部分是订单明细数据,见shop_books表。为什么要这样区别呢?因为订单基本数据是一张订单仅有一笔的数据,像订购者的姓名、订购的时间等数据,它们在一张订单中仅有一个值。而所谓的订单明细数据则是指订单中所订购产品的数据,我们知道在一张订单中,所订购的产品应不止一种,所以这类数据将不止一笔,如:订购产品名称、订购数据、单价等。这个时候必须利用两个数据表来分别储存这两类数据,然后在储存订单明细数据的数据表中,建立一个字段储存所属订单基本数据的编号。通过这个字段值的对比,便可串连出一笔完整的订单数据。
shop_his表字段名称
数据类型
长度
意义
ID
文本
50
订单编号
ltime
文本
50
订购时间
username
文本
50
订购者姓名
userid
数字
0
用户编号
bookid
数字
0
商品编号
searchkey
文本
200
搜索关键字
lx
数字
0
订购数量
第五章 系统实现的原理、思想和关键技术一.网上购物的一般过程网上购物与传统购物的过程有很大区别,这种区别表现在购物的各个阶段。网上购物的主要阶段如图所示,主要包括:网上浏览、选择网上商店;浏览网上商店,查询商品信息,订购网上商品;选择网上支付方式(电子或非电子)并付费;商家通过一定的发送渠道将购买的商品送到顾客手中。
由于购买的商品不同或网上商店提供的服务不同,上述过程的一些细节可能有所区别,但选择商店以及挑选商品的过程都是在网上实现的,这一点是相同的。调查表明,消费者现阶段选择在网上购物的主要原因依次是:便利(足不出户就可以随时购物,而且能方便检索自己所需要的商品);商品选择余地大(可以到很多网上商店买到平时难以买到的东西);特殊的服务(如商品定制、充分的信息等);时髦;价格便宜等。
二.网上购物系统的机制对于一个网上商店的建立,主要的核心技术有三个,
一是商品的展示,二是存放选购产品的购物车,三是交易数据的储存。
(一) 商品的展示整个网上购物系统主画面将被分割为两大部分,一是网上商品分类展示区,二是详细网上商品展示与订购列表区。在分类选择区中,将显示各种网上商品的分类,当您点选某个分类时,网上商品列表区就会显示出该分类的详细网上商品信息。而显示于这两个区的数据均储存于数据库中,当用户浏览网页时,便将从数据库中取得相关数据,并加于显示。
1,网上商品分类展示区的实现:
在class.asp 网页中,将利用RSTCATEGORY对象打开一记录集,然后从数据库中取得shop_anclass数据表的数据摘自class.asp网页文件
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from shop_gg",conn,1,1
dada=trim(rs("458"))
dadaurl=trim(rs("458url"))
xiao1=trim(rs("2541"))
xiao1url=trim(rs("2541url"))
xiao2=trim(rs("2542"))
xiao2url=trim(rs("2542url"))
xiao3=trim(rs("2543"))
xiao3url=trim(rs("2543url"))
tx1=trim(rs("1441"))
tx1url=trim(rs("1441url"))
tx2=trim(rs("1442"))
tx2url=trim(rs("1442url"))
tx3=trim(rs("1443"))
tx3url=trim(rs("1443url"))
接着,利用DOLOOP循环取得记录集中的网上商品分类数据,再利用这些数据建立,可控制详细网上商品展示区中显示某分类网上商品的超级链接。这些超级链接控制网上部件展示区显示特定分类网上商品的机制,主要是将欲显示之网上分类编号通过超级链接传递给bookorder.asp文件。该文件将依据接收到的分类编号输出该分类的网上商品。由于超级链接的TARGET属性被设定为shop_books,因此显示bookorder.asp文件的目标窗口为shop_books子窗口。
摘自bookorder.asp网页文件
<%dim anclassid,rs2,xx
anclassid=request.QueryString("id")
set rs=server.CreateObject("adodb.recordset")
set rs2=server.CreateObject("adodb.recordset")
if anclassid=0 or anclassid="" then
rs.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books order by chengjiaocount desc",conn,1,1
rs2.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books order by liulancount desc",conn,1,1
else
'yaosxia
if Not isChkInteger(anclassid) then
%>
<script language=javascript>
alert("参数错误!");
window.close();
</script>
<%
response.end
end if
rs.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books where anclassid="&anclassid&" order by chengjiaocount desc",conn,1,1
rs2.open "select top 20 bookid,bookzz,bookchuban,bookname,pingji,pingjizong,pingpai from shop_books where anclassid="&anclassid&" order by liulancount desc",conn,1,1
end if
if rs.eof and rs.bof then
response.write "<div align=center>目前还没有任何商品</div>"
'response.End
else
dim i
i=0
%>
2,详细网上商品展示与订购列表区的实现:
CLASS.ASP文件除了可以显示某特定分类网上部件的数据外,当某网上部件已经被选取至购物车时,则该部件的挑选栏与数量栏中的控件将会被设定为无效,这样当用户从其它部件分类画面又回到曾经来过的分类画面时,将可辨别出哪些部件已经被订购,而被设定为无效状态的控件在窗体送出数据时,也不会再传出值。
当执行CLASS.ASP时,必须先取得两种数据,一是欲浏览的网上商品分类数据,另一则是已经订购的数据。见如下语句:
摘自dingdan.asp网页文件
rs.open "select shop_books.bookid,shop_books.bookname,shop_books.shichangjia,shop_books.huiyuanjia,shop_action.actiondate,shop_action.shousex,shop_action.danjia,shop_action.feiyong,shop_action.fapiao,shop_action.userzhenshiname,shop_action.shouhuoname,shop_action.dingdan,shop_action.youbian,shop_action.liuyan,shop_action.zhifufangshi,shop_action.songhuofangshi,shop_action.zhuangtai,shop_action.zonger,shop_action.useremail,shop_action.usertel,shop_action.shouhuodizhi,shop_action.bookcount from shop_books inner join shop_action on shop_books.bookid=shop_action.bookid where shop_action.username='"&request.Cookies("snsn")("username")&"' and dingdan='"&dingdan&"' ",conn,1,1
if rs.eof and rs.bof then
response.write "<center>此订单中有商品已被管理员删除,无法进行正确计算。<br>订单取消,请通知管理员或重新下订单!</center>"
response.End
假若这两个数据有其中之一未正常取得时,则用如下语句建立一记录集,然后从数据库的shop_books数据表中自行取得分类编号与分类名称并显示之。
摘自COMPONENTSLIST.ASP网页文件
set cnndb=server.createobject("adodb.connection")?
cnndb.open "dsn=store;uid=;pwd="?
if categoryid=empty or category =empty then?
set rstcategory =server.createobject("adodb.recordset")?
rstcategory.open "select * from category",cnndb?
category=rstcategory("category")?
categoryid=rstcategory("id")?
rstcategory.close?
set rstcategory=nothing?
end if?
当dongtai.asp文件取得欲显示之分类编号后,便以该编号建立SQL语句,并利用shop_books对象执行语句,并取得记录集。其中利用DOLOOP循环将这些欲显示的网上商品数据建立为表格的方式。在输出的过程中,将判断每一笔商品记录的编号值是否已存在于LIST变量中,是则代表该商品已被选取,应把挑选栏与数量栏中控件的状态设定为无效,并利用被选商品的编号从SESSION对象中取得订购数量,且设定为数量栏的VALUE属性。见如下ASP语句:
摘自dongtai.asp网页文件
Response.Write(" 页次:" & page & "/" & pageCount & "页" & vbCrLf)
Response.Write(" 共有" & iCount & "种商品" & vbCrLf)
Response.Write(" 转到" & "<INPUT TYEP=TEXT NAME=page SIZE=1 Maxlength=5 VALUE=" & page & ">" & "页" & vbCrLf & "<INPUT type=submit style=""font-size,9pt"" value=GO class=b2>")
Response.Write("</TD>" & vbCrLf )
Response.Write("</TR></form>" & vbCrLf )
Response.Write("</table>" & vbCrLf )
(二)存放选购商品的购物车当用户在分类展示区中看到欲购买的网上商品时,只要点选该网上商品前挑选栏中的复选框,接着按下“放入购物车”按钮,便可将该商品放在购物车中。至于被选取至购物车的网上商品,将储存于shop_his对象中。
购物车就像是你逛超级市场时所推的手推车,购物者可以将欲选购的商品从展示架上拿下放入购物中,也可能把商品从购物车中再放回展示架上。所以,放进购物车中的网上商品仅用于暂存购物数据,方便使用者在各个商品的展示网页间闲逛时,能够储存欲购买的商品。
既然是暂存的数据,在用户浏览网页时,就不急着把它们写入数据库中,因为放入购物车中的商品,最后并不一定被购买。由于欲采购网上商品之数据是属于各联机的数据,所以,这些数据只要储存于shop_his对象中即可。
购物车中需要储存的数据主要有两种,一是选购的商品,二是选购的数量。在本软件中,我们将所有欲选购网上商品的部件编号以“,”串成个字符串,并利用shop_books对象的kucun 变量储存。换言之,当想要知道有哪些商品被选购时,只要判断kucun 变量中的值即可得知。
至于某网上部件的订购数量,则是储存shop_his对象中与该编号同名的变量。所以,当想要知道所有选取商品的订购数量时,必须先从bookid变量取得被选取网上部件的编号,然后以这些网上部件编号为变量名称,从shop_books对象中取得订购数量。见如下ASP语句:
摘自GOUWU.ASP网页文件
if kucun<=0 then
response.write "<script language=javascript>alert('你选购的商品“"&bookname&"”暂时缺货不能放到购物车里,请选购其它商品!');window.close();</script>"
response.end
end if
set rs=server.CreateObject("adodb.recordset")
rs.open "select bookid,username,bookcount,zonger from shop_action where username='"&checkFFSQLStr(username)&"' and bookid="&bookid&" and zhuangtai=7",conn,1,3
if rs.recordcount=1 then
if kucun<(rs("bookcount")+1) then
response.write "<script language=javascript>alert('你选购的商品“"&bookname&"”暂时缺货不能放到购物车里,请选购其它商品!');window.close();</script>"
response.end
end if
rs("zonger")=(rs("bookcount")+1)*danjia
rs("bookcount")=rs("bookcount")+1
(三)交易数据的储存当用户完成欲选购的网上商品后,接下来要做的就是送出订单。送出订单的动作主要包含了两个主要的动作,一是取得订购者基本数据,二是将订购者基本数据与欲订购网上商品写入数据库。
对于一笔订单数据我们必须分成两个部分来看,一个部分是订单基本数据,另一个是订单明细数据。为什么要这样区别呢?这是因为订单基本数据是一张订单仅有一笔的数据,像订购者的姓名、订购的时间等数据,它们在一张订单中仅有一个值。而所谓的订单明细数据则是指订单中所订购产品的数据,我们知道在一张订单中,所订购的产品应不止一种,所以这类数据将不止一笔,如:订购商品名称、订购数量、单价等。这个时候必须利用两个数据表来分别储存这两类数据,然后在储存订单明细数据的数据表中,建立一个字段储存所属订单基本数据的编号。通过这个字段值的对比,便可串连出一笔完整的订单数据。
首先,用jszx.asp网页完成用户基本数据的输入完成确认后请填写您的基本数据收货人姓名:
性 别,
详细地址:
邮编:
(我们将按邮政编码划分送货区域,请您正确填写!)
电话:
电子邮件:
然后,用jszx.asp网页处理用户基本数据与订购数据的储存。
(四)选择FLASH MX制作首网页动画
FLASHMX 是MACROMEDIA 公司最新推出的矢量动画制作与发布软件。FLASH诞生于1996年,受限于网络技术和网络的普及,FLASH1和FLASH2都未得到应有的重视。1998年 MACROMEDIA公司推出了FLASH3,人们好像突然发现它对于网页可能产生的巨大影响。事实上,它已经采用了流式播放技术,所制作的动画播放文件大小只有同类软件的几分之一甚至十几分之一,对于网页的正常浏览几乎毫无影响,而且能够制作出眩目的动画效果。就这样,它逐渐成为交互式矢量动画的标准,也是网页制作引用动画的标准。标题变形字文字块淡入淡出(遮罩技术)
制作提要:
1,让标题由鼠标移动形成颜色渐变成。
2,让文字块“产生移动渐变”(Create Motion Tween),由下往上跑。以文字当做会移动的“遮色片”。(text层)
3,利用渐层色来当做“显示遮色片”(shadow层)使得往上跑的文字显露出渐渐融入背景的颜色。
4,电影的背景颜色(此处使用淡绿色)必须与“显示遮色片” 里的淡绿色完全相符,才能不露破绽的呈现出此文字淡出的效果。
关键操作:
一,变形字动画设计:
关键将第1帧七彩圆,按窗口-->面板-->帧-->变化-->图形;设计文字单击第30帧输入文字,然后修改-->打散-->分别设置颜色(框字变色)。
二、文字块淡入淡出
1,制作渐层的“显示遮色片”:(shadow层)
(1) 新增一元件(Ctrl+F8),指定元件名为balloon属性为图像(graphic)。
(2) 键入“文字框框”,破除此框的群组关系,执行“执行/打散”(Modify/Break Apart) 。调配渐层色彩:利用“油漆桶”工具调配一个由淡绿渐渐变成深蓝色的直线渐层,并且让背景与淡出文字100%相融,记取背景淡绿色的RGB的数值。
(3) 编辑“显示遮色片”的渐层方向、中心点:使用“编辑渐层”工具,拖动线条上小圆圈旋转,使得渐层的变化方向是由上往下渐变,由淡绿变成深蓝的渐进色彩。然后调整绿色、深蓝的多寡比例。
2,安排“遮色片”层(text层)
(1)新增text图层,从图库拉进text元件,在100帧处指定关键帧,右键单击第1帧,做出“产生移动渐变”
(2)产生“遮色片”效果:单击text图层,按下鼠标右键选择遮蔽(Mask)选项,使用权得图层text成为遮色片。至于下面的图层Shadow会自动成为“显示遮色片”。
第六章 系统运行效果及改进意见系统运行效果,自我总体评价,测试结果在系统的开发过程中,使用FRONPAGE2000进行设计,使用PWS个人服务器和IE浏览器进行测试、实时调试。使用ACCESS进行数据库的修改和设计。充分体现了WEB开发网络数据库管理系统的方便和直观性。通过INTERNET上实际应用和测试,总结出以下的运行效果。
1,用户端要求比较简单,只要求有IE浏览器,能登陆主机就能使用,而且与软件无关,系统的所有设计,数据,程序,调试均在服务器端完成。
2,用户使用容易,简单快上手,用户只要掌握基本的上网知识,在通过简单的示范便可轻松应用。
3,系统运行稳定,当设计阶段的调试通过后,基本上就可连上网站使用,服务器端的后台数据库的运行,网站的运行,用户的WEB响应都能很好的运行。
4,数据的安全性较高,所有的数据均放在服务器端。
5,系统的网络动作性能高,使用高性能的服务器就能流畅的完成整个系统的中央枢纽管理工作,客户端的使用十分流畅。
6,系统的可维护性、可扩展性很好,由于WEB应用系统是解释语言,因此根据系统要求的不断变化,都能轻松的通过修改、添加网页来完成,使系统具有较长的使用寿命。
改进意见:
由于毕业设计时间关系,系统的其它功能还来不及实现,界面的美观性有待改进,商品直观性较差。特别遗憾的是由于各方面技术问题(特别是银行还没建立网络银行,实现电子货币功能)的关系不能实现付款方式的电子化。
结束语经过二个多月的艰苦努力,网上商城的设计工作圆满结束,并取得了理想成绩和效果。但是,回想这段日子,我们是在充满压力、面对许多困难中挺过来的。首先,本系统采用ASP对象技术、JAVASCRIPT脚本语言、HTML标识语言及ACCESS数据技术综合开发出来的网上网上销售系统,而此之前我只学过有关的网络知识,对于ASP对象技术、JAVASCRIPT脚本语言、HTML标识语言及ACCESS数据技术的知识我是完全陌生的;其次,开发网上网上销售系统首先要熟悉FrontPage、Dreamweare、Asp工作原理,和要解决的Web页面与数据库的连接,而这些东西对于我们来说亦是相当生疏的,甚至是一窍不通的;最后,我们还要在白天8小时的繁重工作之后,上完其他考试课程的时间里彻夜继续奋斗四、五个小时,有时达6、7个小时,基本上每天只得5、6个小时睡眠时间,但是,在压力和困难面前我并没有低头,没有退缩和逃避,我积极查找有关资料,购买有用的工具书,从头开始学习ASP对象技术、VBSCRIPT脚本语言、HTML标识语言及ACCESS数据技术等有关知识和编程技巧,熟悉FRONPAGE2000、ACCESS、PWS、FLASHMX、DREAMWEAVERMX等开发工具的使用和操作,同时也从头开始学习网络知识,掌握基于Web的数据库开发的工作流程,理解各种网络专业术语,遇到不能解决的问题采取多查资料、上机调试,请教老师和同学等多种途径解决。经过这次毕业设计后,使我掌握了FRONPAGE2000、ACCESS、PWS、FLASHMX、DREAMWEAVERMX的使用和上机操作,学会了HTML标识语言如何结合Asp对象、VBSCRIPT脚本语言、ODBC技术进行动态网页的制作。总之,经过本次毕业设计,培养了自己不怕苦不怕劳,勇往直前的精神,大大提高了自己的自学能力和解决问题的能力,大大丰富了自己的专业知识和专业技能。
声明:网上商店系统中所用到的如下名称TOYI、www.toyi.com、GUOLAN、宿迁信息技术服务中心、QQ38857676、以及所出现的电话号码和Email地址均为本人所经常使用的,并非他人名称。
致谢:
参考文献:
《ASP 网站开发四“酷”全书:新闻、论坛、电子商城、博客——网站开发专家,作者:万峰科技 出版社:电子工业出版社 出版日期:2005-8-1
《ASP+Access组建动态网站实例精讲,作者:龙马工作室 出版社:人民邮电出版社 出版日期:2005-6-1
《动态网站开发教程(第二版),作者:陈建伟李美军施建强 等编 出版社:清华大学出版社 出版日期:2005-1-1
《ASP数据库开发实例精粹——开发专家之数据库,作者:郭瑞军 李杰 初晓璐 等编 出版社:电子工业出版社 出版日期:2005-2-1
《ASP与网络数据库技术,作者:邓文渊 陈惠贞 陈俊荣 等编 出版社:中国铁道出版社 出版日期:2004-1-1
《Access数据库系统项目开发实践》作者:苏瑞 等编 出版社:科学出版社出版日期:2005-5-1
《Access数据库设计基础,作者:桂思强 编 出版社:中国铁道出版社 出版日期:2003-9-1