收藏 分销(赏)

专业课程设计超市收银系统.doc

上传人:w****g 文档编号:2657435 上传时间:2024-06-03 格式:DOC 页数:30 大小:4.31MB 下载积分:12 金币
下载 相关 举报
专业课程设计超市收银系统.doc_第1页
第1页 / 共30页
专业课程设计超市收银系统.doc_第2页
第2页 / 共30页


点击查看更多>>
资源描述
课 程 设 计 超市收银系统 姓 名 蔡旸普 课程名称 J2EE程序设计 专 业 软件工程 年 级 级 1班 学 号 2212445 任课教师 张振兴 06月24日 目 录 1 引言 3 2 系统分析 4 2.1超市收银系统需求分析 4 2.2超市收银系统静态模型 6 2.3超市收银系统动态模型 8 2.4系统目的 8 2.5运营环境 8 3 超市收银系统详细功能描述及实现 9 3.1 详细功能描述 9 3.1.1顾客管理 11 3.1.2商品管理 13 3.1.3收银员管理 15 3.1.4收银管理 17 3.1.5退货管理 18 3.1.6销售收费 19 3.1.7结算找零 20 3.1.8退货录入 21 4 网站整体设计 22 4.1 CSS样式单文献设计 22 4.2 MySQL数据库设计 22 4.2.1 超市收银系统库表设计 22 4.2.2 系统数据连接类 23 5 结束语 24 超市收银系统 蔡旸普 (信息与电子工程学院,软件工程专业,级1班,2212445) 摘 要: 超市收银管理系统是对超市收款信息与库存盘点等进行管理计算机网络软件系统,它可完毕超市中查询查询顾客信息,更改顾客信息,商品信息,更改商品信息,查询收银员信息,更改收银员信息,退货信息,收益信息等。 核心词: 超市收银系统;JSP;数据库;设计与实现 1 引言 社会生活当代化,使得市场走向发生巨大变化,由于经济发展,人民对生活需求已经不再满足于丰衣足食低度规定,许多人们往往不是单纯为满足生活必要去购买,而是凭着喜欢、意欲和感官去购买。如果一种商店可以打动顾客、吸引顾客,自然会顾客盈门,而近几年新兴产业中超级市场(supermarket)当代化管理方式和便捷购物方式,特别是它轻松购物环境,往往是打动顾客,吸引顾客最重要因素,且良好周密销售服务更是赢得信誉、吸引顾客优势所在。商品经济高速当代化发展也增进了竞争,使一切不甘落后商家都争先恐后地采用最新管理办法来加强自己竞争地位。由于,超市经营者如果不掌握当今市场发展这一走向,不能将超市当代化经营作为奴努力开拓目的,就无法使经营活络、财源茂盛。  当代化事业发展,也使超市管理数段发生前所未有革命,计算机运用正在发达国家各类商店超市中普及。由于它可以精确记载和查询关于超市经营活动大量数据,协助超市经营者掌握和分析营销状况,及时作出对的决策,并且有助于商店内部财务、工资、人员、库存、销售状况等管理,因而大大提高了当代超市管理水平。国外诸多发达资本主义国家关于人士都在开发超市管理系统,开发出诸多大型软件,由于本人能力有限,开发一种小型超市管理系统,它可以使咱们国内新起小型超市可以更好操作。此系统有减少差错,节约人力、减少顾客购物时间,增长客流量,提高顾客满意度等特点。我通过开发这个简朴管理信息系统,巩固了此前所学知识,提高了应用能力。 2 系统分析 网络应用开发技术在日新月异地进步,从而使网站应用系统开发模式具备各种选取性,达到同样目的可以采用诸多不同方式,当代应用系统越来越成为一种庞大集成方案,需要考虑不同操作平台、不同应用服务器、不同数据库、不同编程语言、不同传播介质等,当前有Windows、Unix、Linux等各种服务器操作平台,有Access、SQL Server、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)本系统是多顾客系统,顾客可分为管理员和收银员两类,登录时系统自动判断当前使用人员权限,避免安全性问题。 超市收银系统 前台管理 后台管理 图2.1.1系统整体构造功能模块图 ①收银员登录系统,进入系统后,开始输入商品ID,销售收费,并可以退货,收费完毕,系统自动清空销售暂时数据 前台管理 销售收费 登录系统 找零 图 2.1.2 前台管理功能模块图 ②管理员登录系统后来,可以对商品单位进行添加、删除、修改、查询操作,可以对顾客和收银员资料进行添加、删除、修改、查询操作,可以进行采购入库操作,进行库存盘点操作,进行进货和退货记录操作,并查看收银信息。 后台管理 顾客管理 商品管理 收银员 管理 收银管理 退货管理 图 2.1.3 前台管理功能模块图 本系统有收银员、管理员两种角色,涉及登陆、管理顾客信息、管理收银员信息、管理商品信息、管理退货信息、管理收银信息等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 软件环境需求表 客户端 应用服务器端 数据库服务器端 操作系统 最低规定:Windows XP 最低规定:Windows XP 最低规定:Windows XP 应用程序 IE6以上,及其他常用浏览器(如FireFox)。 Tomcat5.5或其她更新版本。 MySql5.5及其她更新版本。 备注 最佳辨别率1366*768 Tomcat6.0最佳 MySql5.5最佳 3 超市收银系统详细功能描述及实现 3.1 详细功能描述 登陆界面:重要涉及登陆信息区和图片区。 图3.1 登陆界面 登陆信息区需要输出顾客名,密码验证码。顾客名、密码、验证码均不能为空,为空时点击登陆会给出提示。所有字段不为空时,校验顾客名密码与否对的,错误时给出提示。顾客名、密码对的时,校验验证码,错误给出提示。 对的填写顾客名、密码和验证码后,通过对当前顾客权限校验,跳转到管理员首页界面或者收银员首页界面。 try { String name=request.getParameter("name"); session.setAttribute("name",name); String pw=request.getParameter("pw"); String rond=(String)session.getAttribute("rand"); String 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{ %> <script type="text/javascript"> alert("验证码错误"); document.location.replace("index.jsp"); </script> <% } } if(c.lpUser()==2) if(rond.equals(text)){ response.sendRedirect("cashier.jsp"); } else{ %> <script type="text/javascript"> alert("验证码错误"); document.location.replace("index.jsp"); </script> <% } if(c.lpUser()==0&&name!=null&&pw!=null){ %> <script type="text/javascript"> alert("顾客名/密码错误"); document.location.replace("index.jsp"); </script> <% } } 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"; 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<i;j++) { SelectUserInfo sui=(SelectUserInfo)vt.get(j); %>} 更改顾客信息: 图3..1.1-B 更改顾客信息界面 管理员可以添加顾客(只可以添加收银员顾客),所有顾客都可以登陆,添加时顾客名和密码由管理员手动输入。 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:forward page="addel/delUser.jsp"> <jsp:param name="text1" value="<%=text1 %>"/> </jsp:forward> <%}else{ %> <script type="text/javascript"> alert("删除顾客不能为空!"); document.location.replace("updateUserInfo.jsp"); </script> <% } } catch(Exception e){} 3.1.2商品管理 商品管理涉及两个个重要功能:查询商品信息和更改商品信息 图3.1.2 查询商品信息界面 查询商品信息:可以查询商品所有信息涉及ID、名称、单价、进货量、进价、进货时间、出货量和库存等信息,便于管理员进货维护或者查询货品ID。 JAVA:Vector vt=new Vector(); try { Conndb codb=new Conndb(); Statement s=codb.getconnection().createStatement(); String sql="select * from goodsInfo"; ResultSet rs=s.executeQuery(sql); while(rs.next()) { SelectGoodsInfo sgi=new SelectGoodsInfo(); 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 (Exception e) { e.printStackTrace(); } 更改商品信息:可以实现删除、添加商品功能。 图3.1.3 更改商品信息界面 try {String sub=request.getParameter("sub"); String text1=request.getParameter("text1"); String text2=request.getParameter("text2"); String text3=request.getParameter("text3"); String text4=request.getParameter("text4"); String text5=request.getParameter("text5"); String text6=request.getParameter("text6"); String text7=request.getParameter("text7"); String text8=request.getParameter("text8"); String text9=request.getParameter("text9"); String text0=request.getParameter("text0"); if(sub.equals("删除")) {%><jsp:forward page="addel/delGoods.jsp"> <jsp:param name="text1" value="<%=text1 %>"/> </jsp:forward><%} if(sub.equals("添加")) { %><jsp:forward page="addel/addGoods.jsp"> <jsp:param name="text2" value="<%=text2 %>"/> <jsp:param name="text3" value="<%=text3 %>"/> <jsp:param name="text4" value="<%=text4 %>"/> <jsp:param name="text5" value="<%=text5 %>"/> <jsp:param name="text9" value="<%=text6 %>"/> <jsp:param name="text0" value="<%=text7 %>"/> </jsp:forward><%} } 3.1.3收银员管理 收银员管理:分为查看收银员信息和更改收银员信息两大某些。 图3.1.3-A 查询收银员信息界面 Vector vt=new Vector(); try { Conndb codb=new Conndb(); Statement s=codb.getconnection().createStatement(); String sql="select * from cashierInfo"; ResultSet rs=s.executeQuery(sql); while(rs.next()) { SelectCashierInfo sci=new SelectCashierInfo(); 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 (Exception e) { e.printStackTrace(); } 更改收银员信息: 图3..1.3-B 更改收银员信息界面 更改收银员信息涉及添加收银员和删除收银员,固然需要填写某些必要字段。 try { String sub=request.getParameter("sub"); String text1=request.getParameter("text1"); String text2=request.getParameter("text2"); String text3=request.getParameter("text3"); String text4=request.getParameter("text4"); String text5=request.getParameter("text5"); String text6=request.getParameter("text6"); if(sub.equals("删除")) {%> <jsp:forward page="addel/delCashier.jsp"> <jsp:param name="text1" value="<%=text1 %>"/> </jsp:forward> <%} if(sub.equals("添加")) { %> <jsp:forward page="addel/addCashier.jsp"> <jsp:param name="text2" value="<%=text2 %>"/> <jsp:param name="text3" value="<%=text3 %>"/> <jsp:param name="text4" value="<%=text4 %>"/> <jsp:param name="text5" value="<%=text5 %>"/> <jsp:param name="text6" value="<%=text6 %>"/> </jsp:forward> <%}} catch(Exception e) { } 3.1.4收银管理 收银管理重要是查看收银信息。 图3.1.4 收银管理界面 查看收银信息,可以查看所有收银员收银状况,涉及货品id,名称,出货量,单价和金额。但是管理员,不可以随便修改,收银状况由收银员维护。 <% Vector vt=SelectCashInfo.selectInfo(); int i=vt.size(); for(int j=0;j<i;j++) { SelectCashInfo sui=(SelectCashInfo)vt.get(j); %> <tr height="50"> <td bgcolor="#66FF99"><div align="center"><%=sui.getId()%></div></td> <td bgcolor="#66FF99"><div align="center"><%=sui.getName()%></div></td> <td bgcolor="#66FF99"><div align="center"><%=sui.getNum()%></div></td> <td bgcolor="#66FF99"><div align="center"><%=sui.getPrice()%></div></td> <td bgcolor="#66FF99"><div align="center"><%=sui.getSum()%></div></td> </tr> <%} %> 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"); 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); ri.setText(text); ri.setCount(count); ri.insertInfo(); }catch(Exception e){} 3.1.6销售收费 销售收费界面,即收银员登陆后主页。重要有商品查询信息区,购买商品信息区,和按钮区构成。收银员可以录入商品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.setAttribute("name",session.getAttribute("name")); <iframe src="grid.jsp" width="1100" height="450" frameborder="0"></iframe></div> 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"); } SelectTwoInfo sti=new SelectTwoInfo(); sti.setText(text); int num2=Integer.parseInt(num1); sti.setNum(num2); sti.insertInfo(); 3.1.7结算找零 在销售收费界面内,如果录入信息后,点击结账则进入结算找零界面,计算出总金额,输入实付金额后,点击拟定计算出找零数,如图: 图3.1.7 结算找零界面 <% request.setCharacterEncoding("gb2312"); float change=0f; try{ String str=request.getParameter("text"); float money1=Float.parseFloat(str); float money2=sn.count_2(); change=money1-money2; }catch(Exception e) { } %> <body style="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 { String id=request.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); ri.setText(text); ri.setCount(count); ri.insertInfo(); } catch(Exception e){ } 4 网站整体设计 4.1 CSS样式单文献设计 层叠样式单CSS(Cascading Style Sheets)是W3C给出两种样式单语言推荐原则之一。与HTML描述数据显示方式老式办法相比具备表达效果丰富、文档体积小、便于信息检索和可读性好等长处。 外部样式表文献不但可以提高代码复用性,并且有助于统一网站整体风格。本网站在前台界面和后台管理分别使用了样式单文献:style.css,网页中引用外部样式表语法分别为: <link rel="stylesheet" href="../inc/style.css" type="text/css"> 重要对先后台界面风格如: 字体大小、超链接属性、滚动条风格等进行了统一调节和规定。 4.2 MySQL数据库设计 4.2.1 超市收银系统库表设计 Userinfo(顾客信息表) 字段名称 字段类型 与否为空 字段描述 gonghao Int Not null 工号 Password Varchar(50) Not null 密码 Role Varchar(50) Not null 角色 —————————————————————————————————— cashierInfo(收银员信息表) 字段名称 字段类型 与否为空 字段描述 Gonghao Int Not null 工号 Name Varchar(50) Not null 姓名 sex Varchar(50) Not null 性别 Birthday Varchar(50) Not null 生日 guiTaiNum Decimal(10,2) Not null 柜台号 ————————————————————————————————— Cash(超市销售信息表) 字段名称 字段类型 与否为空 字段描述 id varchar Not null Id号 name varchar Not null 姓名 Num Int Not null 数量 Price Float Not null 价格 Sun float Not null 总价格 goodsInfo(货品信息表) 字段名称 字段类型 与否为空 字段描述 ID varchar Not null Id号 Name varchar Not null 姓名 Price Float Not null 价格 Inprice Float Not null 进价 inNum Int Not null 进货量 Data varchar Not null 日期 outNum Int Not null 出货量 kuCun Int Not null 库存 tuiHuoNum Int Not null 退货量 —————————————————————————————————— in_out(个人购买信息表) 字段名称 字段类型 与否为空 字段描述 Id varchar Not null Id号 Name varchar Not null 姓名 Num Int Not null 数量 Price Float Not null 价格 sum float Not null 总金额 —————————————————————————————————— Returned(退货表) 字段名称 字段类型 与否为空 字段描述 Count Long Not null 总数 Id Varchar Not null Id号 Num int Not null 退货量 Price Float Not null 价格 Reason Varchar Not null 因素 —————————————————————————————————— 4.2.2 系统数据连接类 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句Java API,可觉得各种关系数据库提供统一访问,它由一组用Java语言编写类和接口构成。JDBC为工具/数据库开发人员提供了一种原则API,据此可以构建更高档工具和接口,使数据库开发
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服