基于php办公用品网上商城的设计与实现

摘  要

获取项目源文件,联系Q:1415736481,可指导毕设,课设

    办公用品是人们日常生活中必不可少的物品,而且随着时代的发展,现代意义上的办公用品扩展到所有与现代办公相关的商品。传统的办公用品采购方式中存在很多缺点与不足,随着互联网和电子商务的发展,通过网络来销售办公用品的办公用品网上商城有着很大的发展前景。

    本文介绍了办公[雨林木风1] 用品网上商城的设计与实现。该网站在PHP+MySQL+Apache开发环境下,使用Zend Studio集成开发工具开发而成。在设计过程中综合使用了PHP、CSS和JavaScript等技术。该网站采用了基于MVC模式的ThinkPHP框架。该网站分为前台和后台两个部分。前台面向会员。会员登录后可以查询、订购和评论商品,也可以管理个人信息。后台面向管理员。管理员可以对商品、会员、订单和评论进行管理,也可以发布网站公告。

    该网站经过运行和测试,实现了设计的功能,可以满足用户的需求,达到了预期的效果。

关键字:办公用品     网上商城    PHP    MVC    ThinkPHP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ABSTRACT

   

    Office supplies are essential for people's daily life items. With the development of the times,  office supplies has  extended to all merchandise which are related to contemporary office mode in the modern sense. There are many shortcomings and deficiencies in traditional office supplies procurement.With the development of Internet and e-commerce,office supplies online store which use the network to sell office supplies  has great prospects for development.

      This article describes the office supplies online store design and implementation. The website is developed by Zend Studio and was based on PHP + MySQL + Apache development environment. It uses a combination of  PHP, CSS, JavaScript technologies and so on. The site uses ThinkPHP framework, a framework bases on MVC schema. The website consist of two parts, foreground and background. The foreground is designed for members. The logged user can inquiries, orders and reviews commodities, users can also manage personal information. Background is designed for administrators. Administrators can manage merchandise, membership, order, and comments. Administrators can publish website announcement.

      After running and testing, the website can meet the needs of users, and has achieved the desired requirements.

Keywords: Office supplies      online store      PHP      MVC     ThinkPHP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一章  绪论

 

1.1研究背景与意义

随着互联网的不断发展,越来越多的行业都在发生巨大的变革。互联网以其便捷的信息传输形式改变着人们的生活方式和消费模式。利用简单、快捷、低成本的电子通信方式,买卖双方不谋面即可在网上直接进行各种商贸活动。IBM公司在1996年提出了电子商业(E-Commerce)的概念。在1997年,该公司又提出电子商务(E-Business)的概念。短短几年时间内这些概念就被广泛接受。电子商务可分为企业对企业(B2B),企业对消费者(B2C),个人对消费者(C2C)、企业对政府(B2G)、线上对线下(O2O)等模式,其中主要模式包括B2B、B2C两种模式。随着国内互联网使用人数的增加,利用互联网进行网络购物并以银行卡付款的消费方式已日渐流行,市场份额也在迅速增长,而电子商务网站也层出不穷。

本次毕业设计的题目是办公用品网上商城的设计与实现。办公用品是人们日常生活中必不可少的物品。办公用品也是企事业营运成本一项持续性支出,且更替频繁,是一项不少的开支。而传统的办公用品采购方式中存在很多缺点与不足。例如采购过程本身效率较低且消耗较多的劳动力。许多企业的采购部门约有一半的工作是在处理这些价值低并且很频繁的采购订单。该领域内的平均生产力水平极低,并是现代商业中劳动力最密集的地方之一。而且随着时代的发展,现代意义上的办公用品已经不局限于我们过去所使用的纸、笔之类的产品,而扩展到了包括打印机、打印耗材、办公室生活用品等在内的所有与现代办公相关的商品。在这种形势下,随着互联网和电子商务的发展,通过网络来销售办公用品的办公用品网上商城应运而生。

人们通过该网站可以比较多种品牌的办公用品,并轻松地订购商品。企事业单位可以在该网上商城上大规模采购办公商品可以使采购办公用品的程序更简化,提高采购办公商品的效率,极大地节约人力成本。而商家也可通过该网上商城增加其商品销售量,提高营业额,并提高销售管理的效率。

1.2国内外应用现状和发展趋势

    现在中国办公用品的电子商务有了一定的发展。史泰博、欧迪办公等办公用品巨头相继在中国组建子公司,发展办公用品电子商务。以京东商城、卓越亚马逊、一号店为代表的综合性B2C网站经营种类丰富的办公用品。此类网站流量大,知名度高,网民在进行个人购物所养成的购物习惯转接到了对办公用品的采购。一些办公用品品牌企业相继在淘宝商城上建立的品牌专卖店。如益而高、得力文具淘宝商城店,利用淘宝商城的巨大流量,以品牌直销的概念进行产品销售。此外,办公行业品牌企业开始建设自身的B2C商城,如天威打印耗材的好彩快线商城。2011年中国办公用品市场销售总额超过1000亿,虽然办公用品电子商务所占比例不高,但正面临难得的发展机会。

在美国,2010年B2C电子商务排名前十的有三个是办公用品,即史泰博、欧迪办公和OfficeMax,这说明在电子商务最成熟的美国,办公用品占有十分重要的地位。全球五大办公用品品牌史泰博、欧迪-亚商OfficeDepot、国誉KOKUYO-易优百、欧玛特和爱苏极乐ASKUL都建立了网上商城并大力发展电子商务。2004年,史泰博与中国最大的网上办公用品销售企业—上海上信电子商务有限公司组建上海史泰博企业发展有限公司,开始正式进入中国办公用品市场。

