网上拍卖系统设计与实现

网上拍卖系统设计与实现[java毕业论文下载]

摘要

随着现代计算机科学的发展,计算机信息系统越来越受到重视,网上拍卖已经成为人们日常生活的一部分。本文首先介绍开发工具ASP,接着介绍了ASP的数据访问技术,最后详细讲解了用ASP开发的教师评测系统,这一部分主要包括数据库的建立和系统功能的实现(公共用户模块,管理模块),最后说明了系统存在问题和前景展望。

 

 

 

关键词:网上拍卖系统,数据库,ASP技术

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abstract

With the development of modern computer science, computer information systems take more attention,on the net auctioned already becomes the people daily life a part. The first presentation development tool ASP, and then introduced the ASP data access technologies, finally in detail explained development the online auction system using ASP. This part including database creation and the system function realization (the public user module, the administration module).Finally expound the matter and shortage of the system, in order to ameliorate better in the future .

 

 

 

 

 

Keywords: The Online Auction System The Data Base, ASP Technology

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一章 引言

随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,在众多的网络服务中,Web给人耳目一新的感觉,而在这其中,网上购物已经日渐普及,而且网上购物发展到今天,已经成为任何人可以在网络所提供的平台上进行买卖的新型购物方式。在众多网络开发技术中,ASP技术是当前相当热门,因为它可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理。

这套网上拍卖系统正是当今技术发展的产物,它是一套用ASP开发的能在网上进行的商品交易的拍卖系统,它是基于C2C,而C2C的含义也就是是消费者(consumer)与消费者(consumer)之间的电子商务,通俗地讲就是个人与个人之间通过网络进行交易的电子商务类型,它的好处在于能够不用交房租、不用雇佣伙计、一天24小时随时能进行服务等等。此论文主要阐述的就是使用ASP技术的基于c2c的网上拍卖系统。

第二章 ASP技术

2.1 ASP产生的历史

最初,当网络技术兴起的时候,基于WEB的应用程序是有包含静态内容的HTML页面组成,这些页面不能够根据用户执行的操作进行动态响应。这种类型只是提供了用户与网站之间受限制的交互。随着浏览网站的用户数量的增长,产生了对于动态响应用户操作的WEB页面的需求,为了是开发者创建带有动态内容的WEB页面,Microsoft公司的ASP由此产生。使用ASP,能构创建具有交互性的商业应用程序。如交互式动态网页,对数据库的数据的操作,表单收集和处理信息,上传与下载等等。

2.2 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系统。

2.3 ASP的工作过程

1. 浏览器向WEB服务器发送一个对ASP页面的请求。

2. WEB服务器接受请求并且从内存或者硬盘之中检索ASP文件。

3. WEB服务器将请求转发给一个名为asp.dll的文件来执行。

4. ASP文件将包含在符号<%和%>之中的命令自动而下的执行。当遇到任何与Active脚本兼容的脚本(如VBScript 、JavaScript)时ASP引擎调用相应的脚本引擎解释执行其中的脚本命令,若脚本中含有访问数据库的请求,则通过ODBC连结后台数据库,由数据库访问组件ADO(Active Data Object)执行访库操作,最后执行的结果是一个标准的HTML文件。

5. 将HTML文件送回到服务器。

6. WEB浏览器解释HTML文件,并且显示结果。

    

 

 

 

 

 

 

2.4 ASP对象

ASP提供一些内建对象,包括一些方法,属性。对象的方法用来和对象一起执行一些任务。对象属性用来设置对象指定状态的值。主要对象说明如下:

SERVER对象:这个对象用来提供对于WEB服务器的方法和属性的访问。它提供创建一个对象的实例,设置一个脚本的超时范围以及编码字符串等方法。它能够存储用户定义的变量,并且还包括那些直接和服务器联系的变量。

REQUEST对象:这个对象用来判定关于通过一个HTTP请求传递的特定的用户请求的信息,比如该请求是一个GET请求还是一个POST请求,以及在头文件之中的COOKIES等。

RESPONSE对象:这个对象用来控制从服务器发送给客户端的响应

APPLICATION对象:这个对象用来处理所有应用程序共享的WEB应用程序。WEB应用程序是一个脚本和WEB页面的集合。

SESSION对象:这个对象用来存储一个特定用户会话所需要的用户信息。在SESSION对象之中存储变量信息在用户浏览WEB应用程序的整个会话期间都得以保留。ASP引擎使用客户端COOKIES 来跟踪客户。存储在Session对象之中的变量对于用户是可以得到的,即使用户在应用程序之中正在浏览页面。

