零售商店进销存管理系统的分析与设计毕业论文(设计)_第1页
零售商店进销存管理系统的分析与设计毕业论文(设计)_第2页
零售商店进销存管理系统的分析与设计毕业论文(设计)_第3页
零售商店进销存管理系统的分析与设计毕业论文(设计)_第4页
零售商店进销存管理系统的分析与设计毕业论文(设计)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南财经大学天府学院2014届本科毕业论文(设计)论文题目:零售商店进销存管理系统的分析与设计所在学院:西南财经大学天府学院专业:计算机科学与技术2014年4月西南财经大学天府学院本科毕业论文(设计)原创性及知识产权声明本人郑重声明:所呈交的毕业论文(设计)是本人在导师的指导下取得的成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。本毕业论文(设计)成果归西南财经大学天府学院所有。特此声明。毕业论文(设计)作者签名:作者专业:作者学号:年月日西南财经大学天府学院本科学生毕业论文(设计)开题报告表论文(设计)名称零售商店进销存管理系统的分析与设计论文(设计)来源自选论文(设计)类型C导师学生姓名学号41001139专业计算机科学与技术开题报告内容:设计目的:将学习到的JavaEE、JavaScript、SQL语句等语言以及MyEclipse10、Mysql、Tomcat7等开发环境结合起来,开发一个零售商店进销存管理系统,以便培养自己的实际动手能力和解决实际问题的能力,增加实际项目经验。设计要求:(1)设计一个零售商店进销存管理系统。包含以下模块:人事管理模块(包括客户信息管理、供应商信息管理等)。库存管理模块(包括商品入库、商品退货、库存查询等)。销售管理模块(包括商品销售数量、单价、统计日期等)。进货管理模块(包括进货信息的增删查改功能)。查询统计模块。系统设置模块。(2)熟练运用JavaEE、JavaScript、SQL语句等语言;(3)熟悉使用MyEclipse10、Mysql、Tomcat7等开发工具;(4)熟练分析开发思路及掌握涉及到的编程技巧。设计思路:(1)整个项目由我个人开发完成;(2)开发重点放在商品的进销存方面,尽量达到投入日常使用的真实效果。预期成果:(1)本软件正常运行使用主要由六个版块支持,一是人事管理模块,二是库存管理模块,三是销售管理模块,四是进货管理模块,五是查询统计模块,六是系统设置模块。(2)整个应用软件实现的主要功能有:达到人事信息的增删查改功能,库存信息的基本管理,销售信息的基本管理,进货信息的基本管理,及系统的相关设置。(3)大量用户可同时使用此软件,并且能保证软件各功能模块都能正常良好运行。任务完成的阶段内容及时间安排2013年12月15日前 完成开题报告 提交开题报告2014年1月7日前 完成可行性报告 提交可行性报告 2014年1月24日前 完成详细设计 提交详细设计 2014年4月11日前 完成毕业设计论文 提交毕业设计论文 2014年4月14日—5月30日进行毕业论文(设计)答辩指导教师签名:日期:年月日论文(设计)类型:A—理论研究;B—应用研究;C—软件设计等;摘要本设计旨在分析与设计一个零售商店进销存管理系统。现阶段随着我国经济的发展,零售业的竞争已不再是规模上的竞争,而是技术上,管理上的,人才上的竞争。管理上的竞争已是零售业竞争的核心。但如何在竞争中扩大销售额,降低经营成本,提高销售效率已成为零售商最关心的问题。要适应市场的竞争,就需要高效的处理方式和管理方法。因此加强零售业的信息化建设是非常有必要的。零售商店进销存管理系统使用B/S(浏览器/服务器模式)结构,利用JSP技术,SSHE框架和MySql数据库实现零售商店进销存管理系统所包括的基本功能模块,并详细阐述了其主要功能、设计思路及实现方法。关键字:零售商店进销存管理系统JSPSSHEAbstractThisdesignaimstoanalysisanddesignanretailstoreinventorymanagementsystem.Nowadays,withthedevelopmentofeconomyinchina,retailcompetitionisnolongerthescaleofcompetition,butthetechnology,management,talentcompetition.Themanagementofthecompetitionisthecorecompetitionofretailing.Buthowtoexpandsalesinthecompetition,reduceoperatingcosts,improvesalesefficiencyhasbecomethemostconcernedproblemofretailers.Inordertoadapttomarketcompetition,weneedtreatmentandefficientmanagementmethod.Therefore,strengtheningtheinformationconstructionoftheretailindustryisverynecessary.RetailstoresinventorymanagementsystemusesB/S(Browser/server)architecture,usingJSPtechnology,SSHEframeworkandMySqldatabase,itscometruethebasicfunctionalmoduleoftheRetailstoresinventorymanagementsystem,anddescribesitsmainfunction,andimplementationdesign.Keywords:RetailstoresinventorymanagementsystemJSPSSHE目录21985摘要 I20738Abstract II21349一、关于零售商店进销存管理系统开发项目的需求分析 17639(一)、设计来源 1733(二)、现状分析 16954二、开发零售商店进销存管理系统的可行性分析 232465(一)、前言 21574(二)、可行性研究的前提 3290541、系统要求 389272、设计目标 436293、可行性研究的方法 4228(三)技术可行性 5128151、现有相关技术可行性 5197262、处理流程 820798(四)、社会可行性 825362(五)、经济可行性 1014490三、系统设计 109318(一)、系统功能描述 1013196(二)、系统模块设计 1319011、注册模块的设计 13238082、登录模块的设计 13105183、首页模块的设计 13238284、商品信息模块的设计 14154345、个人信息模块的设计 1485206、后台管理模块的设计 1419928(三)、数据字典 14192611、数据库设计背景 14186292、E-R模型 15128563、数据库表的设计 1717966(四)、系统数据流程图 1930221四、系统实现 1919738(一)、系统界面设计 19220501、注册页面 1925392、首页 20219173、搜索页面 215954、具体商品页面 21158735、个人信息页面 22127906、后台管理页面 2227845(二)、主要模块详细设计 2446831、登录模块 24138702、注册模块 26225473、首页模块 27104744、商品详细信息模块 28277275、搜索模块 36268436、后台商品信息管理模块 3711343参考文献 417188致谢 42一、关于零售商店进销存管理系统开发项目的需求分析(一)、设计来源我国的零售业发展日益迅速,但存在着商品信息不能有效地管理和完善,盘点率低等情况。这个系统依靠现代化的信息技术来管理零售商店,节省了大量的人力,物力,财力,改善了员工的工作条件,提高工作效率,减轻了劳动强度,加快了超市的经营和管理。(二)、现状分析零售行业在我国的经济发展中起着重要的作用。随着全球化和电子商务的兴起,各个零售商户之间的竞争变得日益激烈。计算机及电子商务的发展突破了时间上,空间上的限制,给零售行业带来了许多发展机会。但我国的信息化水平才处于刚刚起步的阶段。但随着技术发展,电脑操作和管理变得日益简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,零售行业采用电脑管理进货、库存、销售等诸多环节也将成为趋势及必然。二、开发零售商店进销存管理系统的可行性分析(一)、前言随着我国经济的不断发展,我国的零售业随之也得到了快速的发展,但其经营管理也变得日益复杂。现在许多零售商店日常需要处理大量的库存信息,还要不断更新商品的销售信息和添加商品信息。如果要实时掌握这些不同种类的信息,开发这个系统是很有必要的。这个系统依靠现代化的信息技术来管理零售商店,它可以节省大量的人力,物力,财力,管理员可以快速对市场的变化做出相对应的策略,并且能够快速的反映出商品的进销存状况。同时还改善了员工的工作条件,提高工作效率和服务效率及质量。(二)、可行性研究的前提1、系统要求功能:此系统包括6个模块:人事管理模块(包括客户信息管理、供应商信息管理等)。库存管理模块(包括商品入库、商品退货、库存查询等)。销售管理模块(包括商品销售数量、单价、统计日期等)。进货管理模块(包括进货信息的增删查改功能)。查询统计模块。系统设置模块。性能:服务器端:实时获取商品进销存信息,并载入数据库。客户端(浏览器端):数据基本展示,通过条件查询展示数据。输入/输出:商品进销存信息。基本的数据流程和处理流程:通过数据库在浏览器端展示商品信息,工作人员通过浏览器进行商品信息的查看,个人信息的修改等。数据库通过工作人员的操作实时更新数据。在安全与保密方面的要求:此系统为零售商店进销存管理系统,用户信息安全管理完善。对断电、死机、系统崩溃等问题有有力措施以保障数据不受损失。对交易有严格的安全保护措施。在网络数据传输方面有自己的编码方式,保证数据的安全可靠性。2、设计目标(1)本软件正常运行使用主要由两个版块支持,一方面是工作人员对商品销售的统计管理,另一方面管理员对商品的进货,库存,销售的管理。(2)整个应用软件实现的主要功能有:①.管理员管理工作人员信息和商品信息。②.工作人员注册登录,管理商品销售信息(3)大量用户可同时使用此软件,并且能保证软件各功能模块都能正常良好运行。3、可行性研究的方法(1)、社会调查:对各类零售商户使用零售商店进销存管理系统的需求;(2)、市场相关产品、同类产品(如淘宝网等已有产品)业务流程的调查。通过调查发现:我国的零售业发展日益迅速,但存在着商品信息不能有效地管理和完善,盘点率低等情况。进销存管理系统多采用VB或者asp页面进行开发,少有以Jsp作为展示界面的网站。这个系统依靠现代化的信息技术来管理零售商店,节省了大量的人力,物力,财力,改善了员工的工作条件,提高工作效率,减轻了劳动强度,加快了超市的经营和管理。(三)技术可行性1、现有相关技术可行性综合考虑各种开发技术,我选取了B/S(浏览器/服务器)模式的体系结构,基于SSH框架模式进行JSP的WEB应用开发。用户使用浏览器完成人机交互,JSP页面和支持JSP处理的Web服务器共同完成了进销存管理系统的功能.(1)、JSP技术JSP是一种动态网页标准技术,由Sun公司所倡导、多家公司一起参与而建立,它为创建显示动态生成的Web页面提供了一个简单且快捷的方法,结合了跨平台和跨网站服务器的支持。JSP是一项将静态HTML和动态生成的HTML巧妙的结合到一起的技术。JSP技术可以将脚本语言嵌入到HTML或XML文档中。在JSP文件被传送到客户端之前,JSP文件的语法就在服务器端被解析,脚本程序也被转化为Servlet来进行处理,而产生的Servlet将生成动态的HTML数据,并发送到客户端进行显示。访问JSP文件的方法主要由两种:一种方法是由浏览器发送对JSP文件的请求,JSP调用Bean组件来执行任务,并且将生成的动态内容发送到浏览器的组件;另一种方法则是客户端直接将请求发送到Servlet,由Servlet来负责生成动态内容,然后再激活一个JSP文件以便显示所生成的内容。(2)、SSHE框架模式SSH为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。、社会可行性目前超市管理信息系统已经在大型的超市中得到了广泛的应用,超市管理需要现代化和信息化,只有合理地运用信息化的管理,才能在市场竞争中立于不败。超市管理信息系统不仅能够提高经营者的回报,而且能够随时掌握市场的动向,为经营者提供必要的市场信息,解决了经营者最需要解决的迫切问题,同时管理信息系统对操作人员的素质要求不高,也合理地节约了成本的投入。、经济可行性超市管理系统的投入,能够提高工作效率,减少工作人员,从而减少人力资本的投入,根据核算,系统投入三个月后,就能够基本收回开发系统的。其相关费用计算如下:1投资及效益分析1.1支出1.1.1基本建设投资机器设备(电脑一台)4000元 电费30元 合计4030元1.1.2其他一次性支出因目前由本人开发,若不计算薪资等成本支出,无其他一次性支出。1.1.3非一次性支出不可知费用500元 共计500元 投资共计4530元1.2收益1.2.1一次性收益 无1.2.2非一次性收益无1.2.3不可定量的收益待用户习惯后,掌握的是无限量的客户资源和供应商资源及对商店带来的经济效益。1.3收益/投资比可见:商品销售数量。不可见:效率提高,质量提高等。 1.4投资回收周期投资回收周期视软件使用情况定。投资,从经济角度来说,本系统开发完全必要。三、系统设计(一)、系统功能描述1、使用系统流程图:图3-1系统流程图2、商品信息管理流程图图3-2商品信息管理块流程图3、进销存信息管理流程图图3-3进销存信息管理流程图4、人员信息管理流程图:图3-4用户信息管理流程图本系统正常运行使用主要由两个版块支持,一方面是工作人员对商品的销售管理,另一方面管理员对商品进销存,工作人员等的管理。整个应用软件实现的主要功能有:管理员对工作人员管理,商品信息管理,进销存管理。大量用户可同时使用此软件,并且能保证软件各功能模块都能正常良好运行。、系统模块设计注册模块的设计——实现功能:实现没有账号的新到用户的注册功能;注册模块是用来向用户提供注册功能的。用户只需要填写自己的相关信息,点击注册按钮把数据提交到后台,对数据库进行操作。登录模块的设计——实现功能:已经拥有系统账号的用户的登录功能;登录模块是用来向用户提供登录功能的,系统会首先验证用户信息是否为空,且是否是正确的用户信息。系统验证这些数据成功后,会跳转到用户的个人信息页面或者后台管理页面。如果验证不成功会停留在登录页面。首页模块的设计——实现功能:实现用户对首页的访问;首页的使用频率很高,功能就是提供用户对首页的访问。用户打开网站就来到首页,在进行其他操作的时候也可以通过点击网站名称或者其他按钮返回首页。首页是一个比较特殊的页面,要同时展示不同模块部分中的不同数据部分。商品信息模块的设计——实现功能:对书商品详细信息进行展示,提供加入增加,修改,删除的操作;商品信息模块通过商品id进行跳转,展示了商品的详细信息,如商品名,商品号,类型,价格,库存量,销售量等。个人信息模块的设计——实现功能:实现个人信息管理。个人信息模块可以查看用户的个人信息,并对之进行修改。后台管理模块的设计——实现功能:管理员对商品、进销存信息、工作人员的信息进行管理。管理员登录后台管理后,可以添加、修改和删除商品;修改用户信息和删除用户;查看商品销售或库存情况。、数据字典1、数据库设计背景在数据库应用系统的开发过程中,数据库的结构设计是其中非常重要的一个环节。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。所以在尽量全面考虑用户的各种需求的前提下,进行了数据库设计。2、E-R模型、商品信息实体图商品信息实体图反映的是商品的各项数据,包括ID,商品名,商品类型,商品进价,商品售价,保质期,销售量,库存量,其他。3-5商品信息实体图、工作人员信息实体图用户信息实体图反映了涉及工作人员的使用频率最频繁的信息集合。包括了ID,用户名,联系,地址,备注。图3-6工作人员信息实体图、订单信息实体图订单信息实体图反映的是订单各种信息,订单号,用户id,图3-8订单信息实体图、订单详细信息实体图订单详细信息实体图反映的是订单的详细信息,也就是一个订单号对应的用户购买的书籍的id和购买数量。图3-9订单详细信息实体图3、数据库表的设计本系统建立4个数据库表:图书信息表,用户信息表,订单信息表,订单详细信息表。数据库名:jinxiaocunguanlixitong表名:empinfo(员工信息表)字段名字段含义类型长度允许空主键EmpID员工ID号char6是Name名称varchar50phone联系varchar12addressvarchar50others备注char50√表名:goodsinfo(商品信息表)字段名字段含义类型长度允许空主键GoodsID商品编号int10是Name名称char10kind类别char10√Unitcost进货单价Float10Salescost零售价Float10Qualitydate保质期char10Salesnum销售量Int15√Kcamount库存量Int15√others备注char15表名:Supplierinfo(供应商信息表)字段名字段含义类型长度允许空主键SupplierID供货商号char6是Name名称varchar50Contactperson联系人varchar8phone联系varchar12addressvarchar50others备注char50√表名:admininfo(管理员信息表)字段名字段含义类型长度允许空主键AdminID管理员编号int10√Username姓名char10Password密码varchar40others备注char15√表名:rukuinfo(入库信息表)字段名字段含义类型长度允许空主键Goods_ID商品编号int10√Name名称char10kind类别char10√Unitcost进货单价Float10JHamount进货数量Int15√price金额Long15√SupplierID供应商编号int10√Date日期Date15√表名:kucuninfo(库存信息表)字段名字段含义类型长度允许空主键Goods_ID商品编号int10√Name名称char10Kc_amount库存量Int15表名:salesinfo(销售信息表)字段名字段含义类型长度允许空主键GoodsID商品编号int10√Name名称char10Salescost销售单价Float10Unitcost进货单价Float10salesNum销量Long15√Salesprice销售额Long15√Date日期Date15√(四)、系统数据流程图图3-6数据流程图四、系统实现(一)、系统界面设计1、员工注册页面注册页面简单大方,采用css布局控制。在注册之后会自动跳转到员工登录主页。图4-1员工注册页面员工登录页面图4-2员工登录3、管理员登陆页面图4-3管理员登录页面4、增加商品信息页面图4-4增加商品信息页面4.5商品的修改和删除5、个人信息页面个人信息页面用户可以查看和修改个人信息,管理订单等。图4-5个人信息页面6、后台管理页面管理员进入后台,可以添加书籍,对书籍、用户、订单进行管理。图4-6后台管理页面7、购物车页面购物车页面可以对已添加到购物车的书籍进行删除或对数量进行修改,也可以返回继续购物。图4-7购物车页面8、订单信息页面订单信息确认可以查看确认用户的个人信息,购物车信息等。图4-8订单信息页面(二)、主要模块详细设计1、登录模块登录模块主要是验证和跳转。这里有两次验证,一次主要是把用户输入的用户名和密码提交到loginCL2与数据库内的数据进行验证,如果验证不成功,则会停留在登录页面,如果验证成功,则会跳转到对应模块页面。第二次验证则是对是否管理员的验证,如果登录的是管理员,就跳转到后台管理页面,如果是普通用户,则根据用户userid跳转到用户的个人信息页面。if(ubb.checkUser(u,p)){ UserBeanub=ubb.getUserBean(u); request.getSession().setAttribute("userinfo",ub); if(ubb.checkAdmin(u)){ request.getRequestDispatcher("admin.jsp").forward(request,response); }else{ request.getRequestDispatcher("userindex.jsp").forward(request,response); } }else{ request.getRequestDispatcher("login.jsp").forward(request,response); }//验证用户是否合法 publicbooleancheckUser(Stringu,Stringp){ booleanb=false; try{ conn=newConnDB().getConn(); ps=conn.prepareStatement("selectpasswordfromuserwhereusername=?limit1"); ps.setString(1,u); rs=ps.executeQuery(); if(rs.next()){ Stringdbpasswd=rs.getString(1); if(dbpasswd.equals(p)){ b=true; } …… //验证用户是否管理员 publicbooleancheckAdmin(Stringu){ booleanb=false; try{ conn=newConnDB().getConn(); ps=conn.prepareStatement("selectgradefromuserwhereusername=?limit1"); ps.setString(1,u); rs=ps.executeQuery(); if(rs.next()){ intdbgrade=rs.getInt(1); if(dbgrade==5){ //用户合法 b=true; …… }注册模块用户在注册页面输入信息,提交到addempinfoAction进行操作,把新的用户信息存入数据库。 <html><head> <title>员工注册</title> <linkrel="stylesheet"type="text/css"href="css/styles.css"></head><body> <center> <%@includefile="top.jsp"%> <divid="wholePage"> <divid="currentPoint"> </div> <h1>员工注册</h1> <hrwidth="400"/><s:formaction="addempinfoAction.action"method="post"><s:textfieldname="emp.empId"label="员工号"></s:textfield><s:textfieldname=""label="姓名"></s:textfield><s:textfieldname="emp.phone"label=""></s:textfield><s:textfieldname="emp.address"label="住址"></s:textfield><s:textfieldname="emp.others"label="其他"></s:textfield><s:submitvalue="注册"></s:submit></s:form></div><%@includefile="bottom.html"%> </center></body></html>首页模块首页使用table进行布局,分为四个部分,head主要是网站名称和登录注册,个人信息和购物车等链接,并且展示了网站图书的四个分类,tail是网站的版权等信息,left是一个静态的图片和文字展示,right部分为书籍展示,是任务比较繁重的部分。<bodytopmargin="0"><tablewidth="80%"border="1"align="center"><tr><tdheight="56"colspan="2"align="center"><!--引入head.jsp--><jsp:includepage="head.jsp"></jsp:include></td></tr><tr><tdvalign="top"width="25%"height="289"align="center"><jsp:includepage="left.jsp"></jsp:include></td><tdvalign="top"width="75%"align="center"><jsp:includepage="right.jsp"></jsp:include></td></tr><tr><tdheight="58"colspan="2"align="center"><jsp:includepage="tail.jsp"></jsp:include>……商品详细信息模块书籍详细信息可以通过点击书名进入,展示了书名,书号,价格,类型,出版社和简介等。页面上包含加入购物车和返回继续购物两个按钮,用户可以通过需要选择。StringgoodsId=request.getParameter("id"); GoodsBeanBogbb=newGoodsBeanBo(); GoodsBeangb=gbb.getGoodsBean(goodsId); request.setAttribute("goodsinfo",gb); request.getRequestDispatcher("showDetail.jsp").forward(request,response); ……<tdwidth="30%"rowspan="8"align="center"><imgsrc="images/<%=gb.getPhoto()%>"width="350"height="280"/></td><tdwidth="70%"height="16"align="center"class="common"><%=gb.getGoodsName()%></td></tr><tr><tdheight="16"align="left"class="common">价格:<%=gb.getGoodsPrice()%></td></tr><tr><tdheight="17"align="left"class="common"> </td></tr><tr><tdheight="16"align="left"class="common">ISBN:<%=gb.getGoodsId()%></td></tr><tr><tdheight="16"align="left"class="common">类型:<%=gb.getType()%></td></tr><tr><tdheight="16"align="left"class="common">出版商:<%=gb.getPublisher()%></td></tr><tr><tdheight="17"align="left"class="common"> </td></tr><tr><tdheight="78"align="left"valign="top"class="common"><%=gb.getGoodsIntro()%></td></tr><tralign="center"><tdcolspan="2"align="left"><label><inputname="Submit1"type="button"class="common"onclick="addGoods(<%=gb.getGoodsId()%>);"value="立即购买"/></label><label><inputname="Submit2"type="button"class="common"onclick="returnHall();"value="返回继续购物"/></label></td></tr>……购物车模块通过哈希函数进行购物车的操作,可以向购物车添加书籍,对购物车内的书籍进行删除,全部删除和修改数量,并计算出总价。publicclassMyCartBo{ //定义一个hashmap,用于存放商品的id和数量 HashMap<String,String>hm=newHashMap<String,String>(); privateConnectionconn=null; privatePreparedStatementps=null; privateResultSetrs=null; //购物车的总价 privateintallPrice=0; publicintgetAllPrice(){ returnthis.allPrice; } publicStringgetGoodsNumById(StringgoodsId){ return(String)hm.get(goodsId); } //1添加商品 publicvoidaddGoods(StringgoodsId,StringgoodsNum){ hm.put(goodsId,goodsNum); } //2删除商品 publicvoiddelGoods(StringgoodsId){ hm.remove(goodsId); } //3清空商品 publicvoidclear(){ hm.clear(); } //4修改商品数量 publicvoidupGoods(StringgoodsId,StringnewNum){ hm.put(goodsId,newNum); } //5查看购物车 publicArrayListshowMyCart(){ //泛型 ArrayList<GoodsBean>al=newArrayList<GoodsBean>(); try{ Stringsql="select*fromgoodswheregoodsIdin"; Iteratorit=hm.keySet().iterator(); Stringsub="("; while(it.hasNext()){ //取出goodsId StringgoodsId=(String)it.next(); //判断goodsId是不是最后id if(it.hasNext()){ sub+=goodsId+","; }else{ sub+=goodsId+")"; } } sql+=sub; conn=newConnDB().getConn(); ps=conn.prepareStatement(sql); rs=ps.executeQuery(); this.allPrice=0; while(rs.next()){ GoodsBeangb=newGoodsBean(); intgoodsId=rs.getInt(1); gb.setGoodsId(goodsId); gb.setGoodsName(rs.getString(2)); gb.setGoodsIntro(rs.getString(3)); intutil=rs.getInt(4); gb.setGoodsPrice(util); gb.setGoodsNum(rs.getInt(5)); gb.setPublisher(rs.getString(6)); gb.setPhoto(rs.getString(7)); gb.setType(rs.getString(8)); this.allPrice=this.allPrice+util*Integer.parseInt(this.getGoodsNumById(goodsId+"")); al.add(gb); } …… }通过session传递购物车信息。//取出al[购物车的物品]ArrayListal=(ArrayList)request.getAttribute("mycartinfo");MyCartBombo=(MyCartBo)session.getAttribute("mycart");购物车信息展示及修改。……<formaction="shoppingClServlet?type=updateGoods"method="post"><tablewidth="100%"height="159"border="1"class="common"><tralign="center"><tdcolspan="4"><fontsize="1">选择书籍→加入购物车→确认订单信息→完成订单</font></td></tr><tr><tdwidth="20%"align="center">编号</td><tdwidth="30%"align="center">名称</td><tdwidth="20%"align="center">单价</td><tdwidth="30%"align="center">数量</td></tr><% for(inti=0;i<al.size();i++){ //从al中取出商品bean GoodsBeangb=(GoodsBean)al.get(i);%> <trclass="common"><tdwidth="20%"align="center"><%=gb.getGoodsId()%></td><tdwidth="30%"align="center"><%=gb.getGoodsName()%></td><tdwidth="20%"align="center">¥<%=gb.getGoodsPrice()%></td><tdwidth="30%"align="center"><tablewidth="100%"border="1"><trclass="common"><tdwidth="24%"><inputtype="hidden"name="goodsId"value="<%=gb.getGoodsId()%>"/><inputtype="text"name="newNums"size="7"value="<%=mbo.getGoodsNumById(gb.getGoodsId()+"")%>"/></td><tdwidth="40%"align="center"><ahref="shoppingClServlet?type=delGoods&goodsId=<%=gb.getGoodsId()%>">删除</a></td><tdwidth="40%"align="center"><ahref="ShowGoodsClServlet?type=showDetail&id=<%=gb.getGoodsId()%>">查看</a></td></tr></table></td></tr><% }%><tr><tdwidth="20%"align="center"> </td><tdwidth="30%"align="center"><inputname="Submit"type="button"class="common"onclick="delAll();"value="删除全部书籍"/></td><tdwidth="20%"align="center"><inputname="Submit2"type="submit"class="common"value="修改数量"/></td><tdwidth="30%"align="center"> </td></tr><tralign="center"><tdcolspan="4"> </td></tr><tralign="center"><tdheight="40"colspan="4"><tablewidth="100%"height="36"border="1"><trclass="common"><tdwidth="50%"height="30"align="left"><label>您共选择了价值¥<%=mbo.getAllPrice()%>的商品,点<ahref="index.jsp">此处</a>继续购物。</label></td><tdwidth="50%"align="right"><ahref="ShoppingCl2"><imgsrc="images/next.png"width="91"height="26"/></a></td>……搜索模块只能针对书名进行书籍的详细搜索。publicGoodsBeangetGoodsBeanByN(StringgoodsName){ GoodsBeangb=newGoodsBean(); try{ conn=newConnDB().getConn(); ps=conn.prepareStatement("select*fromgoodswheregoodsName=?"); ps.setString(1,goodsName); rs=ps.executeQuery(); if(rs.next()){ gb.setGoodsId(rs.getInt(1)); gb.setGoodsName(rs.getString(2)); gb.setGoodsIntro(rs.getString(3)); gb.setGoodsPrice(rs.getInt(4)); gb.setGoodsNum(rs.getInt(5)); gb.setPublisher(rs.getString(6)); gb.setPhoto(rs.getString(7)); gb.setType(rs.getString(8)); } …… }7、后台书籍管理模块后台管理主要分为新增商品,商品管理,用户管理和订单管理。管理员可以添加新的书籍,对书籍、用户的信息进行修改和删除,可以查看和取消订单。商品管理部分代码://添加书籍 publicbooleanaddBook(StringgoodsName,StringgoodsIntro,intgoodsPrice,intgoodsNum,Stringpublisher,Stringphoto,Stringtype){ booleanb=false; try{ conn=newConnDB().getConn(); ps=conn.prepareStatement("insertintogoods(goodsName,goodsIntro,goodsPrice,goodsNum,publisher,photo,type)values(?,?,?,?,?,?,?)"); ps.setString(1,goodsName); ps.setString(2,goodsIntro); ps.setInt(3,goodsPrice); ps.setInt(4,goodsNum); ps.setString(5,publisher); ps.setString(6,photo); ps.setString(7,type); inta=ps.executeUpdate(); if(a==1){ b=true; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnb; }//修改书籍 publicbooleanupdateBook(StringgoodsId,StringgoodsName,StringgoodsIntro,intgo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论