1.3研究内容和结构

    本课题旨在设计并实现办公用品网上商城,用来解决传统办公用品销售和采购方式中存在的众多问题。该网站可以给用户提供便利的服务并降低企事业单位用户的采购成本。该网站也提高了商家的管理效率并为商家带来收益。该网站以Windows XP操作系统为服务平台,采用目前流行的PHP技术,后台数据库采用MySQL,服务器采用Apache HTTP server。

    本论文的结构如下:

    第一章:绪论。主要包括课题的研究背景和意义、国内外应用概况和发展趋势以及论文的结构。

    第二章:开发工具和方法。包括开发该网站用到的工具和方法。

    第三章:需求分析。包括可行性分析和需求分析

    第四章:系统概要设计。

    第五章:详细设计与实现

    第六章:测试与维护[雨林木风2] 

 

 

 

 

 

 

 

 

 

 

 

 

    第二章  开发工具和方法

 

2.1PHP+MySQL+Apache介绍

PHP是PHP: Hypertext Preprocessor(PHP超文本预处理器)的递归缩写,是一种在服务器端执行的跨平台的HTML嵌入式的脚本语言。其独特的语法混合了C语言、Java语言和Perl语言的特点,是一种被广泛使用的、开源式的多用途脚本语言,尤其适合Web开发。PHP起源于1995年,由Ramus Lerdorf开发。根据TIOBE 公布的2013年4月编程语言指数排行榜,PHP语言名列第六,并呈上升趋势。PHP具有速度快、支持面向对象、实用性强、功能强大、成本低、开放性和可扩展性良好、版本更新速度快、模块化和应用范围广等特点。

MySQL是最流行的开放源码SQL数据库管理系统,由MySQL AB开发。MySQL是一个关系型数据库管理系统。它将数据保存在不同的表中,从而增加了速度并提高了灵活性。MySQL使用的SQL语言是用于访问数据库的最常用标准化语言。由于MySQL数据库具有体积小、速度快、易于使用、工作模式多、总体拥有成本低且开放源码等特点,一般中小型网站的开发都选择MySQL作为网站数据库。MySQL数据库搭配PHP和Apache可组成良好的开发环境。

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是世界使用排名第一的Web服务器软件。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。它可以运行在几乎所有广泛使用的计算机平台上。由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

2.2HTML+CSS+JavaScript介绍

HTML(Hypertext Markup Language)是超文本标记语言,是用于描述网页文档的一种标记语言。它是网页中的重要构成,主要负责将网页内容进行格式化,使内容更具逻辑性。HTML是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。HTML具有简易性、可扩展性和平台无关性。

CSS(Cascading Style Sheet)是层叠样式表,,它是一种用来表现HTML或XML等文件样式的计算机语言。CSS语法的目的是让网页内容与视觉呈现分离。一方面可以使页面维护工作更容易,另一方面也可增加页面在不同媒介的呈现效果。CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。

JavaScript是一种面向对象的动态类型的基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。JavaScript常用来给HTML网页添加动态功能。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript可以提高了网页的浏览速度和交互能力并使网页增加互动性。

2.3Zend Studio介绍

Zend Studio 是专业开发人员在使用PHP整个开发周期中唯一的集成开发环境,它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。Zend Studio具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。Zend Studio 设计时考虑了商务应用开发的需要,是开发者利用PHP创造强有力数据库应用软件的完美开发环境。Zend Studio 具有专业和企业开发者开发、配置、调试和管理关键商务PHP应用的易使用性、可伸缩性、可靠性和扩展性,是当今世上最强大的PHP集成开发环境。

2.4ThinkPHP框架介绍

ThinkPHP 是一个免费开源的、快速简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布。ThinkPHP从Struts结构移植过来并做了改进和完善,同时借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。ThinkPHP具有很多实用的特性,如简单易用的MVC模式、独创的核心编译和项目编译机制、丰富的查询语言支持、自动编码转换等,这使其越来越受到PHP开发人员的认可。

 

 

 

 

 

 

第三章  系统分析

 

3.1可行性分析

开发任何网站,都会受到时间和资源上的限制。因此,在开发项目之前需要进行可行性分析,以减少项目的开发风险。可行性分析主要包括经济可行性、技术可行性、操作可行性等。

3.1.1经济可行性

经济可行性主要是对项目的经济效益进行评价。本网站开发只需要计算机、相关开发软件和资料的支持。本系统部署对软硬件要求不高,并且开发简单,使用方便,不需要耗费大量的人力物力即可开发出来。本网站操作简单,用户几乎不需要进行专业培训即可使用本系统。该网站投入使用后将方便商家和用户的使用并且可以节约大量人力物力资源,所以本网站的开发在经济上是可行的。

3.1.2技术可行性

技术可行性主要考虑现有的硬软件平台能否满足开发者的需要,现有的技术条件能否顺利完成开发工作。本网站采用PHP+MySQL+Apach开发环境。PHP是一种流行的安全稳定的网页开发技术, MySQL数据库是性能卓越的数据库,非常适合中小型网站的开发。Apach是功能强大的开源网页服务器。PHP、MySQL和Apache搭配可组成良好的开发环境。本网站使用Zend Studio工具开发。Zend Studio是PHP开发的集成开发环境,包含所有PHP必须的开发部件。本网站采用ThinkPHP框架。ThinkPHP框架性能优异,适合小型网站的开发现如今硬件的更新速度越来越快,可靠性有了大幅度提高而价格越来越低。所以现有的软硬件平台完全满足网站开发的需要,本网站的开发在技术上是可行的。

3.1.3操作可行性

随着科学技术的日益发展,互联网技术已经在各个领域得到了广泛地应用。传统的办公用品销售方式存在的问题越来越明显,而信息化、网络化的办公用品网上商城则凸显出巨大的优势。该网站功能强大、操作方便,用户只需熟悉基本的上网操作即可使用该系统。所以该网站的开发在操作上是可行的。

    综上所述,办公用品网上商城在经济上、技术上和操作上都是可行的,且开发该网站会带来一定的经济效益和社会效益。

 