2.5 ASP的安全特性和优点概括

ASP的安全特性是由于ASP脚本是在WEB服务器上进行处理的,WEB服务器产生传送给浏览器的WEB页面,因此,浏览器的出现问题不会影响到脚本的处理。ASP的另一个安全特性是用户不能观看到并且复制到创建的脚本文件,因为发送给浏览器的只是处理结果。

ASP的主要优点大概可以归纳如下:

     1、可以用 VBScript 或JScript创建脚本,同时结合HTML语言就能够非常方便地完成网站的应用程序。对于VBScript和JScript,使用哪种语言并不重要,Web 服务器等同地处理这两种语言,并向用户的浏览器发送 HTML 格式化结果。

     2、因为ASP采用Script语言(VBScript和JScript)就可以轻松编写程序,因此这就大节省了网络设计人员又得重新学习一种新语言的时间。而且编写ASP无须手工compile编译或链接程序,可在服务器端直接执行,这无疑是更加方便了我们的编写过程。

     3、使用普通的使用记事本之类的文本编辑器,即可进行编辑设计,如:Windows的记事本。建议不要用FontPage98或DreamWeaver2.0等主页制作软件修改,因为他们会破坏源代码的。在这里我建议使用CuteFTP携带的CuteHTML编辑器进行编辑设计。

 4、ASP是运行在服务器端,所以我们无须担心浏览器是否支持ASP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。ASP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。

第四章 ASP数据访问技术

4.1 Access2000数据库简介

Access关系型数据库管理系统是Microsoft公司Office办公自动化软件的一个组成部分。它可以有效地组织、管理和共享数据库的信息,并将数据库信息与Web结合在一起。为通过Internet共享数据库信息提供了基础平台。Microsoft Access 2000致力于以下两个关键领域。首先,Access 2000简化了创建简单而有用的数据库所需要的能力集合--改进的界面提供了与其他Office应用程序的更高一致性,并且包含可提高工作效率的新特性。其次,Access 2000增加了数据访问页面(DAP)--即允许用户通过Web进行数据交互,并与数据库保持有效链接的Web页面。

4.2 ASP访问数据库原理

ASP是一个服务器的脚本环境,内嵌在HTML页面中的脚本程序在这里运行并建立Web服务器应用程序。在ASP脚本中可以通过三种方式访问数据库:传统的IDC(Internet Database Connector)、ADO(ActiveX Data Object)和RDS(Remote Data Server)。其中ADO是ASP内置的数据库存取组件,各种脚本和语言均可调用它实现对数据库的直接访问,并利用相应的数据接口显示查询结果。ADO拥有强大的活力,它是位于ODBC和OLEDB之上的高性能数据库操作接口,提供了开放的数据操作对象模型,允许开发人员使用任何语言和统一的编程模式操作各种与ODBC和OLEDB兼容的数据库,如Microsoft Access、FoxPro、Microsoft SQL Server、Oracle等。ADO的简单易行、应用广泛使之成为ASP访问数据库所采用的最佳选择。这种对数据库的访问方式是由Internet Information Server来完成的。执行过程如图所示:

A)浏览器:用户通过Web浏览器用HTTP协议向Internet信息服务器(IIS)发出请求。

B)服务器:服务器检查网页文件的类型,对扩展名是.asp的文件服务器调用ASP系统程序,解释执行被请求页面文件的所有脚本命令。若脚本中含有对数据库的请求,服务器就执行连接访问数据库的操作,并将结果以HTML格式送回用户浏览器作为响应。

C)数据库:储存了动态交互所需的信息数据,用户可通过指令对其进行查询、修改、添加、删除等操作。

 

4.3 使用ADO访问Web数据库

使用ASP通过ADO访问数据库,主要有以下步骤:

(1)确定数据源,连接数据库。ADO提供Connection对象,可以使用该对象建立和管理应用程序和ODBC数据库之间的连接。Connection对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。要建立数据库连接,首先应创建Connection对象的实例。例如,下面的脚本创建Connection对象,接着打开数据库连接:

set conn  =  Srever.Create Object ("ADODB.Connection")

conn.Open "Driver = {Microsoft Access Driver(*.mdb)}";

DBQ="& Srever.Map Path("数据库文件")"

在这种情况下,Connection对象的Open方法引用基于DSN的文件,其中包含关于数据库的位置和配置信息。也可以不引用DSN,直接显式引用供应程序、数据源、用户ID和密码。下面给出Access数据库的连接方法:

