(精品)网上购物系统_毕业论文

小型网上购物系统

内容摘要

本文以当今流行的jsp 技术开发设计了”小燕子网上购物”交互式电子商店系统。采用结构化生命周期法,自顶向下、逐层分解,模块化的系统结构设计。全文共分为序言、系统需求分析说明、总体设计、数据库设计、界面设计、程序设计、测试和使用说明等八章。绪论中阐述了电子商务的起源与电子商务的意义。软件计划中阐述了市场调查、可行性研究、软件工程方法以及构建本网站所需的开发环境。需求分析阶段阐述了本网站的功能需求、外部接口的需求,将来可能提出的功能需求,并设计系统的逻辑模型。总体设计中阐述了网站的总体设计思想、首页的设计、网站的总体功能设计以及数据库的逻辑设计。在软件的详细设计中阐述了数据库的详细设计、网站各模块功能的具体实现,完成了本系统的Jsp 交互式电子商店的系统。文中详细说明了系统分析、系统设计的方法在系统实际开发中应用,并总结了开发过程中的一些经验和体会。

关键字:JSP;SQLserver2000;Tomcat; 网上购物系统

Online Shopping System

Abstract:

The "Flying Swallow online shopping is an E-store interactive system, which is based on today's popular technology development jsp. With the use of a structured life-cycle method, top-down, layer by layer decomposition, modular design of the system architecture.The whole article is divided into eight chapters,such as: The analysis of the system, The total design,The database design, The interface design, The design of procedures, The test and The use of description,. The introduction of e-commerce relate the origin and significance of e-commerce. Software program describe the market research, the feasibility studies, the methods of software engineering and the environment of this site required. Through the section of needs analysis readers can know the functional requirements of this site, the external interface of the demand and the future demand, which may design the logic model design system. The overall design tell us the overall design of the site of thought, the , web site design, as well as the logical database design. The detailed design of the software described in the detailed design of the database, the realization of Web site of the module‘s function pleting the system interactive electronic stores Jsp system. The article details the system analysis, system design method in the actual development of systems applications, and summarizes the some of their experience in this process.

Key words :JSP;SQLserver2000;Tomcat,System of Shopping

目 录

1序言 .............................................................. 1 2系统需求分析说明 .................................................. 2

........................................................................................................... 2 3总体设计 .......................................................... 3

4数据库设计 ........................................................ 5

5页面设计 .......................................................... 9

6系统详细设计 ..................................................... 12

7 测试 ............................................................ 32

8使用说明 ......................................................... 34

参考文献: ......................................................... 35 致 谢 ............................................................ 36

1序言

