jee课程设计超市收银系统.docx
- 文档编号:25565752
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:31
- 大小:3.29MB
jee课程设计超市收银系统.docx
《jee课程设计超市收银系统.docx》由会员分享,可在线阅读,更多相关《jee课程设计超市收银系统.docx(31页珍藏版)》请在冰豆网上搜索。
jee课程设计超市收银系统
课程设计
超市收银系统
姓名蔡旸普
课程名称J2EE程序设计
专业软件工程
年级2011级1班
学号20112212445
任课教师张振兴
2014年06月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前台管理功能模块图
②管理员登录系统以后,可以对商品单位进行添加、删除、修改、查询操作,可以对用户和收银员资料进行添加、删除、修改、查询操作,可以进行采购入库操作,进行库存盘点操作,进行进货和退货统计操作,并查看收银信息。
图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软件环境需求表
客户端
应用服务器端
数据库服务器端
操作系统
最低要求:
WindowsXP
最低要求:
WindowsXP
最低要求:
WindowsXP
应用程序
IE6以上,及其它常见浏览器(如FireFox)。
Tomcat5.5或其他更新版本。
MySql5.5及其他更新版本。
备注
最佳分辨率1366*768
Tomcat6.0最佳
MySql5.5最佳
3超市收银系统具体功能描述及实现
3.1具体功能描述
登陆界面:
主要包括登陆信息区和图片区。
图3.1登陆界面
登陆信息区需要输出用户名,密码验证码。
用户名、密码、验证码均不能为空,为空时点击登陆会给出提示。
所有字段不为空时,校验用户名密码是否正确,错误时给出提示。
用户名、密码正确时,校验验证码,错误给出提示。
正确填写用户名、密码和验证码后,通过对当前用户的权限校验,跳转到管理员首页界面或者收银员首页界面。
try
{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{
%>
alert("验证码错误");
document.location.replace("index.jsp");
<%
}
}
if(c.lpUser()==2)
if(rond.equals(text)){
response.sendRedirect("cashier.jsp");
}
else{
%>
alert("验证码错误");
document.location.replace("index.jsp");
<%
}
if(c.lpUser()==0&&name!
=null&&pw!
=null){
%>
alert("用户名/密码错误");
document.location.replace("index.jsp");
<%
}
}
catch(Exceptione)
{
}
3.1.1用户管理
用户管理包括两个主要功能:
查询用户信息和更改用户信息。
图3.1.1-A查询用户信息界面
查询用户信息:
可以查询数据库里已有的用户信息,包括用户名、密码、角色。
其中角色就是区分管理员和收银员的依据。
图如下:
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
{
SelectUserInfosui=(SelectUserInfo)vt.get(j);
%>}
更改用户信息:
图3..1.1-B更改用户信息界面
管理员可以添加用户(只可以添加收银员用户),所有的用户都可以登陆,添加时用户名和密码由管理员手动输入。
try{
Stringsub=request.getParameter("sub");
Stringtext1=request.getParameter("text1");
Stringtext2=request.getParameter("text2");
Stringpw=request.getParameter("pw");
if(sub.equals("删除"))
{
if(text1!
=null&&!
text1.equals("")){%>
forwardpage="addel/delUser.jsp"> paramname="text1"value="<%=text1%>"/> forward> <%}else{ %> alert("删除的用户不能为空! "); document.location.replace("updateUserInfo.jsp"); <% } } catch(Exceptione){} 3.1.2商品管理 商品管理包括两个个主要功能: 查询商品信息和更改商品信息 图3.1.2查询商品信息界面 查询商品信息: 可以查询商品的全部信息包括ID、名称、单价、进货量、进价、进货时间、出货量和库存等信息,便于管理员进货维护或者查询货物ID。 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更改商品信息界面 try {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("删除")) {%> forwardpage="addel/delGoods.jsp"> paramname="text1"value="<%=text1%>"/> forward><%} if(sub.equals("添加")) {%> forwardpage="addel/addGoods.jsp"> paramname="text2"value="<%=text2%>"/> paramname="text3"value="<%=text3%>"/> paramname="text4"value="<%=text4%>"/> paramname="text5"value="<%=text5%>"/> paramname="text9"value="<%=text6%>"/> paramname="text0"value="<%=text7%>"/> forward><%} } 3.1.3收银员管理 收银员管理: 分为查看收银员信息和更改收银员信息两大部分。 图3.1.3-A查询收银员信息界面 Vectorvt=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更改收银员信息界面 更改收银员信息包括添加收银员和删除收银员,当然需要填写一些必要的字段。 try {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("删除")) {%> forwardpage="addel/delCashier.jsp"> paramname="text1"value="<%=text1%>"/> forward> <%} if(sub.equals("添加")) {%> forwardpage="addel/addCashier.jsp"> paramname="text2"value="<%=text2%>"/> paramname="text3"value="<%=text3%>"/> paramname="text4"value="<%=text4%>"/> paramname="text5"value="<%=text5%>"/> paramname="text6"value="<%=text6%>"/> forward> <%}} catch(Exceptione) { } 3.1.4收银管理 收银管理主要是查看收银信息。 图3.1.4收银管理界面 查看收银信息,可以查看所有收银员的收银情况,包括货物的id,名称,出货量,单价和金额。 但是管理员,不可以随便修改,收银情况由收银员维护。 <% Vectorvt=SelectCashInfo.selectInfo(); inti=vt.size(); for(intj=0;j { SelectCashInfosui=(SelectCashInfo)vt.get(j); %>