基于php网上书店毕业设计(含源文件)

摘    要

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

近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。

而在大学校园这个特定的场合,存在一个不小的旧书交易市场,但囿于传统的交易模式,旧书的销售和购买渠道不够便捷。这极大的浪费了购销双方同学的宝贵时间,而且让可以重复利用的旧书变为废纸,极大浪费资源。在倡导节能环保理念的今天,我们更要注重资源的充分利用。本课题的研究目的就在于创建一个高效、快捷的校园旧书交易平台,在校园里为对旧书有购买意愿的同学架起一座桥梁,方便同学购买旧书。

本课题以购物网为主要背景,为在校大学生提供一个购书平台,解决了校园旧书市场至今没能实现规模化、便捷化的遗憾。本设计尝试用PHP在网络上架构一个动态的交通大学购买旧书的一个网站,以使想要买旧书的同学不用为新书高昂的价钱发愁,也可以是用过的旧书达到最大化的利用。

关键词:电子商务; PHP; MySQL; 旧书。

ABSTRACT

 

In recent years, with the rapid development of the Internet, Internet has increasingly become the best channel for providing information and gradually goes into the traditional circulation area. E-commerce has become popular, more and more businesses built store online and demonstrate a novel shopping concept to consumers.

 In this particular occasion like campus, there is a big market for second-hand books. But due to the traditional trading patterns, the sale and purchase channels of books are not convenient. This is an enormous waste of time for student who wants to buy and sell and let the old book which can be reused turn into wastepaper, which is an enormous waste of resources. In the days that advocating energy saving ideas, we should focus more on full utilization of resources. The purpose of this research projects is to create an efficient, fast trading platform for old books in campus in order to make buying second-hand book convenient.

This project is based on shopping network, providing a trading platform for students who want to buy second-hand books. And it solves the regret of book market which has not been able to become scale and facilitation. This design tries to work out a dynamic website for buying books at Jiaotong University on the network using PHP, so that the students will not have to worry about the high price for buying new books and the books can be used to the best.

Keyword: E-commerce ; PHP; MySQL; second-hand book.

目  录

 

第一章  综述. 1

1.1本课题的开发背景. 1

1.2设计研究的内容. 1

第二章  开发工具及相关技术. 3

2.1开发工具. 3

2.2运行工具. 3

2.3相关技术. 3

2.3.1PHP的工作原理及相关技术. 3

2.3.2JavaScript语言. 4

2.3.3CSS概述. 4

2.3.4B/S系统结构. 4

第三章  需求分析. 5

3.1功能需求分析. 5

3.2可行性分析. 5

3.2.1技术可行性分析. 5

3.2.2经济可行性分析. 5

3.3系统需求. 5

3.4系统用例图. 7

第四章  系统的总体设计. 8

4.1系统功能简介. 8

4.2系统功能模块特点. 8

4.3系统业务及其流程图. 8

4.3.1登录注册业务及其流程图. 8

4.3.2搜索业务及其流程图. 10

4.3.3修改密码业务及其流程图. 11

4.3.4修改个人信息业务及其流程图. 12

4.3.5留言业务及其流程图. 13

4.3.6评论业务及其流程图. 13

4.3.7提交订单业务及其流程图. 14

4.3.8购物车业务及其流程图. 16

4.3.9订单处理业务及其流程图. 17

4.3.10添加旧书业务及其流程图. 18

4.3.11修改旧书业务及其流程图. 18

4.3.12添加旧类别业务及其流程图. 19

4.3.13查询订单业务及其流程图. 20

4.4系统数据库设计. 21

4.4.1实体属性图. 22

4.4.2实体关系图. 24

4.4.3系统数据表设计. 25

第五章   系统的总体实现. 29

5.1旧书展示模块设计. 29

5.1.1热门旧书展示. 29

5.1.2旧书分类展示. 30

5.1.3旧书分类展示. 30

5.2搜索模块设计. 31

5.3订单管理模块设计. 31

5.3.1查看订单. 32

5.3.2查找订单. 32

第六章   部分模块代码展示. 33

6.1添加旧书信息模块. 33

6.2详细的代码实现. 33

6.2.1建立基本框架. 33

6.2.2检查输入的信息是否为空. 34

6.2.3提交表单. 35

第七章   系统测试. 39

7.1注册测试. 39

7.2登录测试. 39

7.3订单测试. 40

结  论. 41

谢  辞. 42

参考文献. 43

 

第一章  综述

 

1.1本课题的开发背景

电子商务是一项全新的经济方式,他的产生和发展必将对世界经济产生重大的影响。电子商务正在深刻地改变着经济,市场和产业结构,改变着产品,服务及其流动,改变着消费者的价值和行为。在大学校园中,存在着巨大的图书市场。对于学完某课程的同学,用过的旧书无从处理,对于即将要学的同学,高昂的旧书费用使他们望而却步。所以,本设计旨在开发一个卖旧书的网络平台,给交通大学的同学们,提供一个购置二手书的平台。

1.2设计研究的内容

本设计主要应用PHP编程、Web开发以及MySQL数据库连接等相关知识,利用动态网页开发技术,将所学的知识用于实际的生活中,并且在实际的生活中发挥其主要功能并获得效益,本设计内容包括以下的功能模块:

1、登陆模块:该系统的用户分为后台用户和前台用户,后台用户是管理员用户,前台用户是会员;会员的注册信息:用户名,密码 ,e-mail。会员输入正确的用户名和密码才能登陆,否则会给出合理提示并跳转回登陆页面。

2、旧书展示模块:此模块主要包括:热卖旧书展示,旧书分类展示,查看旧书信息3个功能。

(1)、热卖旧书展示

单击首页热卖旧书超链接,即可进入热卖的旧书的显示页面。

(2)、旧书分类展示

首页中的有专门的按院系分类的超链接,单击可进入分类旧书展示页面。

(3)、查看旧书信息

为了让会员全面地了解某个旧书,设置了查看旧书详细信息模块。单击可进入旧书详细信息的页面。在该页面,会员可以对旧书的信息有整体了解,旧书的信息包括:图片,名称,会员价格,原价格,数量,评论,添加时间,数量简介。会员可以评论此书。

3、购物车模块:此模块主要包括添加旧书至购物车,查看购物车,删除购物车内指定旧书,清空购物车和结账5个功能。

4、查询模块:

会员可以分类浏览不同院系下的旧书信息。也可在首页搜索文本框中输入旧书的名称中的关键字,可以显示与关键字匹配的旧书信息。管理员在后台可浏览出售旧书的列表,也可根据订单号,收货人的关键字来查找订单。

5、会员中心模块

会员信息包括:用户名,密码,真实姓名,email,qq,联系电话,宿舍地址,学生证号。会员可修改除用户名外其他的信息。会员还可以留言给管理员。留言的信息包括:主题和内容。

6、订单管理模块

当管理员登录后台时,可查看会员订单,编辑订单。

(1)编辑订单:该模块下,管理员可以同时查看会员的订单信息,包括订单编号,下单人的用户名,旧书名称,收货人,地址,金额,数量,付款方式,收货方式和状态。状态由管理员改,包括:已完成和已发货。

(2)查询订单:查询订单可根据下单人的姓名或订单号查找订单。

7、旧书管理模块

此模块包括:旧书信息管理和旧书类别管理。

(1)添加旧书信息:管理员可以将新上架的旧书添加到网站中。旧书的信息包括:旧书名称,上架日期,会员价,原价,旧书类型,数量,旧书图片和旧书简介。

(2)修改旧书信息:选中要修改的旧书,点击“更改”,即可重新修改旧书信息。

(3)删除旧书信息:管理员可以删除一本旧书的全部信息。

(4)旧书类别管理:管理员可以管理旧书类别。

8、会员管理模块:管理员可以查看,删除已注册会员的信息。管理员也可以查看,删除会员的留言。

9、评价模块:管理员可以查看会员对某本旧书的评价,也可以删除这个评价。

第二章  开发工具及相关技术

 

2.1开发工具

Zend Studio是Zend Technologies开发的PHP语言集成开发环境,也支持HTML和JS标签,但只对PHP语言提供测试支持。因为是同一个公司的产品,所以提供的Zend Framework方面的支持比其他软件好。Zend Studio是屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,语法自动填充,书签,语法自动缩排和代码复制等功能,内置一个强大的PHP代码调试工具,支持本地和远程调试模式,支持多种高级调试功能。

2.2运行工具

WAMP是多个词的缩写,即Windows下的Apache+MySQL+PHP,它是一组常用来搭建动态网站或者服务器的开源软件,这些软件本身都是相互独立的程序,但是因为这些程序在应用PHP技术开发Web程序中长被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

随着开源潮流的蓬勃发展,开源源代码的LAMP已经与J2EE和.NET商业软件形成三足鼎立之势,并且该软件开发的项目在软件的投资成本较低,因此受到整个IT界的关注。

2.3相关技术

2.3.1PHP的工作原理及相关技术

PHP(HyperText Preprocessor)是一种多平台无缝运行的服务器端嵌入式脚本语言,它融合了C, JAVA等编程语言,由于他是一种免费的软件,具有自由软件的性质,且版本更新速度快,移植速度快,具有丰富的函数库功能,因此很快得到用户的认可,特别是PHP提供加密函数库,符合安全性较高的电子商务网站的要求,在Apache环境下构建的PHP网站已经成为当前流行的Web网站之一。

PHP能够作为Apache Web服务器的模块执行,使得其执行效率要高于普通的CGI程序,而且能够比CGI更快速地执行动态网页。

使用者如果创建了一个PHP应用程序,实际上相当于创建了一个PHP脚本文件。在服务器将输入信息发送到客户端至钱,网络服务器会率先将文件中的PHP语言进行加工处理。如果服务器不支持PHP,网络服务器会直接将超文本文件送到客户的浏览器上以表示对HTTP的要求作出应答;如果服务器支持PHP,则在服务器响应一个对直接送到浏览器上,而内嵌PHP程序却是先被网络服务器解释执行。

PHP可以安装在Windows环境下。目前,网站使用最多的便是Apache+MySQL+PHP基于UNIX/Linux下的服务器策略。

2.3.2JavaScript语言

JavaScript是一种解释性的,基于对象的脚本语言。

HTML网页在互动性方面能力较弱,如下拉菜单,用纯HTML网页无法实现;又如验证HTML表单提交信息的有效性时,用户名不能为空,密码不能少于4位,用纯HTML网页无法实现。要实现这些功能,就需要用到JavaScript。