3.2需求分析

    需求分析是指在新建或改变一个系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程,它在系统级需求工程和软件设计间起到桥梁作用。

3.2.1功能需求分析

    办公用品网上商城的用户主要分为两类:会员和管理员。该网站分为前台和后台两个部分。前台面向会员,后台面向管理员。会员在注册并成功登录后,可以浏览查询商品、订购商品和管理个人信息等操作。管理员登录后台页面后可以对商品、用户、订单和商城信息进行一定的管理。

    办公用品网上商城前台可以实现以下基本功能:

    (1)注册功能。在网站首页单击注册标签或按钮,进入注册页面。在注册页面填写基本信息即可成功注册为该网站的会员。

    (2)登录功能。会员在网站主页单击登录标签进入会员登录页面。会员输入会员名、密码以及验证码后点击登录按钮。若输入信息正确弹出提示信息,并跳转回主页。此时主页显示登录会员信息。若输入信息错误或会员帐号被冻结,则弹出提示信息后跳回主页。管理员在后台管理员登录页面输入正确的管理员名和密码后进入后台管理页面。

    (3)查询商品。会员在网站主页上可以点击查看部分商品信息,也可以按分类查看各种办公用品。会员在搜索框中输入商品名称,单击搜索按钮后即可实现商品查询。

    (4)订购商品。会员搜索到满意的商品后,单击加入购物车按钮,即可将商品加入购物车。如需要更改购物车内商品的信息,可以在购物车里修改商品的数目或者直接删除商品。选购完商品后点击进入收银台页面,在该页面填写基本信息后即可提交订单。

    (5)个人信息修改。会员登录后点击主页上的用户中心标签,进入个人信息界面,在该页面内修改个人信息。

    办公用品网上商城后台可以实现以下基本功能:

    (1)用户管理。管理员在后台管理界面可以查看会所有会员信息、删除或者冻结会员。管理员在后台也可以修改自己的信息。

    (2)订单管理。管理员在后台管理界面查看订单详情并处理订单。

    (3)商品管理。管理员在后台可以添加或者删除商品的类别。管理员也可以在后台添加或删除商品、修改商品信息。

    (4)信息管理。管理员在后台可以添加公告、修改已发布的公告。管理员也可以对会员的评论进行相关处理。

3.2.2非功能需求分析

    本系统的非功能需求如下:

(1)用户界面需求:简洁、易用、易懂,友好和谐的用户界面。

(2)硬件需求:Pentium以上计算机

(3)可靠性需求:用户在正常使用本系统时,用户的操作不会产生数据丢失。

(4)安全保密性需求:用户登录需要密码验证。

3.2.3用例分析

    用例是参与者和计算机之间未达到某个目的的典型的交互过程。用例图是由参与者、用例以及他们之间的关系构成的用于描述系统功能的动态视图。它是需求分析中的产物,主要用来描述参与者和用例之间的关系。用例图显示了系统的用户和用户希望提供的功能,有利于用户和软件开发人员之间的沟通。

    参与者是指存在于系统与系统外部并直接与系统进行交互的外部实体的抽象。在用例图中使用人形图标表示参与者,参与者的名字写在人下面。用例使参与者可以感受到的系统服务或功能单元,它定义了系统如何被参与者使用。用例图中用椭圆符号表示用例。用例和参与者之间的对应关系称为通信关联,它表示参与者使用了系统中的哪些用例。

    本次设计系统的参与者分为两类,会员和管理员。会员可以进行注册、登录、查询商品、订购商品和管理个人信息。会员如果在登录时忘记密码可以找回密码。管理员可以管理商品信息、管理用户信息、管理订单信息和管理网站信息。办公用品网上商城的用例图如图3-1所示。

 

图3-1  用例图

3.2.4 E-R模型分析

实体-联系(Entity Ralationship,ER)模型是用来描述现实世界的概念模型。实体-联系模型的基本要素是实体、联系和属性。客观存在并且相互区别的实物称为实体。而具有相同属性的一类实体抽象为一个实体型。实体的某一特性成为属性。而现实世界中事物内部及事物之间的联系抽象为实体型内部的联系和实体型之间的联系。

E-R图也称实体-联系图。该方法用表示实体型、属性和联系的方法来描述现实世界的概念模型。在E-R图中用矩形表示实体型,矩形框内写明实体名。用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来。用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。若实体之间联系有属性,则把属性和联系之间用无向边连上。

本次设计抽象出会员、管理员、商品、分类和公告五个实体。管理员和公告、商品、分类三个之间都存在一对多的添加联系。管理员和会员之间存在一对多的管理联系。会员和商品之间存在多对多的订购与评论联系。各实体与联系如下图所示。

 

表3-2  会员实体图

 

 

表3-3  管理员实体图

 

 

表3-4  商品实体图

 

表3-5  公告实体图

 

 

表3-5  公告实体图

 

 

表3-6  总E-R图

 

 

 

第四章  系统概要设计

 

4.1系统功能设计

4.1.1系统总体结构

    办公用品网上商城分为前台和后台管理两个模块。前台面向会员,主要分为注册模块、登录模块、查询模块、订购模块和个人信息管理五个模块。后台面向管理员,主要分为会员管理模块、商品管理模块和订单管理模块三个模块。办公用品网上商城的总体结构模块图如下所示:

 

图4-1  系统功能模块图

 

4.1.2主要模块流程图

    会员操作流程图如图4-2所示。

 

图4-2  会员操作流程图[雨林木风3] 

 

 

 

 

 

 

 

 

管理员操作流程图如图4-3所示。

 

图4-3  管理员操作流程图

 

4.2数据库设计

    根据E-R图向关系模型转换的原则,本次设计共设计七张表。其中会员、管理员、商品、分类和公告五个实体各转换为一张表。管理员与商品之间的一对多的添加联系合并到商品表中。管理员与公告之间的一对多的添加联系合并到公告表中。会员与商品之间的多对多的订购关系转换为订单表。会员与商品之间的多对多的评论关系转换为订单表。

 

