网上购物系统实验报告

上传人:dg****3 文档编号:71719592 上传时间:2022-04-07 格式:DOC 页数:18 大小:602.50KB
返回 下载 相关 举报
网上购物系统实验报告_第1页
第1页 / 共18页
网上购物系统实验报告_第2页
第2页 / 共18页
网上购物系统实验报告_第3页
第3页 / 共18页
点击查看更多>>
资源描述
.*晓庄学院网上购物系统设计实验报告所在院(系):数学与信息学院*:08413432学生:飞红年级专业:08级计算机专业指导教师:静教师提交日期:2010年6月. .晓庄学院网上购物系统的设计与实现 飞红指导教师:静1系统分析与设计1.1 需求分析随着计算机科学的开展,数据库技术在Internet中的应用越来越广泛,为广阔网络用户提供了更加周到和人性化的效劳。个性化已逐渐成为当今Web应用的潮流。本文研究了一种基于数据关联规则采集技术的用户个性化页面动态生成方案,此方案与现今网上已采用的方案相比,具有用户使用更简单、反映用户更明显细致等优点。网上购物是电子商务的典型应用之一,网上商场是实现网上购物的平安、便捷的途径。通过网上商场,用户可以到网上商场浏览选购自己喜欢的商品,平安地实现网上实时支付,安坐家中便完成购物的过程。对商家而言,通过网上商场可以非常方便地将自己的商品上网销售,维护十分简单甚至不需要建立自己的而只须付出低廉的费用。网络是网上商店的存在载体。网上商店向网上购物者传递商品信息,网上购物者通过网上商店进香商品和款项的交易。服装鞋帽商城采用PHP技术和SQL数据库,以Dreamweaver M* 2004为开发环境进展商城站点的构建,并选择*ampp作为效劳器,进展系统分析,为将来进一步的实施打下一个坚实的技术根底。此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询使用。包括:浏览商品、查询商品、订购商品、购物车、用户维护等功能;后台管理是提供应管理员的,其中包括:商品管理、用户管理、订单管理等。使管理员从繁琐的手工操作中解脱出来,并提高了办公准备效率。经过前期的深入调查和研究,总结出该系统需要完成的一些具体功能,分析如下:1. 用户管理:能够完成用户根本信息录入的注册、登录和注销。2. 管理呗管理:能够完成管理员对的商品订单的处理。1.2 总体设计根据网上购物的功能需求,进展系统分析设计。系统功能模块图如图1-1所示:1. .晓庄学院. .1.2.1 用户模块图 1-1 系统功能模块图. .用户模块又分为三个子模块:注册、登录及注销模板;选择商品并添加到购物车模块;付款结算模块。首先,用户登录后可以查看购物上所有的商品,根据个人爱好、需要,选择商品,用户可以通过查看主页上显示的商品进展选择,也可通过分类即菜单栏的导航进展选择商品。然后,选择好商品后,可通过添加到购物车,在购物车后也可以再继续购物或者删除不需要的商品。最后就是进展付款结算。结算完成后,注销用户,以便下次继续使用模块图如图1-2所示。图 1-2 用户模块图2. .晓庄学院1.2.2 管理员模块管理员模块:管理员管理模块也就是的后台,包括丙个子模块:登录及注销和处理商品与订单。登录及注销模块是控制管理员登录与注销。处理商品及订单模块的主要工作是负责对商品信息和订单信息的管理与维护,包括对商品的添加与删除即上架下架功能、订单信息确认与管理功能等。模块图如图 1-3所示. .1.3 数据库设计与实现图1-3管理员模块图. .数据库在系统中占有非常重要的地位,数据库构造设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库构造设计可以提高数据存储的效率,保证数据的完整和一致。另外,合理的数据库构造将非常有利于程序的实现。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。1.3.1 数据库设计原则在动态的设计中,数据库设计的重要性不言而喻。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。无论使用的是MySQL或者Oracle数据库,通过进展正规化的表格设计,可以令PHP代码更具可读性,更容易扩展,从而也会提升应用的性能。1、规命名所有的库名、表名、域名必须遵循统一的命名规则,并进展必要说明,以方便设计、维护、查询。2、控制字段的引用在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。3. .晓庄学院3、库表重复控制在设计过程中,如果发现大局部字段都已存在,开发人员应疑心所设计的库表是否已存在。通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。4、并发控制设计中应进展并发控制,即对于同一个库表,在同一时间只有一个人有控制权,其他人只能进展查询。5、必要的讨论数据库设计完成后,应与指导教师进展讨论,通过讨论来熟悉数据库,从而对设计中存在的问题进展控制或从中获取数据库设计的必要信息。1.3.2 数据库概念构造设计数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面的图1-4至图1-9显示的是各个实体以及实体的属性。图 1-4 管理员实体及属性图1-5用户实体及属性4. .晓庄学院图 1-6 订单实体及属性图1-7订单条目实体及属性图 1-8 类别实体及属性5. .晓庄学院图 1-9 商品实体及属性图 1-10 管理员实体及属性下面的图1-11 显示的是系统E-R图:. .1.3.3 数据库逻辑构造设计图 1-10 系统 E-R 图. .本系统数据库为:shoppingcart,其中包含了6个MySQL数据表来实现对数据的存储、调用。以下为具体数据表模式:【admins表】username、password【categories表】id、name【customers表】id、username、password、add1、add2、add3、postcode、 phone、email【orderitems表】id、order_id、product_id、quantity【orders表】id、customer_id、registered、payment_type、date、status、total【products表】id、cat_id、name、description、image、price其中,用下划线和粗体标记的属性为表的主键属性。各表的具体设计如表4-1表4-9所示。根据E-R图,设计每表的变量名,变量的类型及主键。6. .晓庄学院1、admins表admins表存放管理员ID、登录名和密码。表1-1admins表2、categories表Categories的信息都存放在个表中。表1-2categories表3、orderitems表Orderitems表存放所有订单条目的信息。表1-3orderitems表4、orders表Orders 表存放订单的详细信息。表1-4orders表7. .晓庄学院5、products表Products表存放商品的名称,描述,图片,价格等。表1-5products表6、custermers表Custermers表存放教师上传的文件的信息。表1-6custemers表1.4 本章小结本章介绍了网上购物系统的总体设想,以及实现的主要功能。根据需求分析对模块功能作了较为详细的介绍。最后介绍了数据库的设计原则,分析了数据库的概念与逻辑构造设计。8. .晓庄学院2 系统功能的具体实现2.1系统功能设计在系统进展整体设计的过程中,将系统中的公用代码局部别离了出来,防止了系统中出现代码冗余,同时也提高了系统的开发效率。2.1.1数据分页功能当要显示的数据比拟多,一个页面无法完全显示,此时便需要进展数据的分页处理如图2-1。用以下代码实现的简单分页,非常简单,具体实现主要代码如下:$pagesize=3;$validid= $_GETid;$sql=SELECT *FROMproducts;$result=mysql_query($sql);$number=mysql_num_rows($result);/ 取记录的条数if($number%$pagesize=0)/取余数,看是否等于0$total=$number/$pagesize;else$total=(int)($number/$pagesize)+1;if(isset($_GETpage)/判断是否是第一页$page=(int)($_GETpage);else$page=1;$start=($page-1)*$pagesize;/ 计算起始位置$prodcatsql=select*fromproductslimit$start,$pagesize;/根据页码$page计算出起始位置$start取值,以$start为起点,个数为$pagesize$prodcatres = mysql_query($prodcatsql);9. .晓庄学院. .2.1.3 分类导航功能图 2-1 分页显示. .对所有商品进展分类,方便用户查找商品。通过导航来实现产品的分类显示。如图2-2所示。图 2-2 分类导航显示在PHP文件中,我们只需要传递4个变量给Smart对象:1.记录总数;2.每页记录起始数;3.每页记录完毕数; 4. 分页标签;2.1.4 会话管理用户可以根据身份进展选择登录,在系统用户登录的时候,用户需要输入用户名和密码及验证码进展数据库登录验证。用户必须输入用户名和密码以及验证码。否则将弹出对话框进展提示。在进展用户身份识别时,需要对用户的一些信息参数进展传递与保存,这就要使用到SESSION或者 COOKIE 技术。效劳器端的SESSION和客户端的COOKIE是两种重要的参数传递与保存的技术,它们有各自的优点与缺乏,但都在Web系统中发挥着很大的作用。SESSION:在计算机中是存在效劳器端的,在网络应用中,称为会话。会话可以简单的理解为浏览器与效劳器的一次对话过程,这个过程从第一次效劳器收到浏览器的页面请求开场到最后一次请求为止。一次会话对应着一个SESSION,每个访问者都有自己的一个SESSION,所以像用户信息等全局性的数据非常适合放在SESSION中,以供整个访问过程使用。COOKIE是客户端浏览器支持的存储区,当一个页面访问请求发出时,浏览器会查找是否有有效的COOKIE可用,如果找到的话COOKIE中的信息将被一起传递到效劳器,这样PHP程序就可以获取和分析COOKIE 里的数据。客户端出于平安和性能的考虑,不会给COOKIE很大的存储空间,COOKIE 也可以被客户端的其他程序访问和修改,用户也可以禁用COOKIE功能,总的来说并不可靠,但是它可以长期存放在客户端脚本共享里面的数据,适合于存放一些不太重要的个性化信息。SESSION与COOKIE 不同的是它不需要每次都要从客户端传来,它的数据保存在效劳器上,也不会自传给客户端。根据客户端发来的页面请求中的SESSIONID来查找是否有对应的SESSION可用。如果有,则为PHP提供这个SESSION,如果没有则创立一个供PHP 使用。直到这次会话的完毕,SESSION才会被去除。鉴于此本系统采用的是SEEION技术。10. .晓庄学院2.2 用户模块功能的实现2.2.1 用户注册在注册用户时,需要填写用户名,密码,地址, ,以及等每个信息都不能为空,否则将弹出对话框进展提示。填写完提交后写入数据库并判断是否注册成功。主要代码如下:if(empty($username)/ 判断用户名是否为空。die(alert(用户名不能为空);location.href=register.php);/弹出对话提示并回到注册$sql=INSERTINTOcustomersVALUES(,$username,$userpassword,$add1,$add2,$add3,$postcode, phone,$email);/SQL语句,把注册信息参加到customers表中,但还并未执行if(mysql_query($sql)/只有通过mysql_query()才能在数据库上执行操作,使用if来判断是否已经执行来决定注册成功与否。图 2-3 用户注册2.2.2 用户登录在系统用户登录的时候,用户需要输入用户名和密码及验证码进展数据库登录验证。界面如图2-4 所示,用户必须输入用户名和密码以及验证码。否则将弹出对话框进展提示。原代码如下所示:$loginsql =select*fromcustomers where username= . $_POSTuserBo* . AND password = .$_POSTpassBo* . ;$loginres = mysql_query($loginsql);$numrows = mysql_num_rows($loginres);11. .晓庄学院if(empty($numrows)die(alert(用户名或密码不正确);location.href=login.php);. .2.2.3 购物车功能图 2-4 用户登录. .在系统中,购物车是整个网上购物系统中最核心的局部。主要功能是用户选择商品添加到购物车,并能在下次登录时显示购物车中的待结算的商品界面如图2-5和图2-6所示。核心代码具体如下:$sql = INSERT INTO orders(customer_id, registered,date,status)VALUES(.$_SESSIONSESS_USERID. , 1,NOW(),pay);mysql_query($sql);/把用户号等信息写入数据库中session_register(SESS_ORDERNUM);/生成会话变量$_SESSIONSESS_ORDERNUM= mysql_insert_id(); 把订单ID附给会话变量$itemsql = INSERT INTO orderitems(order_id, product_id,quantity)VALUES(.$_SESSIONSESS_ORDERNUM. , . $validid .,.$_POSTamountBo*. ); mysql_query($itemsql); require(showcart.php);图 2-5 添加商品到购物车$quantitytotal = $itemsrowprice*$itemsrowquantity;/产品的总价格12. .晓庄学院echo ;echo; echo . $itemsrowname . ;/获取商品名称echo .$itemsrowquantity.;echo£.sprintf(%.2f,$itemsrowprice). ; echo£.sprintf(%.2f,$quantitytotal).;echo *; echo;$total = $total + $quantitytotal;$totalsql = update orders set total = . $total . where id = . $_SESSIONSESS_ORDERNUM;$totalres = mysql_query($totalsql);/ 更新总价格. .2.2.4 结算功能图 2-6 购物车显示. .用户选择好商品后,参加购物车后,就可以进展结算了。结算分两种,一种是网上银行,另一种是货到付款。如下列图2-7所示:13. .晓庄学院. .2.2.5 用户注销图 2-7 结算. .用户完成商品选购及结算后,就可以注销用户以便不被其他人使用,等下使用时再进展登录。只要通过如下代码,注销会话变量。session_unregister(SESS_LOGGEDIN); session_unregister(SESS_USERNAME); session_unregister(SESS_USERID);2.3 管理员模块功能的实现2.3.1 管理员登录管理员根据用户名admin和初始密码admin选择身份后登录进展后台管理,如图2-8所示。图 2-8 管理员登录14. .晓庄学院2.3.2 管理员管理管理员管理功能主要是查看订单,处理订单,如图2-9所示。图 2-9 未解决的订单可以通过点击查看按钮,查看订单的详细容,如图2-10所示。15. .晓庄学院图 2-10 订单详情2.3.3 管理员注销管理员处理好订单后,退出管理员即注销。也是通过注销会话变量来注销管理员用户。2.4 本章小结本章介绍系统模块的功能的实现并详细介绍了网上购物系统的几个主要模块的设计思想、SESSION和COOKIE 等相关技术,介绍了各功能模块并分析了核心功能的主要实现代码。还分析了数据分页功能。并提供了样图进展展示。16. .晓庄学院5总结由于在此之前对于PHP知识的掌握不是很结实,所以从一开场就碰到许多困难。在整个设计阶段,我觉得对系统进展需求分析,系统的总体设计和详细设计是非常重要的阶段。当这些工作完成系统,才是编写代码,实现功能的过程。在整个系统开发的过程中,一开场我没有严格按照这个流程来,我是先写代码。这个造成了一个很大的弊端,就是当我对系统功能进展扩展和完善时,就不得不修改原来的代码以适应现在的功能,浪费了很多时间。后来,我严格按照这个流程来进展系统开发,提高了工作效率。通过这次网上购物系统的开发,让我对PHP编程、MYSQL数据库和超文本标记语言HTML等有了更深的了解,应用起来更加得心应手。在开发方面我也积累了一些经历,取得了一些进步,但是在*些方面还存在一些缺乏。比方:系统功能太过单一,页面美工设计还有一些缺乏,跟一些知名还是有一定的差距。在以后的学习道路上,我还要不断的学习,努力的学习,对PHP还要继续钻研下去。17.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!