JavaScript是一种脚本语言,比HTML复杂。不过即便先前不懂编程,也不用担心,因为JavaScript编写的程序都是以源代码的形式出现的,也就是说,如果在一个网页里看到一段比较好的JavaScript代码,恰好可以用的上,就可以直接复制,然后放到自己的网页上去。所以JavaScript本身变得非常受欢迎,从而被广泛应用。

2.3.3CSS概述

CSS样式表定义如何显示HTML元素,就像HTML的字体标签和颜色属性起的作用那样。样式通常保存在外部的.CSS文件中。仅编辑一个简单的CSS文档,外部样式表就可同时改变站点中所有页面的布局和外观。

由于允许同时控制多重页面的样式和布局,CSS可以称得上Web设计领域的一个突破。作为网站的开发者,能够为每个HTML元素定义样式,并将其应用与所希望的任意多个页面中。

2.3.4B/S系统结构

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在B/S结构下,用户工作界面是通过WWW浏览器来实现的,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端计算机载荷,减轻了系统维护与升级的成本和工作量,降低了总成本。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也较低。

随着Internet和WWW的流行,以往的主机/终端盒C/S都无法满足当前的全球网络开放,互联,信息随处可见和信息共享的新要求,于是就出现B/S型模式。B/S结构最大的特点是用户可以通过WWW浏览器访问Internet上的文本,数据,图像和动画,这些信息都是由许多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了WWW浏览器,无需任何用户程序。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。

 

第三章  需求分析

3.1功能需求分析

像这种用在校园内并且目标客户群是特定学生的这种网站,其实质应该像一个虚拟的购物超市系统。而且,商品的种类单一,就是书籍,而且按照院系来划分的话,很好划分。所以根据对像淘宝,京东,当当等知名电子商务网站的考察和分析,并结合了一些校园特有的东西,要求本系统具有以下功能:

  • 网站设计页面要求美观大方、个性、有校园书籍气息,功能全面,操作简单。
  • 实现会员登录、注册、找回密码等会员操作功能。
  • 实现迅速查找旧书的功能。
  • 实现旧书的分类详尽,尽可能做到点击院系,马上锁定目标旧书。
  • 实现旧书查看、购买旧书的功能。
  • 实现订单查询功能。
  • 实现校内特定的收货方式和付款方式方便、快捷、安全。

3.2可行性分析

3.2.1技术可行性分析

    本次交通大学淘旧书网站系统利用Apache+MySQL+PHP的构架方式,并应用Windows作为搭载平台建立整个系统的Web服务器。由于Apache、MySQL和PHP具有良好的开源性与免费性,可以在开发中极大的降低成本并缩短开发周期。

3.2.2经济可行性分析

学校具有信息化的处理设施,并且拥有支持本系统的应用平台。因此无需再投入资金购买其他设施。系统的开发基于本人对程序开发的实践学习而来,用户无需资金投入,并且软件开发过程投入的成本不高。因此开发经费完全可以接受。由以上分析可知,本网站在经济上是可行的。

3.3系统需求

根据上述的分析,可以将这个系统分为购物车、会员中心、旧书管理、订单管理、查询等几个部分。本交通大学淘旧书网站的整体功能模块图如图3-1所示。

 

图3-1  功能模块图

3.4系统用例图

在本系统中,通过分析,可以确定有两个角色:会员和管理员。在此基础上,为每个角色定义他们所能执行的系统功能。最后,本系统总的用例图,如图3-2.

 

图3-2  系统用例图

 

第四章  系统的总体设计

 

4.1系统功能简介

根据本次毕业设计的要求,整个交通大学淘旧书网站系统主要有前台系统和后台系统共同组成,前台系统主要由旧书的分类展示、会员登录、查询和购物车模块组成。其中,旧书展示模块包括热门旧书展示和分类展示。登录模块主要用于实现会员的账号注册、账号登录两个操作;查询模块主要用于实现旧书的查询以及会员订单号的查询操作;购物车模块主要用于会员订购旧书。后台系统由订单管理、旧书管理、类别管理和会员管理几个模块组成。订单管理模块包括编辑订单和查询订单;旧书管理包括添加、修改旧书信息;类别管理模块包括添加类别和查看类别;会员管理模块包括会员信息的管理和管理留言和评价。

4.2系统功能模块特点

本网站可以根据不同的模块来实现基本的网上书店的功能,该前台系统可以帮助会员快速、方便地浏览网站中的旧书,并提供完善的购书体系。另外,会员可以通过查询模块快速锁定想要购买的旧书,省去了逐页浏览的时间。

后台管理系统为站长提供安全、稳定、高效的管理体制,整个后天管理系统具有层次分明、方便管理、易于上手、易于维护等功能特点。从前台系统与后台系统共同组成了一个健全的网上购书及管理系统。

4.3系统业务及其流程图

4.3.1登录注册业务及其流程图

登录注册实现会员的注册和购书时必须登录。首先,当会员决定要下订单的时候,系统会判断当前用户是否是会员,如果不是注册会员,首先会跳转到注册页面。只有注册成功成为会员后,才能下订单。具体的业务流程图,如图4-1。

 

图4-1  登录注册业务流程图

 

4.3.2搜索业务及其流程图

搜索业务可以使会员能够快速的锁定想要查看的旧书信息。会员只要输入想要购买旧书名称中的关键字,点击搜索,就可以迅速的查找到含有该关键字的旧书列表。如果没有查找到,则返回“本站暂无此类旧书”。搜索的业务流程图,如图4-2。

 

