j2ee课程设计超市收银系统方案_第1页
j2ee课程设计超市收银系统方案_第2页
j2ee课程设计超市收银系统方案_第3页
j2ee课程设计超市收银系统方案_第4页
j2ee课程设计超市收银系统方案_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

..课程设计超市收银系统姓名蔡旸普课程名称J2EE程序设计专业软件工程年级2011级1班学号20112212445任课教师张振兴20XX06月24日..目录TOC\o"1-3"\h\z\u187961引言3261692系统分析4106542.1超市收银系统需求分析4269402.2超市收银系统静态模型 6182892.3超市收银系统动态模型 8262042.4系统目标8273692.5运行环境8203553超市收银系统具体功能描述及实现9185323.1具体功能描述9126463.1.1用户管理11256973.1.2商品管理1316973.1.3收银员管理1578683.1.4收银管理1721833.1.5退货管理18268173.1.6销售收费1949783.1.7结算找零2012043.1.8退货录入2188604网站整体设计22252874.1CSS样式单文件设计22183824.2MySQL数据库设计2237324.2.1超市收银系统库表设计22259514.2.2系统数据连接类23311265结束语24..超市收银系统蔡旸普〔信息与电子工程学院,软件工程专业,2011级1班,20112212445摘要:超市收银管理系统是对超市的收款信息与库存盘点等进行管理的计算机网络软件系统,它可完成超市中查询查询用户信息,更改用户信息,商品信息,更改商品信息,查询收银员信息,更改收银员信息,退货信息,收益信息等。关键词:超市收银系统;JSP;数据库;设计与实现1引言社会生活的现代化,使得市场的走向发生巨大变化,由于经济的发展,人民对生活的需求已经不再满足于丰衣足食的低度要求,许多人们往往不是单纯为满足生活必须去购买,而是凭着喜欢、意欲和感官去购买。如果一个商店能够打动顾客、吸引顾客,自然会顾客盈门,而近几年新兴产业中超级市场〔supermarket的现代化管理方式和便捷的购物方式,尤其是它轻松的购物环境,往往是打动顾客,吸引顾客的最主要的原因,且良好的周密的销售服务更是赢得信誉、吸引的顾客的优势所在。商品经济的高速现代化发展也促进了竞争,使一切不甘落后的商家都争先恐后地采用最新的管理方法来加强自己的竞争地位。因为,超市经营者如果不掌握当今市场发展的这一走向,不能将超市现代化经营作为奴努力开拓的目标,就无法使经营活络、财源茂盛。现代化事业的发展,也使超市的管理数段发生前所未有的革命,计算机的运用正在发达国家的各类商店超市中普及。由于它能够准确记载和查询有关超市经营活动的大量数据,帮助超市经营者掌握和分析营销情况,及时作出正确决策,并且有利于商店内部财务、工资、人员、库存、销售情况等管理,因而大大提高了现代超市的管理水平。国外很多发达资本主义国家的有关人士都在开发超市管理系统,开发出很多大型的软件,由于本人能力有限,开发一个小型超市管理系统,它可以使我们国内新起小型超市可以更好的操作。此系统的有减少差错,节省人力、减少顾客购物时间,增加客流量,提高顾客满意度等特点。我通过开发这个简单管理信息系统,巩固了以前所学的知识,提高了应用能力。2系统分析网络应用开发技术在日新月异地进步,从而使网站应用系统的开发模式具有多种选择性,达到同样的目标可以采用很多不同的方式,现代的应用系统越来越成为一个庞大的集成方案,需要考虑不同的操作平台、不同的应用服务器、不同的数据库、不同的编程语言、不同的传输介质等,现在有Windows、Unix、Linux等各种服务器操作平台,有Access、SQLServer、Oracle、DB2、Sybase和MySQL等数据库,有ASP、JAVA、PHP、CGI、JSP、C++、VB和Delphi等工具,系统分析就是确定是选择Windows+MySQL+JSP好还是Unix+Oracle+JAVA合适,我们要针对不同的应用场合进行分析。此外,各类软件和语言还在不断发展进步之中,因此系统分析工作从很大程度上决定了系统开发的成败。根据制作网站的需要,本系统选用Windows操作系统,MySQL数据库和JSP技术。2.1超市收银系统需求分析对于大型超市信息管理系统来说,通常它会把员工人事管理系统也包括在内。由于现考虑的是小型超市,其可承担的研发支费也有限。所以在这个系统中,要实现的功能主要如下:<1>对库存产品进行资料管理和统计;<2>对产品的进货单和产品的销售单进行录入管理和统计;<3>对进货、销售、库存情况进行查询;<4>对用户进行管理,通过用户名和密码进行登录;<5>对供应商基本信息的管理;<6>对赢利状况分析,进行营业统计;根据需求确定以下功能模块:〔1本系统是多用户系统,用户可分为管理员和收银员两类,登录时系统自动判断当前使用人员的权限,避免安全性问题。超市收银系统超市收银系统前台管理后台管理图系统整体结构功能模块图①收银员登录系统,进入系统后,开始输入商品ID,销售收费,并可以退货,收费完毕,系统自动清空销售临时数据前台管理销售收费前台管理销售收费登录系统找零图2.1.2前台管理功能模块图②管理员登录系统以后,可以对商品单位进行添加、删除、修改、查询操作,可以对用户和收银员资料进行添加、删除、修改、查询操作,可以进行采购入库操作,进行库存盘点操作,进行进货和退货统计操作,并查看收银信息。后台管理用户管理后台管理用户管理商品管理收银员管理收银管理退货管理本系统有收银员、管理员两种角色,包括登陆、管理用户信息、管理收银员信息、管理商品信息、管理退货信息、管理收银信息等8个用例,用例图如下:图2.1.4超市收银系统用例图2.2超市收银系统静态模型从前面的需求分析中,不难发现需要创建如下10个类,查询货物信息类、查询收银员信息类、查询出货信息类、查询退货信息类、更新货物信息类,更新收银员信息类、更新用户信息类,数据库连接类、数值计算类。如下图2.5所示。图2.2超市收银系统类图主要流程图图3.7用户登陆流程图图3.8管理员更改用户信息流程图图3.9收银员整体操作流程图2.3超市收银系统动态模型系统的动态模型可以使用交互作用图、时序图、和活动图来描述。收支管理活动图如图2.3。图2.3收支管理活动图2.4系统目标系统以界面直观、易学易用、功能全面、系统稳定为主要特点,支持连锁及多业态经营管理模式,能从根本上满足现代商业企业的管理高效、分析精确、降低成本的要求,帮助企业实现物流、信息流、资金流的科学管理,为企业提高自身竞争力奠定坚实的基础。该系统主要实现以下目标:<1>对库存产品进行资料管理和统计;<2>对产品的进货单和产品的销售单进行录入管理和统计;<3>对进货、销售、库存情况进行查询;<4>对用户进行管理,通过用户名和密码进行登录;<5>对供应商基本信息的管理;<6>对赢利状况分析,进行营业统计;2.5运行环境该系统为B/S三层结构,它的运行环境分客户端、应用服务器端和数据库服务器端三部分。以下是本系统的软件环境需求表:表2软件环境需求表客户端应用服务器端数据库服务器端操作系统最低要求:WindowsXP最低要求:WindowsXP最低要求:WindowsXP应用程序IE6以上,及其它常见浏览器〔如FireFox。Tomcat5.5或其他更新版本。MySql5.5及其他更新版本。备注最佳分辨率1366*768Tomcat6.0最佳MySql5.5最佳3超市收银系统具体功能描述及实现3.1具体功能描述登陆界面:主要包括登陆信息区和图片区。图3.1登陆界面登陆信息区需要输出用户名,密码验证码。用户名、密码、验证码均不能为空,为空时点击登陆会给出提示。所有字段不为空时,校验用户名密码是否正确,错误时给出提示。用户名、密码正确时,校验验证码,错误给出提示。正确填写用户名、密码和验证码后,通过对当前用户的权限校验,跳转到管理员首页界面或者收银员首页界面。trytry{Stringname=request.getParameter<"name">; session.setAttribute<"name",name>; Stringpw=request.getParameter<"pw">; Stringrond=<String>session.getAttribute<"rand">; Stringtext=request.getParameter<"text">; ConnIndc=newConnInd<>; c.setText<name>; c.setPw<pw>; if<c.lpUser<>==1>{ if<rond.equals<text>>{ response.sendRedirect<"admin.jsp">; } else{ %> <scripttype="text/javascript"> alert<"验证码错误">; document.location.replace<"index.jsp">; </script> <% } } if<c.lpUser<>==2> if<rond.equals<text>>{ response.sendRedirect<"cashier.jsp">; } else{ %> <scripttype="text/javascript"> alert<"验证码错误">; document.location.replace<"index.jsp">; </script> <% } if<c.lpUser<>==0&&name!=null&&pw!=null>{ %> <scripttype="text/javascript"> alert<"用户名/密码错误">; document.location.replace<"index.jsp">; </script> <% } }catch<Exceptione>{ }3.1.1用户管理用户管理包括两个主要功能:查询用户信息和更改用户信息。图3.1.1-A查询用户信息界面查询用户信息:可以查询数据库里已有的用户信息,包括用户名、密码、角色。其中角色就是区分管理员和收银员的依据。图如下:Java:Java: Vectorvt=newVector<>; try{Conndbcodb=newConndb<>; Statements=codb.getconnection<>.createStatement<>; Stringsql="select*fromuserInfo"; ResultSetrs=s.executeQuery<sql>; while<rs.next<>> {SelectUserInfosui=newSelectUserInfo<>; sui.setText<rs.getString<1>>; sui.setPw<rs.getString<2>>; sui.setRole<rs.getString<3>>; vt.add<sui>; } rs.close<>; s.close<>; codb.closed<>; }catch<Exceptione>{e.printStackTrace<>;}Jsp:<%for<intj=0;j<i;j++>{ SelectUserInfosui=<SelectUserInfo>vt.get<j>; %>}更改用户信息:图3..1.1-B更改用户信息界面管理员可以添加用户〔只可以添加收银员用户,所有的用户都可以登陆,添加时用户名和密码由管理员手动输入。trytry{Stringsub=request.getParameter<"sub">;Stringtext1=request.getParameter<"text1">;Stringtext2=request.getParameter<"text2">;Stringpw=request.getParameter<"pw">;if<sub.equals<"删除">>{if<text1!=null&&!text1.equals<"">>{%><jsp:forwardpage="addel/delUser.jsp"><jsp:paramname="text1"value="<%=text1%>"/></jsp:forward><%}else{ %> <scripttype="text/javascript"> alert<"删除的用户不能为空!">; document.location.replace<"updateUserInfo.jsp">; </script> <% }}catch<Exceptione>{}商品管理商品管理包括两个个主要功能:查询商品信息和更改商品信息图3.1.2查询商品信息界面查询商品信息:可以查询商品的全部信息包括ID、名称、单价、进货量、进价、进货时间、出货量和库存等信息,便于管理员进货维护或者查询货物ID。JAVA:JAVA:Vectorvt=newVector<>; try{ Conndbcodb=newConndb<>; Statements=codb.getconnection<>.createStatement<>; Stringsql="select*fromgoodsInfo"; ResultSetrs=s.executeQuery<sql>; while<rs.next<>> { SelectGoodsInfosgi=newSelectGoodsInfo<>; sgi.setS1<rs.getString<1>>; sgi.setS2<rs.getString<2>>; sgi.setS3<rs.getString<3>>; vt.add<sgi>; } rs.close<>;} s.close<>; codb.closed<>; }catch<Exceptione>{ e.printStackTrace<>; }更改商品信息:可以实现删除、添加商品功能。图3.1.3更改商品信息界面trytry{Stringsub=request.getParameter<"sub">;Stringtext1=request.getParameter<"text1">;Stringtext2=request.getParameter<"text2">;Stringtext3=request.getParameter<"text3">;Stringtext4=request.getParameter<"text4">;Stringtext5=request.getParameter<"text5">;Stringtext6=request.getParameter<"text6">;Stringtext7=request.getParameter<"text7">;Stringtext8=request.getParameter<"text8">;Stringtext9=request.getParameter<"text9">;Stringtext0=request.getParameter<"text0">;if<sub.equals<"删除">>{%><jsp:forwardpage="addel/delGoods.jsp"><jsp:paramname="text1"value="<%=text1%>"/></jsp:forward><%}if<sub.equals<"添加">>{%><jsp:forwardpage="addel/addGoods.jsp"><jsp:paramname="text2"value="<%=text2%>"/><jsp:paramname="text3"value="<%=text3%>"/><jsp:paramname="text4"value="<%=text4%>"/><jsp:paramname="text5"value="<%=text5%>"/><jsp:paramname="text9"value="<%=text6%>"/><jsp:paramname="text0"value="<%=text7%>"/></jsp:forward><%}}收银员管理收银员管理:分为查看收银员信息和更改收银员信息两大部分。图3.1.3-A查询收银员信息界面VectorVectorvt=newVector<>;try{ Conndbcodb=newConndb<>; Statements=codb.getconnection<>.createStatement<>; Stringsql="select*fromcashierInfo"; ResultSetrs=s.executeQuery<sql>; while<rs.next<>> {SelectCashierInfosci=newSelectCashierInfo<>; sci.setS1<rs.getString<1>>; sci.setS2<rs.getString<2>>; sci.setS3<rs.getString<3>>; sci.setS4<rs.getString<4>>; sci.setS5<rs.getInt<5>>; vt.add<sci>; } rs.close<>; s.close<>; codb.closed<>;}catch<Exceptione>{ e.printStackTrace<>;}更改收银员信息:图3..1.3-B更改收银员信息界面更改收银员信息包括添加收银员和删除收银员,当然需要填写一些必要的字段。ttry{Stringsub=request.getParameter<"sub">;Stringtext1=request.getParameter<"text1">;Stringtext2=request.getParameter<"text2">;Stringtext3=request.getParameter<"text3">;Stringtext4=request.getParameter<"text4">;Stringtext5=request.getParameter<"text5">;Stringtext6=request.getParameter<"text6">;if<sub.equals<"删除">>{%><jsp:forwardpage="addel/delCashier.jsp"><jsp:paramname="text1"value="<%=text1%>"/></jsp:forward><%}if<sub.equals<"添加">>{%><jsp:forwardpage="addel/addCashier.jsp"><jsp:paramname="text2"value="<%=text2%>"/><jsp:paramname="text3"value="<%=text3%>"/><jsp:paramname="text4"value="<%=text4%>"/><jsp:paramname="text5"value="<%=text5%>"/><jsp:paramname="text6"value="<%=text6%>"/></jsp:forward><%}}catch<Exceptione>{ }收银管理收银管理主要是查看收银信息。图3.1.4收银管理界面查看收银信息,可以查看所有收银员的收银情况,包括货物的id,名称,出货量,单价和金额。但是管理员,不可以随便修改,收银情况由收银员维护。<%<%Vectorvt=SelectCashInfo.selectInfo<>;inti=vt.size<>;for<intj=0;j<i;j++>{ SelectCashInfosui=<SelectCashInfo>vt.get<j>; %> <trheight="50"><tdbgcolor="#66FF99"><divalign="center"><%=sui.getId<>%></div></td><tdbgcolor="#66FF99"><divalign="center"><%=sui.getName<>%></div></td><tdbgcolor="#66FF99"><divalign="center"><%=sui.getNum<>%></div></td><tdbgcolor="#66FF99"><divalign="center"><%=sui.getPrice<>%></div></td><tdbgcolor="#66FF99"><divalign="center"><%=sui.getSum<>%></div></td></tr><%}%>退货管理退货管理主要包括查看退货信息功能。图3.1.5退货信息界面查看退货信息:查看退货信息就是展示以记录在退货档案上的数据。包括交易号,商品ID,进货数量,商品单价,退货原因等字段。request.setCharacterEncoding<request.setCharacterEncoding<"gb2312">;try{Stringid=request.getParameter<"id">;Stringnum1=request.getParameter<"num">;Stringprice1=request.getParameter<"price">;Stringtext=request.getParameter<"text">;intnum=Integer.parseInt<num1>;floatprice=Float.parseFloat<price1>;ReturnedInfori=newReturnedInfo<>;ri.setId<id>;ri.setNum<num>;ri.setPrice<price>;ri.setText<text>;ri.setCount<count>;ri.insertInfo<>;}catch<Exceptione>{}3.1.6销售收费销售收费界面,即收银员登陆后的主页。主要有商品查询信息区,购买商品信息区,和按钮区组成。收银员可以录入商品ID和商品数量,购买商品信息区将记录展示已购买的货物,并计算出每样商品的总价。同一件商品可以多次录入。界面采用iframe布局,中间部分镶嵌另一个页面,数据多时内部产生滚动条。图3.1.6销售收费界面cashier.jsp:cashier.jsp:Stringnum1=request.getParameter<"num">;session.setAttribute<"num",num1>;Stringtext=request.getParameter<"text">;session.setAttribute<"text",text>;session.setAttribute<"name",session.getAttribute<"name">>;<iframesrc="grid.jsp"width="1100"height="450"frameborder="0"></iframe></div>grid.jsp:response.setContentType<"text/html;charset=gb2312">; request.setCharacterEncoding<"gb2312">; Stringtext=<String>session.getAttribute<"text">;Stringnum1=<String>session.getAttribute<"num">;if<text==null||num1==null>{ thrownewIOException<"11">;}SelectTwoInfosti=newSelectTwoInfo<>;sti.setText<text>;intnum2=Integer.parseInt<num1>;sti.setNum<num2>;sti.insertInfo<>;3.1.7结算找零在销售收费界面内,如果录入信息后,点击结账则进入结算找零界面,计算出总金额,输入实付金额后,点击确定计算出找零数,如图:图3.1.7结算找零界面<%<%request.setCharacterEncoding<"gb2312">;floatchange=0f;try{Stringstr=request.getParameter<"text">;floatmoney1=Float.parseFloat<str>;floatmoney2=sn.count_2<>;change=money1-money2;}catch<Exceptione>{ }%><bodystyle="background:url<'money.jpg'>repeat;"><divstyle="margin-top:200px;"align="center"><fontsize="+3"color="#00000"style="background-color:#66FF99">找零:<%=change%></font>3.1.8退货录入在销售收费界面内,如果点击退货则进入退货信息录入界面,输入商品ID、商品件数、单价等信息点击确定存入退货信息,如图:图3.1.8退货录入界面try{Stringid=request.getParameter<"id">;Stringnum1=request.getParameter<"num">;Stringprice1=request.getParameter<"price">;Stringtext=request.getParameter<"text">;intnum=Integer.parseInt<num1>;floatprice=Float.parseFloat<price1>;ReturnedInfori=newReturnedInfo<>;ri.setId<id>;ri.setNum<num>;ri.setPrice<price>;ri.setText<text>;ri.setCount<count>;ri.insertInfo<>;}catch<Exceptione>{}4网站整体设计4.1CSS样式单文件设计层叠样式单CSS〔CascadingStyleSheets是W3C给出的两种样式单语言推荐标准之一。与HTML描述数据显示方式的传统方法相比具有表达效果丰富、文档体积小、便于信息检索和可读性好等优点。外部样式表文件不但可以提高代码复用性,而且有利于统一网站的整体风格。本网站在前台界面和后台管理分别使用了样式单文件:style.css,网页中引用外部样式表的语法分别为:<linkrel="stylesheet"href="../inc/style.css"type="text/css">主要对前后台界面风格如:字体的大小、超链接属性、滚动条风格等进行了统一的调整和规定。4.2MySQL数据库设计4.2.1超市收银系统库表设计Userinfo〔用户信息表字段名称字段类型是否为空字段描述gonghaoIntNotnull工号PasswordVarchar<50>Notnull密码RoleVarchar<50>Notnull角色——————————————————————————————————cashierInfo〔收银员信息表字段名称字段类型是否为空字段描述GonghaoIntNotnull工号NameVarchar<50>Notnull姓名sexVarchar<50>Notnull性别BirthdayVarchar<50>Notnull生日guiTaiNumDecimal<10,2>Notnull柜台号—————————————————————————————————Cash<超市销售信息表>字段名称字段类型是否为空字段描述idvarcharNotnullId号namevarcharNotnull姓名NumIntNotnull数量PriceFloatNotnull价格SunfloatNo

温馨提示

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

最新文档

评论

0/150

提交评论