当前位置:文档之家› 网上书店管理系统(附程序源代码)

网上书店管理系统(附程序源代码)

数据库与管理信息系统报告题目:网上书店管理系统学院:信息工程与自动化学院专业:计算机科学与技术年级: 09级学生姓名:指导教师:日期: 2012-6-3教务处制目录一、需求分析; (2)二、系统设计内容; (2)三、系统逻辑设计; (3)四、系统功能需求分析; (6)五、总结; (10)六、参考资料; (11)七、附录; (11)一、需求分析;网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。

一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。

根据网上书店的基本需求,本系统需要完成的具体任务如下:1)书图查询: 当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。

2)购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。

3)订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。

4)会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。

二、系统设计内容;1)采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。

2)全面展示商城内所有商品。

3)为顾客提供一个方便、快捷的商品信息查询功能。

采用模糊查询查询数据。

4)会员可以随时修改自己的会员资料。

5)实现网上购物。

6)查看商城内的公告信息。

7)用户随时都可以查看自己的订单。

8)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。

9)系统最大限度地实现了易维护性和易操作性。

10)系统运行稳定、安全可靠。

三、系统逻辑设计;根据实现功能不同将网站分为了在线购书子系统和后台管理子系统。

1)在线购书子系统为消费提供了在线浏览图书,订购图书的平台。

属于前台展示部分的设计。

具体功能如下:用户登陆网站浏览图书。

用户在主页或我的帐户中注册成为网站的会员。

只有网站的会员才能在网站购买图书。

用户可以通过分类浏览,书目推荐,新书推荐,书目查询的方式选择喜爱的图书。

用户选择图书提交订单完成订购。

2)后台管理子系统为书店管理员提供了管理网络书店的平台。

属于后台管理部分的设计。

具体功能如下:注册会员的管理,并通过会员的消费记录更改的会员的等级,不同等级的会员享受不同的购书折扣待遇。

图书类别的管理,图书的管理。

通过添加,修改,删除对图书类别进行管理。

在类别下添加图书记录,对图书的名称,出版单位,媒体推荐,内容简介等详细信息进行添加,修改等管理。

订单的管理,查询会员提交的订单并处理。

处理已经送货的订单使之对书店的图书销售记录书店库存信息实时修改。

书店公告信息的管理添加书店的公告信息使消费者及时了解书店的最新动态。

对于数据库应用系统而言,设计数据库是十分重要的,也是首要的工作。

一般先设计系统数据库,然后才开始设计应用程序。

1.实体E_R图以下是购物车实体E-R图:图1购物车E-R图以下是留言信息实体E-R图图2留言信息E-R图2.数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。

合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入.收集基本数据,数据结构以及数据处理的流程。

通过上述系统功能分析,针对一般在线书店的需求,总结出如下需求信息。

1)用户分一般用户和管理员。

2)订单分单张详细订单和总订单。

3)每一本图书都从属一种类型。

4)一个用户可以购买多本图书。

5)一个用户对应一张定单列表。

根据上面的设计规划出的实体有:管理员信息实体、用户信息实体、图书实体、图书分类实体、订单实体、订单列表实体。

数据库存储过程的设计和调用:使用存储过程增加了数据库的安全性,在页面调用也十分方便。

数据库MY_BOOK表查询原代码如下:CREATE PROCEDURE SHOW //创建存储过程SHOW,查询数据库的表AS //MY_BOOK的数据SELECT * FROM MY_BOOKGO调用存储过程代码如下:CON=POOL.GETCONNECTION(); //前台调用存储过程STA TEMENT STMT=CON.CREATESTATEMENT();RESULTSET RS=STMT.EXECUTEQUERY("SHOW");数据库表数据删除存储过程代码:CREATE PROCEDURE DEL_U @ID INTASDELETE FROM MY_USERS WHERE ID=@IDGO调用存储过程代码如下:STA TEMENT STMT = CON.CREATESTATEMENT();INT VALUE=STMT.EXECUTEUPDA TE("DEL_U @ID="+ID);3数据库表结构表1购物车表表2留言信息表四、系统功能需求分析;4.1、系统功能模块图以下部分是网上书店系统的前台模块图:图3系统功能模块图以下是网上书店后台管理的模块图:包括图书馆里、会员管理、订单管理、支付宝管理、数据库管理和留言板管理。

