




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
天津农学院计算机科学与信息工程系农贸电子商务系统开发教学实习报告实习名称: (填写设计题目)专业班级 姓 名 学 号 成 绩 2012年2月目 录1 教学实习的内容12 教学实习的目的13 教学实习设计13.1 系统目标13.2 系统功能结构23.3 业务流程图33.4 数据库设计43.4.1数据库概念设计43.4.2数据库逻辑结构73.4.3数据库表之间的关系设计114 系统实现124.1 用户登陆模块设计124.2前台商品信息查询模块设计144.3前台购物车模块设计154.3.1购物车添加商品164.3.2购物车商品查看184.3.3修改商品数量184.3.4清空购物车194.4生成订单模块设计194.5后台商品管理模块设计214.5.1后台商品管理模块概述214.5.2后台商品添加224.5.3后台商品查询254.6后台订单管理模块设计264.6.1后台订单管理模块概述264.6.2订单详细查询274.6.3订单执行实现285 系统测试运行295.1 硬件环境配置295.2开发环境295.3 系统测试296 总结与体会29 1 教学实习的内容2 教学实习的目的通过本次教学实习,对所学专业知识进一步理解并系统化,锻炼和提高综合运用所学知识解决实际问题的能力。通过此次实习,熟悉电子商务系统的分析设计过程,结合具体需求,使用合理的开发工具实现电子商务网站系统的开发与设计。3 教学实习设计3.1 系统目标对于典型的数据库管理系统,尤其是像电子商城这样数据流量较大的网络管理系统,必修要满足使用方便。操作灵活等设计需求。企业电子商城的系统目标如下: 1) 展示网站最新的商品信息,不断地更新商品种类,使用户了解最新的市场动态。2) 网站根据商品的销售情况及厂家信誉度来推荐并展示部分商品。3) 用户可以在网站上修改个人资料、修改个人登录网站密码、查询提交的订单以及查询个人在网站上的消费情况。4) 实现购物车和收银台的功能,用户选择所需要的商品,在线提交商品订单。5) 以循环滚动的方式显示网站公告信息。6) 根据商品的销售情况进行销量排行。7) 展示网站友情链接的图片信息,起到网站之间相互宣传的最用。8) 对商品信息进行管理,选择商品类别将商品具体信息和图片信息都存放在数据库中,并可以修改或者删除商品信息9) 可以查看和查询用详细信息、用户消费信息。10) 对用户提交的订单,根据情况进行阶段处理。11) 对管理员信息、网站公告信息以及友情链接信息进行维护管理。12) 系统运行稳定,安全可靠。3.2 系统功能结构 电子商城网站分为前台和后台。其中,根据电子商城前台的特点,可以将其分为商品查询、商品展台、购物车、会员管理、收银台、订单查询、及商城公告7个部分,其中各个部分及其包括的具体功能模块如图3_1展示。 图3-1 系统前台模块图根据电子商城后台的特点,可以将其分为友情链接设置。商品大类别设置、商品设置、商品小类别设置、公告设置、后台管理员设置、订单设置以及退出后台9个部分,其中各个部分及其包括的具体功能模块如图3_2所示。图3-2 系统后台模块图3.3 业务流程图为了更加清晰的表达系统的业务功能模块,下面给出企业电子书城系统的业务流程图,对于不同的角色,他们所承担的任务各自不同,流程图也不一样。本系统包括向会员的客户端流程图和面向管理员的流程图两部分。面向会员的客户端系统流程图如图3_3所示。图3-3 面向会员的客户端系统流程图面向管理员的流程图如图3_4所示。图3-4 面向管理员的流程图3.4 数据库设计3.4.1 数据库概念设计根据以上各节对系统所做的需求分析和系统设计,规划本系统中使用的数据库试题分别为商品大类别实体、商品小类别实体、商品实体、会员实体、会员订单实体、会员订单明细实体、管理员信息实体、公告信息实体和友情链接实体。下面分别介绍几个关键实体的E-R图。管理员信息实体: 管理员信息实体包括自动编号、管理员登陆账号、管理员登陆密码、管理员真实姓名及管理员标识属性。其中管理员标识信息中,1代表总管理员,0代表普通管理员。管理员信息实体如图3_5所示。 图3-5 管理员实体的E-R图 商品实体: 商品实体包括自动编号、商品名称、商品产地、商品介绍、商品发布时间、商品现价、商品特价、商品销售次数、商品图片、及特价商品标识属性。商品实体的E-R图如图3_6所示。 图3-6商品实体的E-R图 会员实体:会员实体包括自动编号、会员登录账号、会员登录密码、会员真实姓名、会员年龄、会员职业、会员电子邮箱、提示问题及问题答案属性、会员实体的E-R图如图3_7所示。 图3-7会员实体的E-R图 会员订单实体:会员订单实体包括自动编号、订单编号、订货人账号、订货人真实姓名、订货人地址、订货人电话、订货价格、订货邮寄方式、订单备注信息、订货是否执行及订单生成时间属性。其中订货是否执行信息中,1代表货物已经发送出去,0代表货物没有发送出去。会员订单实体的E-R图如图3_8所示。 图3-8会员订单实体的E-R图会员订单明细实体。会员订单明细实体包括自动编号、订单编号、商品编号、商品价格和商品数量属性。会员订单明细实体的E-R图如图3_9所示。图3-9订单明细实体的E-R图3.4.2 数据库逻辑结构基于上述数据库概念设计,需要设计下面各个数据表,这些表之间相互关联,共同存储着系统所需要的数据。商品信息表主要用来保存商品信息。表tb_goods的结构如表1所示。 表1:tb_goods字段名数据类型是否为空是否主键默认值描述Idint(4)NoYesIDaccountint(4)NoNULL大类别表外键Passwordint(4)NoNULL小类别表外键Managerlevelvarchar(50)YesNULL商品名称goodFromvarchar(50)YesNULL生产厂商Introducetext(16)YesNULL商品介绍creatTimeemaldatetime(4)YesNULL添加时间nowPricemoney(8)YesNULL现价freePricemoney(8)YesNULL特价价格Numberint(4)YesNULL购买次数markbit(1)YesNULL特价商品标志订单信息表主要用来保存订单的概要信息。表tb_order的结构如表2所示。表2:tb_order字段名数据类型是否为空是否主键默认值描述Idint(4)NoIDNumbervarchar(50)Yes YesNULL订货编号namevarchar(50)YesNULL会员编号reallyNamevarchar(50)YesNULL会员真实姓名Addressvarchar(50)YesNULL订货地址Telvarchar(50)YesNULL订货电话setMoneyvarchar(50)YesNULL付款方式postvarchar(50)YesNULL运送方式Bztext(16)YesNULL备注信息signbit(1)YesNULL是否发送成功订单明细表用来保存订单的相信信息。表tb_orderDetail的结构如表3所示。表3:tb_orderDetail字段名数据类型是否为空是否主键默认值描述Id int(4)NoIDorderNumbervarchar(50)Yes NULL订货编号goodId int(4)YesNULL商品编号price float(8)YesNULL价格numberint(4)YesNULL订货数量creatTimesmalldatetime(4)YesNULL创建时间管理员信息表主要存储管理员的相关信息,表tb_manager的结构如下所示。表4:tb_manager字段名数据类型是否为空是否主键默认值描述id int(4)No YesIDaccount varchar(50)YesNULL管理员账号 passoword varchar(50)YesNULL管理员密码name varchar(50)YesNULL管理员名称sign int(4)YesNULL是否是高级管理员会员信息表主要会员的相关信息,表tb_ member的结构如下所示。表5:tb_member字段名数据类型是否为空是否主键默认值描述Idint(4)No IDnamevarchar(50)Yes NULL会员名称Passwordvarchar(50)YesNULL会员密码reallyNamevarchar(50)YesNULL会员真实姓名ageint(4)YesNULL会员年龄professionvarchar(50)YesNULL会员职业emailvarchar(50)YesNULL邮箱地址questionvarchar(50)YesNULL找回密码问题resultvarchar(50)YesNULL找回密码答案表6:tb_smallType字段名数据类型是否为空是否主键默认值描述Id int(4)NoIDbigId int(4)No 大类别编号smallName varchar(50)YesNULLcreatTimesmalldatetime(4)YesNULL表7:tb_bigType字段名数据类型是否为空是否主键默认值描述Id int(4)NoIDbigName varchar(50)YesNULLcreatTimesmalldatetime(4)YesNULL生成时间表8:tb_link字段名数据类型是否为空是否主键默认值描述Id int(4)NoIDlinkName varchar(50)YesNULL链接名称linkAddress varchar(50)YesNULL链接地址表9:tb_affiche字段名数据类型是否为空是否主键默认值描述id int(4)No YesIDname varchar(50)YesNULL Content test(16)YesNULLissueTimesmalldatetime(4)YesNULL 3.4.3 数据库表之间的关系设计如图3_10清晰的表达了各个数据库之间的关系,反映了系统各个实体之间的关系。 图3-10关系图4 系统实现4.1 用户登陆模块设计 用户登录后成为会员是电子商城中用户进行购物的必要条件,在运行本系统时后,首先进入的是电子商城的首页,用户在没有登陆的情况下可以查询商城的公告信息,查看商城的各种商品及销售排行等。当用户在“用户登录”操作区域中,没有输入用户名和密码时,系统会通过JavaScript进行判断,并给予提示。 Action实现类:/ 会员登录public ActionForward checkMember(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String name = request.getParameter(name);MemberForm memberForm = dao.selectMemberForm(name);if (null = memberForm | memberForm.equals() request.setAttribute(result, 不存在此会员,请重新登录!); else if (!memberForm.getPassword().trim().equals(request.getParameter(password).trim() request.setAttribute(result, 密码错误,请重新登录!); else request.setAttribute(memberForm, memberForm);return mapping.findForward(checkMember);MemberDao类:public MemberForm selectMemberForm(String name) MemberForm member = null; try ps = connection.prepareStatement(select * from tb_member where name=?); ps.setString(1, name); ResultSet rs = ps.executeQuery(); while (rs.next() member = new MemberForm(); member.setId(Integer.valueOf(rs.getString(1); member.setName(rs.getString(2); member.setPassword(rs.getString(3); member.setReallyName(rs.getString(4); member.setAge(Integer.valueOf(rs.getString(5); member.setProfession(rs.getString(6); member.setEmail(rs.getString(7); member.setQuestion(rs.getString(8); member.setResult(rs.getString(9); catch (SQLException ex) return member; Struts-config.xml: 4.2 前台商品信息查询模块设计 商品构成了电子商城的物质内容,一个电子商城能否吸引客户,丰富的商品资源是必不可少的,所以电子商城的商品管理师整个系统中非常重要的一个环节。如何安全有效的存储商品信息,合理安排页面内容,从而使用户查询方便高效,这是商城管理所要考虑的内容。前台商品信息查询模块主要包括商品分页查询、商品分类查询、商品销售查询、和特价商品查询4个功能。前台商品信息查询模块的框架如图:图4-2 会员登陆Action实现类:public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception request.setCharacterEncoding(gb2312);this.dao = new GoodsDao();small = new SmallTypeDao();action = Integer.parseInt(request.getParameter(action);session = request.getSession();switch (action) case 0: return goodSelect(mapping, form, request, response); / 全部查询小类别信息case 1: return goodSelectBig(mapping, form, request, response)/ 按大类别商品信息查询 case 2: return goodSelectNewHead(mapping, form, request,response); / 新品查询case 3: return goodSelectFreeHead(mapping, form, request,response); / 特价商品 4.3 前台购物车模块设计在超级市场中,可以根据自己的需求将所选的商品放置到购物车中,然后到收银台去结账,而在网上商城中,通常会采用一种被称为“购物车”的技术来模拟显示生活中的购物车。这种技术使用起来十分的方便,不但可以随时的添加、查看、修改、清空购物车内的商品,还可以随时去收银台结账。前台购物车主要包括像购物车中添加商品、查询购物车内的商品、修改购物车内商品的数量、移除购物车内的商品以及清空购物车等。前台购物车模块的框架图如图:图4-3 前台购物车4.3.1 购物车添加商品用户在前台首页中单击特价商品或者是新品上架中的“查看详细内容”超链接,可以查看该商品的相信信息,如图,单击“放入购物车”按钮,用户选择的商品就暂时放着在购物车中。图4-4购物车添加商品Cart_add.jsp:%int goodsID=Integer.parseInt(request.getParameter(goodsId);float goodsPrice=Float.parseFloat(request.getParameter(price);SellGoodsForm sellGoodsForm=new SellGoodsForm();sellGoodsForm.ID=goodsID;sellGoodsForm.price=goodsPrice;sellGoodsForm.number=1;boolean flag=true;Vector cart=(Vector)session.getAttribute(cart);if(cart=null)cart=new Vector();elsefor(int i=0;icart.size();i+) SellGoodsForm form=(SellGoodsForm)cart.elementAt(i); if(form.ID=sellGoodsForm.ID) form.number+; cart.setElementAt(form,i); flag=false; if(flag)cart.add(sellGoodsForm);session.setAttribute(cart,cart);out.println(alert(购买商品成功!);window.close(););%4.3.2 购物车商品查看为了方便用户随时查看购物车的情况,在网站的首页加入了查看购物车的超链接,通过他用户可以查看所有放入购物车的商品信息,查看购物车的页面的运行结果如图:图4-5购物车商品查看Cart_see.jsp 您还没有购物! % float sum=0; Vector cart=(Vector)session.getAttribute(cart); for(int i=0;i4.3.3 修改商品数量购物车中还需加入修改商品数量的功能。在购物车中,由于商品的数量被存放 在文本框中,用户只有在某种商品后面的文本框中输入相应的数量即可。购物车页面中的“修改数量”超链接是为确保修改购买数量而设置的。Cart_modify.jspVector cart=(Vector)session.getAttribute(cart);Vector newcart=new Vector();for(int i=0;icart.size();i+)String number=request.getParameter(num+i);SellGoodsForm mygoodselement=(SellGoodsForm)cart.elementAt(i);String num=request.getParameter(num+i);tryint newnum=Integer.parseInt(num);mygoodselement.number=newnum;if(newnum!=0)newcart.addElement(mygoodselement);catch(Exception e)out.println(alert(您输入的数量不是有效的整数!);history.back(););return;session.setAttribute(cart,newcart);response.sendRedirect(cart_see.jsp);4.3.4 清空购物车清空购物车的实现方法很简单,只需将保存在session中的购物信息清空,并将页面重定向到购物车为空的页面即可。清空购物车的完整代码如下:Cart_clear.jsp4.4 生成订单模块设计生成订单是网上购物系统的最终目的,前面的所有功能的实现都是为了生成一个用户满意的订单做基础的。在此要生成一个可以供用户虽死查询的订单号,还要保存用户订单中所购买的物品的详细信息。当用户确认购物车中所购买的商品不在改变后,就可以到收银台结账并生成订单。结账的流程为:从购物车中读取商品名称,商品数量,商品价格信息,生成一个唯一的订单号,同时把用户的基本信息读取出来,形成一个完整的订单,并写入数据库,填写订单的页面的运行结果如图所示:图4-6订单页面运行结果Cart_checkOutOrder.jsprequest.setCharacterEncoding(gb2312);OrderForm order=new OrderForm();OrderDetailForm orderDetail=new OrderDetailForm();SellGoodsForm sellGoodsForm=new SellGoodsForm();String number=request.getParameter(number).trim();/先添加订单表order.setNumber(number);order.setName(request.getParameter(name);order.setReallyName(request.getParameter(reallyName);order.setAddress(request.getParameter(address);order.setTel(request.getParameter(tel);order.setSetMoney(request.getParameter(setMoney);order.setPost(request.getParameter(post);order.setBz(request.getParameter(bz);order.setSign(0);orderDao.insertOrderDetail(order);/然后添加商品的明仔细表Vector cart=(Vector)session.getAttribute(cart);for(int i=0;icart.size();i+) SellGoodsForm form=(SellGoodsForm)cart.elementAt(i); orderDetail.setOrderNumber(number); orderDetail.setGoodsId(new Integer(form.ID); orderDetail.setPrice(form.price); orderDetail.setNumber(form.number); goodsDao.updateGoodsNumber(form.number,new Integer(form.ID); orderDetailDao.insertOrderDetail(orderDetail);4.5 后台商品管理模块设计4.5.1 后台商品管理模块概述 在电子商城网站中对于商品信息的管理至为重要,可以说一个没有任何商品信息和商品信息不全的电子商城网站是没有任何的意义的。电子商城的商品管理模块主要实现的是商品信息查询,添加商品信息,修改商品信息,删除商品信息等功能。后台商品管理模块的框架图如图所示: 图4-7后台商品管理模块 4.5.2 后台商品添加在图书查询页中,单击“添加图书”链接,进入到添加商品信息页面。添加商品信息页面主要向数据库中添加新的商品信息。添加商品信息页面的运行结果如图:图4-8图书添加Action实现类:/ 添加商品的信息public ActionForward saveGoods(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception UploadFile uploadFile = new UploadFile();GoodsForm goodsForm = (GoodsForm) form;String dir = servlet.getServletContext().getRealPath(/goodsPicture);FormFile formFile = goodsForm.getFormFile();String getType = formFile.getFileName().substring(formFile.getFileName().lastIndexOf(.) + 1);String result = 添加商品信息失败;String imageType = JPG, jpg, gif, bmp, BMP ;for (int ii = 0; ii imageType.length; ii+) if (imageTypeii.equals(getType) goodsForm.setBig(Integer.valueOf(request.getParameter(big); goodsForm.setSmall(Integer.valueOf(request.getParameter(small); goodsForm.setName(request.getParameter(name); goodsForm.setFrom(request.getParameter(from); goodsForm.setNowPrice(Float.valueOf(request.getParameter(nowPirce); goodsForm.setFreePrice(Float.valueOf(request.getParameter(freePirce); goodsForm.setIntroduce(request.getParameter(introduce);goodsForm.setPriture(goodsPicture/+uploadFile.upload(dir, formFile);dao.insertGoods(goodsForm);result = 添加商品信息成功;request.setAttribute(result, result);return mapping.findForward(goodsOperation);Dao类:/添加操作 public void insertGoods(GoodsForm form) try ps = connection.prepareStatement(insert into tb_goods values (?,?,?,?,?,getDate(),?,?,?,?,?); ps.setInt(1, form.getBig().intValue(); ps.setInt(2, form.getSmall().intValue(); ps.setString(3, form.getName(); ps.setString(4, form.getFrom(); ps.setString(5, form.getIntroduce(); ps.setFloat(6, form.getNowPrice().floatValue(); ps.setFloat(7, form.getFreePrice().floatValue(); ps.setInt(8, 0); ps.setString(9, form.getPriture(); ps.setInt(10, 0); ps.executeUpdate(); ps.close(); catch (SQLException ex) 4.5.3 后台商品查询在后台首页中点击“图书设置”超链接,显示商品信息查询页面的运行结果如图:图4-9图书查询Action类: public List selectGoods() List list = new ArrayList(); GoodsForm goods = null; try ps = connection.prepareStatement(select * from tb_goods order by id DESC); ResultSet rs = ps.executeQuery(); while (rs.next() goods = new GoodsForm(); goods.setId(Integer.valueOf(rs.getString(1); goods.setBig(Integer.valueOf(rs.getString(2); goods.setSmall(Integer.valueOf(rs.getString(3); goods.setName(rs.getString(4); goods.setFrom(rs.getString(5); goods.setIntroduce(rs.getString(6); goods.setCreaTime(rs.getString(7); goods.setNowPrice(Float.valueOf(rs.getString(8); goods.setFreePrice(Float.valueOf(rs.getString(9); goods.setNumber(Integer.valueOf(rs.getString(10); goods.setPriture(rs.getString(11); goods.setMark(Integer.valueOf(rs.getString(12); list.add(goods); catch (SQLException ex) return list; Struts-config.xml: 4.6 后台订单管理模块设计4.6.1 后台订单管理模块概述单击后台功能显示区的“订单设置”超链接,即可进入到订单信息管理模块。对于订单的管理主要是订单的详细查询、订单的执行及订单的删除,但不能修改订单信息。后台订单设置模块的框架图如图所示:图4-10图书查询4.6.2 订单详细查询在后台页面,点击“订单设置”超链接,进入订单查询页面,运行结果如图:图4-11订单查询页面例如,管理员想查看订单编号为1274943620911的相信信息,单击该订单所对应的“详细信息”超链接,可以进入订单详细信息页面,如图所示:图4-12订单详细信息Action类:/查询订单的详细信息 public ActionForward selectOneOrder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) String number=request.getParameter(number); request.setAttribute(orderForm,order.selectOrderNumber(number); request.setAttribute(orderDetailList,orderDetail.selectOrderDetailNumber(number); return mapping.findForward(selectOneOrder); Dao: ps = connection.prepareStatement(select * from tb_order where number=?); ps.setString(1, number); ResultSet rs = ps.executeQuery();4.6.3 订单执行实现用户在网站前台购物并到收银台结账生成订单后,还需要执行订单。订单的执行分为将商品送到客户手中和通过银行后其他的付款方式取款两个步骤。这时需要将订单的状态改为已执行状态,在订单表中有一个用标识订单是否执行的sign,该字段的默认值为0,代表订单没有执行,值为1代表订单已经执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 样板房精装修设计合同
- 企业邮箱服务合同
- 瑞典汽车安全培训班价格课件
- 安全文明驾驶培训横幅课件
- 东莞清溪工程防水方案(3篇)
- 球场操作安全培训课件
- 环卫服务流程课件
- 猫生产急救知识培训内容课件
- 房屋厂房拆除工程方案(3篇)
- 美趣导学:初中语文审美教育路径的实践
- 失眠的中医饮食
- 财务管理- 课件全套 周传丽 第1-11章 绪论、财务管理的价值观念-公司并购决策
- 汽车焊装工(技师)理论考试复习题库500题(含各题型)
- JT-T-1202-2018城市公共汽电车场站配置规范
- 浙教版信息科技六年级上册全册教案
- 妊娠期糖尿病膳食指南
- 宁夏水洞沟导游词
- 组合结构设计原理 第2版 课件 第1章-绪论
- 中学物理校本课程
- 针刺伤处理流程课件
- 桥梁基本知识-桥梁养护课件
评论
0/150
提交评论