表4-1  会员表

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

name

varchar

25

姓名

pwd

varchar

50

密码

QQ

int

11

QQ号

dongjie

varchar

4

冻结状态

email

varchar

25

邮件

sfzh

varchar

25

地址

tel

varchar

25

手机

tishi

varchar

50

提示问题

huida

varchar

50

答案

dizhi

varchar

100

地址

youbian

varchar

25

邮编

truename

varchar

25

真实姓名

 

表4-2  管理员表

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

name

varchar

25

姓名

pwd

varchar

25

密码

tel

varchar

25

手机号

realname

datetime

25

真实姓名

 

表4-3  商品表

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

mingcheng

varchar

25

名称

jianjie

text

 

描述

dengji

varchar

5

等级

xinghao

varchar

25

型号

tupian

varchar

200

图片

shuliang

int

4

数量

tuijian

int

4

是否推荐

typeid

int

4

类型

pinpai

varchar

25

品牌

huiyuanjia

varchar

25

会员价

shichangjia

varchar

25

市场价

addtime

varchar

25

添加时间

 

表4-4  公告表

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

title

varchar

20

标题

context

text

 

内容

time

varchar

50

添加日期

 

表4-5  分类表[雨林木风4] 

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

typename

varchar

50

类型名

 

表4-6  订单表

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

dingdanhao

varchar

125

订单号

spc

varchar

125

商品编号

slc

varchar

125

数量

shouhuoren

varchar

25

收货人

sex

varchar

2

性别

dizhi

varchar

125

地址

youbian

varchar

10

邮编

tel

varchar

25

联系电话

email

varchar

25

邮件

shfs

varchar

25

送货方式

zfff

varchar

25

支付方式

time

varchar

25

时间

xiadanren

varchar

25

下单人

total

int

11

总价

zt

varchar

25

状态

 

表4-7  评价表

列名

类型

长度

是否为空

是否主键

是否外键

说明

id

int

4

编号,自增

userid

int

4

会员编号

spid

int

4

商品编号

title

varchar

200

标题

content

text

 

内容

time

varchar

 

添加日期

4.2.2数据库表之间联系

 

图4-4  数据库表关系图

第五章  详细设计与实现

 

5.1前台模块设计与实现

ThinkPHP框架基于MVC设计模式。ThinkPHP中的MVC分层体现在:

模型(M):模型的定义由Model类来完成。

控制器(C):应用控制器(核心控制器App类)和Action控制器都承担了控制器的角色,Action控制器完成业务过程控制,而应用控制器负责调度控制。

视图(V):由View类和模板文件组成,模板做到了100%分离,可以独立预览和制作。

根据上文对网上商城的分析,前台模块共设计五个Action控制器类:IndexAction类、GonggaoAction类、ProductAction类、UserAction类和PublicAction类。这五个控制器类都继承ThinkPHP框架Action控制器基类—Action类。其中IndexAction类是系统默认的控制器类,而PublicAction类用于进行初始化等操作。GonggaoAction类负责与公告相关的某些操作,ProductAction类负责与商品相关的一些操作,DingdanAction类负责处理与订单相关的一些操作,UserAction类负责与会员相关的一些操作。前台模块控制器类图如图5-1所示。

 

图5-1  前台模块控制器类图

ThinkPHP框架中,Model模型类与数据库中的表或视图一一对应。通过Model模型类可直接对数据库中的表尽享增加、删除、修改和查询等操作。由于前台模块不需要与管理员员进行交互,所以前台模块共设计六个模型类:DingdanModel类、GonggaoModel类、PingjiaModel、ShangpinModel类、TypeModel类和UserModel类。六个模型类都继承ThinkPHP框架模型类—Model类。前台模块模型类图如图5-2所示。

 

图5-2  后台模块模型类图

   

5.1.1注册模块设计与实现

    ThinkPHP框架基于模块和操作的方式进行访问,网站的所有的模块和操作都通过URL的参数来访问和执行。单击主页上会员注册标签,系统解析URL参数,调用UserAction类的reg()方法。由于UserAction类未定义reg()方法,系统自动调用模板文件reg.html,显示会员注册界面。在该界面输入相关信息,点击提交按钮即可完成注册。本次设计运用JavaScrip技术对表单输入的内容进行了校验。点击提交按钮后,系统调用UserAction类的savereg()方法。该方法通过UserModel模型类从数据库中获取相关信息,判断会员名是否已存在。若不存在则显示注册成功。若会员名已注册,则返回会员注册页面。会员注册页面如图所示

   

图5-3  会员注册页面

 

5.1.2登录模块设计与实现

    已注册会员在首页的登录框内输入会员名、密码和验证码,即完成登录操作。会员点击提交按钮后,系统会调用UserAction类的chkuser()方法。该方法通过接收表单信息对验证码进行校验,通过UserModel模型类从数据库中获取相关信息对会员的状态以及会员提交的会员名和密码进行校验。如果会员名、密码或验证码输入错误或者会员已经被冻结,则拒绝会员的登录,弹出相关信息后返回首页。若会员输入信息正确且未被冻结,则开启session,将会员的相关信息存入session中,并显示会员成功登录。会员登录页面如图5-4所示。

 

图5-4  会员注册页面

 

