《超市收银系统j2ee课程设计.doc》由会员分享,可在线阅读,更多相关《超市收银系统j2ee课程设计.doc(26页珍藏版)》请在三一办公上搜索。
1、 课 程 设 计 超市收银系统 课程名称 J2EE程序设计 目 录1 引言32 系统分析42.1超市收银系统需求分析42.2超市收银系统静态模型62.3超市收银系统动态模型82.4系统目标82.5运行环境83 超市收银系统具体功能描述及实现93.1 具体功能描述93.1.1用户管理113.1.2商品管理133.1.3收银员管理153.1.4收银管理173.1.5退货管理183.1.6销售收费193.1.7结算找零203.1.8退货录入214 网站整体设计224.1 CSS样式单文件设计224.2 MySQL数据库设计224.2.1 超市收银系统库表设计224.2.2 系统数据连接类235 结束
2、语24超市收银系统蔡旸普(信息与电子工程学院,软件工程专业,2011级1班,20112212445)摘 要:超市收银管理系统是对超市的收款信息与库存盘点等进行管理的计算机网络软件系统,它可完成超市中查询查询用户信息,更改用户信息,商品信息,更改商品信息,查询收银员信息,更改收银员信息,退货信息,收益信息等。 关键词:超市收银系统;JSP;数据库;设计与实现 1 引言 社会生活的现代化,使得市场的走向发生巨大变化,由于经济的发展,人民对生活的需求已经不再满足于丰衣足食的低度要求,许多人们往往不是单纯为满足生活必须去购买,而是凭着喜欢、意欲和感官去购买。如果一个商店能够打动顾客、吸引顾客,自然会顾
3、客盈门,而近几年新兴产业中超级市场(supermarket)的现代化管理方式和便捷的购物方式,尤其是它轻松的购物环境,往往是打动顾客,吸引顾客的最主要的原因,且良好的周密的销售服务更是赢得信誉、吸引的顾客的优势所在。商品经济的高速现代化发展也促进了竞争,使一切不甘落后的商家都争先恐后地采用最新的管理方法来加强自己的竞争地位。因为,超市经营者如果不掌握当今市场发展的这一走向,不能将超市现代化经营作为奴努力开拓的目标,就无法使经营活络、财源茂盛。 现代化事业的发展,也使超市的管理数段发生前所未有的革命,计算机的运用正在发达国家的各类商店超市中普及。由于它能够准确记载和查询有关超市经营活动的大量数据
4、,帮助超市经营者掌握和分析营销情况,及时作出正确决策,并且有利于商店内部财务、工资、人员、库存、销售情况等管理,因而大大提高了现代超市的管理水平。国外很多发达资本主义国家的有关人士都在开发超市管理系统,开发出很多大型的软件,由于本人能力有限,开发一个小型超市管理系统,它可以使我们国内新起小型超市可以更好的操作。此系统的有减少差错,节省人力、减少顾客购物时间,增加客流量,提高顾客满意度等特点。我通过开发这个简单管理信息系统,巩固了以前所学的知识,提高了应用能力。2 系统分析网络应用开发技术在日新月异地进步,从而使网站应用系统的开发模式具有多种选择性,达到同样的目标可以采用很多不同的方式,现代的应
5、用系统越来越成为一个庞大的集成方案,需要考虑不同的操作平台、不同的应用服务器、不同的数据库、不同的编程语言、不同的传输介质等,现在有Windows、Unix、Linux等各种服务器操作平台,有Access、SQL Server、Oracle、DB2、Sybase和MySQL等数据库,有ASP、JAVA、PHP、CGI、JSP、C+、VB和Delphi等工具,系统分析就是确定是选择Windows + MySQL + JSP好还是Unix + Oracle +JAVA合适,我们要针对不同的应用场合进行分析。此外,各类软件和语言还在不断发展进步之中,因此系统分析工作从很大程度上决定了系统开发的成败。
6、根据制作网站的需要,本系统选用Windows 操作系统, MySQL数据库和 JSP技术。2.1超市收银系统需求分析 对于大型超市信息管理系统来说,通常它会把员工人事管理系统也包括在内。由于现考虑的是小型超市,其可承担的研发支费也有限。所以在这个系统中,要实现的功能主要如下:(1)对库存产品进行资料管理和统计;(2)对产品的进货单和产品的销售单进行录入管理和统计;(3)对进货、销售、库存情况进行查询;(4)对用户进行管理,通过用户名和密码进行登录;(5)对供应商基本信息的管理;(6)对赢利状况分析,进行营业统计;根据需求确定以下功能模块:(1)本系统是多用户系统,用户可分为管理员和收银员两类,
7、登录时系统自动判断当前使用人员的权限,避免安全性问题。 超市收银系统 前台管理 后台管理 图2.1.1系统整体结构功能模块图 收银员登录系统,进入系统后,开始输入商品ID,销售收费,并可以退货,收费完毕,系统自动清空销售临时数据前台管理销售收费登录系统 找零 图 2.1.2 前台管理功能模块图 管理员登录系统以后,可以对商品单位进行添加、删除、修改、查询操作,可以对用户和收银员资料进行添加、删除、修改、查询操作,可以进行采购入库操作,进行库存盘点操作,进行进货和退货统计操作,并查看收银信息。后台管理用户管理商品管理收银员管理收银管理退货管理 图 2.1.3 前台管理功能模块图本系统有收银员、管
8、理员两种角色,包括登陆、管理用户信息、管理收银员信息、管理商品信息、管理退货信息、管理收银信息等8个用例,用例图如下: 图2.1.4超市收银系统用例图2.2超市收银系统静态模型从前面的需求分析中,不难发现需要创建如下10个类,查询货物信息类、查询收银员信息类、查询出货信息类、查询退货信息类、更新货物信息类,更新收银员信息类、更新用户信息类,数据库连接类、数值计算类。如下图2.5所示。图2.2 超市收银系统类图主要流程图图3.7 用户登陆流程图图3.8 管理员更改用户信息流程图图3.9 收银员整体操作流程图2.3超市收银系统动态模型系统的动态模型可以使用交互作用图、时序图、和活动图来描述。收支管
9、理活动图如图2.3。图2.3 收支管理活动图2.4系统目标 系统以界面直观、易学易用、功能全面、系统稳定为主要特点,支持连锁及多业态经营管理模式,能从根本上满足现代商业企业的管理高效、分析精确、降低成本的要求,帮助企业实现物流、信息流、资金流的科学管理,为企业提高自身竞争力奠定坚实的基础。该系统主要实现以下目标:(1)对库存产品进行资料管理和统计;(2)对产品的进货单和产品的销售单进行录入管理和统计;(3)对进货、销售、库存情况进行查询;(4)对用户进行管理,通过用户名和密码进行登录;(5)对供应商基本信息的管理;(6)对赢利状况分析,进行营业统计;2.5运行环境 该系统为B/S三层结构,它的
10、运行环境分客户端、应用服务器端和数据库服务器端三部分。 以下是本系统的软件环境需求表: 表2 软件环境需求表客户端 应用服务器端 数据库服务器端 操作系统最低要求:Windows XP最低要求:Windows XP最低要求:Windows XP 应用程序IE6以上,及其它常见浏览器(如FireFox)。Tomcat5.5或其他更新版本。 MySql5.5及其他更新版本。 备注最佳分辨率1366*768Tomcat6.0最佳MySql5.5最佳3 超市收银系统具体功能描述及实现 3.1 具体功能描述 登陆界面:主要包括登陆信息区和图片区。图3.1 登陆界面 登陆信息区需要输出用户名,密码验证码。
11、用户名、密码、验证码均不能为空,为空时点击登陆会给出提示。所有字段不为空时,校验用户名密码是否正确,错误时给出提示。用户名、密码正确时,校验验证码,错误给出提示。 正确填写用户名、密码和验证码后,通过对当前用户的权限校验,跳转到管理员首页界面或者收银员首页界面。 try String name=request.getParameter(name); session.setAttribute(name,name); String pw=request.getParameter(pw); String rond=(String)session.getAttribute(rand); String
12、text=request.getParameter(text); ConnInd c=new ConnInd(); c.setText(name); c.setPw(pw); if(c.lpUser()=1) if(rond.equals(text) response.sendRedirect(admin.jsp); else % alert(验证码错误); document.location.replace(index.jsp); alert(验证码错误); document.location.replace(index.jsp); alert(用户名/密码错误); document.loc
13、ation.replace(index.jsp); % catch(Exception e) 3.1.1用户管理 用户管理包括两个主要功能:查询用户信息和更改用户信息。图3.1.1-A 查询用户信息界面查询用户信息:可以查询数据库里已有的用户信息,包括用户名、密码、角色。其中角色就是区分管理员和收银员的依据。图如下:Java:Vector vt=new Vector();try Conndb codb=new Conndb();Statement s=codb.getconnection().createStatement();String sql=select * from userInfo
14、;ResultSet rs=s.executeQuery(sql);while(rs.next()SelectUserInfo sui=new SelectUserInfo();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 (Exception e) e.printStackTrace();Jsp: %for(int j=0;j更改用户信息:图3.1.1-B 更改用户信息
15、界面管理员可以添加用户(只可以添加收银员用户),所有的用户都可以登陆,添加时用户名和密码由管理员手动输入。 try String sub=request.getParameter(sub); String text1=request.getParameter(text1); String text2=request.getParameter(text2); String pw=request.getParameter(pw); if(sub.equals(删除) if(text1!=null&!text1.equals()% jsp:param name=text1 value=/ alert
16、(删除的用户不能为空!); document.location.replace(updateUserInfo.jsp); jsp:param name=text1 value=/ jsp:param name=text2 value=/ jsp:param name=text3 value=/ jsp:param name=text4 value=/ jsp:param name=text5 value=/ jsp:param name=text9 value=/ jsp:param name=text0 value=/ jsp:param name=text1 value=/ jsp:par
17、am name=text2 value=/ jsp:param name=text3 value=/ jsp:param name=text4 value=/ jsp:param name=text5 value=/ jsp:param name=text6 value=/ % catch(Exception e) 3.1.4收银管理 收银管理主要是查看收银信息。图3.1.4 收银管理界面查看收银信息,可以查看所有收银员的收银情况,包括货物的id,名称,出货量,单价和金额。但是管理员,不可以随便修改,收银情况由收银员维护。% Vector vt=SelectCashInfo.selectInf
18、o(); int i=vt.size(); for(int j=0;j 3.1.5退货管理 退货管理主要包括查看退货信息功能。图3.1.5 退货信息界面 查看退货信息: 查看退货信息就是展示以记录在退货档案上的数据。包括交易号,商品ID,进货数量,商品单价,退货原因等字段。 request.setCharacterEncoding(gb2312); try String id=request.getParameter(id); String num1=request.getParameter(num); String price1=request.getParameter(price); St
19、ring text=request.getParameter(text); int num=Integer.parseInt(num1); float price=Float.parseFloat(price1); ReturnedInfo ri=new ReturnedInfo(); ri.setId(id); ri.setNum(num); ri.setPrice(price); ri.setText(text); ri.setCount(count); ri.insertInfo(); catch(Exception e) 3.1.6销售收费销售收费界面,即收银员登陆后的主页。主要有商品
20、查询信息区,购买商品信息区,和按钮区组成。收银员可以录入商品ID和商品数量,购买商品信息区将记录展示已购买的货物,并计算出每样商品的总价。同一件商品可以多次录入。界面采用iframe布局,中间部分镶嵌另一个页面,数据多时内部产生滚动条。图3.1.6 销售收费界面cashier.jsp: String num1=request.getParameter(num); session.setAttribute(num, num1); String text=request.getParameter(text); session.setAttribute(text, text); session.se
21、tAttribute(name,session.getAttribute(name);grid.jsp: response.setContentType(text/html;charset=gb2312); request.setCharacterEncoding(gb2312); String text=(String)session.getAttribute(text); String num1=(String)session.getAttribute(num); if(text=null|num1=null) throw new IOException(11); SelectTwoInf
22、o sti=new SelectTwoInfo(); sti.setText(text); int num2=Integer.parseInt(num1); sti.setNum(num2); sti.insertInfo(); 3.1.7结算找零 在销售收费界面内,如果录入信息后,点击结账则进入结算找零界面,计算出总金额,输入实付金额后,点击确定计算出找零数,如图:图3.1.7 结算找零界面 找零:3.1.8退货录入 在销售收费界面内,如果点击退货则进入退货信息录入界面,输入商品ID、商品件数、单价等信息点击确定存入退货信息,如图:图3.1.8 退货录入界面 try String id=re
23、quest.getParameter(id); String num1=request.getParameter(num); String price1=request.getParameter(price); String text=request.getParameter(text); int num=Integer.parseInt(num1); float price=Float.parseFloat(price1); ReturnedInfo ri=new ReturnedInfo(); ri.setId(id); ri.setNum(num); ri.setPrice(price)
24、; ri.setText(text); ri.setCount(count); ri.insertInfo(); catch(Exception e) 4 网站整体设计4.1 CSS样式单文件设计层叠样式单CSS(Cascading Style Sheets)是W3C给出的两种样式单语言推荐标准之一。与HTML描述数据显示方式的传统方法相比具有表达效果丰富、文档体积小、便于信息检索和可读性好等优点。 外部样式表文件不但可以提高代码复用性,而且有利于统一网站的整体风格。本网站在前台界面和后台管理分别使用了样式单文件:style.css,网页中引用外部样式表的语法分别为:主要对前后台界面风格如:字
25、体的大小、超链接属性、滚动条风格等进行了统一的调整和规定。4.2 MySQL数据库设计4.2.1 超市收银系统库表设计Userinfo(用户信息表)字段名称字段类型是否为空字段描述gonghaoIntNot null工号PasswordVarchar(50)Not null密码RoleVarchar(50)Not null角色cashierInfo(收银员信息表)字段名称字段类型是否为空字段描述GonghaoIntNot null工号NameVarchar(50)Not null姓名sexVarchar(50)Not null性别BirthdayVarchar(50)Not null生日gui
26、TaiNumDecimal(10,2)Not null柜台号 Cash(超市销售信息表)字段名称字段类型是否为空字段描述idvarcharNot nullId号namevarcharNot null姓名NumIntNot null数量PriceFloatNot null价格SunfloatNot null总价格goodsInfo(货物信息表)字段名称字段类型是否为空字段描述IDvarcharNot nullId号NamevarcharNot null姓名PriceFloatNot null价格InpriceFloatNot null进价inNumIntNot null进货量Datavarcha
27、rNot null日期outNumIntNot null出货量kuCunIntNot null库存tuiHuoNumIntNot null退货量in_out(个人购买信息表)字段名称字段类型是否为空字段描述IdvarcharNot nullId号NamevarcharNot null姓名NumIntNot null数量PriceFloatNot null价格sumfloatNot null总金额Returned(退货表)字段名称字段类型是否为空字段描述CountLongNot null总数IdVarcharNot nullId号NumintNot null退货量PriceFloatNot null价格ReasonVarcharNot null原因4.2.2 系统数据连接类 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,本系统就是采用J