图4-2  搜索业务流程图

 

4.3.3修改密码业务及其流程图

登录的会员可以通过点击修改密码,来修改登录密码。修改密码的业务流程图,如图4-3。

 

图4-3  修改密码业务流程图

 

4.3.4修改个人信息业务及其流程图

已经登录的会员可以在“用户中心”下的“修改个人信息”中,修改当初注册时注册的各项个人信息。修改后的内容都不能为空。修改个人信息的业务流程图,如图4-4所示。

 

图4-4   修改个人信息业务流程图

 

4.3.5留言业务及其流程图

    会员可以点击“用户中心”下的“用户留言”来给管理员留言,咨询旧书信息或者其他的一些问题,但是主题和内容不能为空。留言的业务流程图,如图4-5。

 

图4-5   留言业务流程图

 

4.3.6评论业务及其流程图

会员可以评论某本旧书,其他会员可以看见这些评论。管理员可以在后台查看回复,也可以删除这些回复。会员评论的业务流程图,如图4-6。

 

图4-6   评论业务流程图

 

4.3.7提交订单业务及其流程图

会员选购好图书后,可以通过下订单来告诉管理员邮寄此书。下单后,填写地址信息,然后等待管理员的处理。详细的提交订单业务图,如图4-7所示。

 

图4-7   提交订单业务流程图

4.3.8购物车业务及其流程图

购物车是电子商务网站的核心,购物车的设计可以使会员持续的购物,而不用每想买一本旧书,就提交一次订单,已达到节约时间。购物车的业务流程图如图4-8所示。

 

图4-8   购物车业务流程图

 

4.3.9订单处理业务及其流程图

管理员可以查看订单和编辑订单。流程基本是查看要操作的订单是否在数据库中。如果在,则可以进行进一步的操作,如果不在,则不能进行下一步操作。订单业务流程图,如图4-9。

 

图4-9   订单处理业务流程图

4.3.10添加旧书业务及其流程图

管理员能够通过后台系统,向网站库中加入新的旧书。添加旧书业务流程图,如图4-10。

 

图4-10   订单处理业务流程图

 

4.3.11修改旧书业务及其流程图

管理员通过网站后台,来修改已经在买的旧书的信息。修改旧书的业务流程图如图4-11所示。

 

图4-11   修改旧书业务流程图

 

4.3.12添加旧类别业务及其流程图

因为旧书都是按照院系来分类的,所以每本旧书都有一个分类类别。添加类别可以添加旧书的大类类别,像机械工程学院、材料学院等,这些都是旧书类别属性。添加类别的业务流程图,如图4-12。

 

图4-12   添加类别业务流程图

 

4.3.13查询订单业务及其流程图

管理员能够通过会员的用户名来查询该会员已下的订单或者通过订单号来查询某个订单。查询订单的业务流程图如图4-13所示。

 

图4-13   查询订单业务流程图

 

4.4系统数据库设计

数据库设计基本设计一下几个步骤:数据库需求分析、概念设计、逻辑设计、物理设计。

根据本网站的数据库的需求,将业务管理流化为数据流,划分主题之间的边界,并完成相应的数据字典;概念设计的任务是绘制出实体—关系(E-R)图,并列出哥哥实体与关系的纲要表;逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体与关系的表名属性;物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化,实现物理建库,完成数据库物理设计字典。

4.4.1实体属性图

由于交通大学淘旧书网站是一个小型的,满足特定用户的购书网站。所以按照以下的信息来建立:

管理员:包括管理员编号、用户名、密码。主键是管理员编号。实体属性图,如图4-14。

 

图4-14   管理员实体属性图

 

会员:包括会员编号、会员名、密码、Email、学生证号、电话、qq、注册时间、地址、答案提示、答案回答、真实姓名。主键是会员编号。会员的实体属性图,如图4-15。

 

图4-15   会员实体属性图

 

旧书:包括旧书编号、旧书简介、旧书名称、上架时间、图片路径、数量、次数、原价、会员价、分类编号。主键是会员编号,外键是分类编号。

 

图4-16   旧书实体属性图

 

订单:订单包括订单编号、订单号、收货人、性别、地址、学生证号、电话、Email、收货方式、支付方式、留言、总计、状态、时间、下单人。其中订单编号是主键,下单人是外键。订单的实体属性图,如图4-17。

 

图4-17   订单实体属性图

 

留言:留言包括留言编号、主题、内容、发送时间、会员编号。其中留言编号是主键,会员编号是外键。留言的实体属性图,如图4-18

 

图4-18   留言实体属性图

 

评价:包括评价编号、主题、内容、发送时间、旧书编号、会员编号。其中评价编号是主键,旧书编号和会员编号是外键。评价的实体属性图,如图4-19。

 

图4-19   评价实体属性图

 

旧书类别:包括类别编号和类别名称。其中类别编号是主键。旧书类别的实体属性图,如图4-20。

 

图4-20   旧书类别实体属性图

 

4.4.2实体关系图

由于实体之间存在相互关系,所以用E-R图来表示实体之间的关系。系统的整体实体关系图,如图4-21。

图4-21   实体关系图

 

4.4.3系统数据表设计