随着Internet [1]的发展,计算机软件系统不断的应用于各个领域,比如银行,超市,图书馆等。这些计算机软件系统给管理人员带来了极大的方便,提高了工作效率,减少工作人员工作量。就拿图书销售来说,网上书店[已走进我们的生活中。通过它,我们购买图书更加的方便,便捷,也给经销商对书籍的,采购,统计等管理范围[2]内带来很大的方便。

通过对java [3]相关知识的认真学习,我决定做一个简单的网上书店系统[4],把自己所学的知识用到实践中去,同时通过这次系统的编制来检验一下我用java 编程的能力,对我平时所学的知识做一个总结。

2系统需求分析说明

2.1系统介绍

本系统是建立在Windows 平台上,基于BS 结构[5]的一个简单网上书店。通过这个网上书店,可以更加方便地管理图书和销售图书。 2.2 功能需求

通过对当当网, 卓越网等网上书店的认识和分析,我对网上书店有了基本的了解,我觉得该系统至少应该具有以下的一些基本功能:

(1) 注册管理:能够对用户名,密码的简单验证;能够对电子邮箱,Email

进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的用户不能重复注册。

(2) 商品浏览:分类显示商品;显示商品详情,提供购买链接;可以对商

品进行模糊查询;显示当前用户的浏览记录。浏览商品时不要求用户登录,但下订单前用户必须登录,对于浏览过的商品有历史记录。 (3) 购物车管理:欲购买商品可以增添到购物车;也可以从购物车退回商

品,清空购物车;对于同一件商品的多次购买只能在原来的商品上增添数量,还可以修改购物车中某个商品的数量,统计商品总金额。 (4) 订单管理:只有登录的用户可下订单;用户可以查看自己的订单。管理

员可以修改订单的状态;也可以按某个时间段,状态查询订单及分页列表显示查询结果。

(5) 商品评论:显示某个商品的所有评论,只有登录用户才可以对某个商

品发表评论,没有登陆时候跳转到登陆页面。

(6) 商品管理:管理员可以增添商品分类;修改商品基本信息;增添商品

时候可以上传图片;商品基本信息删除的时候,存在订单的商品不能够被删除。

(7) 注册用户管理:管理员可以通过查询指定用户,并管理用户的启用,

冻结,和重置密码。

2.3 其他要求

(1)页面要求:对于主要页面要注意美观,简洁。 (2)时间要求:要在指定的时间里面完成本系统 (3)系统要求:系统要有运行稳定

3.1总体结构和模块设计[6]

(1)前台部分由用户使用,包括用户注册,购物车,我的订单,商品浏览,个人管理等几个部分。

(2)后台部分由用户管理,订单管理,商品管理等几个部分。 功能结构图如下:

图3.1 功能模块设计图

3.2处理流程 业务流程如下:

图3.2 .业务流程图

4.1数据库结构属性图

图4.1 E-R图

4.2数据库表格设计 1.图书分类表

Table: bookType 说明:图书类型表

列名 bTypeId bTypeName

说明 代理主键 类型名称

类型 Int(4) varchar(20)

自增

备注

允许为null

bTypeDescribe 类型描述 varchar(100)

表4.2 图书分类表

允许为null

Table: book说明:图书信息表

列名 bId

bTypeId bName bAuthor bPublish bTime bDescribe bImage bPrice bDiscount bSum

说明 图书编号 图书类型 图书名称 图书作者 出版社 出版日期 图书简介

类型 Varchar (15) Int (4) varchar (50)r varchar (50)r varchar (50)r datetime (8)r Varchar (2000)

备注 不允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null

图书图片(路径) Varchar (100) 图书价格 图书折扣 图书库存

Numeric (9) Numeric (9) Int (4)

表4.3 图书信息表

Table: bookOrder说明:订单表

列名 oId Uid oTime oReceiveName oReceivePhone oReceiveAddress

说明 代理主键 用户id 订单生成日期 收货人姓名 收货人电话 收货人地址

类型 Int(4) Int(4) Datetime(8) varchar(20) varchar(20) varchar(100) varchar(6) varchar(20) varchar(20)

备注 自增 不允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null 允许为null

oReceivePostCode 收货人邮编 oSendType oPayType

收货方式 付款方式

oStatus 订单状态 Varchar(8) 确认,发货,以付款

表4.4 订单表

Table: comment说明:商品评论表

列名 cId cName bId cTime cDescribe

说明 评论id 评论人 评论书籍id 评论时间 评论内容

类型 Int(4) Varchar(20) Varchar(15) Datetime(8) Varchar(200)

表4.5 商品评论表

备注 不允许为null 允许为null 允许为null 允许为null 允许为null

Table: orderInfo说明:订单详情表

列名 iId oId bId oAmount oPrice

说明 代理主键 所属订单表id 书籍id 购买数量 小计

类型 Int(4) int(4) varchar(15) int(4) numeric(9)

表4.6 订单详情表

备注 不允许为null 允许为null 允许为null 允许为null 允许为null

Table: RegUser说明:注册用户表

列名 uId uName uPassword uRealname uSex

说明 代理主键 用户名 用户密码 真是姓名 性别

类型 Int(4) varchar(15) varchar(20) varchar(12) varchar(2)

备注 不允许为null 允许为null 允许为null 允许为null 允许为null

uEmail uPhone uAddress uType

电子邮箱 电话 地址 用户类型

varchar(30) varchar(20) varchar(100) Int(4)

允许为null 允许为null 允许为null 0普通用户 1管理员

uUseful 是否禁用 int(4)

表4.7 注册用户表

0 禁用 1 启用

5页面设计

5.1前台页面

5.1.1商品浏览页面

图5.1 前台登陆页面

5.1.2购物车页面

图5.2 购物车页面

5.1.3用户注册页面

图5.3 用户注册页面

5.2后台页面 5.2.1后台登陆页面

图5.4 后台登陆入口页面

5.2.2后台管理页面

图5.5 后台管理页面

6系统详细设计

6.1 前台设计

6.1.1前台总体模块[7]:

(1)前台部分由用户使用,包括用户注册,购物车管理,我的订单,商品浏览,个人管理等几个部分。

模块功能介绍:

用户注册:能够提供用户的注册,并且对用户的注册进行以下验证:用户名非空;密码不小于6位;邮箱Email 的有效性;防止通过刷新重复提交.

购物车管理:所选商品须通过购物车进行保存;对于相同的书籍,在再次购买的时候,在购物车中相应的书籍上增加数量;在购物车中修改订单数量的时候防止输入非数字;在购物车然后生成订单。

我的订单:用户可以查看自己所有的订单,以及查看具体某一张订单,通过查看订单,用户可以查看订单现在的状态,查看订单的具体详情:收货人地址,收货方式,付款方式,具体商品,小计,总计等等。

商品浏览:用户可以通过商品的id 或者商品的名称进行查找商品,并且对于浏览过的商品存在浏览历史,对于登陆后的用户可以对商品进行留言。

个人管理:用户可以管理自己账号的相关信息,比如:修改个人的基本信息,修改自己的密码。 6.1.2前台文件架构:

图6.1 前台文件架构

6.1.3用户注册模块:

用户可以通过注册评论商品

代码实现:

1. 有效性验证[8]: 通过js 对客户端的提交数据进行有效性验证. 关键代码如下:

检查邮箱的有效性:

function chkEmail(str) {

return

str.search([\w\-]{1, }@[\w\-]{1, }\.[\w\-]{1, })==0?true :false ; }

function check() {

if (myform.userName.value=="" ) {

alert(" 请填写用户名" ); return false;

}

}

else if(!IsValid()) {

alert(" 用户名只能使用字母和数字" ); return false; }

else if(myform.psw.value=="" ) {

alert(" 请填写密码" ); return false; }

else if(myform.psw.value != myform.conpsw.value) {

alert(" 两次密码不一致" ); return false; }

else if(myform.trueName.value =="" ) {

alert(" 请填写姓名" ); return false; }

else if(myform.email.value =="" ) {

alert(" 请填写邮箱" ); return false; }

else if(!chkEmail(myform.email.value)) {

alert(" 请填写有效的Email 地址" ); return false;

}else if(myform.address.value =="" ) {

alert(" 地址必须填写!" ); return false;

}else if(myform.nam.value=="" ) {

alert(" 请输入验证码" );

}else if(myform.nam.value!=myform.con.value){ alert(" 两次验证码不一样!" ); }else {

document.myform.submit(); }

2. 防止通过刷新重复提交[9]:当提交完注册信息后,要求输入验证码,防

止重复提交数据到数据库,通过image.jsp 写出一个随机数,与注册jsp 页面相匹配,关键代码如下: Jsp页面验证码:

var n=parseInt(Math.random()*8999+1000); myform.con.value = n;

document.write("");

function nextImage(){

n=parseInt(Math.random()*8999+1000); myform.con.value = n; document.all("mk" ).src="BookShoppingimage.jsp?num="+n; }

g2.setFont(new Font("Arial" ,Font.BOLD,24)); g2.drawString(str,7,20); for (int i=0;i

int r=(int )(Math.random()*255); int g=(int )(Math.random()*255); int b=(int )(Math.random()*255); g2.setPaint(new Color(r,g,b)); int x1=(int )(Math.random()*80); int y1=(int )(Math.random()*30); int x2=(int )(Math.random()*80); int y2=(int )(Math.random()*30); g2.drawLine(x1,y1,x2,y2); }

g2.dispose();

ImageIO.write(bf,"jpg" ,response.getOutputStream()); out.clear();

out = pageContext.pushBody(); }catch (Exception e){

System.out.println(e); }

