毕业设计 - 基于JSP的超市积分管理系统【源码 + 论文】

news2024/11/25 20:23:29

文章目录

  • 前言
  • 一、项目设计
    • 1. 模块设计
      • 系统功能需求
      • 管理员功能
      • 柜员功能
    • 2. 实现效果
  • 二、部分源码
  • 项目源码


前言

今天学长向大家分享一个 web项目:

基于JSP的超市积分管理系统


一、项目设计

1. 模块设计

系统功能需求

  • (1)柜员信息的管理:包括对所有柜台柜员信息的各项设置。
  • (2)会员信息的管理:包括对所有会员信息的管理设置。
  • (3)会员积分管理:包括对会员积分的统计、查询等。
  • (4)积分规则设置:对积分规则进行设定、修改等。
  • (5)会员等级设置:包括对每个会员等级的范围进行设置管理。
  • (6)兑换商品管理:对积分兑换的商品进行修改、兑换等各项管理。
  • (7)兑换商品记录:记录柜员对会员每次兑换商品的操作信息。
  • (8)兑换积分记录:记录柜员对会员每次兑换积分的操作信息。

管理员功能

  • 1)柜员账户列表,实现对柜员账户信息的管理。
  • 2)新增柜员账户,实现添加柜员信息。
  • 3)兑换商品列表,实现对兑换商品信息的查看、修改、删除操作。
  • 4)新增兑换商品,实现添加系统中兑换商品信息。
  • 5)会员类别管理,实现对系统中会员积分等级的设置。
  • 6)积分类别选择,实现对系统中的会员积分兑换规则设置。
  • 7)增加积分记录,实现查看柜员为会员兑换积分的工作记录。
  • 8)兑换积分记录,实现查看柜员为会员兑换商品的工作记录。

柜员功能

  • 1)用户列表管理,实现对会员信息的查看、修改、删除操作。
  • 2)新增用户管理,实现添加会员信息。
  • 3)会员积分管理,可以查看会员的积分和级别,并按照会员消费金额兑换积分。
  • 4)兑换商品列表,可以查看兑换商品及所需积分,并可为会员兑换商品。
  • 5)增加积分记录,实现查看柜员为会员兑换积分的工作记录。
  • 6)兑换积分记录,实现查看柜员为会员兑换商品的工作记录。

2. 实现效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、部分源码

部分代码示例:

//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   保持柜员修改信息


项目源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交换机端口震荡

交换机端口是支持网络连接和通信的物理网络组件。作为 IT 基础架构的关键部分&#xff0c;它们通过在 OSI 数据链路层转发和接收数据包来促进网络。它们还执行一些关键的网络功能&#xff0c;例如处理第 3 层数据包、创建和管理 VLAN、连接路由器、启用互联网连接等。因此&…

Arweave -- 永久性存储分享

Arweave Arweave 是一种新型存储&#xff0c;它支持具有可持续和永久的数据&#xff0c;允许用户和开发人员真正永久地存储数据 Arweave 项目&#xff0c;以前称为 Archain&#xff0c;正在创建一个与互联网平行的永久、去中心化和不可审查的信息档案。Arweave 的新颖“block…

技术分享 | 软件测试入门必会-流程管理平台

JIRA 是目前比较流行的测试流程管理系统&#xff0c;现在很多大厂使用的都是 JIRA。为什么大厂更爱用 JIRA 呢&#xff1f;其实就是因为它的定制性非常的强。可以自己定义流程&#xff0c;自己定义界面&#xff0c;自己定义字段。通过这些自定义的方式&#xff0c;就可以让整个…

特殊情况的高新技术企业成长性计算方法。

根据文件《高新技术企业认定管理工作指引》&#xff08;国科发火〔2016〕195号&#xff09;规定&#xff0c;选取企业净资产增长率、销售收入增长率等指标对企业成长性进行评价。企业实际经营期不满三年的按实际经营时间计算&#xff0c;计算方法如下&#xff1a; 成长性评分标…

【数据结构初阶】反转链表

文章目录问题描述&#xff1a;思路分析&#xff1a;代码展示&#xff1a;问题描述&#xff1a; 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 数据…

【计算机毕业设计】79.勤工助学管理系统源码

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 随着我国教育需求不断增加&#xff0c;高校教育资源有限&#xff0c;教育经费相对不足的情况下&#xff0c;利用现代信息技术发展高等教育&#xff0c;不仅充分利用了优秀的教育资源&#xff0c;而且为更多的…

迅为3A5000_7A2000开发板龙芯LoongArch架构

迅为3A5000_7A2000开发板龙芯LoongArch架构 主要参数 处理器: 龙芯3A5000 主频: 2.3GHz-2.5GHz 桥片: 7A2000 内存: 8GB、16GB DDR4带ECC纠错&#xff08;配置可选&#xff09; 系统: Loongnix 典型功耗: 35W 核心板: 16层 底板: 4层 核心板参数 尺寸: 125*95mm CPU: 龙芯…

J-004 Jetson电路设计之HDMI设计--NANO XAVIER NX

HDMI电路设计1 简介2 框图介绍3 原理图介绍1 简介 NANO & XAVIER NX提供一路HDMI接口&#xff0c;DP接口与HDMI是兼容的&#xff0c;可用于扩展一路HDMI。其中引脚说明: PIN名称描述方向类型63HDMI_DP_TXDN0DisplayPort 1 Lane 0 or HDMI Lane 2输出HDMI/DP65HDMI_DP_TXD…