<% set conn = Srever.Create Object("ADODB.Connection")

conn.Open" Driver ={Microsoft Excel driver(*.mdb)};

DBQ ="& Srever.Map Path("数据库文件")%>

(2)使用“Server.CreateObject”建立ADO的连结对象;

如:Set Conn=Server.CreateObject("ADODB.Connection")

(3)通过Connection对象的“Open”方法打开数据库;

如:Conn.Open "数据库名称" ["用户名","密码"]

(4)表单中提取信息,构造处理数据库的SQL命令并使用“Execute”命令执行访问数据库的操作,并将返回的结果集储存到Recordset中。

如:Set RS=Server.CreateObject("ADODB.RecordSet")

RS.Open SQL命令,Conn,1

或 Set RS=Conn.Execute("SQL命令")

(5)使用recordsets对象提供的方法和属性,完成SQL结果集的处理,并显示结果;

如:

         RS.Fields.Count         RecordSets的字段数

         RS(i).Name             第i个字段名

         RS(i)                   第i个字段名的记录

         RS(”字段名”)          指定字段的记录

         RS.EOF               是否指向最后一个字段True or False

         RS.MoveFirst            指向第一条记录

         RS.MovePrev             指向前一条记录

         RS.MoveNext           指向后一条记录

         RS.MoveLast            指向最后一条记录

         RS.GetRows              将查询结果存放在数组中,然后在从数组中读取

         RS.Properties.Count       得到ADO的Connection或ResultSet的属性总数

         RS.Properties(Item).Name 得到ADO的Connection或ResultSet的属性名称

         RS.Properties             得到ADO的Connection或ResultSet的属性值

(6)关闭Recordsets结果集和数据库

使用如下命令:

RS.Close

Conn.Close

4.4

4.5

第五章 使用ASP开发网上拍卖系统

5.1 开发所使用的过程模型

在开发此套系统之前,首先要按照软件工程的方法确定所使用的开发模型,利用软件工程的相关知识,确定采用的过程模型是快速原型。

快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。
     由于种种原因,在需求分析阶段得到完全、一致、准确、合理的需求说明是很困难的,在获得一组基本需求说明后,就快速地使其“实现”,通过原型反馈,加深对系统的理解,并满足用户基本要求,使用户在试用过程中受到启发,对需求说明进行补充和精确化,消除不协调的系统需求,逐步确定各种需求,从而获得合理、协调一致、无歧义的、完整的、现实可行的需求说明。又把快速原型思想用到软件开发的其他阶段,向软件开发的全过程扩展。即先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统。快速原型的表示图如下:

 

原型表示图

5.2 后台数据库建立

利用数据库原理相关知识,对数据库设计和每个模块、每个界面的具体设计。此系统采用的数据库软件是Microsoft Access。

进行分析设计后,应该用Access建立17张表。各表结构信息具体见如下表1——表17。

 

字段名

数据类型

说明

id

自动编号

管理员的自动编号

username

文本

管理员的姓名

password

文本

管理员的密码

flag

数字

管理员标志位

表1管理员表

 

字段名

数据类型

说明

auc_ID

自动编号

拍卖商品自动编号

auc_Ended

文本

拍卖商品结束标志

auc_EmailsSent

文本

拍卖商品email标志

auc_ItemOwner

数字

拍卖商品拥有人

auc_ItemTitle

文本

拍卖商品名称

auc_ImageURL

文本

拍卖商品图片地址

auc_AvailDate

日期/时间

拍卖商品开始时间

auc_CloseDate

日期/时间

拍卖商品结束时间

auc_StartingBid

数字

拍卖商品开始价格

auc_ReservePrice

数字

拍卖商品预定价格

auc_MinimumIncrement

数字

拍卖商品涨幅价格

auc_CurrentBid

数字

拍卖商品目前价格

auc_CurrentBidder

数字

拍卖商品出价人

auc_Description

备注

拍卖商品描述

auc_Buyprice

数字

拍卖商品买卖价格

auc_Catid

数字

拍卖商品类别编号

auc_Limitornot

文本

拍卖商品限制

auc_Oldornew

文本

拍卖商品新旧程度

auc_Mendornot

文本

拍卖商品有无保修

auc_Invoiceornot

文本

拍卖商品有无发票

auc_Feeofdeliver

文本

拍卖商品运费支付方

auc_Meansofpayment

文本

拍卖商品支付方式

auc_MeansofDeliver

文本

拍卖商品运用方式

auc_Num

数字

拍卖商品数量

auc_Bidtimes

数字

拍卖商品出价次数