结合实际情况及对会员需求的分析,交通大学淘旧书网站数据库主要包括admin(管理员表)、user(会员信息表)、dingdan(会员订单表)、leaveword(会员留言表)、pingjia(旧书评价表)、jiushu(旧书信息表)、type(旧书类别)7张表。

具体的交通大学淘旧书网站数据库中主要数据表的设计结构如表1~表7所示。

表1  admin表

物理名称

概念名称

数据类型

必需的

PK

注释

id

管理员编号

int(4)

管理员编号    标识  读者

name

用户名

varchar(25)

 

管理员用户名  标识 管理员

pwd

密码

varchar(20)

 

密码          属于 管理员

 

表2   user表

物理名称

概念名称

数据类型

必需的

PK

注释

id

会员编号

int(4)

会员编号   标识     会员

name

用户名

varchar(25)

 

用户名     属于     会员

pwd

密码

varchar(20)

 

密码       属于     会员

email

E-mail

varchar(25)

 

E-mail     属于      会员

xszh

学生证号

varchar(25)

 

学生证号   属于     会员

tel

电话

varchar(20)

 

电话      属于      会员

qq

qq

varchar(20)

 

 

qq        属于      会员

regtime

注册时间

varchar(25)

 

 

注册时间  属于      会员

tishi

答案提示

varchar(50)

 

答案提示   属于     会员

huida

答案回答

varchar(50)

 

答案回答   属于     会员

dizhi

宿舍地址

varchar(100)

 

 

宿舍地址   属于     会员

truename

真实姓名

varchar(25)

 

 

真实姓名   属于     会员

 

表3   dingdan表

物理名称

概念名称

数据类型

必需的

PK

注释

id

订单编号

int(4)

订单编号    标识    订单

dingdanhao

订单号

varchar(125)

 

订单号      属于    订单

shouhuoren

收货人

varchar(25)

 

收货人      属于    会员

sex

性别

varchar(2)

 

性别        属于    旧书

dizhi

地址

varchar(100)

 

地址        属于    订单

xszh

学生证号

varchar(10)

 

学生证号    属于    会员

tel

电话

varchar(25)

 

 

电话        属于    会员

email

email

varchar(25)

 

email       属于    会员

shff

收货方式

varchar(25)

 

收货方式    属于    订单

zfff

支付方式