高阶数据结构--图

本篇主要是介绍&#xff1a;图的一些常用的算法。 文章目录 一、图的基本概念二、图的存储结构 1、邻接矩阵2、邻接表三、图的遍历 1、广度优先遍历2、深度优先遍历四、最小生成树 1、Kruskal算法2、Prim算法五、最短路径 1、单源最短路径--Dijkstra算法2、单源最短路径--Bellm…

postgres 源码解析 45 btree分裂流程_bt_split

B树简介 B树一种多路平衡树&#xff0c;有如下特点&#xff1a; m阶B树表示每个节点最多含有m-1个元素&#xff0c;除了根节点之外&#xff0c;每个节点至少含有ceil(m/2)-1个元素。如5阶B树&#xff0c;每个节点最多4个元素&#xff0c;除根节点之外最少含有2个元素&#xf…

Java异常(Exception)处理及常见异常

很多事件并非总是按照人们自己设计意愿顺利发展的&#xff0c;经常出现这样那样的异常情况。 例如&#xff1a; 你计划周末郊游&#xff0c;计划从家里出发→到达目的→游泳→烧烤→回家。 但天有不测风云&#xff0c;当你准备烧烤时候突然天降大雨&#xff0c;只能终止郊游提…

Qt扫盲-QTableWidget理论总结

QTableWidget理论总结1. 概述2. QTableWidgetItem 概述3. 表头设置4. 常用功能5. 常用信号6. 槽函数7. 外观1. 概述 QTableWidget 是 Qt 提供的一个简单方便、标准的表格显示类。QTableWidget 中的 单元格数据 由 QTableWidgetItem 显示如果 想要一个使用你自己定义modle 的表…

MR案例(3):计算学生成绩(总分和平均分)

文章目录一、 任务目标1. 准备数据二、实行任务1. 创建Maven项目2. 添加相关依赖3. 创建日志属性文件4. 创建成绩映射器类5. 创建成绩驱动器类6. 启动成绩驱动器类&#xff0c;查看结果7. 创建成绩归并器类8. 修改成绩驱动器类9. 启动成绩驱动器列&#xff0c;查看结果一、 任务…

艾美捷利妥昔单抗Rituximab参数及应用

艾美捷利妥昔单抗Rituximab背景&#xff1a; 利妥昔单抗是一种针对CD20抗原的基因工程嵌合鼠/人单克隆IgG1κ抗体。利妥昔单抗的分子量约为145 kD。利妥昔单抗由哺乳动物细胞&#xff08;中国仓鼠卵巢&#xff09;产生。 艾美捷利妥昔单抗Rituximab基本参数&#xff1a; 中文…

Java+SSM流浪猫狗救助领养网站(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用技术&#xff1a; 后端采用SSM框架 前端采用了htmlcssbootstrap框架 MySQL数据库Tomcat服务器&#xff0c;项目含有源码、文档、配套开发软件、软件安装教程、项目发布教程等 项目功能介绍&#xff1a; 项目分为前端和后端两&#xff0c;包含的功能主要…

DBCO-PEG-TPP,二苯并环辛炔-聚乙二醇-磷酸三苯酯,DBCO-PEG磷酸三苯酯

【产品描述】 西安凯新生物科技有限公司供应的&#xff1a;​DBCO-PEG-TPP亲水性聚乙二醇 (PEG) 间隔臂提供了一个长而灵活的连接&#xff0c;磷酸三苯酯为无味、无臭的白色结晶块状或粉末&#xff0c;它不溶于冷水,但可溶于50℃以上的热水中,当溶液温度降低至室温时呈现疏水性…

安装 DbVisualizer pro 10.0.16

DbVisualizer pro 10.0.16 双击安装&#xff0c; 选择下载 JRE运行后 选择 创建 桌面快捷方式 安装成功后 ping 报错无法连接到mysql &#xff0c; 驱动 所致 官方下载最新驱动 MySQL :: Download MySQL Connector/J (Archived Versions)https://downloads.mysql.com/archi…

校园二手书商城源代码基于微信小程序云开发,可在线支付提现,含详细配置教程

校园二手书商城源代码基于微信小程序云开发&#xff0c;可在线支付提现&#xff0c;含详细配置教程 完整代码下载地址&#xff1a;校园二手书商城源代码基于微信小程序云开发 欢迎使用&#xff0c;下面是配置教程 长话短说&#xff0c;下面直接说配置流程 一、小程序端 1…

JZ31. 栈的压入、弹出序列

文章目录1. 题目描述2. 解题思路3. 动图演示4. 代码实现1. 题目描述 题目链接&#xff1a;31. 栈的压入、弹出序列 2. 解题思路 元素入栈指的是把新元素放到栈顶元素的上面&#xff0c;使之成为新的栈顶元素&#xff1b; 元素出栈指的是从一个栈删除元素又称作出栈或退栈&am…

MySQL8.0高级篇(上)-架构与索引

文章目录一、MySQL环境安装与介绍1、MySQL安装1.1 安装前说明1.2 MySQL的Linux版安装1.3 MySQL登录1.4 字符集的相关操作1.5 字符集与比较规则(了解)1.6 请求到响应过程中字符集的变化1.7 SQL大小写规范1.8 sql_mode的合理设置2、MySQL的数据目录2.1 MySQL8的主要目录结构2.2 查…