auc_Isbuygoods

文本

拍卖商品已够数量

auc_Numleft

数字

拍卖商品剩余数量

auc_Clicknum

数字

拍卖商品点击数量

auc_stop

文本

拍卖商品是否终止

auc_upshelf

文本

拍卖商品是否上架

auc_show

文本

拍卖商品是否显示

表2 拍卖商品表

 

字段名

数据类型

说明

bidID

自动编号

出价自动编号

bidItemID

数字

出价商品编号

bidAmount

数字

出价数

bidDate

日期/时间

出价时间

bidBidderID

数字

出价人编号

bidsellerid

数字

卖方编号

bidnum

数字

出价数

bidstat

文本

是否已经出价

表3 出价表

 

字段名

数据类型

说明

careID

自动编号

关注商品自动编号

careitemid

数字

关注商品编号

careownerid

数字

关注商品拥有者编号

表4 关注商品表

 

字段名

数据类型

说明

ID

自动编号

关注商店自动编号

careshopid

数字

关注商店编号

careownerid

数字

关注商店拥有者编号

表5 关注商店表

 

字段名

数据类型

说明

CatID

自动编号

类别编号

CatName

文本

类别名称

ParentID

数字

类别父名称

ParentStr

文本

类别

Depth

数字

类别深度

RootID

数字

类别根目录编号

Child

数字

类别的子类别

orders

数字

类别定购

表6 商品类别表

 

字段名

数据类型

说明

get_ID

自动编号

购买商品自动编号

get_ItemID

数字

购买商品编号

get_Date

日期/时间

购买商品时间

get_BuyerID

数字

购买商品者编号

get_num

数字

购买商品价格

get_Amount

数字

购买商品数量

get_bidid

数字

购买商品出价编号

get_sellerid

数字

卖家编号

get_type

数字

购买商品类型

表7 购买商品表

 

字段名

数据类型

说明

grade_id

自动编号

等级自动编号

grade_name

文本

等级名称

grade_value

数字

等级价值

grade_credit

数字

等级信用

表8 等级表

 

字段名

数据类型

说明

msg_id

自动编号

消息自动编号

msg_aucid

数字

拍卖消息编号

msg_content

文本

消息内容

msg_writedate

日期/时间

消息产生时间

msg_reply

文本

消息回复

msg_fromid

数字

消息发送编号

msg_toid

数字

消息到达编号

表9 消息表

 

字段名

数据类型

说明

newsid

自动编号

新闻自动编号

newstitle

文本

新闻标题

newsbody

备注

新闻内容

newsdate

日期/时间

新闻产生时间

newscatid

数字

新闻类别编号

表10 新闻表

 

字段名

数据类型

说明

id

文本

访问编号

username

文本

访问者姓名

userid

数字

访问者编号

ip

文本

访问者的ip地址

startime

日期/时间

访问时间

lastimeact

日期/时间

离开时间

browser

文本

浏览器类型

actCome

文本

访问动作

actonpage

文本

访问页面

表11 访问表

 

字段名

数据类型

说明

pj_ID

自动编号

评价自动编号

pj_aucid

数字

评价拍卖编号

pj_type

数字

评价类型

pj_Date

日期/时间

评价时间

pj_content

文本

评价内容

pj_fromid

数字

评价出处编号

pj_toid

数字

评价到达编号

pj_asbuyer

文本

评价买方

表12 访问表

 

字段名

数据类型

说明

shopID

自动编号

商店自动编号

shopownerid

数字

商店所有者编号

shopname

文本

商店名称

shopopenDate

日期/时间

商店开张时间

shopdescription

文本

商店描述

shopcat

数字

商店类别

shopnotice

文本

商店标识

shopdeliver

文本

商店陈述

shopgrade

数字

商店等级

shoplogo

文本

商店logo图标

表13 商店表

 

字段名

数据类型

说明

shopshelf_id

自动编号

货架自动编号

shopshelf_name

文本

货架名称

shopshelf_owner

数字

货架所有者

表14 货架表

 

字段名

数据类型

说明

tj_id

自动编号

推荐自动编号

tj_aucid

数字

推荐的拍卖编号

tj_title

文本

推荐内容

tj_shopownerid

数字

推荐商店所有者编号

表15 推荐表

 

字段名

数据类型

说明

up_id

自动编号

自动编号

up_aucid

数字

上架拍卖编号

up_shelfid

数字

上架商品编号

up_shelfowner

数字

上架者

表16 商品上架表

 

字段名

数据类型

说明

regID

自动编号

用户自动编号