图4后台管理模块图4.2、系统简单的流程图;首先假定一个合法的用户已经登录到这个系统。

当客户选择订购货物时,业务流程开始。

客户输入想要购买书的名字、出版社或作者。

或通过点击图书分类进行查询。

对于每一个输入的信息,网站会给出该书的基本信息,用户通过订单按钮将该书添加到购物车,形成订单表。

该系统可以保存连续的已经订购的商品清单。

用户点击支付的按钮,系统会转到支付信息页面。

系统检验输入的信息,把该订单作为未完成的交易保存,同时向记帐系统发支付信息。

如果客户提交的信息不正确,系统将提示客户修改。

当支付确认后,订单被标记上已经确认,同时返回给客户一个订单ID,业务流程也就结束了。

另外,如果支付没有被确认,系统将提示客户改正支付信息或者取消。

本网站主要业务流程描述如下:图5系统流程图用powerdesigner画出CDM图;用powerdesigner画出PDM图;4.3、系统的结构;1、系统主要分为前后台两部分:前台是不需要认证的,是供网站的访问者访问的,我完成的是前台部分、购物车模块和留言板,前台主要完成了以下功能:下图所示的界面是网上书店系统的前台首页。

图6 电子商务系统前台首页购买商品登陆之后,单击商品的类别选项,即可查看相应的商品信息。

单击任意一种商品下方的【添加到购物车】按钮,页面会转到【我的购物车】页面,在购物车中会显示该用户的订单信息,分为已定购,未订购,已购买三个标单信息。

图7 购物车界面购物车模块说明:如果同一种商品要购买多个,只需在数量文本框中修改数量即可。

如果要删除购物车中的商品,只需单击“X”按钮,商品即被删除,如果继续购物,单击“继续购买”按钮,即返回首页,继续购物。

点击全部支付,系统会检查你在本站的余额是否足够,足够则购买成功。

留言板图8留言板图说明单击“给我们留言”按钮可到留言板中进行留言操作。

在这里你可以发表你对本网站的一些意见和评论。

五、总结;经过2个星期的努力,网上书店基本开发完毕。

其功能基本符合企业需求。

对于数据的输入、修改、查询等问题通过程序进行了有效的解决。

并且能对数据库进行权限管理。

但某些功能,由于自己知识的欠缺和时间不足造成一些细微的功能未能实现,主要是,某些算法不够简练,这些需要在以后的工作中改进,锤炼。

在这段时间的设计中,我感觉自己学了很多的以前没有深入了解的知识和从未接触过的知识。

比如JSP和SQL数据库以及网站设计方面的知识。

在以前的学习中也学习了JSP和SQL,但那只是停留在了解的阶段。

而此次毕业设计却带给我更进一步了解和应用这些知识的机会。

做课程设计的过程中,熟悉了数据库的应用和开发,对许多软件的安装原理有了较深刻的认识;对软件的开发过程、软件工程理论都有了进一步的了解,大大丰富了软件开发经验;并且对以前学习过程中所学到的相关知识有了更加深的了解,并进一步把它应用到课程设计中。

但是由于毕业设计时间较短和本人知识有限,所以该网站还有许多不尽人意的地方,网站还存在以下一些问题:(1)系统在安全性方面还有一些问题;(2)系统的某些功能还不能够很好的实现,同时本系统还某些方面没有考虑到;(3)系统在跨平台运行方面有一些不足。

这些都有待进一步的改善。

因此,以后还应加强这几个方面的工作和学习:对网站的安全管理方面的学习和加强;对一些常用的应用软件还要多熟悉;更多地加强对关于网络功能数据库知识的学习。