5.1.3查询模块设计与实现

    会员可以浏览首页内的相关商品,也可以网页上方的搜索框中输入相关信息,进行模糊搜索或精确搜索。若点击立刻查找按钮,则系统调用ProductAction类的findsp方法。该方法通过ShangpinModel模型类对输入的关键字进行模糊查询。然后系统将查询结果注入到模板文件findsp.html中,并调用该模板文件显示查询结果。若点击精确查找按钮,系统将调用ProductAction类的hightfind方法,该方法通过ShangpinModel类和TypeModel类从数据库中查询商品名称、型号和类型等信息。系统将这些注入到模版文件hightfind.html中,并调用该模板文件显示精确搜索页面。会员在该页面内选择详细的商品信息,进行精确查找。系统会调用ProductAction类的dohightfind方法,通过ShangpinModel类在数据库中对输入的信息进行精确匹配查找。系统将结果注入到模板文件findsp.html中,并调用该模板文件显示查询结果。查询结果页面如图5-5所示。

 

图5-5  查询结果页面

 

    在网页上点击某一商品的图像、名称后,系统会调用ProductAction类的lookinfo()方法。该方法接收超级链接传来的参数,通过ShangpinModel类根据参数从数据库中查询关于该商品的相关信息。系统将查询结果注入到模板文件lookinfo.html中,并将调用该文件显示商品的具体信息。商品具体信息页面如图5-6所示。

 

图5-6  商品具体信息页面

 

系统自动判断是否有会员登录。若未登录,则只显示商品的具体信息。若有会员登录,则会继续显示评论框。已登录会员输入评论主题和评论内容后点击提交按钮,完成评论。系统调用ProductAction类的savepj()方法。该方法接收表单传来的参数,从session中获取会员名,然后通过UserModel模型类从数据库中获取会员编号,最后通过PingjiaModel模型类将数据插入到数据库中的pingjia表中。在该页面内点击“查看该商品评论”标签,系统调用ProductAction类的savepj()方法。该方法接收链接传来的参数,并通过PingjiaModel模型类从pingjia表取得该商品的全部评论,并分页显示。显示评论页面如图5-7所示。

 

图5-7  显示评论页面

5.1.4订购模块设计与实现

    本次设计只允许已登录的会员订购商品。在显示商品页面点击“加入购物车”标签后,系统会根据session判断是否会员登录。若无会员登录,则弹窗显示消息。若有会员登录。则系统调用ProductAction类的addgouwuche()方法,接收链接传来的商品编号。该方法通过ShangpinModel类从shangpin表中查询该商品的数量,并进行判断。若数量小于0,弹窗显示“已售完”。若商品为售完,则通过session判断购物车内是否已有该商品的记录。若有记录则弹窗显示,提醒会员更改数量。若无记录则将商品的编号和数量放入session中,即存入购物车中。然后系统会调用ProductAction类的gouwu1()方法。已登录会员在首页单击“查看购物车”按钮,系统也会调用该方法来显示购物车。该方法从session中获取商品的编号和购买数量,并用过ShangpinModel类从shangpin表中查询商品的相关信息,并计算购物车内总金额。然后系统将数据注入到模板文件gouwu1.html中,并调用该模板显示购物车信息。若在该页面内修改了商品数量,则重新调用gouwu1()方法,更新购物车信息。本次设计中,若订单总金额不超过三十元,则加收十元运费。如果会员点击某一记录对应的移除操作,则系统会调用ProductAction类removegwc()方法,根据传来的参数从购物车中清除该记录。显示购物车页面如图5-8所示。

 

 

 

图5-8  购物车页面

 

会员选购完毕,点击“选购完毕”标签,进入填写收获人信息界面。在该页面内填写完信息后,提交订单。系统调用ProductAction类savedd()方法,通过DingdanModel类将订单信息插入到dingdan表中。然后调用showdd()方法,通过DingdanModel类从dingdan表中获取信息。系统将订单信息注入到模板文件showdd.html中,调用该模板显示订单信息。显示订单信息如图5-9所示。

 

图5-9  显示订单页面

 

5.1.5个人信息模块设计与实现

    会员在首页点击会员中心按钮后,系统调用UserAction类的usercenter()方法,该方法通过UserModel类获取当前登录会员的相关信息。系统将信息注入到模板文件usercenter.html中,并调用该模板显示。会员可以在该页面内修改自己的信息。会员点击“更改”按钮后,系统调用changeinfo()方法,该方法接收会员更改的信息,并通过UserModel类将数据插入到user表中。会员中心页面如图5-10所示。

 

图5-10  会员中心页面

 

    会员点击“修改密码”标签,系统直接调用模板文件changepassword.html,显示修改密码页面。会员修改完毕后点击确认更改按钮,完成操作。系统调用UserAction类的chkpassword()方法,该方法对会员输入的信息进行校验,并将满足条件的数据通过UserModel类插入到user表中。修改密码页面如图5-11所示。

 

图5-11  修改密码页面

 

    会员点击“订单查询”标签,系统会调用ProductAction类finddd()方法。该方法从session中获取登录会员名,并通过DingdanModel模型类从dingdan表中查询已登录会员提交的所有订单记录。系统将数据注入到模板文件finddd.html中,并调用该模板显示。会员在该页面可以查看到订单状态并进行确认收获操作。会员点击“确认收货”按钮后,系统调用ProductAction类qrdd()方法,通过DingdanModel模型类在dingdan表更改该订单的状态。会员也可以在搜索框中输入订单号,系统则调用finddd()方法,根据session中的会员名和输入的订单号从在dingdan表查询具体的订单信息。查询订单页面如图5-12所示。

 

图5-12  查询订单页面

 

5.2后台模块设计与实现

根据分析,后台模块共设计七个Action控制器类:DingdanAction类、GonggaoAction类、IndexAction类、ProductAction类、PublicAction类、TypeAction类和UserAction类。TypeAction类负责与商品分类相关的某些操作。其它控制器类的作用与前台模块相似。后台模块控制器类图如图5-13所示。

 

图5-13  后台模块控制器类图

 

后台模块需要用到数据库中所有的七张表,所以后台模块共设计七个模型类:DingdanModel类、GonggaoModel类、PingjiaModel、ShangpinModel类、TypeModel类、UserModel类和AdminModel类。七个模型类都继承ThinkPHP框架模型类—Model类。后台模块模型类图如图5-14所示。

 

   图5-14  后台模块模型类图