regAdmin

文本

用户是否为管理员

regValidated

文本

用户是否有效

regUsername

文本

用户使用名称

regPassword

文本

用户密码

regName

文本

用户名字

regEmail

文本

用户email

regAddress1

文本

用户地址1

regAddress2

文本

用户地址2

regCountry

文本

用户国家

regCity

文本

用户城市

regState

文本

用户地区

regZip

文本

用户邮政编码

regTime

数字

用户注册时间

regCredit

数字

用户注册信用卡

regSex

文本

用户性别

regTel

文本

用户电话

regQuestion

文本

用户密码提问

regAnswer

文本

用户密码回答

regChkno

文本

用户验证码

regEmailValidated

文本

用户email有效性

regIdcard

文本

用户身份证号码

reghaoping

数字

用户好评

regzhongping

数字

用户中评

regchaping

数字

用户差评

reggrade

数字

用户等级

reggoods

数字

用户商品

表17 推荐表

 

然后是根据对该系统做出的整体的分析和设计,开始在FRONTPAGE环境下使用HTML、VBScript、JavaScript等语言相互嵌套进行系统开发设计,通过ADO——ActiveX Data Objects,将程序语言ASP与数据库ACCESS建立连接,以实现相关功能。另外辅助使用Photoshop等处理软件做界面的优化设计工作。

5.3 模块功能实现

本系统主体上可以分为两个子模块:公共用户模块和管理者模块。

5.3.1 公共用户模块

1) 主页(如下图)

 

这是由管理员及普通用户或者游客可以使用的,管理员可以通过不同的用户名和密码进行登陆,进入相应的管理界面,行使系统所赋予的不同权力,而考生可以通过单击“用户登陆”登陆。

    在主页上还显示了商品分类,方便用户浏览,查找商品(如下图)

 

这部分的代码如下:

‘从分类表中取出商品数据

<%sql="select * from cat where depth=0 order by rootid,orders"

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,1,1

if rs.eof then

response.write "<tr><td>还没有分类呢</td></tr>"

end if

i=1

do while not rs.eof

If i mod 2 = 1 Then

Response.Write "<tr valign=""top"">"

End If%>

                  <td width="90%" height="24">

                    <table width="249" border="0">

                      <tr>

                        <td width="50%"><a href="cat.asp?catid=<%=fval(rs("catID"))%>"><font color=#FF6600><%=rs("catname")%></font></a> <br>   

                            <%  If rs("child")>0 Then

sqls="select * from cat where ParentStr like '%"&rs("catid")&"%' and depth<2"

set rs1=server.createobject("adodb.recordset")

rs1.open sqls,conn,1,1

if not rs1.eof then

for n=1 to 30

Response.Write "<a href=""cat.asp?catid=" & fval(rs1("catID")) & """>" & rs1("catname") & "</a>  "

if n mod 4 = 0 then Response.Write "<br>"

rs1.movenext

if rs1.eof then exit for

next

end if

else

Response.Write "暂无二级分类!"

End If%></td>

                      </tr>

                    </table>

                    <%rs.movenext

If rs.eof AND i mod 2 = 1 Then

Response.Write "<TD colspan=2> </TD>"

End If

If i mod 2 = 0 Then

Response.Write "</TR>"

End If

if i=30 then exit do

i = i + 1

loop

%>

2) 浏览商品

点击主页上按钮“买东西”或者主页上商品分类,可以进入浏览页面(如下图)

浏览是用户或者游客都可以进行的。

 

用户可以点击想浏览的商品类别进入(如下图)

 

3) 用户登陆

只有当用户登陆后,才能进行买卖商品。

点击主页上按钮“卖东西”或者“用户登陆”,进入登陆页面(如下图)

检验登陆代码如下:

uname=request("BJXname")

upass=md5(request("BJXpass"))

userIP=replace(replace(Request.ServerVariables("REMOTE_HOST"),".",""),"'","")

    ‘从表user查询相应字段

sql="select * from users where regUsername="&sqlstr(uname)&" and regPassword="&sqlstr(upass)&""

set rs=conn.execute(sql)

if not rs.eof then

session("user")=uname

session("userid")=rs("regid")

user=session("user")

userid=session("userid")

founduser=true

response.redirect path

response.end

else

response.Write("<script language=javascript>{alert( '" & BJXloginerr1 & "');location.href='losspass.asp';}</script>")

 

 

 

网上拍卖系统设计与实现[点击下载]

如需要全部源码,联系QQ:2812491287如需要全部源码,联系QQ:2812491287

评论