%>

3. 防止相同用户名用户注册:当提交数据后,为了防止出现相同的用户,在进行注册的时候, 通过相应的DAO 中的exsitOne 方法先检查用户名是否存在,存在不允许注册,关键代码如下:

public Boolean exsitOne(String userName) {

String sql = "select uName from RegUser";

try {

stat = conn .createStatement(); rs = stat .executeQuery(sql); while (rs .next()) {

String exsit = rs .getString("uName" ); if (userName.equals(exsit)) { return true ; } }

} catch (SQLException e) {

TODO Auto-generated catch block e.printStackTrace(); }

return false ; }

6.2 注册验证图

6.1.4 购物车模块

[10]

在实际生活中,在超市购物,我们可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物系统中,会采用一种被称做“购物车”的技术来模拟现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,清空购物车中的内容,还可以随时去收银台结帐。

1. 增添购物车:把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品放入购物车,对于同一种商品多次放入购物车,只增加相应的数量,关键代码如下:

Boolean flag = true; 假设是新的商品

onebooklist one = new onebooklist(id,bookname,n,price,trueprice); if (session.getAttribute("chart" )==null ) { ArrayList shopchartlist = new ArrayList(); session.setAttribute("chart" ,shopchartlist); }

ArrayList onelist

=(ArrayList)session.getAttribute("chart" ); for (int i =0;i

onebooklist element = (onebooklist)onelist.get(i);

if (bookname.equals(element.getBookaname())) { flag = false ;

int nn = element.getCount()+1; element.setCount(nn); } }

