1、毕业设计(论文)在线图书销售管理系统系别:机电信息学院专业名称:计算机科学与技术学生姓名:XXXSX学号:XXXXXXXXXXXXX指导教师姓名、职称:XXXX讲师完成日期2013年12月24日摘要随着Internet的迅速崛起,互联网已日益成为收集和提供信息的最佳渠道,并逐步进入传统的流通领域。网上购物平台的出现打破了传统的市场销售和购物模式,将市场和网络结合。在信息化程度较高的国家和地区,网上购物平台的发展速度迅猛,美国的世界级超一流零售商如沃尔玛、凯玛特以及家庭仓储科罗格、J1C
2、培尼等纷纷跻身于网络经商的行列。美国的家庭已越来越习惯于在家中从网上购物。根据CNNIC(ChinaInternetNetworkInformationCenter)发布第27次中国互联网络发展状况统计报告,我国宽带网民规模达到4.5亿。而且有40.17%以上的网民在过去的一年里有过网上购物经历,这说明在中国发展网上购物平台具有良好的群众基础,利用网上购物平台进行网上购物将日趋被人们所接受,电子商务在中国已经趋于完善,进入可持续发展的稳定期。“在线图书销售管理系统”的设计采用当今最为流行的网络编程语言之一的JSP制作,数据库采用mysql,提高了数据的存储安全性,另外采用
3、Tomcat服务器加快了系统的整体访问速度,系统整体框架采用B/S架构,利于和用户之间的交互,“在线图书销售管理系统”的功能设计基本达到了网民网上销售和网上购买图书实际应用的需要,同时也可以满足商家在线维护商品、管理订单、管理用户功能。关键词:JSP;B/S模式;在线图书销售管理AbstractWiththerapidriseofInternet,theInternethasincreasinglybecomethebesttocollectandprovideinformationchannelsandtheflowgradually
4、intothetraditionalareas.Theemergenceofonlineshoppingplatformtobreakthetraditionalmarketingandshoppingpatterns,combinedwiththemarketandnetwork.Higherdegreeofinformationincountriesandregions,theonlineshoppingplatform,therapidpaceofdevelopment,theU.S.world-cla
5、sssuper-classretailerssuchasWal-Mart,KmartandhomestorageKeluoGe,J1CPeiniwereallamongthenetworkofbusinessRanks.Americanfamiliesaremoreandmoreaccustomedtoonlineshoppingfromhome.AccordingtoCNNIC(ChinaInternetNetworkInformationCenter)releasedthe27thChinaInternet
6、DevelopmentStatisticsReport,thescaleofChina'sbroadbandusersreached4.5million.Andtherearemorethan40.17%ofInternetusersinthepastyeartherehavebeenonlineshoppingexperience,whichshowsthedevelopmentofonlineshoppingplatforminChina,hasagoodmassbase,theuseofo
7、nlineshoppingplatformforonlineshoppingwillbecomemoreacceptedbypeople,e-commerceinChinahasmaturedintothesustainabledevelopmentofthestable."Onlinebooksalesmanagementsystem"wasdesignedwithtoday'smostpopularnetworkprogramminglanguageoftheJSP,databasesusingmys
8、ql,improveddatastoragesecurity,anothertomcatserverusingthesystemtospeeduptheoverallaccessspeed,theoverallframeworkofthesystemByB/Sstructure,conduciveanduserinteraction,"onlinebooksalesmanagementsystem"basicallyreachedthefunctionaldesignofInternetusersbuy
9、booksonlinesalesandonlineneedsofpracticalapplications,butalsotomeetbusinessonlinemaintenanceproducts,manageordersManagementuserfunctions.Keyword:JSP;B/Sstructure;Onlinebooksalesmanagement目录1系统概述11.1项目开发的背景和意义1项目开发的背景1项目开发的意义11.2项目开发的环境2硬件环境2软件环境21.3开发语言介
10、绍22可行性分析42.1编写目的42.2可行性研究任务4技术可行性4经济可行性4操作可行性42.3可行性研究结论53需求分析63.1编写目的63.2功能需求分析63.3数据字典64总体设计84.1编写目的84.2系统功能模块图8用户浏览模块8管理员模块94.3数据库设计94.3.1数据库概念设计9数据库的逻辑设计11数据库的物理设计115详细设计135.1编写目的135.2系统程序流程图135.3系统主界面设计135.3.1系统主界面效果图145.4新用户注册界面设
11、计145.4.1用户注册效果图145.4.2关键性代码155.5修改用户资料界面设计155.5.1修改用户资料界面效果图155.5.2关键性代码165.6前台图书浏览面设计165.6.1前台图书浏览面效果图165.6.2关键性代码175.7购物车信息界面设计175.7.1购物车信息界面效果图175.7.1关键性代码185.8用户资料管理界面设计185.8.1用户资料管理界面效果图185.8.2关键性代码195.9查看订单详细信息界面设计195.9.1订单管理界面效果图205.9.2关键性代码20
15、传统的销售渠道中,大书商与小书商之间的竞争差别很大。电子商务使大书商与小书商之间规模差距的竞争变得几乎微不足道。只有两个人管理的网上书店提供的书目和服务,几乎可以与200人管理的传统书店提供的书目和服务一样。另外,网上书店也改变了企业的竞争模式,经验表明:如果网上书店可以为顾客提供品种齐全的图书、折扣以及灵活的条件、可靠的安全性和友好的界面,在线购物者一般都愿意在网上进行图书交易。再则,从长远的角度考虑,网上书店不仅响应国家政府大力发展网络出版的号召,而且也为提高偏远地区图书普及率、全社会文化素质的提高贡献力量1.1.2项目开发的意义(1)培养学生综合运用所学知识,结合实际独立完成课题
17、出设备要求:104键标准键盘,显示器的分辨率1366*768软件环境操作系统:Windows7数据库管理系统:mysql开发工具包:JSP,MyEclipse服务器:Tomcat1.3开发语言介绍1)MyEclipse8.5MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据
18、库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2)数据库MYSQL简介:MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。3)Tomcat服务器简介:Tomcat服
19、务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一
20、样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0.0-RC1(alpha)Released。Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。2可行性分析2.1编写目的可行性研究旨在评估目标系统是否值得去开发,问题是否能够解决。网上图书销售管
21、理系统必须适应中国国情,符合国家各种政策法规,信息指标体系满足标准化要求,能够协助销售人员统筹安排,提高工作效率。2.2可行性研究任务通过参照现有相似的其他网站的使用效果和分析实例进行可行性研究,主要从以下三个方面进行讨论:技术可行性利用现有的jsp、mysql计算机技术能进行本项目开发:网站采用浏览器/服务器(B/S)结构,用户通过浏览器向服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成,在技术上可行。经济可行性网上图书
24、设备能够真正满足用户的需要。3.2功能需求分析网上图书销售系统是针对图书销售商家和消费者开发,并进行统一的管理。其中包括了,用户管理,图书信息管理,图书分类管理,订单管理,个人资料管理等。根据设计的需要,系统要实现的主要功能有:1.消费者登陆——系统判断用户是否登陆,如果没登陆,系统提示用户登陆。2.消费者注册——用户填写个人信息注册。3.购物处理——消费者可以将自己购买的家具放进购物车,方便统一结算。4.消费者资料——消费者登陆系统可以查看自己的注册信息资料。5.购物车管理——消费者可以对购物车里的图书信息进行集中管理。6.定单管理——管理员可
25、以对消费者的定单信息进行管理。7.账号管理——管理员对账号信息进行统一管理。8.图书管理——管理员可以对家具信息进行统一管理。9.图片管理——管理员可以根据需要上传图书图片信息。3.3数据字典数据字典一般应包括对数据流、数据元素(数据流分量)、数据存储和处理的说明。数据字典是对数据流程图的重要补充和说明。数据字典是关于数据的信息的集合,也就是对数据流图中包含所有元素的定义的集合。数据字典的作用在软件分析和设计的过程中给人提供关于数据的描述信息。现简要列出本系统的部分数据字典。1.数据流卡片的定义:名字:图书信息别名:无描述:有关图书的详细信息定义
26、:图书信息=图书编号+类别+名称+单价+图片+作者+介绍名字:订单列表别名:订单信息描述:用户购买图书的详细清单定义:订单信息=订单编号+用户编号+数量+总价2.数据元素卡片的定义名字:图书名称别名:无描述:表示特定图书的名字定义:图书名称=1{字符}5名字:图书介绍别名:无描述:描述图书定义:图书介绍=1{字符}2003.数据存储卡片的定义名字:订单信息别名:无描述:用户购买图书的详细信息定义:订单信息=订单编号+用户编号+数量+总价名字:用户注册信息别名:无描述:记录用户在购物网站上的注
28、数据库管理三个模块。如图4-1网上图书销售管理系统用用户浏览模块管管理员管理模块图4-1总的功能模块图4.2.1用户浏览模块用户浏览模块主要让购买者使用,可以进行家具信息的浏览和订购功能,用户模块的结构如图4.2所示。图4-2用户模块的功能模块4.2.2管理员模块管理员模块的功能由管理员使用,可以进行用户信息、家具信息、订单、管理员等内容的管理,管理员模块的结构如图4.3所示。图4-3管理员功能模块4.3数据库设计数据库概念设计这一阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的关系,为逻辑
34、ll;booleanresult=false;try{tx=session.beginTransaction();session.save(member);txmit();result=true;}catch(Exceptionex){if(tx!=null)tx.rollback();logger.info("在执行MemServiceImpl类中的addMember方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSes
35、sion();}returnresult;}5.5修改用户资料界面设计修改用户资料可以帮助用户随时修改自己的资料,修改用户资料同样将于后台数据库记录的信息相一致,提交后所有的信息将会被后台数据库所记录。5.5.1修改用户资料界面效果图图5-3修改用户资料界面设计5.5.2关键性代码publicbooleanupdateMember(Membermember)throwsException{Sessionsession=MySessionFactory.getSession();Transactiontx=nu
36、ll;booleanresult=false;try{tx=session.beginTransaction();session.update(member);txmit();result=true;}catch(Exceptionex){if(tx!=null)tx.rollback();logger.info("在执行MemServiceImpl类中的updateMember方法时出错:\n");ex.printStackTrace();}finally{MySessionFac
37、tory.closeSession();}returnresult;}5.6前台图书浏览面设计当用户点击图书图片时,将会进入此链接,网页将显示此图书的详细信息,包括销售价格、出版社以及书籍的商品描述。如果你点击购买,系统将自动跳转至订单页面。5.6.1前台图书浏览面效果图图5-4前台图书浏览面设计5.6.2关键性代码publicMerchandiseloadMer(Integerid)throwsException{Sessionsession=MySessionFactory.getSession();Tr
38、ansactiontx=null;Merchandisemer=null;try{tx=session.beginTransaction();mer=(Merchandise)session.get(Merchandise.class,id);txmit();}catch(Exceptionex){if(tx!=null)tx.rollback();logger.info("在执行MerServiceImpl类中的loadMer方法时出错:\n");ex.printStackTrace();}
39、finally{MySessionFactory.closeSession();}returnmer;}5.7购物车信息界面设计此页面就是显示你所购买的书籍数量,以及书籍的名称,单价和最后购买的总价格。点击进入下一步进入确认订单信息,而订单确认信息的显示是对所购买的书籍做最后的确认,最后提交订单。5.7.1购物车信息界面效果图图5-5购物车信息界面设计5.7.1关键性代码packagecom.service;importcom.ORM.*;importjava.util.*;publicinterfaceCar
40、tService{/**选购商品*/publicbooleanaddCart(Membermember,Merchandisemer,intnumber)throwsException;/**查看购物车中的选购商品*/publicListbrowseCart(Membermember)throwsException;/**清空购物车*/publicbooleanclearCart(Membermember)throwsException;/**调整选购商品的数量*/publicbo
41、oleanmodiCart(Integerid,intnumber)throwsException;/**删除已选购商品*/publicbooleandelCart(Integerid)throwsException;/**装载指定会员的购物车*/publicCartloadCart(Membermember)throwsException;/**更新购物车*/publicbooleanupdateCart(Cartcart)throwsException;}5.8用户资料管理界面设计管
45、对订单信息进行浏览、修改、和删除操作。5.9.1订单管理界面效果图图5-7查看订单详细信息界面设计5.9.2关键性代码packagecom.service;importcom.ORM.*;importjava.util.*;publicinterfaceOrderService{/**新增订单*/publicbooleanaddOrder(Ordersorder)throwsException;/**浏览某会员的所有订单*/publicListbrowseOrder(Membermember)thr
46、owsException;/**浏览所有订单*/publicListbrowseOrder()throwsException;/**浏览某订单的所有商品记录*/publicListbrowseOrderMer(Cartcart)throwsException;/**删除订单*/publicbooleandelOrder(Integerid)throwsException;/**装载订单*/publicOrdersloadOrder(Integerid)throwsException
48、on;/**浏览商品*/publicListbrowseMer(Stringhql)throwsException;/**装载指定的商品*/publicMerchandiseloadMer(Integerid)throwsException;/**删除指定的商品*/publicbooleandelMer(Integerid)throwsException;/**新增商品*/publicbooleanaddMer(Merchandisemer)throwsException;
53、改用户个人住址信息期望结果数据库更新成功测试结果(正确或错误)正确测试人江振谷日期:2013/12/126.4购物车功能测试测试内容见表7-6:表7-6加入购物车功能测试测试用例6描述当用户把某种图书加入到购物车时,数据库是否成功更新测试方法将欲要购买的图书加入购物车期望结果数据库更新成功测试结果(正确或错误)正确测试人江振谷日期:2013/12/126.5删除订单功能测试测试内容见表7-7:表7-7删除订单功能功能测试测试用例7描述测试管理员删除某条订单时,是否成功
54、从数据库中删除测试方法删除某条订单记录期望结果数据库更新成功测试结果(正确或错误)正确测试人日期:2013/12/126.6系统维护本系统是个较复杂的人-机交互系统,由于系统外部环境与内部环境因素的变化,不断影响系统的运行,同时需要系统不断适应这些变化,不断地完善系统,以提高系统运行的效率与服务水平,这就需要自始至终进行系统的维护工作。系统的维护主要包括四个方面:1、程序的维护:指的是修改部分或全部程序,这种维护往往是在条件发生变化或原系统的效率低的情况下进行的。2、数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。
55、3、代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问题,因此,有必要变更代码,予以维护。4、硬件的维护:指的是对系统所使用的设备进行维护。附录packagecom.service;importjava.util.List;importcom.ORM.*;importcom.base.*;importorg.hibernate.*;/**系统用户管理接口实现*/publicclassAdminServiceImplextendsBaseLogimplementsAdminService{/**系统管理员
57、eryquery=session.createQuery(hql);query.setString("loginName",loginName);query.setString("loginPwd",loginPwd);query.setMaxResults(1);tx=session.beginTransaction();admin=(Admin)query.uniqueResult();txmit();}catch(Exceptionex){if(tx!=null)tx.rollbac
58、k();logger.info("在执行AdminServiceImpl类中的adminLogin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}returnadmin;}/**浏览管理员*/publicListbrowseAdmin()throwsException{Sessionsession=MySessionFactory.getSession();Transactiont
59、x=null;Listlist=null;try{Queryquery=session.createQuery("fromAdminasaorderbya.id");tx=session.beginTransaction();list=query.list();txmit();if(!Hibernate.isInitialized(list))Hibernate.initialize(list);}catch(Exceptionex){if(tx!=null)tx
60、.rollback();logger.info("在执行AdminServiceImpl类中的browseAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}returnlist;}/**删除指定的管理员*/publicbooleandelAdmin(Integerid)throwsException{Sessionsession=MySessionFactory.getSession
61、();Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction();Adminadmin=(Admin)session.load(Admin.class,id);session.delete(admin);txmit();status=true;}catch(Exceptionex){if(tx!=null)tx.rollback();logger.info("在执行Adm
62、inServiceImpl类中的delAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}returnstatus;}/**装载指定的管理员*/publicAdminloadAdmin(Integerid)throwsException{Sessionsession=MySessionFactory.getSession();Transactiontx=null;Admin
63、admin=null;try{tx=session.beginTransaction();admin=(Admin)session.get(Admin.class,id);txmit();}catch(Exceptionex){if(tx!=null)tx.rollback();logger.info("在执行AdminServiceImpl类中的loadAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactor
64、y.closeSession();}returnadmin;}/**更新管理员*/publicbooleanupdateAdmin(Adminadmin)throwsException{Sessionsession=MySessionFactory.getSession();Transactiontx=null;booleanstatus=false;try{tx=session.beginTransaction();session.update(admin);
65、txmit();status=true;}catch(Exceptionex){if(tx!=null)tx.rollback();logger.info("在执行AdminServiceImpl类中的updateAdmin方法时出错:\n");ex.printStackTrace();}finally{MySessionFactory.closeSession();}returnstatus;}}packagecom.service;importjava.sql.*
66、;importjava.util.*;importcom.ORM.*;importcom.base.BaseLog;importorg.hibernate.*;publicclassCartServiceImplextendsBaseLogimplementsCartService{/**选购商品*/publicbooleanaddCart(Membermember,Merchandisemer,intnumber)throwsException{Sessionsession=MySessionFactory.getSession();Transactiontx=null;booleanstatus=false;try{Cartselectedmersel=null;intfavourable=member.getMemberlevel().getFavourable().intValue();//判断该会