5.2.1管理商品模块设计与实现

    管理员登录后,在后台管理页面,点击“添加商品类别”,可以进行添加商品类别操作。本次设计中商品的类别分为两级。其中一级分类的父类别名称设置为“顶级”,父类别编号设置为0。二级分类的父类别名称和编号可以从一级分类中选取。系统调用TypeAction类的addleibie()方法,通过TypeModel模型类从数据库中取出所有一级分类的名称和编号,注入到模板文件addleibie.html中,并调用该模板文件显示添加类别页面。管理员输入类别名称,选择类别等级和父级名称,完成操作。系统调用saveaddleibie()方法,通过TypeModel类从type表中取出数据,判断是否已有该类别。若该类别已存在,则弹窗显示错误信息,拒绝该添加操作。若无该类别,则将新类别的信息插入到type表中。添加类别界面如图5-15所示。

 

图5-15  添加类别界面

 

    管理员登录点击“商品类别管理”标签,系统调用TypeAction类的showleibie()方法,通过TypeModel模型类从数据库中取出所有分类的名称和编号,注入到模板文件showleibie.html中,并调用该模板文件分页显示类别信息。显示类别页面如图5-16所示。

 

图5-16  显示类别界面

 

    管理员在显示类别页面点击某一类别的“更改”标签后,系统会调用TypeAction类的xiugaileibie()方法,通过TypeModel模型类从数据库中该分类的相关信息,注入到模板文件xiugaileibie.html中,并调用该模板文件显示修改类别信息页面。管理员可以修改类别的名称和父级类别。管理员确认修改后,系统调用savexiugailb()方法,通过TypeModel类在type表中更新该商品类别的信息。

    管理员在显示类别页面可以点击每一个商品类别对应的删除复选框,删除该类别。系统调用TypeAction类的deletelb()方法,根据接收的商品类别编号通过TypeModel类从type表中删除商品类别信息,通过ShangpinModel类从shangpin表中删除所有从属于该类的商品信息。

    管理员点击“添加商品”标签,可以进行添加商品操作。系统调用ProductAction类的addgoods()方法,通过TypeModel模型类从库中取出所有二级分类的名称和编号,注入到模板文件addlgoods.html中,并调用该模板文件显示添加商品页面。管理员在该页面输入商品具体信息,选择商品类别,上传商品图片,完成添加商品操作。系统调用savenewgoods()方法,通过ShangpinModel类将新的商品记录插入到shangpin表中。添加商品界面如图5-17所示。

 

图5-17  添加类别界面

 

    管理员登录点击“修改商品”标签后,系统将调用ProductAction类的editgoods()方法,该方法通过ShangpinModel模型类从shangpin表中取出所有商品的信息,注入到模板文件editgoods.html中,并调用该模板文件分页显示商品记录。显示商品记录页面如图5-18所示。

 

图5-18  显示商品记录界面

 

    管理员在显示商品记录页面单击某一商品的“修改”标签后,系统会调用ProductAction类的changegoods()方法,该方法通过ShangpinModel类从shangpin表中取出该商品的具体信息。系统将信息注入到模板文件changegoods.html中,并调用该模板文件显示修改商品信息页面。管理员可以在该页面修改商品的具体信息。管理员确认修改后,系统调用savechangegoods ()方法,根据接收到的商品编号通过ShangpinModel类在type表中更新该商品的信息。

    管理员在显示类别页面可以点击每一个商品对应的删除复选框,删除该商品。系统调用ProductAction类的deletegoods()方法,根据接收的商品编号通过ShangpinModel类从shangpin表中删除该商品信息。

5.2.2管理用户模块设计与实现

    管理员单击“会员信息管理”标签后,系统调用UserAction类的edituser()方法,该方法通过UserModel类从user表中取出所有会员信息。系统将所有信息注入到模板文件edituser.html中,并调用该模板分页显示会员信息。显示会员信息页面如图5-19所示。

 

图5-19  显示会员信息页面

 

管理员可以在该页面点击“删除”复选框,删除某些会员信息。系统调用deleteuser(),该方法根据接收到的会员编号通过UserModel类从user表中删除会员记录。该方法同时也会通过GonggaoModel类删除会员的所有评论信息。管理员在该页面点击某一会员对应的“查看”标签,可以查看该会员的具体信息并管理该会员的状态。系统调用lookuserinfo()方法,该方法根据接收到的会员编号通过UserModel类从user表中取出该会员的详细数据。系统将数据注入到模板文件lookuserinfo.html中并调用该模板显示具体会员信息。显示具体会员信息页面如图5-20所示。

 

图5-20  显示具体会员信息页面

 

管理员在会员信息页面中点击“冻结会员”或“解除冻结”标签,系统调用UserAction类的dongjieuser()方法,该方法根据接收到的会员编号通过UserModel类在user表中修改该会员的的状态,然后返回显示会员信息页面。

管理员单击“管理员信息管理”标签后,系统调用UserAction类的changeadmin ()方法,该方法通过AdminModel类从admin表中取出管理员信息。系统将信息注入到模板文件changeadmin.html中,并调用该模板显示管理员信息。管理员在该页面该页面修改自己的信息。提交修改后,系统调用saceadmin()方法,通过AdminModel类更改admin表中管理员的记录,并返回显示管理员信息页面。

5.2.3管理订单模块设计与实现

    管理员单击“查询订单”标签后,系统调用DingdanAction类的lookdd()方法,该方法通过DingdanModel类从dingdan表中取出所有订单信息。管理员也可以在该页面的搜索框中输入下单人和订单号,搜索具体的订单信息。lookdd()方法会接收表单传递的参数,然后通过DingdanModel类从dingdan表中取出符合条件的订单信息。系统将订单信息注入到模板文件lookdd.html中,并调用该模板分页显示订单信息。显示订单页面如图5-21所示。

 

