系统实现意义
在市场环境、竞争环境的飞速变化的今天,现代企业都不同程度地感到业务开展难度的增大、危机的加深、竞争的加剧并更趋于多层次全方位,所以都在寻求提升企业竞争力的手段,以客户为中心的理念正成为企业经营的核心。我国超市产品的销售主要是关注经销商、代理商的管理,对客户忠诚管理还很不到位,严重影响了超市做大、做强的可持续发展战略。想要提高超市客户的忠诚度就必须从会员政策入手,对会员管理的重视加大,才能够真正关系最终客户的需求。如今国内现有的超市会员忠诚管理还不科学,超市的信息化程度还很低,很多还没有建立会员管理系统,对客户的管理还处于传统方法。此外,超市还不注重与客户的情感交流,超市中以客户为中心的超市文化也还不完善。
本次设计开发的会员积分管理系统目标是为中小型规模的各类超市提供会员积分的管理、会员卡类的管理以及超市积分规则设定的解决方案。我国市场中小超市竞争态势已经形成,但由于其信息化程度不高,客户忠诚度管理的应用还不广泛。国外知名厂商的产品一般针对银行、保险、电信等行业,实施规模大,价格昂贵,而国内厂商的产品主要面向中低端市场,功能的广度、深度和成熟度都与国外产品存在不小的差距。在这种形势下,开发研制一套功能完整、架构开放、扩展性强并且部署成本低廉的客户忠诚度管理系统产品具有十分重大的技术意义和市场价值。
本文主要工作及总体结构
本文从积分管理项目的背景开始,先分析了目前积分项目的应用现状,并且阐述了系统的选题背景,分析了系统实现的意义;根据本项目自身的特色和应用背景,在第二章内介绍了项目中用到的系统开发环境及相关技术;第三章根据需求分析的项目预期效果,进一步对项目各个模块的功能和流程迸行了说明,属于开发过程中的概要设计部分;第四章整理详细设计开发过程中的实体E-R图和数据流程图;第五章,整理系统中用到的数据库表结构;第六章对整个系统进行系统测试,分析系统测试的目的及系统安全性问题。
系统开发环境及相关技术
网站和积分管理系统采用B/S结构,使用J2EE的技术开发完成。积分和兑换服务、以及堵塞进程清除工具采用J2EE中Javabean技术完成。系统运行和开发环境都是windowVista,其中数据库采用SQL Server2000,中间件服务采用Tomact 5.5。系统使用了MyEclipse作为J2EE的开发工具。
【Java毕业设计项目】超市积分管理系统
系统功能需求
为实现上述系统功能上的目标,会员积分管理系统主要完成的功能有:
(1) 柜员信息的管理:包括对所有柜台柜员信息的各项设置。
(2) 会员信息的管理:包括对所有会员信息的管理设置。
(3) 会员积分管理:包括对会员积分的统计、查询等。
(4) 积分规则设置:对积分规则进行设定、修改等。
(5) 会员等级设置:包括对每个会员等级的范围进行设置管理。
(6) 兑换商品管理:对积分兑换的商品进行修改、兑换等各项管理。
(7) 兑换商品记录:记录柜员对会员每次兑换商品的操作信息。
(8) 兑换积分记录:记录柜员对会员每次兑换积分的操作信息。
管理员功能
1)柜员账户列表,实现对柜员账户信息的管理。
2)新增柜员账户,实现添加柜员信息。
3)兑换商品列表,实现对兑换商品信息的查看、修改、删除操作。
4)新增兑换商品,实现添加系统中兑换商品信息。
5)会员类别管理,实现对系统中会员积分等级的设置。
6)积分类别选择,实现对系统中的会员积分兑换规则设置。
7)增加积分记录,实现查看柜员为会员兑换积分的工作记录。
8)兑换积分记录,实现查看柜员为会员兑换商品的工作记录。
柜员功能
1)用户列表管理,实现对会员信息的查看、修改、删除操作。
2)新增用户管理,实现添加会员信息。
3)会员积分管理,可以查看会员的积分和级别,并按照会员消费金额兑换积分。
4)兑换商品列表,可以查看兑换商品及所需积分,并可为会员兑换商品。
5)增加积分记录,实现查看柜员为会员兑换积分的工作记录。
6)兑换积分记录,实现查看柜员为会员兑换商品的工作记录。
系统设计
4.1 实体E-R图
图4.2积分兑换规则信息实体E-R图
图4.7实体关联E-R图
4.3 会员积分兑换流程
//DB.java
public class DB
{
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null;
String url;
public DB() {
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=huiyuan";
}
catch(Exception e)
{
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql)
{
this.stmt=null;
this.rs = null;
Connection cn;
try
{
cn=DriverManager.getConnection(url,"sa","123456");
stmt=cn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(Exception e)
{
e.printStackTrace();
}
return rs;
}
public boolean executeUpdate(String sql)
{
Connection conn;
this.stmt = null;
this.rs = null;
try {
conn = DriverManager.getConnection(url, "sa", "123456");
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
return true;
}
catch (SQLException ex)
{
System.err.println("" + ex.getMessage()); }
return false;
}
public void closeStmt()
{
try {
this.stmt.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public void closeConn() {
try {
this.conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
//checkLogin.jsp 登录验证
<body>
<%
request.setCharacterEncoding("gb2312");
String username=request.getParameter("username");
String passwords=request.getParameter("password");
String sql="select * from admin where username ='"+username+"'";
ResultSet rs=mybean.executeQuery(sql);
if(rs.next()){
String password=rs.getString("password");
if(password.equals(passwords)){
session.setAttribute("type",rs.getString("types"));
session.setAttribute("username",rs.getString("username"));
out.print ("<script language='javascript'>alert('登陆成功');location.href('index.jsp');</script>");
}else{
out.print ("<script language='javascript'>alert('登陆失败');history.go(-1);</script>");
}
}
out.print ("<script language='javascript'>alert('登陆失败');history.go(-1);</script>");
%>
</body>
//saveAddguiyuan.jsp 添加柜员
<body>
<%
request.setCharacterEncoding("gb2312");
String name="";
String sex="";
String age="";
String username="";
String tel="";
name=request.getParameter("name");
sex=request.getParameter("sex");
age=request.getParameter("age");
username=request.getParameter("username");
tel=request.getParameter("tel");
String password=request.getParameter("password");
String sql="";
sql="insert into admin(name,sex,age,username,tel,password,types)values('"+name+"','"+sex+"','"+age+"','"+username+"','"+tel+"','"+password+"','1')";
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('数据添加成功');location.href('listguiyuan.jsp');</script>");
else
out.print("<script language='javascript'>alert('数据添加失败');history.go(-1);</script>");
%>
</body>
// saveAddjf.jsp 添加积分
<body>
<%
request.setCharacterEncoding("gb2312");
String title="";
String content="";
String type="";
String moneys=request.getParameter("moneys");
String money=request.getParameter("money");
String ids=request.getParameter("ids");
int money1=Integer.parseInt(moneys);
int jifen = 0;
String sql1="select * from jftype where 1=1 ";
ResultSet rs=mybean.executeQuery(sql1);
if(rs.next()){
if(Integer.parseInt(money)>=rs.getInt("jftype")){
jifen = rs.getInt("state")*(Integer.parseInt(money)/rs.getInt("jftype"));
money1+=jifen+Integer.parseInt(money);
}else{
money1+=Integer.parseInt(money);
}
}
String sql="";
sql="update members set money='"+money1+"' where id="+ids;
if(mybean.executeUpdate(sql)==true){
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String username=request.getParameter("username");
String guiyuan=(String)request.getSession().getAttribute("username");
String project="";
String num="";
String inputdate=format.format(date);
String type1="1";
String sql2="";
sql2="insert into log(username,guiyuan,project,num,inputdate,type,jifen)values('"+username+"','"+guiyuan+"','"+project+"','"+num+"','"+inputdate+"','"+type1+"','"+jifen+"')";
mybean.executeUpdate(sql2);
out.print ("<script language='javascript'>alert('积分增加成功');location.href('listjf.jsp');</script>");
}else{
out.print("<script language='javascript'>alert('数据添加失败');history.go(-1);</script>");
}%>
</body>
// saveAddUser.jsp 添加用户
<body>
<%
request.setCharacterEncoding("gb2312");
String name="";
String sex="";
String age="";
String address="";
String tel="";
name=request.getParameter("name");
sex=request.getParameter("sex");
age=request.getParameter("age");
address=request.getParameter("address");
tel=request.getParameter("tel");
String number=request.getParameter("number");
String sql="";
sql="insert into members(name,sex,age,address,tel,number)values('"+name+"','"+sex+"','"+age+"','"+address+"','"+tel+"','"+number+"')";
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('数据添加成功');location.href('listUser.jsp');</script>");
else
out.print("<script language='javascript'>alert('数据添加失败');history.go(-1);</script>");
%>
</body>
//saveduihuan.jsp 积分兑换
<body>
<%
request.setCharacterEncoding("gb2312");
String bianhao="";
bianhao=request.getParameter("bianhao");
String number=request.getParameter("number");
String ids=request.getParameter("ids");
String jifen=request.getParameter("jifen");
String name=request.getParameter("name");
String sql="";
String sql1="select * from members where number='"+bianhao+"'";
String jifen1="";
int sumjifen=0;
ResultSet rs=mybean.executeQuery(sql1);
if(rs.next()){
jifen1=rs.getString("money");
}else{
out.print ("<script language='javascript'>alert('会员编号不存在');location.href('listproduct.jsp');</script>");
return;
}
if(Integer.parseInt(jifen1)>=Integer.parseInt(jifen)*Integer.parseInt(number)){
sumjifen=Integer.parseInt(jifen1)-(Integer.parseInt(jifen)*Integer.parseInt(number));
}else{
out.print ("<script language='javascript'>alert('您的积分不足');location.href('listproduct.jsp');</script>");
}
String sql2="update members set money='"+sumjifen+"' where number='"+bianhao+"'";
if(mybean.executeUpdate(sql2)==true){
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String username=bianhao;
String guiyuan=(String)request.getSession().getAttribute("username");
String project=name;
String num=number;
String inputdate=format.format(date);
String type1="2";
String sql3="";
sql3="insert into log(username,guiyuan,project,num,inputdate,type,jifen)values('"+username+"','"+guiyuan+"','"+project+"','"+num+"','"+inputdate+"','"+type1+"','"+Integer.parseInt(jifen)*Integer.parseInt(number)+"')";
mybean.executeUpdate(sql3);
out.print ("<script language='javascript'>alert('兑换成功');location.href('listproduct.jsp');</script>");
}else{
out.print("<script language='javascript'>alert('兑换失败');history.go(-1);</script>");
}
%>
</body>
// saveguiyuan.jsp 保持柜员修改信息
<body>
<%
request.setCharacterEncoding("gb2312");
String names="";
String sex="";
String age="";
String tel="";
String username="";
names=request.getParameter("name");
sex=request.getParameter("sex");
age=request.getParameter("age");
tel=request.getParameter("tel");
username=request.getParameter("username");
String password=request.getParameter("password");
String ids=request.getParameter("ids");
String sql="";
sql="update admin set name='"+names+"',sex='"+sex+"',age='"+age+"',tel='"+tel+"',username='"+username+"',password='"+password+"' where id="+ids;
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('数据添加成功');location.href('listguiyuan.jsp');</script>");
else
out.print("<script language='javascript'>alert('数据添加失败');history.go(-1);</script>");
%>
</body>
//saveproduct.jsp 添加商品
<body>
<%
request.setCharacterEncoding("gb2312");
String name=request.getParameter("name");
String money=request.getParameter("money");
String jifen=request.getParameter("jifen");
String sql="";
sql="insert into product(name,money,jifen)values('"+name+"','"+money+"','"+jifen+"')";
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('数据添加成功');location.href('listproduct.jsp');</script>");
else
out.print("<script language='javascript'>alert('数据添加失败');history.go(-1);</script>");
%>
</body>
//saveUpdatemembertype.jsp 修改会员等级限制
<body>
<%
request.setCharacterEncoding("gb2312");
String ids=request.getParameter("ids");
String minmoney=request.getParameter("minmoney");
String maxmoney=request.getParameter("maxmoney");
String sql="";
sql="update types set minmoney='"+minmoney+"',maxmoney='"+maxmoney+"' where id="+ids;
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('数据更新成功');location.href('listmembertype.jsp');</script>");
else
out.print("<script language='javascript'>alert('数据更新失败');history.go(-1);</script>");
%>
</body>
// saveupdateselecttype.jsp 修改积分兑换规则
<body>
<%
request.setCharacterEncoding("gb2312");
String jftype="";
String state="";
jftype=request.getParameter("jftype");
state=request.getParameter("state");
String ids=request.getParameter("ids");
String sql="";
sql="update jftype set jftype='"+jftype+"',state='"+state+"'";
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('选择类型成功');location.href('listselecttype.jsp');</script>");
else
out.print("<script language='javascript'>alert('选择类型失败');history.go(-1);</script>");
%>
</body>
// saveUpdateUser.jsp 修改会员信息
<body>
<%
request.setCharacterEncoding("gb2312");
String names="";
String sex="";
String age="";
String tel="";
String address="";
names=request.getParameter("name");
sex=request.getParameter("sex");
age=request.getParameter("age");
tel=request.getParameter("tel");
address=request.getParameter("address");
String number=request.getParameter("number");
String ids=request.getParameter("ids");
String sql="";
sql="update members set name='"+names+"',sex='"+sex+"',age='"+age+"',tel='"+tel+"',address='"+address+"',number='"+number+"' where id="+ids;
if(mybean.executeUpdate(sql)==true)
out.print ("<script language='javascript'>alert('数据添加成功');location.href('listUser.jsp');</script>");
else
out.print("<script language='javascript'>alert('数据添加失败');history.go(-1);</script>");
%>
</body>
// updateguiyuan.jsp 修改柜员信息
<body>
<div id="mainDiv">
<div id="topDiv">
<div id="tmenu"><font color="white">超市会员积分管理系统</font></div></div>
<div id="centerDiv">
<jsp:include page="left.jsp" />
<div id="right">
<div id="current"> 当前位置:柜员修改</div>
<jsp:useBean id="mybean" class="bean.DB"/>
<%
request.setCharacterEncoding("gb2312");
String ids=request.getParameter("ids");
String sql="select * from admin where id ="+ids+"";
ResultSet rs=mybean.executeQuery(sql);
String name="";
String sex="";
String age="";
String username="";
String tel="";
String password="";
if(rs.next())
{
name=rs.getString("name");
sex=rs.getString("sex");
age=rs.getString("age");
tel=rs.getString("tel");
username=rs.getString("username");
password=rs.getString("password");
}
%>
<form action="saveguiyuan.jsp" method="post" name="form1" οnsubmit="return commit()">
<table width="84%" border="0" cellpadding="0" cellspacing="0" >
<!--DWLayoutTable-->
<tr>
<td height="66" valign="top">
<table width="81%" border="0" cellpadding="0" cellspacing="1" bgcolor="#0099FF" align="center">
<!--DWLayoutTable-->
<tr>
<td height="33" colspan="6" align="center" valign="middle" bgcolor="#98C6D1">修改柜员信息</td>
</tr>
<tr>
<td width="223" height="38" align="center" valign="middle" bgcolor="#98C6D1">柜员姓名:</td>
<td width="217" align="left" valign="middle" bgcolor="#98C6D1"><label>
</label>
<label>
<input type="text" name="name" value="<%=name%>" /><input type="hidden" name="ids" value="<%=ids%>" />
</label></td>
<td width="211" align="right" valign="middle" bgcolor="#98C6D1">柜员年龄:</td>
<td width="227" align="left" valign="middle" bgcolor="#98C6D1">
<input type="text" name="age" value="<%=age%>" /></td>
</tr>
<tr>
<td width="223" height="38" align="center" valign="middle" bgcolor="#98C6D1">柜员性别:</td>
<td width="217" align="left" valign="middle" bgcolor="#98C6D1"><label>
</label>
<label>
<input type="text" name="sex" value="<%=sex%>" />
</label></td>
<td width="211" align="right" valign="middle" bgcolor="#98C6D1">联系电话:</td>
<td width="227" align="left" valign="middle" bgcolor="#98C6D1">
<input type="text" name="tel" value="<%=tel%>"/></td>
</tr>
<tr>
<td width="223" height="43" align="center" valign="middle" bgcolor="#98C6D1">会员编号:</td>
<td width="217" align="left" valign="middle" bgcolor="#98C6D1"><label>
</label>
<label>
<input type="text" name="username" value="<%=username%>" readonly="true" />
</label></td>
<td width="211" align="right" valign="middle" bgcolor="#98C6D1">会员密码:</td>
<td width="227" align="left" valign="middle" bgcolor="#98C6D1">
<input type="text" name="password" value="<%=password%>" readonly="true" /></td>
</tr>
<tr>
<td height="33" colspan="4" align="center" valign="middle" bgcolor="#98C6D1">
<input type="submit" name="Submit" value="提交" />
</td>
</tr>
</table></td></tr>
</table>
</form>
</div>
</div></div>
<div id="bottomDiv"></div>
</body>
// updatemembertype.jsp 修改会员积分
<body>
<div id="mainDiv">
<div id="topDiv">
<div id="tmenu"><font color="white">超市会员积分管理系统</font></div></div>
<div id="centerDiv">
<jsp:include page="left.jsp" />
<div id="right">
<div id="current"> 当前位置:修改会员积分</div>
<jsp:useBean id="mybean" class="bean.DB"/>
<%
request.setCharacterEncoding("gb2312");
String ids=request.getParameter("ids");
String sql="select * from types where id ="+ids+"";
ResultSet rs=mybean.executeQuery(sql);
String typename="";
String minmoney="";
String maxmoney="";
if(rs.next())
{
typename=rs.getString("typename");
minmoney=rs.getString("minmoney");
maxmoney=rs.getString("maxmoney");
}
%>
<form action="saveUpdatemembertype.jsp" method="post" name="form1" οnsubmit="return commit()">
<table width="84%" border="0" cellpadding="0" cellspacing="0" >
<!--DWLayoutTable-->
<tr>
<td height="66" valign="top">
<table width="81%" border="0" cellpadding="0" cellspacing="1" bgcolor="#0099FF" align="center">
<!--DWLayoutTable-->
<tr>
<td height="33" colspan="6" align="center" valign="middle" bgcolor="#98C6D1">修改会员类别信息</td>
</tr>
<tr>
<td width="223" height="38" align="center" valign="middle" bgcolor="#98C6D1">类别名称:</td>
<td width="217" align="left" valign="middle" colspan="3" bgcolor="#98C6D1"><label>
</label>
<label>
<input type="text" name="name" value="<%=typename%>" readonly="true"/><input type="hidden" name="ids" value="<%=ids%>" />
</label></td>
</tr>
<tr>
<td width="223" height="38" align="center" valign="middle" bgcolor="#98C6D1">最小金额:</td>
<td width="217" align="left" valign="middle" bgcolor="#98C6D1"><label>
</label>
<label>
<input type="text" name="minmoney" value="<%=minmoney%>" />
</label></td>
<td width="211" align="right" valign="middle" bgcolor="#98C6D1">最大金额:</td>
<td width="227" align="left" valign="middle" bgcolor="#98C6D1">
<input type="text" name="maxmoney" value="<%=maxmoney%>"/></td>
</tr>
<tr>
<td height="33" colspan="4" align="center" valign="middle" bgcolor="#98C6D1">
<input type="submit" name="Submit" value="提交" />
</td>
</tr>
</table></td></tr>
</table>
</form>
</div>
</div></div>
<div id="bottomDiv"></div>
</body>