varchar(25

 

支付方式    属于    订单

leaveword

留言

mediumtext

 

 

留言        属于    订单

xiadanren

下单人

varchar(25)

 

下单人      标识    会员

zt

状态

varchar(5)

 

 

状态        属于    订单

time

时间

varchar(25)

 

时间        属于    订单

total

总计

varchar(25)

 

总计        属于    订单

 

表4   leaverword表

物理名称

概念名称

数据类型

必需的

PK

注释

id

留言编号

int(4)

留言编号   标识     留言

userid

会员编号

int(4)

 

会员编号   标识     会员

title

主题

varchar(50)

 

主题       属于     留言

content

内容

text

 

内容       属于     留言

time

发送时间

varchar(30)

 

发送时间   属于     留言

 

表5   pingjia表

物理名称

概念名称

数据类型

必需的

PK

注释

id

评价编号

int(4)

评价编号   标识     评价

userid

会员编号

int(4)

 

会员编号   标识     会员

spid

旧书编号

int(4)

 

旧书编号   标识     旧书

title

主题

varchar(50)

 

主题       属于     评价

content

内容

text

 

内容       属于     评价

time

发送时间

varchar(30)

 

发送时间   属于     评价

 

表6   jiushu表

物理名称

概念名称

数据类型

必需的

PK

注释

id

旧书编号

int(4)

旧书编号   标识     旧书

mingcheng

旧书名称

varchar(25)

 

旧书名称   属于     旧书

jianjie

旧书简介

mediumtext

 

 

旧书简介   属于     旧书

addtime

上架时间

varchar(25)

 

上架时间   属于     旧书

tupian

图片路径

varchar(200)

 

 

图片路径   属于     旧书

shuliang

数量

int(4)

 

数量       属于     旧书

cishu

次数

int(4)

 

 

浏览次数   属于     旧书

typyid

分类编号

int(4)

 

分类编号   标识     分类

huiyuanjia

会员价

varchar(25)

 

会员价     属于     旧书

yuanjia

原价

varchar(25)

 

原价       属于     旧书

 

表7   type表

物理名称

概念名称

数据类型

必需的

PK

注释

typeid

类别编号

int(4)

类别编号    标识    类别

typename

类别名称

varchar(30)

 

类别名称    属于    类别

第五章   系统的总体实现

 

本系统使用的环境是WAMP, 所以在本地使用需要先打开WAMP。具体的使用步骤是:打开WampServer,打开任意的浏览器(本次使用的主要是Chrome浏览器)。在地址栏中输入以下网址:http://localhost/djtubook,进入本系统的首页。以下是本系统各个模块的实现。

5.1旧书展示模块设计

旧书展示模块主要包括热门旧书、旧书分类展示和查看旧书信息3个功能。

5.1.1热门旧书展示

在交通大学淘旧书网站首页单击导航栏中的“热门旧书”,可进入热门旧书展示页面,该页面中显示的是旧书名称、简介、原价、上架日期、剩余数量和会员价几个旧书信息,已经登录的会员可以点击“购买”图标将旧书放入系统购物车中,以此来实现购物体验。热门旧书展示页面的运行结果如图5-1所示。

 

图5-1   热门旧书展示页面

 

5.1.2旧书分类展示

在交通大学淘旧书网站首页单击导航栏中的“旧书分类”,可进入分类旧书展示页面。在该页面中,可以通过单击不同类别的超链接来筛选不同院系下所学的书籍。该页面,每一页显示3本此类别下的书籍。类别包括:公共必修、机械工程学院、材料学院、电气信息学院、管理学院、外国语学院、软件学院和课外书籍8个大类。该页面中显示的是旧书名称、简介、原价、上架日期、剩余数量和会员价几个旧书信息,已经登录的会员可以点击“购买”图标将旧书放入系统购物车中,以此来实现购物体验。分类旧书展示页面的运行结果如图5-2所示。

 

图5-2   分类旧书展示页面

 

5.1.3旧书分类展示

为了让会员全面地了解某件旧书,交通大学套旧书网站系统设置了查看旧书详细信息模块。选择任意的一本旧书,单击“查看详情”或在分类旧书展示中直接单击图片,可进入显示旧书详细信息的页面。在该页面中,会员不仅可以通过旧书信息对此书籍有个整体的了解,而且,还可以发表个人评论,根据会员的评论,管理员可以通过管理模块对此本旧书做出调整,也可以删除此会员在此本旧书下的评论。其他的会员可以单击“查看该旧书评论”来查看历史评论。查看旧书详细信息页面的运行结果如图5-3所示。

 

图5-3   查看旧书详细页面

 

5.2搜索模块设计

搜索是在网站导航的下方,设计简单搜索的目的是方便会员即时搜索查找,以此来筛选特定的旧书信息。会员只需在搜索旧书的文本框中输入想要购买旧书名称中的关键字,单击“立即查找”按钮,即可在页面中显示与关键字匹配的旧书信息。搜索运行的结果如图5-4所示。

 

图5-4   简单搜索页面

 

 

5.3订单管理模块设计

管理员是根据会员订单来发货的,所以订单管理模块的实现在整个系统中起着非常重要的作用。订单管理模块主要包括查看订单、执行订单和查找订单。

5.3.1查看订单

管理员通过后台登陆到后台管理页面,点击“订单管理”即可进入订单管理页面。当会员提交订单后,管理员就可以查看会员已经提交的订单,在这个模块中,管理员可以同时查看多个会员的订单信息,并可以同时删除多个订单。查看订单页面的运行结果如图5-5所示。

 

图5-5   查看订单页面

 

5.3.2查找订单

管理员可以通过“查询订单”进入查找页面。为了便于管理员管理订单,交通大学淘旧书网站提供了订单查找模块,管理员子啊相应的文本框中输入下单人姓名和订单号后,单击“查找”按钮即可执行订单查找操作。查找订单页面如图5-6所示。

 

图5-6   查找订单页面

 

第六章   部分模块代码展示

 

本章节主要对于添加旧书这一模块的代码进行展示。

6.1添加旧书信息模块

通过添加旧书信息这一模块,管理员可以将想要上到网站上的旧书信息添加到交通大学淘旧书网站中。具体的运行结果如图6-1所示。

 

图6-1   添加旧书信息页面

6.2详细的代码实现

6.2.1建立基本框架

使用HTML内嵌PHP代码,首先定义title为添加旧书。编写CSS,最后调用数据库连接文件conn.php。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>添加旧书</title>

<link rel="stylesheet" type="text/css" href="css/font.css">

<style type="text/css">

<!--

.style1 {color: #FFFFFF}

-->

</style>

</head>

<?php include("conn/conn.php");?>

6.2.2检查输入的信息是否为空

以下代码为chkinput()函数,主要目的是检查输入文本框的内容是否为空。哪项为空则弹窗提示对应内容为空。

<body topmargin="0" leftmargin="0" bottommargin="0">

<table width="720" border="0" align="center" cellpadding="0" cellspacing="0">

  <tr>

    <td height="20" bgcolor="#FFCF60"><div align="center" class="style1">添加旧书</div></td>

  </tr>

  <tr>

    <td height="253" bgcolor="#666666"><table width="720" border="0" cellpadding="0" cellspacing="1">

    <script language="javascript">

    function chkinput(form)

    {

      if(form.mingcheng.value=="")

       {

         alert("请输入旧书名称!");

        form.mingcheng.select();

        return(false);

       }

     

   

   

      if(form.huiyuanjia.value=="")

       {

         alert("请输入旧书会员价!");

        form.huiyuanjia.select();

        return(false);

       }

     

   

   

      if(form.shichangjia.value=="")

       {

         alert("请输入旧书原价!");

        form.shichangjia.select();

        return(false);

       }

     

      

      

      

      

     

       if(form.shuliang.value=="")

       {

         alert("请输入旧书数量!");

        form.shuliang.select();

        return(false);

       }

       if(form.jianjie.value=="")

       {

         alert("请输入旧书简介!");

        form.jianjie.select();

        return(false);

       }

   

       return(true);

    }

</script>

6.2.3提交表单

首先用<table><tr><td>等建立单元格作出提交的页面,再使用表单提交"post"提交到savenewgoods.php文件中,检测提交按钮动作,点击“提交”则执行上面的’chkinput()函数。

     <form name="form1" enctype="multipart/form-data" method="post" action="savenewgoods.php" onSubmit="return chkinput(this)">

      <tr>

        <td width="129" height="25" bgcolor="#FFFFFF"><div align="center">旧书名称:</div></td>

        <td width="618" bgcolor="#FFFFFF"><div align="left"><input type="text" name="mingcheng" size="25" class="inputcss"></div></td>

      </tr>

      <tr>

        <td height="25" bgcolor="#FFFFFF"><div align="center">上架时间:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left">

<select name="nian" class="inputcss">

 <?php

  for($i=2013;$i<=2050;$i++)

  {

 ?>

  <option><?php echo $i;?></option>

  <?php

  }

 ?>

</select>         

          <select name="yue" class="inputcss">

            <?php

            for($i=1;$i<=12;$i++)

             {

            ?>

           <option><?php echo $i;?></option>

            <?php

             }

             ?>

          </select>

          

          <select name="ri" class="inputcss">

         <?php

            for($i=1;$i<=31;$i++)

             {

            ?>

        

            <option><?php echo $i;?></option>

        <?php

             }

             ?>

          </select>

          </div></td>

      </tr>

      <tr>

        <td height="25" bgcolor="#FFFFFF"><div align="center">价格:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left">原价:<input type="text" name="shichangjia" size="10" class="inputcss" >

          &nbsp;&nbsp;会员价:

          <input type="text" name="huiyuanjia" size="10" class="inputcss">

          </div></td>

      </tr>

      <tr>

        <td height="25" bgcolor="#FFFFFF"><div align="center">旧书类型:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left">

           <?php

           $sql=mysql_query("select * from tb_type order by id desc",$conn);

           $info=mysql_fetch_array($sql);

           if($info==false)

           {

             echo "请先添加旧书类型!";

           }

           else

           {

           ?>

            <select name="typeid" class="inputcss">

           <?php

           do

           {

           ?>

              <option value=<?php echo $info[id];?>><?php echo $info[typename];?></option>

           <?php

           }

           while($info=mysql_fetch_array($sql));

           ?> 

            </select>

            <?php

            }

           ?>

        </div></td>

      </tr>

    

     

    

      <tr>

        <td height="25" bgcolor="#FFFFFF"><div align="center">是否推荐:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left">

          <select name="tuijian" class="inputcss" >

            <option selected value=1></option>

            <option value=0></option>

          </select>

     </div>

      </td>

      </tr>

      <tr>

        <td height="25" bgcolor="#FFFFFF"><div align="center">旧书数量:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left"><input type="text" name="shuliang" class="inputcss" size="20"></div></td>

      </tr>

      <tr>

        <td height="25" bgcolor="#FFFFFF"><div align="center">旧书图片:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left">

       <input type="hidden" name="MAX_FILE_SIZE" value="2000000">

        <input type="file" name="upfile" class="inputcss" size="30"></div></td>

      </tr>

      <tr>

        <td height="80" bgcolor="#FFFFFF"><div align="center">旧书简介:</div></td>

        <td height="25" bgcolor="#FFFFFF"><div align="left"><textarea name="jianjie" cols="80" rows="8" class="inputcss"></textarea>

        </div></td>

      </tr>

      <tr>

        <td height="25" colspan="2" bgcolor="#FFFFFF"><div align="center"><input name="submit" type="submit" class="buttoncss" id="submit" value="添加">

        &nbsp;&nbsp;<input type="reset" value="重写" class="buttoncss"></div></td>

      </tr>

      </form>

    </table></td>

  </tr>

</table>

</body>

</html>

 

 

 

 

 

第七章   系统测试

 

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

由于本系统开发代码简单,所以运用黑盒测试,来测试注册登录,提交订单等功能完全够用。以下是对本系统各个功能的测试。

7.1注册测试

本网站设计的注册信息都是不为空的。用户名不能和已经注册的会员的用户名重复,输入密码必须大于6位,验证码必须正确。其中任意一项不符,都会提示哪一项信息没有填写或者用户名重复或者密码位数不对等。现在测试是否可用重复的用户名来注册新的会员。Zour是已经注册成功的会员的用户名,现在重新以这个用户名注册,看系统可否实现。测试用例如表7-1所示。

表7-1  会员注册测试用例

测试用例描述

测设过程和数据

期望输出

实际输出

用存在的会员名注册

注册时用户名填zour

该用户名已经存在

该用户名已经存在

用新会员名注册

注册时用户名填zouP

注册成功

注册成功

密码少于6位

注册时密码小于6位

注册密码长度应大于6位

密码长度应大于6位

密码大于等于6位

注册密码大于6位

注册成功

注册成功

带*的内容不能为空

没填学号

学号不能为空

学号不能为空

带*内容不能为空

填写所有带*内容

注册成功

注册成功

 

7.2登录测试

会员登录后才能购买书籍、评论、留言等。下面对会员登录部分做测试。已注册的会员信息为:用户名:zour,密码:123456,登录时随机出现验证码。会员登录的测试用例表7-2所示。

表7-2  会员登录测试用例

测试用例描述

测设过程和数据

期望输出

实际输出

用户名错误是否登录

用户名输入zoup

用户名或密码错误

用户名或密码错误

密码错误是否登录

密码输入1234567

用户名或密码错误

用户名或密码错误

验证码错误是否登录

验证码为2739,输入2738,其他正确

验证码错误

验证码错误

全部正确是否登录

输入zour,123456,当前验证码8930

登录成功,右上角显示当前会员

登录成功,右上角显示会员zour

 

7.3订单测试

会员可否能够下订单,下的订单可否能到后台使管理员看到,从而使管理员进行处理,成为本系统的成败的关键。下面就测试一下,会员可否下订单。注册会员zour,要买的目标书籍是高等数学,数量是10本,付款方式是本部,收货方式是送书上寝。会员下订单的测试用例如表7-3所示。

表7-3  会员下订单测试用例

测试用例描述

测设过程和数据

期望输出

实际输出

未填带*送货信息

未填写学生证号

订单提交不了

学生证号不能为空

填写所有送货信息

带*内容全部填写

订单成功提交

网站后台出现该订单

 

由此可见,会员下单和订单到后台,从而使管理员能够处理,这几个功能都能够实现。总体来说,从会员的注册登录,到会员下订单,再到管理员处理会员下的订单,这些功能都没有出错。可以说交通大学淘旧书网站基本满足了当初设计时的要求。

 

 

 

 

结  论

 

通过实际的调查和应用,可以看出本此交通大学淘旧书网站系统已经基本满足了设计要求,通过Web技术是实现了电子商务的基本功能。但是,在实际的应用中,发现整个系统仍有不足和缺陷,需要对程序进一步改进。但在应用的整体反馈中,与预期希望差别不大,基本达到了预期效果。

本设计以B/S系统作为基本结构,应用PHP相关技术,结合CSS、JavaScript等主流技术实现完整的交通大学淘旧书网站。从系统的稳定性与安全性角度考虑,数据库采用MySQL,在整个开发过程中降低了成本。

但是,在开发本网站的过程中,我也遇到了许多的问题。例如,在系统连接数据库时,如果函数mysql_connect()的参数填写错误,则会导致系统无法与后台数据库连接。又如,编码格式的问题。从数据库中,提取的汉子可能显示乱码。这些我都是后期经过上网查询,阅读相关书籍,发现了PHP编码和数据库编码格式不匹配这一问题,只需加上一定的头文件即可。

总体来说,本次程序设计还算是成功的。不仅满足了交通大学学生可以上网买旧书这已目的,同时添加了旧书类别选择功能,使网站整体结构更加清晰,并取得了预期测试结果。

 

 

 

 

谢  辞

 

软件毕业设计是我在大学阶段做的最后一件事,也是检测我知识水平重要的一关。它不仅给我的大学生涯画上了一个圆满的句号,而且也通过动手实践给自己上了在大学的最后一堂课,通过它所学到的东西对我以后的发展有着莫大的帮助。

毕业设计并非一帆风顺,在做这个网站的过程中,我遇到了困难,经历过挫折,我也曾懒惰过,苦恼过,但是更多的时候感慨的是“书到用时方恨少”。毕业设计的日子会让我久久难忘。在以往的五年的学习过程中,我只片面地注重了理论知识的记忆和分析,而忽略了动手能了的培养。这次的实际题目使我真正发现只有一些浅薄的理论基础是远远不够的,只有理论和实践相结合才是真正的合格。

在这里,我由衷地感谢半年来帮我的唐斌老师,正是有了他热心帮助和耐心的指导,我才会一次次的认识到自己的不足,在实践中不断改正自己犯下的错误。尤其是每当我犯下错误的时候,他总是细致入微的知指导,鼓励我思考遇到的问题,告诉我解决方法,从他身上我看到一个老师的敬业精神。可以说,没有唐斌老师的指导,我不可能使我的毕业设计能够如此地顺利完成。

 

 

参考文献

 

[1] 明日科技.PHP程序开发范例宝典[M].北京:人民邮电出版社,2007.

[2] 陈军.PHP+Mysql经典案例剖析[M].北京:清华大学出版社,2008.

[3] 高洛峰.细说PHP[M].北京:电子工业出版社,2009

[4] W.Jason Gilmori著,朱涛江译.PHP与MySQL程序设计(第3版)[M].北京:人民邮电出版社,2009

[5] Andy Budd, Cameron Moll, Simon Collison .CSS Mastery: Advanced Web Standards Solutions[M]. http://www.ppurl.com/2010/04/css-mastery-advanced-web-standards-solutions-second-edition.html, 2009

[6] 飞思科技产品研发中心.PHP & Mysql网站设计与实现[M].北京:电子工业出版社,2001.

[7] 吉尔磨、朱涛江.Beginning PHP and Mysql[M].北京:人民邮电出版社,2009.

[8] David Flanagan. JavaScript权威指南(第四版)[M].北京:机械工业出版社.2008.

[9] 刘智勇. Javascript 开发技术大全[M].北京:清华大学出版社,2009.

[10] 何秀芳.网页制作与网站建设从入门到精通[M].北京:人民邮电出版社,2007.

[11] Phpchina.php中文手册[S/OL]http://www.phpchina.com/resource/manual/php,2009.

[12] Ben Forta著,刘晓霞,钟鸣译.MySQL必知必会[M].北京:人民邮电出版社,2009.

[13] Scott Trent, Michiaki Tatsubori, Toyotaro Suzumura, Akihiko Tozawa, and Tamiya Onodera著. Performance Comparison of PHP and JSP as Server-Side Scripting Languages [M].日本: IBM Tokyo Research Laboratory,2009.

 

猜你喜欢

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