图5-21  显示订单页面

 

    管理员可以在该页面点击订单记录对应的“删除”复选框,删除某些订单信息。系统调用deletedd(),该方法根据接收到的订单编号通过DingdanModel类从dingdan表中删除订单记录。管理员可以在该页面点击某一订单记录对应的“查看”按钮,查看并修改订单详细信息。系统调用DingdanAction类的orderdd()方法,该方法根据接收到的订单编号通过DingdanModel类从dingdan表中取出该订单的详细信息。管理员可以在该页面修改订单的状态或收货人的相关信息。管理员提交信息后,系统调用DingdanAction类的saveorder()方法,该方法通过DingdanModel类在dingdan表中更订单详细信息。显示订单详细信息页面如图5-22所示。

 

图5-22  显示订单详细信息页面

 

5.2.4管理信息模块设计与实现

    管理员点击“添加公告”标签,可以进行添加网站公告。系统调用GonggaoAction类的addgonggao()方法,展示添加公告页面。管理员在该页面输入公告的主题和内容,添加公告。系统调用savenewgonggao ()方法,通过GonggaoModel类将新的公告记录插入到gonggao表中。添加公告界面如图5-23所示。

 

图5-23  添加公告页面

 

    管理员登录点击“公告管理”标签后,系统调用GonggaoAction类的admingonggao()方法,该方法通过GonggaoModel类从gonggao表中取出所有公告的信息,注入到模板文件admingonggao.html中,并调用该模板文件显示公告记录。

    管理员在显示公告记录页面单击某一公告duiyin对应的“修改”标签后,系统会调用GonggaoAction类的editgonggao()方法,该方法通过GonggaoModel类从gonggao表中取出该公告的具体信息。系统将信息注入到模板文件editgonggao.html中,并调用该模板文件显示修改公告信息页面。管理员可以修改公告的具体信息。管理员确认修改后,系统调用savexiugaigonggao()方法,根据接收到的公告编号通过GonggaoModel类在gonggao表中更新该公告的信息。

    管理员在显示公告页面可以点击每一个公告对应的删除复选框,删除该公告。系统会调用GonggaoAction类的deletegonggao()方法,通过根据接收到的公告编号GonggaoModel类从gonggao表中删除公告。

    管理员登录点击“评论管理”标签后,系统调用GonggaoAction类的editpinglun()方法,该方法数据库中取出所有公告的信息。系统将信息注入到模板文件editpinglun.html中,并调用该模板文件显示评论信息。显示评论信息页面如图所示。

    管理员在显示公告页面可以点击每一个公告对应的删除复选框,删除该评论。系统会调用GonggaoAction类的deletepj()方法,根据接收到的评论编号通过PingjiaModel类从pingjia表中删除评论。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第六章  系统的测试与分析

 

6.1系统测试简介

    系统测试(System Test, ST)是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。在任何软件系统的开发过程中,尤其是在进行大型软件系统的开发中,任何一个编程人员都不可避免地会产生错误。为了尽可能地发现并改正系统设计中的错误,减少错误造成的损失,保证系统开发的质量,需要进行系统的测试。

系统测试的方法分为人工测试和机器测试。人工测试就是由人去审查、讨论或人工运行程序,以找出程序的错误。所使用的工具为笔、纸、计算器等,包括程序审查会、人工运行以及静态检验。机器测试就是通过计算机来运行程序,以发现程序的错误,主要包括白盒法和黑盒法。测试用例来源于对程序的分析,并以程序被执行的程度来判断测试是否充分,这种方法被称为“白盒法”。白盒法主要用于单元测试。以需求规约和需求描述为基础的测试。测试用例来源于对软件的需求描述和需求规约的分析,并根据需求描述和需求规约所规定的功能和性能是否得到了充分的检验来判断测试是否充分,这种方法被称为“黑盒法”。黑盒法主要用于系统测试。还有一种是程序和需求相结合的测试。测试用例来源于对需求和实现的综合考虑,这种方法被成为“灰盒法”。灰盒法主要用于集成测试。

黑盒测试就是把测试对象看做是一个黑盒子。测试人员完全不考虑程序内部的逻辑结构和内部特性。只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。不需测试软件产品的内部结构和处理过程。

本系统采用黑盒测试,通过测试用例来进行测试。

6.2系统测试方案

表6-1  会员注册模块测试用例

用例说明

会员注册测试

测试需求

检测会员注册时输入的信息是否合法

测试用例

1.不输入任何信息,点击提交按钮

2.会员名输入#$%&

3.会员名输入aa

4.注册密码输入111

5.注册密码输入111111,确认密码输入222222

6.输入已注册的会员名

7.电子邮件输入qqqq%126.com

8.身份证号输入1111

9.联系方式输入222

10.输入正确的信息

预期输出

1.提示请输入会员名

2.提示会员名应为英文或数字,长度为3-30位

3.提示会员名应为英文或数字,长度为3-30位

4.提示注册密码长度应大于6!

5.提示注册密码与确认密码不同

6.提示会员名已注册

7.提示电子邮箱地址格式不正确

8.提示请输入正确的身份证号

9.提示输入正确的联系方式

10.提示注册成功

实际输出

1.提示请输入会员名

2.提示会员名应为英文或数字,长度为3-30位

3.提示会员名应为英文或数字,长度为3-30位

4.提示注册密码长度应大于6!

5.提示注册密码与确认密码不同

6.提示会员名已注册

7.提示电子邮箱地址格式不正确

8.提示请输入正确的身份证号

9.提示输入正确的联系方式

10.提示注册成功

结果对比

实际输出符合预期输出

 

表6-2  会员登录模块测试用例

用例说明

会员登录测试

测试需求

检测会员登录时输入的信息是否合法

测试用例

1.不输入任何信息,直接点击登录按钮

