jsp超市进销存系统ssh论文_第1页
jsp超市进销存系统ssh论文_第2页
jsp超市进销存系统ssh论文_第3页
jsp超市进销存系统ssh论文_第4页
jsp超市进销存系统ssh论文_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

目录TOC\o"1-2"\h\z\u1引言 11.1研究现状 11.2主要研究的目的及意义 11.3研究方法及设计思路 22需求分析与可行性分析 22.1功能需求分析 32.2界面需求分析 32.3硬件需求分析 32.4可行性分析 42.5其他需求 43相关技术简介 53.1JSP技术简介 53.2Mysql数据库 53.3Tomcat 63.4JavaScript 64系统分析 64.1系统实现目标 64.2系统体系结构 74.3主控流程图 74.4数据库概念设计 84.5数据库逻辑设计 105系统设计与实现 115.1管理员登录界面 115.2商家信息管理 125.3商品信息管理模块 145.4商品库存管理模块 155.5进货管理模块 165.6出货管理模块 175.7销售管理模块 195.8员工管理模块 205.9会员管理模块 216系统测试 216.1测试目的与意义 216.2测试过程 217结论 22参考文献 22山山西大学商务学院本科毕业设计 昆山乐购超市进销存系统的设计与实现PAGE14PAGE1昆山乐购超市进销存系统的设计与实现学生姓名:指导教师:摘要:当今社会己进入信息社会时代,信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)之一。信息是管理的基础,是进行决策的的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,占有重要的地位。然而,信息是一种非物质的,有别于基本资源的新形式的资源。信息也是管理的对象,必须进行管理和控制。超市进销存系统是将IT技术用于超市信息的管理,它能够收集与存储超市的档案信息,提供更新与检索超市信息档案的接口;提高工作效率。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。本系统前台设计主要采用了JSP作为开发语言,后台设计主要采用了MySQL作为数据库管理系统,开发环境采用了Eclipse,服务器采用Tomcat,是一种基于JSP技术上开发出的B/S结构的超市管理系统。关键词:超市管理JSPMySQL1引言1.1研究现状近年来由于信息技术的不断发展和扩大,越来越多的人和企业选择在计算机上面进行管理所需要的信息,传统的手工管理方式在大的信息数据面前已经显得没有优势,例如我们研究的超市管理系统,超市有大量的商品信息和交易信息需要每天进行处理,传统的人工计算和核算很浪费精力和人力,采用信息技术提高超市管理水平和商品信息管理可以节省很多人力和物理。目前,对外开放必然趋势使信息行业直面外国同行单位的直接挑战,因此,信息行业必须提高其工作效率,改善其工作环境。这样,超市信息管理的信息化势在必行。在传统的超市信息管理中,其过程往往是很复杂的,繁琐的,超市信息管理以超市信息管理为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程必须实现信息化。1.2主要研究的目的及意义运用超市管理系统与传统超市模式比较有很多的优点如:1.查询比较方便信息化管理提供了非常多的查询途径,可以通过商品名称、价格、供应商等途径进行查询,快速又准确。2.信息量大与过去的交易方式比较,超市管理系统能够提供大量商品信息,资源更广阔。3.商品管理信息化,系统化和规范化。传统的商品管理看不出商品的库存和销量,不知道每个月每个商品的销售统计信息,不能准确的把握商品的销售情况,超市管理系统可以看出每个商品的销售情况,也可以统计销售的结果,便于超市管理员做出更多的决策。1.3研究方法及设计思路(1)研究方法超市信息管理的开发与设计是采用软件工程的思想去研究,依照软件流程去进行设计,包括需求分析、计划安排、概要设计、详细设计、系统的实现和最终的测试等项目开发过程。采用JAVA和JSP作为开发语言,数据库采用Mysql数据库,便于安装和查询,开发工具采用eclipse或者MyEclipse,中间件采用tomcat。(2)设计思路设计的基本思想主要有以下几点:1.采用B/S模式完成设计,其好处是后台与前台层次运行时比较清晰,并且和大部分用户的网页搜索方式相适宜。2.设计理念与开发使用面向对象的方式。对整体系统的认识无误,是运用面向对象技术的基础,通过它可以确保系统良好的解构,进而使产品具有较好的稳定性和运行效率。3.采用模块化设计。模块化设计要把所有系统分为比较小的模块,这样对代码的重载有好处,可以使设计容易和过程的实现。4.系统界面简单方便。设计容易的系统界面,可以使用户比较快的对系统的控制进行适应。5.速度优先的原则。由于此工具最关键的检验规范就是速度,所以在开发的过程中,尽可能做到占用资源少,运行速度快。6.设计既要突出重点,又要考虑到细节。要符合设计要求,在有可能改进的方面进行扩展,使系统更加适应用户的需要。2需求分析与可行性分析伴随着信息行业的蓬勃发展和人们超市意识的增强,办公管理部门的的工作也越来越繁重,原来的超市系统已经不能完全满足相关人员使用的需要。为了协助信息行业开展办公管理工作,提高工作效率,充分利用信息行业的现有资源,开发更好的超市系统势在必行。超市系统是将IT技术用于超市信息的管理,它能够收集与存储患者信息,提供更新与检索的接口;协助信息行业开展办公管理工作提高工作效率。超市系统采用B/S结构、结合网络数据库开发技术来设计本系统。开发语言采用JSP,数据库使用Mysql数据库。完成以下基本功能:1、登录模块:登录模块主要进行用户权限的验证,只有具备一定权限的人才能登录到系统,这样才能保证系统的安全,同时不同的用户有不同的权限。管理员在权限管理模块中可以制定其他人的权限。每个页面需要登录才能访问,如果没有登录便需要自动跳转到登录界面。2、商品管理模块:该模块主要是管理具体的商品,通过该模块能够查看每种产品的具体信息。能对库存商品进行查看、增加、删除等操作,还能对进货进行管理,增加新商品上架等功能。3、供应商管理模块:该模块管理了供应商的信息,对供应商能增加,删除,修改。4、人力管理模块:该模块主要是对雇员的基本信息进行管理,能够增加或删除新雇员等。超市系统具有标准超市系统所具有的现实中完整的办公管理步骤,完全的虚拟现实实现。真正实现节约资源、提高效率、业务处理的同时真正实现超市系统的功能作用。2.1功能需求分析超市管理系统的需求应该包括用户管理(人力资源)、商品管理、供应商管理、销售管理、会员管理等等,具体如下:1、商品管理模块:该模块主要是管理具体的商品,通过该模块能够查看每种产品的具体信息。能对库存商品进行查看、增加、删除等操作,还能对进货进行管理,增加新商品上架等功能。2、供应商管理模块:该模块管理了供应商的信息,对供应商能增加,删除,修改。3、人力管理模块:该模块主要是对雇员的基本信息进行管理,能够增加或删除新雇员等。4、销售模块:该模块主要是对销售信息进行管理,能够增加或删除销售信息等。2.2界面需求分析目前,界面设计已经成为对软件质量进行评价的一条关键指标,一个好的用户界面可以使用户使用系统的信心和兴趣增加,从而使工作效率提高,JSP技术是将JAVA语言作为脚本语言的,JSP网页给整个服务器端的JAVA库单元提供了一个接口用来服务HTTP的应用程序。创建动态页面比较方便。客户界面是指软件系统与用户交互的接口,往往涵盖输出、输入、人机对话的界面格式等。2.3硬件需求分析硬件需求:CPU:Pentium以上计算机内存:512M以上软件需求:操作系统版本:WindowsXP/vista/Win7开发工具:MyEclipse6.0.1后台服务器:ApacheTomcat6.0开发语言:Java浏览器:IE8.0以上2.4可行性分析2.4.1经济可行性本系统采用的软件都是开源的,这样可以削减很多的精力和资源,起到减少成本的作用。同时提升设计的作用,本系统对计算机配置的条件很低,乃至网吧淘汰下来的低配置计算机也可以满足需要,因此在经济上完全具有可行性。2.4.2技术可行性本系统主要采用MyEclipse和Mysql数据库作为设计工具,采用Java作为开发语言,主要使用了J2EE的技术,java是一种面对对象的程语言,学习起来非常容易并且使用便利。在学校中,大学时就开设了java课程,大学时,我就已经掌握了java的主要知识,也对J2EE的操作进行了系统的学习。本系统从整体上看设计起来比较容易,本系统开发的重点就是对数据库的设计和操作。在大学对软件工程,软件测试,UML统一建模语言等课程进行过系统的了解,也能够对这些课程进行开发,拥有一定的系统辨别、开发和检验能力。因此,完成系统实现在技术上完全具有可行性。2.4.3操作可行性本系统操作比较容易,大部分输入信息页面选择的形式都是下拉框。在有些页面,信息可以自动生成,不需要输入。输入时间也采用了日历控件,操作比较容易,对操作人员的要求不高,只需要熟练操作WINDOWS即可。2.4.4时间可行性从时间上看,毕业设计的周期为两个月左右,在这两个月的时间里学习相关的技术知识和了解需求做设计编码等等,总的来说可能会紧张一下,但是大体上是满足的。2.4.5法律可行性此超市管理系统是为了大学毕业设计而自己设计的系统,具有很大的实际意义。开发环境软件和使用的数据库都是开源代码,因此对这个系统进行开发与普通的系统软件设计存在很大不同,没有侵权等问题,在法律上完全具有可行性。总而言之,设计一个超市管理系统具有效率高,操作简便,降低成本等优点,所以,建立一个超市管理系统是非常必要的。2.5其他需求(1)安全性分析1.要想对本系统的超市和商品信息进行管理,首先要依靠用户名和密码在系统中登陆,无权限的用户不可以通过任何方式登录系统和对系统的任何信息和数据进行查看,这样可以保证系统的安全可靠性和准确性。2.在具体实现中对不同的权限进行设定,不同权限的用户在系统中登陆后,不可以越级操作,只有管理员能够使用全部模块;普通用户只能下订单,记录商品销售信息和修改个人信息等功能,不能管理其他的模块数据。(2)数据完整性要求1.所有记录信息要保持全面,信息记录内容不可以是空2.各种数据间相互联系要保持正确3.相同数据在不同记录中要保持一致3相关技术简介3.1JSP技术简介JSP程序使用了Java编程语言,JSP技术可以对动态网页进行封装。通过tags和scriptlets,网页还能访问存在于服务端的资源的应用逻辑。JSP可以分离网页逻辑与网页设计和显示,对可重用的基于组件的开发进行支撑,更容易的对基于Web的应用程序进行设计。当Web服务器接收到访问JSP网页的请求时,首先运行的程序段,接下来将JSP文件中的HTML代码和运行效果一并返还给用户。通过Java文件的插入能够对数据库、网页多重定向等运行,从而满足构建动态网页所需要的程序。JSP和Servle相同,都可以通过服务器端运行。由于能够将一个HTML文本返回给用户端,所以用户端具备浏览器就可以进行浏览。HTML程序和穿插在内部的Java程序可以构建JSP网页。在服务器被用户端访问时,能够处理相应的Java代码,然后将产生的HTML页面再返回给用户端的浏览器。JSP的设计关键是Servlet,通常大型的Web应用程序的设计成果也通过JavaServlet和JSP的协作。JSP既拥有了方便快捷的Java程序,又统统的面向用户,既实现了平台的无关性危险还比较小,可以具备互联网的全部优势。JSP技术的优点:(1)一次编写,到处运行。除了系统之外,代码无需做任何改动。(2)系统的多平台支持。通常情况下,能够在任何情况下的全部平台上进行设计,能够安排在任何情况中,也能够在任何情况下进行发展。相比ASP/.net来说,优点是显而易见的。(3)强大的可塑性。通过一个不大的Jar程序能够对Servlet/JSP进行运行,也能够通过很多服务器进行集群和负载平衡,甚至能够通过多台Application解决问题。单台服务器到多台服务器,Java展现了一个强大的功能。(4)具有强大和多样化的开发工具支持。Java已经有了很多的设计方法,何况大部分工具都是没有花费的,这中间有很多都在多种平台之下顺畅的进展。(5)支持服务器端组件。只有很有力的服务器端组件才能支撑web运行,因此开发者可以在调用web页面时通过另外的开发工具来达成纷乱效用的组件,来加强系统的可操作性。JSP可以通过完善的JAVABEANS组件来达成纷乱的商务功能。内部对象表现出:request用户端请求,此请求会涵盖来自GET/POST请求的参数;response网页传回用户端的反应;管理pageContext网页的属性;session与请求相关的会话;applicationservlet正在进行的内容;out用来输送响应的输出流;config代码片段配置对象;pageJSP网页本身。3.2Mysql数据库MySQL采用C和C++进行设计,并同时采纳了不同的编译器来检验,确定源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API;支持多线程,充分对CPU资源加以利用;提供TCP/IP、ODBC和JDBC等很多数据库连接途径;能够对拥有很多条记录的大型数据库进行运算。通常来说,MySQL所设计的功能足以满足一般的个人客户和中小型企业,而且因为MySQL是开放源码软件,所以能够在很大程度上减少整体的费用。3.3TomcatTomcat是一种是一个免费的开放源代码的Web应用服务器。在访问客户比较少的情况下被经常采纳,在设计JSP程序时成为最好的选择。换句话说,将Tomcat服务器安装到一台电脑上时,可通过它对HTML页面的访问请求进行配合。事实上,Tomcat可以看成Apache服务器基础上的延伸,但它工作时相对比较独立,因此当tomcat工作时,事实上它是看成一个与Apache服务器相对独立的进程运行的。3.4JavaScriptJavaScript是一种根据对象和情况驱使而且相对危险性比较低的用户端脚本语言。还可以大范围的用于用户端Web设计的脚本语言,一般可以用做增加HTML网页动态功能,例如反馈用户的所有操控。JavaScript的一个关键作用是向对象的功能,根据以对象为基础的程序开发,能够用更直接、系统化和能够反复利用的方法设计程序。根据HTML程序,可以采用Javascript对交互式Web网页进行设计。Javascript的应用能够达成网页和客户之间及时、动态、交互性的关系。这样网页可以呈现非常丰富的信息和非常好看的内容。在本系统中不少设计都采用了javascript技术,例如校验用户输入数据的有效性等。4系统分析4.1系统实现目标伴随着信息行业的蓬勃发展和人们超市意识的增强,办公管理部门的的工作也越来越繁重,原来的超市系统已经不能完全满足相关人员使用的需要。为了协助信息行业开展办公管理工作,提高工作效率,充分利用信息行业的现有资源,开发更好的超市系统势在必行。超市系统是将IT技术用于超市信息的管理,它能够收集与存储患者信息,提供更新与检索的接口;协助信息行业开展办公管理工作提高工作效率。1、登录模块:登录模块主要进行用户权限的验证,只有具备一定权限的人才能登录到系统,这样才能保证系统的安全,同时不同的用户有不同的权限。管理员在权限管理模块中可以制定其他人的权限。每个页面需要登录才能访问,如果没有登录便需要自动跳转到登录界面。2、商品管理模块:该模块主要是管理具体的商品,通过该模块能够查看每种产品的具体信息。能对库存商品进行查看、增加、删除等操作,还能对进货进行管理,增加新商品上架等功能。3、供应商管理模块:该模块管理了供应商的信息,对供应商能增加,删除,修改。4、人力管理模块:该模块主要是对雇员的基本信息进行管理,能够增加或删除新雇员等。超市系统具有标准超市系统所具有的现实中完整的超市管理步骤,完全的虚拟现实实现。真正实现节约资源、提高效率、业务处理的同时真正实现超市系统的功能作用。4.2系统体系结构在系统功能分析的基础上,做系统功能模块图如下:登陆登陆系统用户系统管理系统用户系统管理查询信息增加用户修改密码打印信息统计信息管理销售信息管理供货公司管理商品信息查询信息增加用户修改密码打印信息统计信息管理销售信息管理供货公司管理商品信息4.3主控流程图输入用户名、密码输入用户名、密码密码正确?N密码正确?NYY进入主控模块进入主控模块选择操作方式选择操作方式退出系统Y退出系统Y停止停止4.4数据库概念设计本系统一共设计规划出9个实体,分别是订单信息实体、会员信息实体、商品信息实体、销售实体、商品存储信息实体、供应商信息、员工信息实体等。销售单信息实体E-R图如图4.1所示。总价数量备注总价数量备注销售单销售单ID商品IDID商品ID会员ID号会员ID号图4.1图书类别信息实体E-R图会员信息实体E-R图如图4.2所示。联系电话联系电话性别性别出生日期姓名会员出生日期姓名会员联系地址 联系地址图4.2会员信息实体E-R图商品信息实体E-R图如图3.2所示。产地产地价格价格名称出产日期商品名称出产日期商品保质期 保质期图4.3商品信息实体E-R图供应商信息实体E-R图如图4.4所示。联系电话联系电话联系人联系人名称地址供应商名称地址供应商备注 备注图4.4供应商信息实体E-R图销售信息实体E-R图如图4.5所示。联系电话联系电话联系人联系人销售地址销售单销售地址销售单备注 备注图4.5供应商信息实体E-R图账单信息实体E-R图如图4.6所示。数量数量会员卡ID会员卡ID商品id总价账单商品id总价账单备注 备注图4.6供应商信息实体E-R图4.5数据库逻辑设计根据设计好的各实体E-R图创建数据库的逻辑结构,数据库各表的结构如下:会员信息采表用来储存所有的会员信息,包括会员姓名、会员电话、会员级别、会员身份证号码、会员性别、会员生日、会员性别、会员地址等字段。该表的逻辑结构如表4.1所示。表4.1会员信息表字段名数据类型是否主键描述id整数(int)是编号name文本(varchar)否姓名phone文本(varchar)否电话Grade文本(varchar)否级别ident文本(varchar)否身份证号码birthday文本(varchar)否生日sex文本(varchar)否性别address文本(varchar)否地址(2)供应商信息表用来储存所有的供应商信息,包括供应商名称、供应商联系人、供应商电话、供应商地址、供应商备注字段。该表的逻辑结构如表4.2所示。表4.2供应商信息表字段名数据类型是否主键描述Idint是图书编号name文本(varchar)否名称linkman文本(varchar)否供应商联系人phone文本(varchar)否电话address文本(varchar)否地址remark文本(varchar)否备注(3)商品信息表用来储存所有的商品信息,包括商品名称、商品类型、商品价格、商品生产日期、商品保存日期、商品产地、商品备注、供应商ID、供应商备注字段字段。该表的逻辑结构如表4.3所示。表4.3商品信息表字段名数据类型是否主键描述id文本(varchar)是主键IDName文本(varchar)否商品名称type文本(varchar)否商品类型price金钱货币(money)否商品价格start文本(varchar)否生产日期keep文本(varchar)否商品保存日期place文本(varchar)否商品产地remark文本(varchar)否商品备注factory_id整数(int)否供应商ID(4)出货信息表用来保存商品出货信息,包括商品ID、数量、出货日期、备注、员工ID、等字段。该表的逻辑结构如表4.4所示。表4.4出货信息表字段名数据类型是否主键描述id整数(int)是(自动递增)主键IDgoods_id整数(int)否商品IDamount整数(int)否数量date日期时间(datetime)否出货日期remark文本(varchar)否备注emp_id整数(int)否员工ID(5)账单信息表用来保存所有销售的账单信息,包括会员卡ID、商品ID、数量、总价、备注字段。该表的逻辑结构如表4.5所示。表4.5账单信息表字段名数据类型是否主键描述id整数(int)是(自动递增)主键card_id整数(int)否(外键)会员卡IDgoods_id整数(int)否(外键)商品IDamount整数(int)否(外键)数量total精度类别(double)否总价remark文本(varchar)否备注5系统设计与实现5.1管理员登录界面对于一个完整的超市管理系统,不仅要求功能强大、操作简单,还要有良好的设计风格和另人爽目的界面。登录界面对于整个系统来说是非常重要的,因为它设置了进入本系统的用户和口令,防止非法用户进入系统,破坏系统安全和所保存的数据,只有合法的管理员在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误,并询问用户是否重新输入。这样就对使用者有了限制,增加了系统的安全性和保密性,便于控制和管理,有利于系统的维护。登录界面如图4.1所示:图5.1登录界面关键代码如下所示://员工登录 publicStringlogin(){ EmplogEmp=empService.CheckEmp(emp); if(logEmp==null){ getRequest().put("msg","用户名或密码错误!!"); return"login"; }getSession().put("emp",logEmp); return"main"; }5.2商家信息管理商家信息管理模块是本系统中一个基础的部分,在本模块中包括对商家信息的增删改功能,确保资料的安全。增加了系统的安全性和保密性,便于控制和管理。如下图4.2和4.3所示:图5.2商家列表界面图5.3商品新增界面关键代码如下所示://获取所有供货商信息 publicStringfactorylist(){ List<Factory>factories=factoryService.getFactorys(); getRequest().put("factorys",factories); return"factorylist"; } //更新供货商信息 publicStringupdate(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要更新数据 factoryService.update(factory); return"refactorylist"; }else{//否则为修改页面提供所有信息 Factoryresult=factoryService.getFactory(factory); getRequest().put("factory",result); return"update"; } } //删除供货商信息 publicStringdelete(){ factoryService.delete(factory); return"refactorylist"; } //添加供货商信息 publicStringadd(){ factoryService.add(factory); return"refactorylist"; }5.3商品信息管理模块本模块主要实现商品信息的增加、删除、修改、浏览等操作。如下图4.4所示:图5.4商品新增界面关键代码如下所示://获取所有商品信息 publicStringgoodslist(){ List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"goodslist"; } //更新商品信息 publicStringupdate(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要更新数据 goodsService.update(goods); return"regoodslist"; }else{//否则为修改页面提供所有信息 Goodsresult=goodsService.getGoods(goods); getRequest().put("goods",result); List<Factory>factories=factoryService.getFactorys(); getRequest().put("factories",factories); return"update"; } } //删除商品信息 publicStringdelete(){ goodsService.delete(goods); return"regoodslist"; } //添加商品信息 publicStringadd(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要添加数据 goodsService.add(goods); return"regoodslist"; }else{//否则为添加页面提供所有信息 List<Factory>factories=factoryService.getFactorys(); getRequest().put("factories",factories); return"add"; } }5.4商品库存管理模块本模块主要实现商品的库存情况,包括商品名、商品类型、产品及库存数量等等。如下图所示:图5.5商品库存管理界面5.5进货管理模块本模块主要实现对商品进行进货操作,包括商品名、数量、经手人等等。如下图4.6所示:图5.6进货管理界面关键代码如下所示://更新进货信息 publicStringupdate(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要更新数据 stock.setEmp((Emp)(getSession().get("emp")));//设置经手人 stockService.update(stock); return"restocklist"; }else{//否则为修改页面提供所有信息 Stockresult=stockService.getStock(stock); List<Goods>goodses=goodsService.getGoodses(); getRequest().put("stock",result); getRequest().put("goodses",goodses); return"update"; } } //删除进货信息 publicStringdelete(){ stockService.delete(stock); return"restocklist"; } //添加进货信息 publicStringadd(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要添加数据 stock.setEmp((Emp)(getSession().get("emp")));//设置经手人 Storestore=goodsService.getStore(stock.getGoods().getId()); if(store==null){//如果库存表中没有该商品库存记录 goodsService.addStore(stock.getGoods(),stock.getAmount());//添加库存记录 }else{store.setAmount(store.getAmount()+stock.getAmount());//更新库存数量 goodsService.updateStore(store);//更新库存记录 }stockService.add(stock); return"restocklist"; }else{//否则为添加页面提供所有信息 List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"add"; } }5.6出货管理模块本模块主要实现对商品进行出货操作,包括商品名、数量、经手人等等。如下图4.7所示:图5.7出货管理界面关键代码如下所示://更新出货信息 publicStringupdate(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要更新数据 sell.setEmp((Emp)(getSession().get("emp")));//设置经手人 sellService.update(sell); return"reselllist"; }else{//否则为修改页面提供所有信息 Sellresult=sellService.getSell(sell); List<Goods>goodses=goodsService.getGoodses(); getRequest().put("sell",result); getRequest().put("goodses",goodses); return"update"; } } //删除出货信息 publicStringdelete(){ sellService.delete(sell); return"reselllist"; } //添加出货信息 publicStringadd(){ if(getServletRequest().getParameter("type")==null){//如果请求标记为空则说明要添加数据 sell.setEmp((Emp)(getSession().get("emp")));//设置经手人 Storestore=goodsService.getStore(sell.getGoods().getId()); if(store==null){//如果库存表中没有该商品库存记录 getRequest().put("msg","没有该商品的库存信息!!"); List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"add"; }else{ if(store.getAmount()<=0){ getRequest().put("msg","该商品库存不足!!"); List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"add"; } if(sell.getAmount()>store.getAmount()){ getRequest().put("msg","出货数量不得大于库存数量!!"); List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"add"; } store.setAmount(store.getAmount()-sell.getAmount());//更新库存数量 goodsService.updateStore(store); } sellService.add(sell); return"reselllist"; }else{//否则为添加页面提供所有信息 List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"add"; }5.7销售管理模块本模块主要进行添加账单操作,用来记录会员或者普通会员的销售情况,包括商品名、销售数量、折扣、价格等等。如下图4.8所示:图5.8账单管理界面点击查看记录可以显示销售详情,如图4.9所示:图5.9销售详情界面关键代码如下所示:publicStringadd(){if(getServletRequest().getParameter("type")==null){//如果请求没有特殊标志则进行信息添加 bill.setCard(card); //设置销售记录归某张销售单 bill.setGoods(goodsService.getGoods(bill.getGoods())); //设置商品 bill.setTotal(bill.getAmount()*bill.getGoods().getPrice()); //设置总价=数量*单价 Storestore=goodsService.getStore(bill.getGoods().getId()); //获取库存信息 store.setSales(store.getSales()+bill.getAmount()); //增加该商品的销量记录 goodsService.updateStore(store);//更新库存信息 Cardoldcard=cardService.getCard(card); //获取该记录的销售单信息 if(oldcard.getVip()==null){ //如果是普通客户 oldcard.setTotal(oldcard.getTotal()+bill.getTotal()); //总价累 }else{//如果是vip oldcard.setTotal(oldcard.getTotal()+bill.getTotal()); //总价累加 oldcard.setTotal_vip(String.valueOf(oldcard.getTotal()*oldcard.getVip().getRebate()));//设置会员折后价 oldcard.getVip().setGrade((int)(oldcard.getVip().getGrade()+bill.getTotal()));//会员累加积分 if(oldcard.getVip().getGrade()<1000){//按会员积分设置会员等级和折扣 oldcard.getVip().setLevel(1);oldcard.getVip().setRebate(0.95f); }elseif(oldcard.getVip().getGrade()>=1000&&oldcard.getVip().getGrade()<2000){ oldcard.getVip().setLevel(2);oldcard.getVip().setRebate(0.9f); }elseif(oldcard.getVip().getGrade()>=2000&&oldcard.getVip().getGrade()<3000){ oldcard.getVip().setLevel(3);oldcard.getVip().setRebate(0.85f); }elseif(oldcard.getVip().getGrade()>=3000&&oldcard.getVip().getGrade()<4000){ oldcard.getVip().setLevel(4);oldcard.getVip().setRebate(0.8f); }elseif(oldcard.getVip().getGrade()>=4000&&oldcard.getVip().getGrade()<5000){ oldcard.getVip().setLevel(5);oldcard.getVip().setRebate(0.75f); }else{ oldcard.getVip().setLevel(6);oldcard.getVip().setRebate(0.7f); } vipService.upgrade(oldcard.getVip());//更新会员信息 } billService.add(bill); //添加销售记录 cardService.update(oldcard); //更新销售账单 return"rebilllist"; }else{ //若请求中有特殊标志则返回商品信息跳转到添加页面 List<Goods>goodses=goodsService.getGoodses(); getRequest().put("goodses",goodses); return"add"; } }5.8员工管理模块本模块主要实现管理员工信息,主要包括新增、修改、删除,字段包括姓名、性别、密码、年龄、电话等等。如下图4.10所示:图5.10员工管理界面5.9会员管理模块本模块主要实现管理会员信息,会员购买商品可以进行打折,功能主要包括新增、修改、删除,字段包括姓名、性别、电话、证件、生日等等。如下图4.11所示:图5.11会员界面6系统测试6.1测试目的与意义系统测试是管理信息系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样”。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖系统随偶联合的部件,系统测试是正对整个图书系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出需求规格不符合或与之矛盾的地方。6.2测试过程在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。以下为测试登录过程测试流程:1.打开系统首页,输入错误的登录信息2.登录3.输入正确的登录信息4.登录5.测试结果测试用例如表5.1所示:表5.1测试用例表格模块名称测试用例预期结果实际结果是否通过登录模块用户名:null密码:null弹出错误提示,请输入用户名登录失败,提示请输入用户名通过登录模块用户名:m1密码:null弹出错误提示,请输入密码登录失败,提示输入密码通过登录模块用户名:m1密码:1弹出错误提示,用户名或者密码错误登录失败,提示用户名或者密码错误通过7结论本人将大学期间所了解到的计算机工程理论知识运用到了本次的毕业来发中来。即对基础学问进行了加强,同时也增加了动手能力。在这段时期里,我查找了很多与超市进销存管理系统相关的资料,查阅了很多JSP的相关文献,结合自己的经验,对超市管理系统的工作原理与内容进行了详细调查,设计了这个网上书店系统,虽然每个学期学校针对动手练习都会开始相应的课程设计和实训,但是在本次毕业设计的具体设计中还是晕倒了一些小问题,比如说在jsp页面将输入框设为不可用是添加属性readonly=“true”,而本人在实际操作中却误写成disable=“true”,这样直接导致了request对象无法取得数据,对程序调试了很久才发现request对象获得的返回值一直为空,之前一直认为是代码出现了问题,一直在查源程序的逻辑。即使这些问题不是很严重,但是由于马虎在操作中却虚耗了不少精力,因此往常还要加强动手练习。在开发系统的过程中,本人运用到了B/S三层结构技术和平时学习中所了解的一些技术,通过实现这些技术,大大提高了整个系统的性能。在论文中这些技术都做了比较详细的介绍。本系统还存在很多缺点和不完善的地方,例如有些细节上做的还不够完善,有些功能模块还需要加强。在今后的日子里,能够对这些不足进行改善。通过本次毕业设计加强了自身的学习能力,也从中学到很多在课堂上学不到的知识。通过实践我也深深的认识到开发软件的辛苦和解决问题后的喜悦心情,使我的独立思考问题的能力有所增强,同时也培养了我理论联系实际的能力,为今后的工作打下了良好的基础。参考文献[1]孙卫琴,李洪成.《Tomcat与JavaWeb开发技术详解》[M].电子工业出版社,2013-6:1-205[2]BruceEckel.《Java编程思想》[M].机械工业出版社,2013-10:1-378[3]FLANAGAN.《Java技术手册》[M].中国电力出版社,2012-6:1-465[4]孙一林,彭波.《Java数据库编程实例》[M].清华大学出版社,2012-8:30-210[5]LEEANNEPHILLIPS.《巧学

温馨提示

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

评论

0/150

提交评论