六、参考资料;1.叶核亚JA V A程序设计使用教程(第三版)电子工业出版社2005-032.张月玲《管理信息系统》(第二版)清华大学出版社20013.周绪.《SQL server2000 入门与提高》.清华大学出版社,20064.李萍.《SQL Server 2000 应用开发教程》.电子工业出版社,20045.百度资料七、附录;程序源代码前台模块代码<%@ page language="java" import="java.utill.*,java.text.*"%><%@ page contentType="text/html;charset=gb2312" %><style type="text/css">.sec_menu {BORDER-RIGHT: white 1px solid; BACKGROUND: #d6dff7; OVERFLOW: hidden; BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid.menu_titleSPAN FONT-WEIGHT: bold; LEFT: 10px; COLOR: #215dc6; POSITION: relative; TOP: 2px.menu_title2 FONT-WEIGHT: bold; LEFT: 10px; COLOR: #428eff; POSITION: relative; TOP: 2px}</style></head><BODY><script>var he=document.body.clientHeight-105document.write("<div id=tt style=height:"+he+";overflow:hidden>")<table cellspacing="0" cellpadding="0" width="158" align="center"><tr><tdid="imgmenu20"class="menu_title" onMouseOver="this.className='menu_title2';" onClick="showsubmenu(20);loadThreadFollow()" onMouseOut="this.className='menu_title';"style="cursor:hand" background=../my/images/menudown.gif height="25"><span>经济管理</span></a></td></tr><tr><td id="submenu20" style="display:none">d id="imgmenu5" class="menu_title" onMouseOver="this.className='menu_title2';" onClick="showsubmenu(5)" onMouseOut="this.className='menu_title';" style="cursor:hand" </tr><tr></tr></table></div><script>function aa(Dir){tt.doScroll(Dir);Timer=setTimeout('aa("'+Dir+'")',100)}function StopScroll(){if(Timer!=null)clearTimeout(Timer)}function initIt(){divColl=document.all.tags("DIV");for(i=0; i<divColl.length; i++) {whichEl=divColl(i);if(whichEl.className=="child")whichEl.style.display="none";}}function expands(el) {whichEl1=eval(el+"Child");if (whichEl1.style.display=="none"){initIt();whichEl1.style.display="block";}else{whichEl1.style.display="none";}}function loadThreadFollow(){if (tree==0){document.frames["hiddenframe"].location.replace("LeftTree.asp");eval("submenu" + sid + ".style.display=\"\";");imgmenu.background="images/menuup.gif";}else{eval("submenu" + sid + ".style.display=\"none\";");imgmenu.background="images/menudown.gif";function loadingmenu(id){var loadmenu =eval("menu" + id);if (loadmenu.innerText=="Loading..."){document.frames["hiddenframe"].location.replace("LeftTree.asp?menu=menu&id="+id+""); }}top.document.title="";</script></BODY></HTML>留言代码版模块代码:<%@ page contentType="text/html;charset=gb2312" %><%@ page import="java.sql.*,bean.book.*"%><jsp:useBean id="db" class="bean.ConnectDB" scope="page"/><%Statement stmt = db.getStatement();String sql = "select * from liuyan";try{ResultSet rs=stmt.executeQuery(sql); int intPageSize; //一页显示的记录数int intRowCount; //记录总数int intPageCount; //总页数int intPage; //待显示页码String strPage;<dt><div align="left"><%= rs.getString("username")%>&nbsp;<span class="STYLE4">在</span>&nbsp;<%= rs.getString("times")%>&nbsp;<span class="STYLE4">发表关于该网站的评论</span>:</div> </dt><br /><dd><%= rs.getString("context")%></dd></dl><hr><div align="right"><%if(intPage<2){ %>catch(Exception e){out.println(e.getMessage());%><div id="postBox"><form name="theForm" method="post" action="ly.do"><div align="right"><table border="0" width="100%"><tr><td colspan="2"><div align="left" class="STYLE4">在此填写提交你对网站的新评论</div></td></tr><tr><td width="60" height="40"><div align="right">用户:</div></td><td width="640" height="40"><div align="left"><% users u = (users)session.getAttribute("us");if(us==null){%><input type="text" name="username" value="游客" readonly="" /> <%}else{%><inputtype="text"name="username"value="<%=u.getUserName()%>" readonly=""/><%}%></div></td></tr><tr><td width="60"><div align="right">内容:</div></td><td width="640"><div align="left"><textarea rows="10" cols="45" name="context"></textarea> <%int num = 0;Statement st = db.getStatement();String sql1 = "select * from liuyan";try{ResultSet rr=st.executeQuery(sql1);st();num = rr.getRow();}catch(Exception e){}%><br><input type="hidden" name="id" value="<%=num+1%>" /><input type="submit" value="发表" />&nbsp;<input type="reset" value="重写" /> </div></td></tr></table></div></form></div>。

相关主题