2.会员名输入@@@

3.输入未注册会员名

4.输入错误的密码

5.输入错误的验证码

6.已冻结会员登录

7.已注册且未被冻结会员输入正确的信息

预期输出

1.提示请输入会员名

2.提示请输入正确的会员名

3.提示不存在此会员

4.提示密码输入有误

5.提示验证码输入有误

6.提示会员已被冻结

7、提示登录成功

实际输出

1.提示请输入会员名

2.提示请输入正确的会员名

3.提示不存在此会员

4.提示密码输入有误

5.提示验证码输入有误

6.提示会员已被冻结

7、提示登录成功

结果对比

实际输出符合预期输出

 

3.会员订购模块测试用例表

用例说明

会员订购商品测试

测试需求

测试会员订购商品模块的功能

测试用例

1.非注册会员将商品加添到购物车

2.非注册会员点击“购物车”

3.登录会员购买已售完商品
4.会员重复购买同一件商品

预期输出

1.提示请先登录再购物

2.提示请先登录再购物

3.提示商品已售完

4.提示该商品已在购物车中

实际输出

1.提示请先登录再购物

2.提示请先登录再购物

3.提示商品已售完

4.提示该商品已在购物车中

结果对比

实际输出符合预期输出

6.3测试结果分析

    在使用黑盒测试的过程中,预期输出与实际输出基本一致,由此可以得出结论,本系统运行基本正常。在初步测试后,对出问题的地方又进行了修改。再次使用相同的测试用例测试时,全部成功通过了测试,系统运行正常。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  结

 

    经过这次毕业设计,我熟悉了一个软件系统开发的整个过程,进一步掌握四年多来在软件方面学习的课程。本设计的题目是办公用品网上商城设计与实现。该网站在PHP+MySQL+Apache开发环境下,使用Zend Studio集成开发工具开发而成。在设计过程中综合使用了PHP、CSS和JavaScript等技术。在编码阶段采用了基于MVC模式的ThinkPHP框架。

办公用品网上商城由前台和后台组成。前台面向会员,后台面向管理员。会员注册并登录后可以进行查询商品、查看商品具体信息、查看商品评论、选购商品、提交订单等。管理员登录后可以对商品信息、会员信息、订单信息和评论,还可以发布网站公告。

由于开发经验的不足与水平有限,在系统设计中还存在许多不足之处,比如:界面的美化,由于时间的仓促,在开发设计中没有对系统的界面的美化做太多的工作,以至于鉴于过于简洁。另外,本系统只实现到生成订单,并没有实现在线支付功能。会员注册时的信息验证也不够完备,没有验证邮箱、身份证号等功能。订单生成之后没有向会员的注册邮箱发送确认邮件或向会员的联系号码发送短信的功能。因此该网站离实际使用还有一定的距离,需要进行不断地补充和完善。在以后的进一步设计中,应加强与实际情况相符的功能模块的实现以提高系统的性能,使功能模块间的关系更协调,并尽可能解决系统的通用性问题,从而使系统能得到更好的应用。         

总之,本次开发的网站完成了前期制定的任务与计划,符合了毕业设计的要求,对自身而言,累计了相当丰富的经验,相信在未来的工作中能对自己有所帮助。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  辞

 

    本次设计的指导老师是李博老师。在李老师的热情关心和仔细的指导下,我完成了本次毕业设计。李老师每周都会抽出时间询问我们的进度并耐心的解答我们遇到的问题。李老师和蔼的态度、渊博的知识和严谨的学风使我受益匪浅。本次毕业设计从论文选题、搜集材料到最终完成设计,每一步都是在李老师的指导下完成的,花费了李老师很多的心血和精力。在此向李老师表示由衷的感谢!

此外,在这次毕业设计中我还得到了很多同学的帮助。当我遇到问题的时候,同学们总是主动帮我解决问题。当我出现错误的时候,同学们总是及时地纠正我的错误。当我遇到困难的时候,同学们给予我极大的鼓励与支持。还有很多同学给我提出了建设性的意见和建议。在此向你们表示感谢。最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考文献

 

[1] 盛小丰. 办公用品B2C电子商务发展现状及对策分析[J]. 财经试点,2011,5(11):166-167.

[2] 邵奎博. 基于B2B模式的办公用品网上销售分析[J]. 电子商务,2008,7(10):26-27.

[3] 潘凯华,刘中华著. PHP从入门到精通[M]. 北京:清华大学出版社,2010:23-37.

[4] 白志强,白志刚著. 21天学通PHP[M]. 北京:电子工业出版社,2010:23-25.

[5] 高洛峰著. 细说PHP[M]. 北京:电子工业出版社,2012:56-85.

[6] 丁月光,孙更新等著. PHP+MySQL动态网站开发[M]. 北京:清华大学出版社,2008:123-135.

[7] 崔洋著. MySQL数据库应用从入门到精通[M]. 北京:中国铁道出版社,2013:103-135.

[8] 潘凯华,李慧等著. MySQL快速入门[M]. 北京:清华大学出版社,2012:63-85.

[9] 姜承尧著. MySQL技术内幕:SQL编程[M]. 北京:机械工业出版社,2012:46-67.

[10] 王石, 杨英娜著. 精通PHP+MySQL应用开发[M]. 北京:人民邮电出版社,2006:12-23.

[11] 杜闯. PHP在动态网站开发中的优势[J]. 电脑知识与技术,2010,3(13):3342-3344.

[12] Anja S Göritz, Michael H Birnbaum. Generic HTML Form Processor: A versatile PHP script to save Web-collected data into a MySQL database[J]. Behavior Research Methods, 2005,37(4),703-710.


 [雨林木风1]新型

 [雨林木风2]结论

 [雨林木风3]Y OR N

 [雨林木风4]商品分类

猜你喜欢

转载自blog.csdn.net/qq_36300579/article/details/89164919