if (flag) {

onelist.add(one);

}

2. 修改购物车[11]:在购物车页面中,修改指定书籍的数量,修改数量时候,不允许输入无效数字,比如字母等等。关键代码如下:

function GetRef(sid,n)

{

var nn = document.getElementById("count" +sid).value; if (nn.search([^0-9]g)!=-1) {

alert(" 只能输入数字!" );

document.getElementById("count" +sid).value = n; return ; } if (n!=nn) {

window.location.; } }

3. 清空购物车:在想重新购买所有书籍的时候,可以点击清空购物车,从而进入相应的Servlet 中清空购物车;关键代码如下:

request.setCharacterEncoding("GBK" );

response.setContentType("text mysession = request.getSession();

System. out .println("clear" );

ArrayList list =

(ArrayList)mysession.getAttribute("chart" ); list = new ArrayList(); mysession.setAttribute("chart" , list);

request.getRequestDispatcher("..ShoppingCar.jsp" ).include(request, response);

4. 查看购物车:点击”购物车”链接,查看购物车中的所有商品,关键代码如下:

double total =0.0;

double extratotal = 0.0f; String dff="" ; String dff1 = "" ;

request.setCharacterEncoding("GBK" );

response.setContentType("text mysession1 = (HttpSession)request.getSession();

ArrayList onelist =

(ArrayList)mysession1.getAttribute("chart" );

if (onelist !=null ) {

for (int i =0; i

onebooklist element = (onebooklist) onelist.get(i); id= element.getId();

bookname = element.getBookaname(); System.out.println("asd:"+bookname); count = element.getCount(); price = element.getPrice();

trueprice = element.getTrueprice();

extratotal = extratotal+(price-trueprice)*count; total = total+trueprice*count; DecimalFormat df = new

DecimalFormat("########.00") [12];

dff = df.format(total);

dff1 = df.format(extratotal);

%>

6.3 我的购物车

6.1.5 我的订单模块: 对于购买了商品的用户,在产生订单后,可以通过双击查看订单,在查看订单的时候,可以查看到订单的当前状态,以及订单的总金额,和订单的一些基本信息。

1. 显示所有订单:读取数据库中指定用户的所有订单,将结果集存取到一个ArrayList 中,再返回显示页面,关键代码如下:

response.setContentType("text > mylist = new ArrayList(); try {

while (rs.next()) {

int oid = Integer.parseInt (rs.getString("oId" )); String receiver = rs.getString("oReceiveName" ); String oPayType = rs.getString("oPayType" ); float total = dao.getTotal("select sum(oAmount*oPrice)

from orderInfo where oId ="+oid );

String oStatus = rs.getString("oStatus" ); String date = rs.getString("oTime" ); MyOrderBean one = new

MyOrderBean(oid,date,receiver,total,oPayType,oStatus);

mylist.add(one); }

} catch (SQLException e) {

TODO Auto-generated catch block

e.printStackTrace(); }

2. 显示某个订单:当用户双击某个订单的时候,通过订单的id ,以及用户id ,联合查询出指定的订单,再返回到显示页面,关键代码如下:

String id = request.getParameter("id" );

String sql = "select * from bookOrder,orderInfo,book where

bookOrder.oId = orderInfo.oId and book.bId = orderInfo.bId and bookOrder.oId = " + id + "" ;

DAO dao = new DAO();

ResultSet rs = dao.getOrderInfo(sql);

ArrayList onelist = new ArrayList(); String receiver = "" ; String address = "" ; String phone = "" ; String sendType = "" ; String payType = "" ; try {

while (rs.next()) {

receiver = rs.getString("oReceiveName" ); address = rs.getString("oReceiveAddress" ); phone = rs.getString("oReceivePhone" ); sendType = rs.getString("oSendType" ); payType = rs.getString("oPayType" );

String bookname = rs.getString("bName" ); int count = rs.getInt("oAmount" ); float price = rs.getFloat("oPrice" );

AllbookInOneOrder one = new

AllbookInOneOrder(bookname, count,price);

onelist.add(one); }

com.with.javabean.MyOneOrderBean oneorder = new com.with.javabean.MyOneOrderBean(

receiver, address, phone, sendType, payType, onelist); request.setAttribute("order" , oneorder); request.setAttribute("id" , id);

request.getRequestDispatcher("..MyOneOrder.jsp" ) .include(request, response); } catch (SQLException e) {

TODO Auto-generated catch block e.printStackTrace(); }

6.1.6 商品浏览模块:

用户可以通过商品的分类查找到相应类别的商品,也可以通过输入相应商品的名称,找到相应的商品:

1.商品分类:读取数据库中的制定类别,将所有类别显示在首页的商品类别导航上面, 关键代码如下:

booktype = (ArrayList) request .getAttribute("bookTypeInfos1" ); if (null != booktype) {

for (int i = 0; i

" .createStatement();

rs = stat .executeQuery(sql); } catch (SQLException e) {

TODO Auto-generated catch block e.printStackTrace(); }

return rs ;

}

3. 浏览历史:用浏览历史是为了方便用户查找自己浏览过的商品,当用户点击了一件商品的购买链接的时候,就会在浏览历史中保存该商品,并创建一个相应的链接,方便下次查看. 关键代码如下:

点击链接产生Cookie :

" check(){

if (" " !="null" ) { document.myform.submit(); }else {

window.alert(" 请登陆" );

window.location. " name ="button" value =" 发表评论" onclick ="check()">


2. 商品留言:对于登陆后的用户,可以对商品进行评论,关键代码如下:

request.setCharacterEncoding("gbk" );

response.setContentType("text one = null ;

try {

stat = conn .createStatement(); rs = stat .executeQuery(sql); while (rs .next()) {

String username = rs .getString("uName" );

String truename = rs .getString("uRealname" ); String sex = rs .getString("uSex" ); String mail = rs .getString("uEmail" ); String phone = rs .getString("uPhone" );

String address = rs .getString("uAddress" ); one = new

UserBean(username,truename,sex,mail,phone,address);

2. 修改个人信息:通过链接可以修改个人信息,但是用户名不能修改。关

request.setCharacterEncoding("GBK" );

response.setContentType("text ("ModifyMyInfoOk:"+trueName); String sex = request.getParameter("sexradiobutton" );

String email = request.getParameter("email" ); String phone = request.getParameter("phone" );

String address = request.getParameter("address" ); String address1 = new DAO dao = new DAO();

String sql = "update RegUser set uPassword =

'" +psw+"',uRealname='"+trueName1+"',uEmail='"+email+"',uSex='" +sex1+"',uPhone='"+phone+"',uAddress='"+address1+"' where uName='"+userName+"'" ;

if (dao.ModifyMyInfo(sql)) {

request.getRequestDispatcher("..SuccessOrder.jsp" ). include(request, response); }else {

request.getRequestDispatcher("..error.jsp" ). include( request, response); }

键代码如下:

6.2 后台设计

6.2.1后台总体模块:

后台部分由用户管理,订单管理,商品管理等几个部分。 模块功能介绍:

用户管理:能够通过用户的姓名和用户的id 查询到指定的用户,并且

能够对指定的用户进行冻结,被冻结的用户不能登录自己的账号,无法购买书籍,可以对冻结的用户进行启用,对于忘记自己密码的用户,管理员可以进行密码的重置。

订单管理:能够通过订单的id ,或者根据时间段来查询指定的订单,可以对指定的订单修改订单的状态。

商品管理:可以增添商品的分类,可以对现有的分类进行修改,对于分类中存在书籍的,不允许删除;以增添新的商品,对原有的商品进行修改。

6.2.2订单管理模块:

管理员能够通过时间段,订单状态来查询订单,并且可以修改订单的状态,关键代码如下:

String list = request.getParameter("order" ); if (null == list) {

arrayList =

DaoImp. Dao .getDao().ListOrder(page,"oStatus='"+selection+"'" );

}else {

String startTime = request.getParameter("begin" ); String endTime = request.getParameter("end" );

arrayList = DaoImp.Dao .getDao().ListOrder(page," and oStatus='"+selection+"' or(oTime >='"+startTime+"' and oTime

6.6 订单管理图

图6.7 订单查询图

6.2.3图书管理模块:

管理员可以对图书分类信息进行增添,修改,删除,但是存在图书的分类不能够被删除,可以通过图书编号和图书名称来查询指定的书籍,并且可以修改和删除书籍,主要代码如下:

if (selection == null ) 查找全部 {

arrayList = DaoImp.Dao .getDao().ListBook(page,"" ) ; }

if ("all" .equals(selection)) 查找全部 {

arrayList = DaoImp.Dao .getDao().ListBook(page,"" ); }

String input = request.getParameter("input" );

if ("id" .equals(selection)) 按照id {

arrayList = DaoImp. Dao .getDao().ListBook(page,"and bId ='"+input+"'" ); }

if ("name" .equals(selection)) 按照名字 {

arrayList = DaoImp. Dao .getDao().ListBook(page,"and bName like '%"+input+"%'"); }

图6.8 图书管理图

6.2.4用户管理模块:

注册用户管理是为了方便管理系统,能够对恶意用户进行冻结,能够启用用户,对于忘记密码的用户可以进行密码的重置。关键代码如下:

if ("inUse" .equals(flag))冻结 {

sql = "update RegUser set uUseful= 0 where uId = "+id; DaoImp. Dao .getDao().updateUser(sql ); }

else if ("unUse" .equals(flag))解冻

{

sql = "update RegUser set uUseful= 1 where uId = "+id; DaoImp. Dao .getDao().updateUser(sql ); }

else if ("reSetPwd" .equals(flag))重设密码 {

sql = "update RegUser set uPassword= '123456' where uId = DaoImp. Dao .getDao().updateUser(sql ); }

" +id;

6.9 用户管理图

7 测试

7.1测试方式[14]:

由于本系统主要针对于网上用户,所以我选择从输入数据和输出数据的对应关系来进行测试,也就是进行黑盒测试来检测每个功能是否都能正常使用。 7.2 测试步骤[15]: (1)首页测试 (2)登录,注册测试 (3)购物车测试 (4)图书浏览测试 (5)图书管理测试 (6)订单管理测试 (7)用户管理测试 7.3 测试报告:

表7.1 测试报告

软件基本达到设计要求,功能基本完整,用户界面良好,错误处理正确,且能正确提示错误种类。

但是存在以下一些需要改进的地方,比如:在注册相同用户的时候,应该先给个注册失败的提示,并提示失败原因,提交系统的操作性。还有对于商品浏览,查找类型太少,希望能增添高级查找,或多增添几种查找类型。希望以后能加以改进。

8使用说明

8.1 系统环境要求:

1. 硬件环境:硬盘:10G+, 内存:512M+。

2. 软件环境:windowsXp2000;jdk1.5+;Tomcat5.X+;Sql2000;IE6.0+。

8.2 系统安装:

1. 将整个项目发布到Tomcat 中,

2. 将BookShopping 数据库附加到sql2000中.

8.3 系统运行:

1. 启动Tomcat 和sql2000服务

2. 访问首页:default.jsp

参考文献:

[1] Tom R.Halfhill. Java潜心弄潮商海 [J].中文信息, 1998,02期; 67-73

[2]Dave Andrew.对JAVA 使用前景的调查 [J].中文信息,1998,05期:11-12

[3]刘斌. 精通Java Web整合开发[M];电子工业出版社,2008.

[4]肖燕成. 一个小型图书资料管理信息系统的设计[J].华中科技大学计算机科学与技术学院,2006,02期:4-5

[5] 丁彦波. 基于Java 的信息系统的研究 [D];天津大学; 2004

[6] 徐爱鸣. 网上书店的设计与实现[D];中国知网,2009.

[7]袁海燕.Java 实用程序设计100例[M];人民邮电出版社,2005

[8]张光业.Java 与Javascript [J].微电脑世界, 1996,11期:5

[9]杭州电子工业学院. 网上购物系统若干关键技术研究[N];中国知网2003年01期.11

[10]张莉. 电子商务中购物车的实现 [J].福建电脑, 2005,08期:28-37

[12](美) Cay S.Horstmann Gary Cornell. Core Java2 Volume I[M]; 机械工业出版社,2006.

[13]李继宏. 信息系统的数据管理和控制[J].中国信息导报,2005, 04期:12-18

[14]万年红. 软件黑盒测试的方法与实践[J].计算机工程, 2000,03期:25-27

[15] 陈能技. 软件测试技术大全[M];人民邮电出版社, 2008

致 谢

四年的学习和生活就要随着这篇论文的答辩而结束了。有许许多多的舍不得,也有许许多多的感谢要说。

感谢所有教育过我的老师!老师们的严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使作者获益颇多。你们传授给我的专业知识是我不断成长的源泉,也是完成本论文的基础。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn